The recorded purchase resource represents a background job of syncing in-app purchases made through external storefronts like Apple and Google with Chargebee. The
status
(in_process
, completed
, and failed
) attribute represents the current status of the background job.
You can record in-app subscription purchases made on the Apple App Store in Chargebee using the
transaction[id]
or using receipt
and product[id]
received after a successful purchase.
To record the purchase and retrieve subscription details, follow these steps:
Use the Record a Purchase API to record a subscription purchase made in in Apple App Store or Google Play Store.
Record an Apple App Store purchase using transaction id with the
app_id
,
customer[id]
and
transaction[id]
.
Record an Apple App Store purchase using receipt with the
app_id
,
customer[id]
,
receipt
and product[id]
.
Record a Google Play Store purchase with the
app_id
,
customer[id]
and
purchase_token
.
The API response will include a recorded_purchase
object containing the
status
of the purchase
recording job.
Once the purchase is successfully recorded, the
status
attribute of
the recorded_purchase
object updates from in_process
to completed
. At
this point, Chargebee creates an omnichannel_subscription
resource and triggers an
omnichannel_subscription_created
webhook event, which contains the
omnichannel_subscription
and omnichannel_transaction
objects.
In addition to using Webhooks (push-based), you can retrieve details for a recorded purchase by using the recorded purchase resource's ID, which is returned when you record the purchase.
{
"id": "__test__rp_ASDsdfs123ld1",
"app_id": "__test__aas_sdfwerzx5134",
"customer_id": "__test__XpbTXGTSRp3gEsD8",
"source": "apple_app_store",
"status": "completed",
"omnichannel_transaction_id": "__test__ot_LKedfs123ld1",
"linked_omnichannel_subscriptions": [
{
"omnichannel_subscription_id": "__test__os_AHsdfs123ld1"
}
],
"created_at": 1517487053,
"object": "recorded_purchase"
}
id
of the customer object that is associated with this purchase. If the customer_id
is not present in Chargebee when the record_a_purchase
API request is made, the API will return an error. Use create_a_customer
API to create a customer. app_id
follow these steps. failed
. It provides more details about the failure.The Record a Purchase API allows you to record in-app purchases made through channels such as the Apple App Store and Google Play Store in Chargebee. When you invoke this API, it initiates a purchase recording job and returns the recorded_purchase
resource in the response. As part of the job, the API verifies the provided source specific request payload like transaction_id for Apple App Store or purchase_token for Google Play Store with the source
such as apple_app_store
or google_play_store
respectively. If the verification is successful, the corresponding purchase is recorded in Chargebee. Upon completion, the recorded_purchase
resource will include the relevant omnichannel_transaction_id
and omnichannel_subscription_id
.
Since this operation is asynchronous, you need to check the status
attribute of the recorded_purchase
resource to track the job status: in_process
, completed
, or failed
.
Note: Upon successful completion of this asynchronous operation, Chargebee triggers the omnichannel_subscription_created
event.
If the recorded_purchase
status is failed
, review the error_detail
attribute and take corrective action to re-record the purchase.
You can use this API to record new and older purchases made on Apple App Store or Google Play Store by passing the transaction_id
or purchase_token
respectively received during the subscription purchase. You can record purchases for subscriptions that are in Active
or Expired
status.
app_id
follow these steps. The Retrieve a Recorded Purchase API retrieves a recorded_purchase
object using the recorded_purchase.id
returned in the response of the Record a Purchase API. You can use this API to check if the purchase was successfully recorded in Chargebee and to obtain the omnichannel_transaction_id
and omnichannel_subscription_id
associated with the successfully recorded purchase.