Contents

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}/finish

Sandbox URL

POST https://api.storekit-sandbox.apple.com/inApps/v1/transactions/{transactionId}/finish

Path Parameters

NameTypeDescription
transactionId RequiredtransactionId

The transaction identifier of the transaction to mark as finished.

Response Codes

StatusReasonTypeDescription
200OK

Request succeeded.

400Bad Request
Content-Type: application/json
(InvalidTransactionIdError | AppTransactionIdNotSupportedError)

The request is invalid and can’t be accepted.

401Unauthorized

The JSON Web Token (JWT) in the authorization header is invalid. For more information, see Generating JSON Web Tokens for API requests.

404Not 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.

500Internal 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.