Tag Archives: google

Google Play 부가가치세(VAT) 및 판매세(Sales Tax) 알아보기

이번에는 구글플레이를 통해서 앱을 판매할 때 겪게 될 세금 정보에 대해서 알아보겠습니다. 국내 또는 해외에 위치한 개발자가 한국의 사용자들에게 앱을 판매할 경우 한국 정부에 부가가치세(VAT)를 내야 합니다. 구글 플레이에서 안내하고 있는 VAT 가이드 라인은 다음과 같습니다.google_play_vat_guidelines

정리해 보자면 한국에 거주하는 개발자의 경우 구글플레이에서 정산받은 수익금중 10%를 개발자가 알아서 송금하시면 됩니다. 말을 좀 더 쉽게 풀어써보면 한국에 거주하는 개발자는 부가가치세 납부를 직접 해야 할 책임이 있다, 정도로 보시면 될 것 같습니다. 하지만 해외에 거주하는 개발자가 한국의 사용자들에게 판매할 때 발생하는 부가세는 구글이 직접 10%의 부가세를 추가로 취한 뒤 직접 정부에 대납 해주는 일을 합니다. 즉 해외 개발사는 한국에 직접 세금 신고를 해야 할 필요는 없습니다.

생각해 보면 국내 사용자를 대상으로 장사하는(?) 해외 개발사는 구글이 알아서 다 처리해 주니 한국의 부가세에 대해 깊이 생각할 필요가 없습니다. 하지만 국내 거주 개발사라면 이야기가 달라집니다. 위의 가이드 라인에 의하면 “대한민국에 거주하는 개발자는 대한민국 고객이 Google Play 스토어에서 디지털 콘텐츠를 구매할 경우 VAT를 결정하고 청구하고 송금할 책임이 있습니다.”라는 말이 있습니다. 개발자는 판매하는 디지털 콘텐츠의 가격에 VAT를 포함시켜야 하며 포함된 가격을 어떻게 책정할 것인지 직접 판단해야 합니다.

즉, 만약 한국에 거주중인 개발자가 1,000원 짜리 디지털 콘텐츠를 판매한다고 할 때 다음과 같은 상황을 고려해야 합니다.

  • 상품 가격 1,000원에 VAT 100원을 더하며 상품을 실제로 1,100원에 판매
  • 상품 가격 909.1원에 VAT 90.9원을 더하여 상품을 실제로 1,000원에 판매

전자는 VAT를 구매자에게 완전히 떠넘기는 셈법이 될 것이고, 후자는 VAT를 개발사가 떠안는 방법이 될 것입니다. 하지만 VAT는 당연히 구매자가 부담해야 하는 것이므로 1,100원에 판매하는게 당연한 이야기일 것 같네요. 무엇보다 구글이 30%를 띄어가게 되는데 세금 설정을 따로 해주셔야 세금은 이 30%에서 빠지게 됩니다.

자 그럼 판매세(Sales Taxes) 설정을 통해서 자연스럽게(?) 사용자에게 VAT를 부과하는 방법에 대해 알아보겠습니다.

google_play_sales_tax_guideline

구글에서 이야기하는 판매세는 위와 같습니다. 개발자는 자신이 판매하는 디지털 콘텐츠의 판매 가격에 붙는 세율을 자유롭게 설정하는 것이 가능합니다. 바로 이 판매세라는것을 이용해서 말이죠.

[Google Play Payments 판매자 센터]에 방문하여 설정 – 판매세 메뉴에 들어갑니다.

google_play_sales_taxes_1

한국은 캐나다도 유럽연합도 미국도 아니므로 기타국가 및 지역의 수정을 눌러서 값을 변경해 보겠습니다.

google_play_sales_taxes_2

대한민국의 값이 비어있네요. 여기에 10%로 설정해 주시면 됩니다.

google_play_sales_taxes_3

네 대한민국이 10%로 추가되었습니다. 이제 앱 내 결제를 구동할 때 다음과 같이 자동으로 10%의 세금이 추가되어 과금되게 됩니다. 별도로 앱 내부에서 판매중인 디지털 콘텐츠의 가격을 10% 붙은 가격으로 노출해 줄 필요도 있겠네요.

google_payment_pop_with_tax

구글 판매자 계정에서 확인할 수 있는 판매 영수증을 보시면 다음과 같이 정상적으로 VAT가 붙어있는것을 확인 하실 수 있습니다.

google_play_payment_receipt

마지막으로 구글에서 발행하는 리포트에 대해서 알아보겠습니다. [Google Play Developer Console]의 보고서 – 재무보고서에 방문하면 관련된 리포트를 다운받아 볼 수 있습니다. 리포트의 내용중에 세금 관련되어 표기된 부분만 확인해 보겠습니다.

google_play_tax_report_korea

하나의 상품이 3개의 행(Row)로 이루어져 있는것을 볼 수 있습니다. 하나의 상품에 대해 Google fee, Charge, Tax로 분류 되어있습니다. 각각은 다음을 의미합니다.

  • Google fee : 구글이 과금한 판매 30%의 수수료, 판매 가격의 30%가 음수로 이곳에 적혀 있습니다.
  • Charge : 유저에게 과금된 금액. 결과적으로 Charge – Google fee가 개발자가 받게 되는 수익금 입니다.
  • Tax : VAT 10%값입니다. Google fee 계산에서 제외되며 국내 거주 개발자의 경우 우선 지급이 되지만 나중에 직접 세금을 정부에 송금하셔야 하는 부분입니다.

여기서 잘 봐두실 부분은 Buyer CurrencyMerchant Currency 입니다. 전자는 구매자의 화폐단위이며 후자는 판매자가 수령하게 될 국가 기준의 화폐단위 입니다. 둘다 한국이므로 KRW로 써있는것을 볼 수 있습니다.

google_play_tax_report_hongkong

이번에는 참고로 해외 판매자의 리포트를 보겠습니다. 한국 사용자들에게 디지털 콘텐츠를 판매중인 홍콩의 개발자의 리포트입니다. 국내 개발자와 다른점은 Tax 항목이 아예 없는것을 볼 수 있습니다. 이는 구글이 직접 10%의 VAT를 직접 추가 징수한 뒤 한국에 납부하게 되므로 세금 정보가 아예 빠져있습니다. 그리고 Merchant Currency를 통해 HKD(홍콩 달러) 로 환전되는 것을 알 수 있습니다. 이를 통해서 개발자가 해외 거주 개발자라는것을 유추해 볼 수 있겠네요.

[Java] Json 라이브러리의 최고봉 Gson 수동으로 배열 처리하기

구글의 Json 라이브러리인 [Gson]는 확실히 멋진 라이브러리입니다. 어떤식으로든지 객체와 1:1매핑되어 정확하게 값이 타입에 맞게 들어가는 것을 보면 놀라지 않을 수 없습니다.

그런데 이것이 너무 편하다 보니 매번 POJO객체를 만들어야 한다거나 또는 이 편리함이 오히려 복잡함으로 다가오게 만들정도의 획일화된 사용법을 제공하는등 마냥 편한건 아닌것 같더군요.

하지만 좀더 알아보니 방법이 없는게 아니라 제가 모르는 것이었습니다. [이곳]에 나와있는 예제를 첨부해 보겠습니다.
[code]Gson gson = new Gson();

Collection collection = new ArrayList();
collection.add(“hello”);
collection.add(5);
collection.add(new Event(“GREETINGS”, “guest”));

String json = gson.toJson(collection);
System.out.println(“Using Gson.toJson() on a raw collection: ” + json);[/code]
위와 같은 코드를 실행해서 배열을 Json으로 변환하는 예제를 실행해 보았습니다. 위의 예제는 사실상 전혀 이해 못할것이 없는 당연스러운 코드 입니다. 하지만 다음의 경우는…일단 저는 모르고 있었네요.
[code]JsonParser parser = new JsonParser();

JsonArray array = parser.parse(json).getAsJsonArray();

String message = gson.fromJson(array.get(0), String.class);
int number = gson.fromJson(array.get(1), int.class);
Event event = gson.fromJson(array.get(2), Event.class);

System.out.printf(“Get: %s, %d, %s”, message, number, event);[/code]
위와 같이 일일이 수작업으로 원하는 만큼만의 작업을 할 수 있습니다. Java 5.0이상부터라면 다음과 같은 구문을 사용할 수도 있습니다.
[code]JsonParser parser = new JsonParser();

JsonArray array = parser.parse(json).getAsJsonArray();

for(JsonElement element : array)
{
  // …
}[/code]

참고 :
http://code.google.com/p/google-gson/source/browse/trunk/extras/src/main/java/com/google/gson/extras/examples/rawcollections/RawCollectionsExample.java

https://sites.google.com/site/gson/gson-user-guide