Use this endpoint to retrieve the status and result of a purchase synchronization or transfer process initiated by the /purchases or /purchases/transfers endpoint. This endpoint provides a concise response with the essential status information, including status
, accessGranted
, offerId
, and result
.
The status field indicates the current stage of the synchronization process:
- processing
: The synchronization is in progress.
- retrying:
The synchronization encountered an error and is being retried. This status may appear multiple times.
- finalized:
The synchronization process has completed.
The result
field provides more detailed information about the outcome of the synchronization and is only available when status
is finalized
. The accessGranted
field indicates whether the user is entitled to the offer. The offerId
field provides the ID of the offer. You can see some possible scenarios and the corresponding response fields in the polling section of the integration tutorial.
Please note that this endpoint can be authorized with a publisher (X-Publisher-Token) or JWT (Bearer) token. Depending on how you integrate with Cleeng (directly or through middleware), use either a JWT or X-Publisher-Token header authorization.
Please use JWT (Bearer) token to try out the endpoint in the API console in this documentation.
Response description
Response | Type | Description |
---|---|---|
status (required) | string | One of: processing , retrying , finalized The current status of the synchronization process. Possible values: - processing: The synchronization is in progress. The status will change to finalized once the process is complete and didn't face any unexpected errors alongside.- retrying: The synchronization encountered an error and is being retried. This status may take a while before turning into finalized . Be aware that the process may fail after several retries and till won't finalize another requests will be rejected for the same transactionId .- finalized: The synchronization process has completed. The final result of the synchronization will be available in the result field. Another requests for the same transactionId can be accepted now. |
accessGranted | boolean | The field is available only when the synchronization status is finalized . The value is true if the user is entitled to the offer, false otherwise. |
offerId | string | The offer id associated with the purchase. The offer id will be available only if user is entitled to this specific offer. |
correlationId | string | (correlationId) <= 256 characters Correlation ID provided in the initial request, which helps link the initial purchase registration or transfer request with the synchronization process. This ID is crucial for tracking the entire flow of a purchase or transfer operation, from the initial request to the final synchronization result. |
result | string | (synchronizationResult) The result is only available when the synchronization status is finalized . It is not possible to obtain it earlier in the process. The result of the purchase processing. Possible values:- RECEIVED_EXPIRED_PURCHASE: The purchase was already expired when received. This could be due to an old purchase being selected, an attempt to hack the system, or an application malfunction. - TRANSACTION_ID_NOT_FOUND: The transaction ID was not found in Apple's system. This could indicate an attempt to hack the system, a client app malfunction, or the purchase being cleared from the user's Apple account before it was registered. - ACCESS_EXPIRED: The purchase was successfully synchronized, but access to the offer has already expired. This could be due to a wrongly selected purchase or the user not extending access to the Apple offer. - OWNED_BY_ANOTHER_USER: The purchase is already owned by another user in the system. A transfer needs to be made to grant access to the requesting user. - SYNCHRONIZATION_UNPROCESSABLE: An unexpected system behavior prevented the synchronization process. This likely requires escalation to support. - RESOURCE_TEMPORARY_LOCKED_FOR_PROCESSING: The resource is temporarily locked due to a concurrent request. Retrying the request later should resolve the issue. - PRODUCT_TYPE_NOT_SUPPORTED: The product type is not supported by the system. Offers settings should be changed to make sure only supported products are available. Retrying the request doesn't make any positive effect before fixing offers configuration on Apple side and mappings in Cleeng's Dashboard. - PURCHASE_RESTORED: A purchase was found in the system that was not assigned to the end-user. Having data available from the request, the purchase was transferred from the system's unidentified user to the real user from the request. Real user have now granted access to the offer. - PURCHASE_OWNERSHIP_TRANSFERRED: The purchase was successfully transferred to another user. The new user now has access to the offer. The situation can occur only between real users. - PURCHASE_SYNCHRONIZED: The purchase was successfully synchronized. |
Errors
HTTP Status Code | Error Code | Message |
---|---|---|
400 | REQ0003 | Invalid path parameters |
400 | REQ0004 | Invalid headers |
404 | REQ0100 | Entity not found |
500 | SXXXX (X - number) | Internal Server Error |