Finish Transaction
Notifies the App Store server that your system has finished processing the customer’s transaction.
URL
POST https://api.storekit.apple.com/inApps/v1/transactions/{transactionId}/finishSandbox URL
POST https://api.storekit-sandbox.apple.com/inApps/v1/transactions/{transactionId}/finishPath Parameters
| Name | Type | Description |
|---|---|---|
transactionId Required | transactionId | The transaction identifier of the transaction to mark as finished. |
Response Codes
| Status | Reason | Type | Description |
|---|---|---|---|
| 200 | OK | Request succeeded. | |
| 400 | Bad Request Content-Type: application/json | (InvalidTransactionIdError | AppTransactionIdNotSupportedError) | The request is invalid and can’t be accepted. |
| 401 | Unauthorized | The JSON Web Token (JWT) in the authorization header is invalid. For more information, see Generating JSON Web Tokens for API requests. | |
| 404 | Not Found Content-Type: application/json | TransactionIdNotFoundError | The transaction identifier wasn’t found. |
| 429 | Content-Type: application/json | RateLimitExceededError | The request exceeded the rate limit. For more information, see Identifying rate limits. |
| 500 | Internal Server Error Content-Type: application/json | GeneralInternalError | Server error. Try again later. |
Mentioned in
Discussion
If you manage entitlement logic on your server, your server can call Finish Transaction after it finishes providing the customer with the new content. If you call finish() in your app, there’s no need to call the Finish Transaction endpoint from your server.