Đọc mã lý do hoàn tiền mà máy chủ của bạn đã nhận, và nó cho bạn biết nên sửa ứng dụng hay tranh luận với khách hàng
Mỗi khoản hoàn tiền mà Apple và Google gửi đến máy chủ của bạn đều mang một mã lý do. Google Play đóng dấu một trong chín lý do và một nguồn trên mỗi lần void, Apple đánh dấu liệu khoản hoàn tiền có quy lỗi cho ứng dụng của bạn không. Đây là ý nghĩa của từng mã, cách phân loại chúng thành sửa, tranh luận, hoặc chấp nhận, và chúng đáng giá bao nhiêu tiền.

Điểm chính
- Mỗi khoản hoàn tiền mà Apple hoặc Google gửi đến máy chủ của bạn đều mang một mã lý do hoàn tiền, và đó là phần duy nhất của một khoản hoàn tiền bạn có thể đọc sau khi tiền đã chuyển đi. Nó cho bạn biết vì sao khoản hoàn tiền xảy ra, điều đó cho bạn biết phải làm gì tiếp theo.
- Voided Purchases API của Google Play đóng hai con số lên mỗi lần void: một voidedReason từ 0 đến 8 (other, remorse, not received, defective, accidental purchase, fraud, friendly fraud, chargeback, unacknowledged purchase) và một voidedSource 0 người dùng, 1 nhà phát triển, hoặc 2 Google.
- Apple cho bạn một tín hiệu hẹp hơn nhưng sắc bén. Trên một giao dịch được hoàn tiền, revocationReason là 1 khi App Store hoàn tiền vì một vấn đề thực tế hoặc được cho là có bên trong ứng dụng của bạn, và là 0 khi hoàn tiền vì lý do khác chẳng hạn mua nhầm.
- Các mã được chia thành ba nhóm. Defective, not received, unacknowledged, và mã lỗi-trong-ứng-dụng của Apple chỉ về sản phẩm của bạn, nên bạn sửa chúng. Fraud, friendly fraud, và chargeback là các tranh chấp mà bạn tranh luận hoặc ngăn chặn. Remorse và mua nhầm vốn dĩ không bao giờ do bạn ngăn được.
- voidedReason 8, unacknowledged purchase, là khoản hoàn tiền do chính bạn tự lập hóa đơn. Google tự động hoàn tiền và thu hồi bất kỳ giao dịch nào mà ứng dụng của bạn không xác nhận trong ba ngày, và mã này là cách bạn tìm ra lỗi đó trong chính phần tích hợp của mình.
- voidedReason 7, chargeback, là mã đắt đỏ. Với các đơn hàng Google Play đặt vào hoặc sau ngày 3 tháng 8, 2026, một chargeback thua khiến nhà phát triển mất giá mua trừ đi phí dịch vụ của Play cộng thêm phí chargeback của ngân hàng, nên đếm các lần void mang mã chargeback của bạn chính là đếm chi phí phát sinh thực.
- Voided Purchases API chỉ nhìn lại 30 ngày, và nó lọc theo thời điểm Google nhìn thấy lần void, không phải thời điểm giao dịch xảy ra, nên một mã lý do bạn không thu thập trong cửa sổ đó là một mã lý do bạn mất vĩnh viễn.
Khi Apple hoặc Google hoàn tiền cho một khách hàng của bạn, tiền thường đã đi mất trước khi bạn kịp có tiếng nói. Cái rơi vào máy chủ của bạn sau đó trông giống một biên nhận, và hầu hết các nhóm đối xử với nó như vậy. Nó còn hơn thế. Mỗi khoản hoàn tiền mang một mã lý do hoàn tiền, và đó là phần duy nhất của một khoản hoàn tiền mà bạn vẫn được đọc sau khi quyết định đã xong. Google Play cho bạn biết khoản hoàn tiền là một chargeback, hay một yêu cầu remorse, hay một giao dịch mà chính ứng dụng của bạn chưa bao giờ xác nhận. Apple cho bạn biết liệu khoản hoàn tiền có quy lỗi cho điều gì bên trong ứng dụng của bạn không. Đọc mã đó và một khoản hoàn tiền thôi là một dòng trong báo cáo mà trở thành một chỉ dẫn: sửa cái này, tranh luận cái này, hoặc bỏ qua cái này. Đây là ý nghĩa của từng mã, cách phân loại chúng, và mỗi mã tốn bao nhiêu.
Mã lý do hoàn tiền thực sự là gì
Mã lý do hoàn tiền là nhãn của chính cửa hàng cho lý do một giao dịch bị đảo ngược. Bạn không đặt nó và không thể tranh cãi với nó. Nó đến kèm khoản hoàn tiền sau khi việc đã rồi, và hai cửa hàng phơi bày nó theo những hình dạng khác nhau và với độ phân giải rất khác nhau.
Google Play đóng một lý do và một nguồn lên mỗi lần void
Voided Purchases API của Google Play trả về một bản ghi cho mỗi giao dịch bị đảo ngược, và mỗi bản ghi mang hai số nguyên quan trọng. voidedReason nói vì sao giao dịch bị void. voidedSource nói ai đã khởi động nó. Cùng nhau chúng biến một khoản hoàn tiền trần trụi thành một câu: đơn hàng này bị void vì một chargeback, do Google khởi động, hoặc bị void như remorse, do người dùng khởi động. Bạn đọc chúng bằng cách polling API hoặc bằng cách đăng ký nhận thông báo nhà phát triển thời gian thực kích hoạt khi một lần void rơi vào. Dù cách nào, hai con số đó là payload đáng giữ.
Apple cho bạn một tín hiệu hẹp hơn, nhưng sắc bén
Apple không trao cho bạn một lý do chín hướng. Trên một giao dịch được hoàn tiền, Apple đặt revocationReason thành một trong hai giá trị. Giá trị 1 nghĩa là App Store hoàn tiền giao dịch vì một vấn đề thực tế hoặc được cho là có bên trong ứng dụng của bạn. Giá trị 0 nghĩa là hoàn tiền vì lý do khác, ví dụ mua nhầm. Trường này chỉ xuất hiện trên các giao dịch được hoàn tiền hoặc bị thu hồi, cùng với một revocationDate, bên trong signed transaction info của REFUND App Store Server Notification. Hai giá trị thì không nhiều, nhưng giá trị quan trọng, tức 1, là Apple nói cho bạn biết khoản hoàn tiền là về sản phẩm của bạn, không phải sự do dự của khách hàng.
Chín lý do Google Play trao cho bạn
voidedReason của Google là cái phong phú hơn trong hai cái, và mỗi giá trị đáng biết ngay khi nhìn thấy vì mỗi cái chỉ về một nơi khác nhau. Đây là toàn bộ tập hợp, lấy thẳng từ resource VoidedPurchase, cùng với điều mỗi mã thực sự bảo bạn làm.
| voidedReason | Nhãn của Google | Mã này đang bảo bạn điều gì |
|---|---|---|
| 0 | Khác | Không có lý do cụ thể được ghi lại. Gom nhóm và theo dõi khối lượng, không phải từng ca lẻ. |
| 1 | Remorse (đổi ý) | Khách hàng đổi ý. Không có gì sai với ứng dụng của bạn. |
| 2 | Không nhận được | Khách hàng nói họ chưa bao giờ nhận được thứ đã trả tiền. Một vấn đề giao hàng cần kiểm tra. |
| 3 | Lỗi | Giao dịch không hoạt động. Một lỗi sản phẩm, và là mã đáng hành động nhất trong danh sách này. |
| 4 | Mua nhầm | Một cú nhấp nhầm hoặc một lần mua ngoài ý muốn. Cân nhắc một bước xác nhận rõ ràng hơn. |
| 5 | Gian lận | Google gắn cờ giao dịch là gian lận. Không phải khách hàng của bạn, và không phải doanh thu bạn được giữ. |
| 6 | Friendly fraud | Người mua tranh chấp một khoản họ đã tạo và đã nhận. Bằng chứng vẫn có thể chạm tới cái này. |
| 7 | Chargeback | Ngân hàng đảo ngược khoản phí. Con đường đắt nhất, giờ kèm một khoản phí. |
| 8 | Giao dịch không được xác nhận | Ứng dụng của bạn chưa bao giờ xác nhận giao dịch, nên Google tự động hoàn tiền. Một lỗi trong mã của bạn. |
voidedSource cho bạn biết ai đã bóp cò
Bên cạnh lý do là voidedSource, và nó trả lời một câu hỏi khác: ai đã đảo ngược cái này. Giá trị 0 nghĩa là người dùng đã làm, qua tự phục vụ hoặc qua ngân hàng. Giá trị 1 nghĩa là nhà phát triển đã làm, tức là bạn hoặc công cụ của chính bạn phát hành khoản hoàn tiền. Giá trị 2 nghĩa là Google đã làm, theo phán đoán của riêng nó, bao gồm cả việc tự động hoàn tiền cho một giao dịch không được xác nhận. Khi bạn thấy một đợt tăng đột biến các lần void, nguồn là lát cắt đầu tiên. Một bức tường toàn source 2 là Google đang hành động trên tài khoản của bạn, và đó thường là một tín hiệu chỉ ngược về phần tích hợp của bạn chứ không phải về khách hàng của bạn.
Phân loại mỗi khoản hoàn tiền thành sửa, tranh luận, hoặc chấp nhận
Lý do một mã hữu ích là nó cho bạn biết trong ba phản ứng thì một khoản hoàn tiền xứng đáng với cái nào. Hầu hết các nhóm đối xử với mọi khoản hoàn tiền như nhau và đốt công sức vào những cái không bao giờ thắng nổi. Các mã chia tách gọn gàng.
Sửa: các khoản hoàn tiền do sản phẩm của bạn gây ra
Một số mã là báo cáo lỗi khoác áo hoàn tiền. Lỗi (3) và không nhận được (2) trên Google, và revocationReason bằng 1 trên Apple, tất cả đều nói cùng một điều: khách hàng đã trả tiền và ứng dụng của bạn không giao hàng. Giao dịch không được xác nhận (8) là mã sắc bén nhất trong số này vì lỗi hoàn toàn nằm trong mã tính tiền của bạn. Đây là những khoản hoàn tiền rẻ nhất để loại bỏ, vì bạn loại bỏ chúng bằng cách sửa một thứ bạn sở hữu, không phải bằng cách thuyết phục ai đó. Một con số tăng lên trong nhóm này là một khiếm khuyết sản phẩm có kèm một con số bằng đô la.
Tranh luận: các khoản hoàn tiền đang bị ai đó thao túng
Gian lận (5), friendly fraud (6), và chargeback (7) là các tranh chấp. Gian lận thuần túy (5) không phải khách hàng của bạn và không phải doanh thu bạn từng định giữ. Friendly fraud (6), khi người mua nhận đúng thứ họ đã trả tiền rồi tranh chấp nó, là tranh chấp duy nhất mà bằng chứng của bạn vẫn có thể lay chuyển, và chargeback (7) là nơi bằng chứng đó được nộp. Khi một trong số này rơi vào, bạn thu hồi quyền truy cập nếu chưa làm, và ở đâu có một cửa sổ xem xét đang mở thì bạn trả lời nó bằng những gì bạn biết về tài khoản đó.
Chấp nhận: các khoản hoàn tiền vốn dĩ không bao giờ do bạn ngăn được
Remorse (1) và mua nhầm (4) là sự đổi ý của chính khách hàng. revocationReason bằng 0 của Apple cũng nằm ở đây. Không tính năng nào hỏng và không có gian lận nào xảy ra. Bạn có thể làm dịu nhóm mua nhầm bằng một xác nhận mua rõ ràng hơn, nhưng bạn không thể tranh cãi để loại bỏ một khoản hoàn tiền remorse, và thời gian dành để thử là thời gian lấy đi khỏi nhóm sửa nơi tiền thực sự nằm ở đó.
| Nhóm | Mã Google | Tín hiệu Apple | Việc bạn nên làm |
|---|---|---|---|
| Sửa | 2 không nhận được, 3 lỗi, 8 không được xác nhận | revocationReason 1 | Truy nguyên gốc rễ lỗi sản phẩm hoặc lỗi tính tiền đằng sau nó |
| Tranh luận | 5 gian lận, 6 friendly fraud, 7 chargeback | (xuất hiện qua REFUND, không qua lý do) | Thu hồi quyền truy cập, trả lời cửa sổ xem xét bằng bằng chứng |
| Chấp nhận | 1 remorse, 4 mua nhầm | revocationReason 0 | Ghi lại, tinh chỉnh luồng mua, đi tiếp |

Cái bẫy 30 ngày khiến mã lý do dễ mất
Có một giới hạn cứng ở phía Google biến điều này từ một tính năng báo cáo thành một hạn chót. Nếu bạn không thu thập các mã liên tục, bạn đang mất chúng.
Voided Purchases API chỉ nhìn lại 30 ngày
Google nói rõ rằng API chỉ có thể hiển thị các giao dịch bị void trong 30 ngày qua. Các lần void cũ hơn không được trả về dù bạn truyền startTime nào, và bản thân giá trị startTime không thể đặt sớm hơn 30 ngày trước. Tệ hơn cho một phần tích hợp ngây thơ, cửa sổ 30 ngày được đo bằng thời điểm hệ thống của Google nhìn thấy một giao dịch là bị void, không phải thời điểm giao dịch được thực hiện hay thậm chí bằng voidedTimeMillis trong bản ghi. Vậy nên một mã lý do hoàn tiền bạn không kéo về trong cửa sổ đó là mất, và một công việc xuất dữ liệu hàng tháng có bất kỳ khoảng trống nào sẽ âm thầm bỏ rơi các lần void nó quá chậm không bắt kịp.
Các mã lý do đáng giá bao nhiêu tiền
Hai mã mang một cái giá cụ thể, và đọc chúng là cách bạn đặt một con số lên những vấn đề nếu không sẽ ẩn bên trong một tỷ lệ hoàn tiền tổng hợp.
Một mã là hóa đơn bạn tự viết cho mình
voidedReason 8, unacknowledged purchase, là ví dụ sạch nhất về một khoản hoàn tiền do bạn gây ra. Google Play yêu cầu ứng dụng của bạn xác nhận một giao dịch trong ba ngày kể từ khi cấp quyền, và nếu bạn không làm, Google tự động hoàn tiền đơn hàng và thu hồi mục đó. Mỗi lần void đóng dấu 8 là một lượt bán thực, từ một khách hàng muốn sản phẩm, bị trả lại vì một lệnh gọi để xác nhận giao dịch chưa bao giờ kích hoạt. Số tiền mất là toàn bộ giá bán cộng với tính toán, lệnh gọi API, và lưu trữ mà bạn đã bỏ ra để giao nó. Đây không phải khoản hoàn tiền bạn đàm phán. Đây là một lỗi bạn đóng lại, và mã là cách bạn tìm ra nó.
Mã chargeback nay kèm một khoản phí
voidedReason 7, chargeback, đã đổi chi phí vào ngày 3 tháng 8, 2026. Với các đơn hàng Google Play đặt vào hoặc sau ngày đó, một chargeback thua khiến nhà phát triển mất giá mua trừ đi phí dịch vụ của Play, cộng thêm phí chargeback của ngân hàng, trong khi Google chỉ bù phí dịch vụ của riêng mình. Vì phí chargeback là cố định còn giá sản phẩm thì không, trên một giao dịch trong ứng dụng rẻ tiền thì riêng khoản phí có thể vượt quá số khách hàng đã trả. Đếm các lần void mã 7 của bạn nay là đếm một mục chi phí, không chỉ một lượt bán bị mất, và đó chính xác là lý do nhóm chargeback xứng đáng có hàng riêng của nó trong bất kỳ báo cáo hoàn tiền nào bạn dựng.
| Mã lý do | Nó tốn của bạn cái gì | Vì sao mã đó quan trọng |
|---|---|---|
| 8 Giao dịch không được xác nhận | Toàn bộ giá bán cộng chi phí giao hàng, trên một lượt bán khách hàng muốn | Nó tự gây ra, nên mã này là một trình theo dõi lỗi |
| 7 Chargeback (đơn hàng vào hoặc sau ngày 3 tháng 8, 2026) | Giá bán trừ phí dịch vụ của Play, cộng phí chargeback của ngân hàng | Mã duy nhất cộng thêm một khoản phí lên trên lượt bán bị mất |
| 3 Lỗi | Giá bán cộng chi phí giao hàng, lặp lại cho mỗi khách hàng gặp lỗi | Khối lượng ở mã này định lượng một khiếm khuyết sản phẩm bằng đô la |
| 1 Remorse | Giá bán, và chi phí giao hàng bạn đã bỏ ra | Chi phí thực, nhưng không phải cái mà một thay đổi mã có thể thu hồi |
Apple và Google xếp hàng thế nào
Hai cửa hàng trả lời cùng một câu hỏi ở các độ phân giải khác nhau, nên một báo cáo hoàn tiền liên cửa hàng phải chuẩn hóa chúng thay vì mong chúng khớp nhau.
| Câu hỏi | App Store | Google Play |
|---|---|---|
| Mã nằm ở đâu | revocationReason trong signed transaction của thông báo REFUND | voidedReason trong Voided Purchases API và thông báo của nó |
| Bao nhiêu lý do | Hai: 1 vấn đề trong ứng dụng của bạn, 0 khác | Chín, từ 0 khác đến 8 giao dịch không được xác nhận |
| Ai đã làm | Không tách riêng | voidedSource: 0 người dùng, 1 nhà phát triển, 2 Google |
| Đọc được lùi bao xa | Có sẵn trên giao dịch bất cứ khi nào bạn truy vấn | Chỉ 30 ngày void gần nhất |
| Tín hiệu sắc bén nhất | Giá trị 1 nghĩa là khoản hoàn tiền là về sản phẩm của bạn | Mã 3, 8, và 7 mỗi cái chỉ về một chi phí riêng biệt, có thể sửa |
Hai cửa hàng sẽ không bao giờ cho bạn cùng một mã cho cùng một khoản hoàn tiền, và điều đó không sao. Điều quan trọng là cả hai đều trao cho bạn một lý do máy đọc được, và cả hai đều tưởng thưởng một nhóm chịu đọc nó. Một bit duy nhất của Apple cho bạn biết khi nào một khoản hoàn tiền là lỗi của sản phẩm bạn. Chín lý do của Google và cờ nguồn của nó cho bạn biết lỗi sản phẩm nào, tranh chấp nào, và khoảng trống tính tiền tự gây ra nào bạn đang nhìn thấy. Không mã nào ngăn được một khoản hoàn tiền. Cả hai cho bạn biết phải làm gì để lần sau không xảy ra.
RefundHalt bắt lấy mã lý do trên mỗi khoản hoàn tiền ngay khoảnh khắc nó đến, trên cả hai cửa hàng, và giữ nó thật an toàn bên trong cửa sổ 30 ngày của Google để không gì lọt mất. Nó phân loại mỗi lần void thành sửa, tranh luận, hoặc chấp nhận, để một đợt tăng mã 3 lỗi đến với bạn như một cảnh báo sản phẩm và một đợt tăng mã 8 không được xác nhận đến với bạn như một lỗi tích hợp, chứ không phải như một sự sụt giảm doanh thu mơ hồ. Nó trả lời CONSUMPTION_REQUEST của Apple trong 12 giờ và cuộc xem xét chargeback của Google Play trong 24, và nó thu hồi quyền truy cập ngay khi một khoản hoàn tiền hoặc chargeback rơi vào. Bạn không thể thay đổi mã mà một cửa hàng đóng lên một khoản hoàn tiền. Bạn có thể chắc chắn rằng bạn đọc mọi mã, và hành động trên những cái thực sự thuộc về bạn để sửa.
Câu hỏi thường gặp
- Mã lý do hoàn tiền trên App Store và Google Play là gì?
- Đó là nhãn của chính cửa hàng cho lý do một giao dịch bị đảo ngược, được gửi đến máy chủ của bạn cùng với khoản hoàn tiền. Voided Purchases API của Google Play trả về một voidedReason từ 0 đến 8 và một voidedSource 0 người dùng, 1 nhà phát triển, hoặc 2 Google. Apple đặt revocationReason thành 1 khi khoản hoàn tiền là do một vấn đề bên trong ứng dụng của bạn hoặc thành 0 vì một lý do khác chẳng hạn mua nhầm. Bạn không đặt mã và không thể thay đổi nó, nhưng đọc nó cho bạn biết liệu khoản hoàn tiền chỉ về sản phẩm của bạn, một tranh chấp, hay một sự đổi ý của khách hàng.
- Các giá trị voidedReason của Google Play là gì?
- Có chín: 0 khác, 1 remorse, 2 không nhận được, 3 lỗi, 4 mua nhầm, 5 gian lận, 6 friendly fraud, 7 chargeback, và 8 giao dịch không được xác nhận. Mỗi cái được trả về theo từng giao dịch bị void bởi Voided Purchases API cùng với một voidedSource cho biết ai đã khởi động lần void. Mã 2, 3, và 8 chỉ về các vấn đề trong chính ứng dụng của bạn, mã 5, 6, và 7 là các tranh chấp, còn mã 1 và 4 là quyết định của chính khách hàng.
- revocationReason bằng 1 của Apple nghĩa là gì?
- Nó nghĩa là App Store hoàn tiền giao dịch vì một vấn đề thực tế hoặc được cho là có bên trong ứng dụng của bạn, trái với giá trị 0 nghĩa là khoản hoàn tiền xảy ra vì một lý do khác chẳng hạn mua nhầm. Trường này chỉ xuất hiện trên các giao dịch được hoàn tiền hoặc bị thu hồi, cùng với một revocationDate, bên trong signed transaction info của REFUND App Store Server Notification. Giá trị 1 là Apple nói cho bạn biết khoản hoàn tiền là về sản phẩm của bạn.
- Vì sao Google hoàn tiền một giao dịch với mã lý do không được xác nhận?
- Vì ứng dụng của bạn đã không xác nhận giao dịch kịp thời. Google Play yêu cầu bạn xác nhận một giao dịch trong ba ngày kể từ khi cấp quyền, và nếu bạn không làm, Google tự động hoàn tiền đơn hàng và thu hồi mục đó, đóng dấu lần void bằng voidedReason 8. Đây là một khoản hoàn tiền bạn gây ra bằng một lỗi tính tiền, không phải một yêu cầu của khách hàng, nên cách sửa nằm trong mã xử lý giao dịch của bạn chứ không phải trong bất kỳ cuộc đàm phán nào.
- Tôi có thể đọc mã lý do hoàn tiền lùi về bao xa?
- Trên Google Play, chỉ 30 ngày. Voided Purchases API trả về các lần void trong 30 ngày qua và bỏ qua bất kỳ startTime nào cũ hơn thế, và nó đo cửa sổ bằng thời điểm Google nhìn thấy lần void, không phải thời điểm giao dịch được thực hiện. Một mã bạn không thu thập trong 30 ngày sẽ mất, nên bạn nên đăng ký nhận thông báo void-purchase thời gian thực hoặc polling theo lịch an toàn bên trong cửa sổ. revocationReason của Apple vẫn nằm trên giao dịch bất cứ khi nào bạn truy vấn.
Nguồn và tài liệu đọc thêm
- Google Play Developer API: REST Resource purchases.voidedpurchases (voidedReason and voidedSource values)
- Google Play Developer API: Method purchases.voidedpurchases.list (30-day lookback window)
- Google Play: Voided Purchases API overview
- Apple Developer: revocationReason (App Store Server Notifications)
- Apple Developer: Transaction.RevocationReason (StoreKit)
- Apple Developer: Handling refund notifications (revocationDate and revocationReason on REFUND)
- Google Play Console Help: Updates to refund protection and chargeback cost responsibility (August 3, 2026)
- Google Play Billing: Integrate the Google Play Billing Library (acknowledge within three days or auto-refund)
RefundHalt
Chế độ tự động xử lý hoàn tiền cho App Store và Google Play
Đọc tiếp
Các giao dịch mua trong ứng dụng trái phép do trẻ em thực hiện gần như luôn được hoàn tiền cho phụ huynh, và bạn là người gánh chi phí
Khi một đứa trẻ mua gói xu trên điện thoại của phụ huynh, cả Apple lẫn Google đều hoàn tiền và không bên nào hỏi bạn trước. Các cơ quan quản lý đã tạo ra nó theo cách đó. Đây là cách các khoản hoàn tiền cho giao dịch mua trong ứng dụng trái phép này hoạt động trên từng cửa hàng, khung 15 phút nơi tiền chuyển đi, và một khoản thực sự khiến bạn tốn bao nhiêu.
Bạn chưa bao giờ sở hữu khoản thuế hoàn tiền ứng dụng, nên một lần hoàn tiền chỉ lấy đi phần của bạn, không phải tổng số trên biên nhận
Hoàn tiền một giao dịch trong ứng dụng và biên nhận hiển thị giá cộng thuế được trả lại. Khoản thuế đó chưa bao giờ là tiền của bạn. Apple và Google thu và nộp nó với tư cách merchant of record, rồi đảo ngược nó khi hoàn tiền mà không chạm vào phần của bạn. Đây là chi phí thực sự của một lần hoàn tiền, và một trường hợp thiết lập duy nhất khiến khoản thuế trở thành của bạn.