Method: purchases.subscriptions.cancel
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Membatalkan pembelian langganan pengguna. Langganan tetap valid hingga waktu habis masa berlakunya.
Permintaan HTTP
POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:cancel
URL menggunakan sintaksis gRPC Transcoding.
Parameter jalur
Parameter |
packageName |
string
Nama paket aplikasi yang langganannya ini dibeli (misalnya, 'com.some.thing').
|
subscriptionId |
string
Catatan: Mulai 21 Mei 2025, subscriptionId tidak diperlukan, dan tidak direkomendasikan untuk langganan dengan add-on. ID langganan yang dibeli (misalnya, 'monthly001').
|
token |
string
Token yang diberikan ke perangkat pengguna saat langganan dibeli.
|
Isi permintaan
Isi permintaan memuat data dengan struktur berikut:
Kolom |
cancellationType |
enum (CancellationType )
Opsional. Jenis pembatalan untuk langganan yang dibeli. Perhatikan bahwa kolom ini hanya didukung dalam permintaan HTTP. Library ini tidak tersedia di library klien.
|
Isi respons
Jika berhasil, isi respons akan kosong.
Contoh
Berikut adalah contoh permintaan:
curl -X POST \
-H "Accept: application/json" \
"https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.example.app/purchases/subscriptions/monthly.premium.plan/tokens/EXAMPLE_TOKEN_STRING_12345:cancel"
Cakupan otorisasi
Memerlukan cakupan OAuth berikut:
https://www.googleapis.com/auth/androidpublisher
CancellationType
Jenis pembatalan yang diminta oleh developer.
Enum |
CANCELLATION_TYPE_UNSPECIFIED |
Jenis pembatalan tidak ditentukan. |
USER_REQUESTED_STOP_RENEWALS |
Pembatalan diminta oleh pengguna, dan langganan dapat dipulihkan. Tindakan ini hanya akan menghentikan perpanjangan langganan berikutnya. Untuk langganan cicilan, pengguna masih harus menyelesaikan periode komitmen. Untuk mengetahui detail selengkapnya tentang perpanjangan dan pembayaran, lihat https://developer.android.com/google/play/billing/subscriptions#installments |
DEVELOPER_REQUESTED_STOP_PAYMENTS |
Pembatalan diminta oleh developer, dan langganan tidak dapat dipulihkan. Tindakan ini akan menghentikan pembayaran langganan berikutnya. Untuk langganan cicilan, pengguna tidak perlu membayar pembayaran berikutnya dan menyelesaikan periode komitmen. Untuk detail selengkapnya tentang perpanjangan dan pembayaran, lihat https://developer.android.com/google/play/billing/subscriptions#installments Ini adalah perilaku default jika tidak ada jenis pembatalan yang ditentukan. |
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-26 UTC.
[null,null,["Terakhir diperbarui pada 2025-07-26 UTC."],[[["\u003cp\u003eCancels a user's subscription purchase, but the subscription remains valid until its expiration time.\u003c/p\u003e\n"],["\u003cp\u003eRequires the \u003ccode\u003ehttps://www.googleapis.com/auth/androidpublisher\u003c/code\u003e OAuth scope for authorization.\u003c/p\u003e\n"],["\u003cp\u003eUses a \u003ccode\u003ePOST\u003c/code\u003e request to the specified URL with the package name, subscription ID, and purchase token as path parameters.\u003c/p\u003e\n"],["\u003cp\u003eThe request body should be empty, and a successful cancellation results in an empty response body.\u003c/p\u003e\n"]]],["This document outlines the process for canceling a user's subscription via a `POST` request to the specified URL. The request requires three path parameters: `packageName`, `subscriptionId`, and `token`. The request body optionally includes the `cancellationType`, which can be `USER_REQUESTED_STOP_RENEWALS` or `DEVELOPER_REQUESTED_STOP_PAYMENTS`; default behavior is `DEVELOPER_REQUESTED_STOP_PAYMENTS`. A successful request returns an empty response body and requires the `androidpublisher` OAuth scope. It details various cancellation types.\n"],null,["- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Request body](#body.request_body)\n - [JSON representation](#body.request_body.SCHEMA_REPRESENTATION)\n- [Response body](#body.response_body)\n- [Authorization scopes](#body.aspect)\n- [CancellationType](#CancellationType)\n- [Try it!](#try-it)\n\nCancels a user's subscription purchase. The subscription remains valid until its expiration time.\n\nHTTP request\n\n`POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:cancel`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\nPath parameters\n\n| Parameters ||\n|------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `packageName` | `string` The package name of the application for which this subscription was purchased (for example, 'com.some.thing'). |\n| `subscriptionId` | `string` Note: Since May 21, 2025, subscriptionId is not required, and not recommended for subscription with add-ons. The purchased subscription ID (for example, 'monthly001'). |\n| `token` | `string` The token provided to the user's device when the subscription was purchased. |\n\nRequest body\n\nThe request body contains data with the following structure:\n\n| JSON representation |\n|---------------------------------------------------------------------------------------------------------------------------|\n| ``` { \"cancellationType\": enum (/android-publisher/api-ref/rest/v3/purchases.subscriptions/cancel#CancellationType) } ``` |\n\n| Fields ||\n|--------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `cancellationType` | `enum (`[CancellationType](/android-publisher/api-ref/rest/v3/purchases.subscriptions/cancel#CancellationType)`)` Optional. The type of cancellation for the purchased subscription. Note that this field is only supported in the HTTP request. It is not available in client libraries. |\n\nResponse body\n\nIf successful, the response body is empty.\n\nSample\n\nThe following is a sample request: \n\n```json\ncurl -X POST \\\n -H \"Accept: application/json\" \\\n \"https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.example.app/purchases/subscriptions/monthly.premium.plan/tokens/EXAMPLE_TOKEN_STRING_12345:cancel\"\n```\n\nAuthorization scopes\n\nRequires the following OAuth scope:\n\n- `https://www.googleapis.com/auth/androidpublisher`\n\nCancellationType The type of cancellation requested by the developer.\n\n| Enums ||\n|-------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `CANCELLATION_TYPE_UNSPECIFIED` | Cancellation type unspecified. |\n| `USER_REQUESTED_STOP_RENEWALS` | Cancellation requested by the user, and the subscription can be restored. It only stops subscription's next renewal. For an installment subscription, users still need to finish the commitment period. For more details on renewals and payments, see \u003chttps://developer.android.com/google/play/billing/subscriptions#installments\u003e |\n| `DEVELOPER_REQUESTED_STOP_PAYMENTS` | Cancellation requested by the developer, and the subscription cannot be restored. It stops the subscription's next payment. For an installment subscription, users will not need to pay the next payment and finish the commitment period. For more details on renewals and payments, see \u003chttps://developer.android.com/google/play/billing/subscriptions#installments\u003e This is the default behavior when no cancellation type is specified. |"]]