Merchant API
Payment Intents

Submit payment receipt

Attach a receipt to a payment and submit it durably to its provider. JSON `{asset_id}` remains supported for previously uploaded assets. Multipart uploads accept a JPEG or PNG up to 5 MiB and require Idempotency-Key; retries are fingerprinted by the receipt digest.

POST
/payment_intents/{id}/receipt

Attach a receipt to a payment and submit it durably to its provider. JSON {asset_id} remains supported for previously uploaded assets. Multipart uploads accept a JPEG or PNG up to 5 MiB and require Idempotency-Key; retries are fingerprinted by the receipt digest.

AuthorizationBasic <token>

Merchant API key pair. Send as Authorization: Basic base64(publicKey:secretKey) — username is the public key (pk_live_… / pk_test_…), password is the secret key (sk_live_… / sk_test_…). The public key prefix determines the environment of every order created by the request — there is no body, query, or header override.

In: header

Path Parameters

id*string

Request Body

TypeScript Definitions

Use the request body type in TypeScript.

asset_id*string

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/payment_intents/string/receipt" \  -H "Content-Type: application/json" \  -d '{    "asset_id": "string"  }'
{  "amount": "string",  "checkout_mode": "hosted",  "country": "string",  "created_at": "string",  "currency": "string",  "environment": "live",  "failure_code": "string",  "failure_message": "string",  "id": "string",  "merchant_reference": "string",  "next_action": {    "expires_at": "string",    "type": "redirect_to_url",    "url": "http://example.com"  },  "object": "payment_intent",  "payment_method": "string",  "processing_reason": "asynchronous",  "receipt": {    "status": "required"  },  "status": "processing",  "updated_at": "string"}