{"openapi":"3.0.0","paths":{"/api/v1/checkout-sessions":{"post":{"description":"Creates a hosted checkout session and returns its checkout_url. Redirect the buyer there.","operationId":"PublicApiController_create","parameters":[{"name":"Idempotency-Key","required":false,"in":"header","description":"Unique key per order. Same key + same body within 24h returns the original session with `Idempotency-Replayed: true`; same key + different body → 409 idempotency_key_reused.","schema":{"type":"string","example":"4f1a-orden-4821"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCheckoutSessionDto"}}}},"responses":{"201":{"description":"Checkout session created (or replayed from a previous identical request).","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}},"Idempotency-Replayed":{"description":"Present with value \"true\" when this response replays a previous request with the same Idempotency-Key (no new session was created). Absent otherwise.","schema":{"type":"string","enum":["true"]}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutSessionResponse"}}}},"400":{"description":"Invalid request. Fix the field named in error.param (when present) before retrying.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"invalid_request":{"summary":"Body or query validation failed","value":{"error":{"type":"invalid_request","code":"invalid_request","message":"amount must be greater than 0","param":"amount","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}},"amount_below_minimum":{"summary":"amount is below the merchant minimum","value":{"error":{"type":"invalid_request","code":"amount_below_minimum","message":"amount must be at least 50 CLP","param":"amount","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}},"amount_above_maximum":{"summary":"amount is above the merchant maximum","value":{"error":{"type":"invalid_request","code":"amount_above_maximum","message":"amount must be at most 5000000 CLP","param":"amount","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}},"metadata_too_many_keys":{"summary":"metadata has more than 20 keys","value":{"error":{"type":"invalid_request","code":"metadata_too_many_keys","message":"metadata must not contain more than 20 keys","param":"metadata","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}},"metadata_invalid_value":{"summary":"A metadata value is not a string","value":{"error":{"type":"invalid_request","code":"metadata_invalid_value","message":"metadata \"order_id\" must be a string","param":"metadata","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}},"metadata_value_too_long":{"summary":"A metadata value exceeds 500 characters","value":{"error":{"type":"invalid_request","code":"metadata_value_too_long","message":"metadata \"notes\" must be at most 500 characters","param":"metadata","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}},"401":{"description":"Authentication failed. Send `Authorization: Bearer <sk_live_…|sk_test_…>` of an active merchant.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"invalid_api_key":{"summary":"Missing/invalid API key or inactive merchant","value":{"error":{"type":"authentication_error","code":"invalid_api_key","message":"Invalid or inactive API key.","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}},"403":{"description":"The merchant is not allowed to perform this operation.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"no_payment_methods":{"summary":"Merchant has no checkout-capable payment method enabled","value":{"error":{"type":"permission_error","code":"no_payment_methods","message":"This merchant has no checkout-capable payment methods enabled.","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}},"409":{"description":"Idempotency conflict.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"idempotency_key_reused":{"summary":"Same Idempotency-Key with a different body — do not retry","value":{"error":{"type":"idempotency_error","code":"idempotency_key_reused","message":"Idempotency-Key was already used with a different request body.","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}},"idempotency_key_in_progress":{"summary":"Same Idempotency-Key still being processed — retry shortly","value":{"error":{"type":"idempotency_error","code":"idempotency_key_in_progress","message":"A request with this Idempotency-Key is still in progress.","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}},"429":{"description":"Rate limit exceeded (default 120 requests/min per credential and endpoint). Back off for Retry-After seconds.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","example":60}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"rate_limited":{"summary":"Per-credential rate limit exceeded — honor Retry-After","value":{"error":{"type":"rate_limit_error","code":"rate_limited","message":"ThrottlerException: Too Many Requests","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}},"500":{"description":"Unexpected error. Nothing internal is leaked; retry with the same Idempotency-Key.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"internal_error":{"summary":"Unexpected failure on our side — safe to retry with the same Idempotency-Key","value":{"error":{"type":"api_error","code":"internal_error","message":"An unexpected error occurred.","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}}},"security":[{"apiKey":[]}],"summary":"Create a checkout session","tags":["Checkout Sessions"]},"get":{"description":"Returns a paginated list of this merchant's checkout sessions, most recent first.","operationId":"PublicApiController_list","parameters":[{"name":"page","required":false,"in":"query","description":"Page number (1-based).","schema":{"minimum":1,"default":1,"type":"integer"}},{"name":"limit","required":false,"in":"query","description":"Items per page.","schema":{"minimum":1,"maximum":100,"default":10,"type":"integer"}},{"name":"status","required":false,"in":"query","description":"Filter by the public checkout-session status.","schema":{"type":"string","enum":["pending","approved","failed","expired"]}},{"name":"external_reference","required":false,"in":"query","description":"Filter by your external reference.","schema":{"example":"order-4821","type":"string"}}],"responses":{"200":{"description":"Paginated list of checkout sessions.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCheckoutSessionsResponse"}}}},"400":{"description":"Invalid request. Fix the field named in error.param (when present) before retrying.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"invalid_request":{"summary":"Body or query validation failed","value":{"error":{"type":"invalid_request","code":"invalid_request","message":"amount must be greater than 0","param":"amount","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}},"401":{"description":"Authentication failed. Send `Authorization: Bearer <sk_live_…|sk_test_…>` of an active merchant.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"invalid_api_key":{"summary":"Missing/invalid API key or inactive merchant","value":{"error":{"type":"authentication_error","code":"invalid_api_key","message":"Invalid or inactive API key.","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}},"429":{"description":"Rate limit exceeded (default 120 requests/min per credential and endpoint). Back off for Retry-After seconds.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","example":60}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"rate_limited":{"summary":"Per-credential rate limit exceeded — honor Retry-After","value":{"error":{"type":"rate_limit_error","code":"rate_limited","message":"ThrottlerException: Too Many Requests","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}},"500":{"description":"Unexpected error. Nothing internal is leaked; retry with the same Idempotency-Key.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"internal_error":{"summary":"Unexpected failure on our side — safe to retry with the same Idempotency-Key","value":{"error":{"type":"api_error","code":"internal_error","message":"An unexpected error occurred.","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}}},"security":[{"apiKey":[]}],"summary":"List checkout sessions","tags":["Checkout Sessions"]}},"/api/v1/checkout-sessions/{id}/expire":{"post":{"description":"Expires a checkout session the buyer has not started paying yet. Sessions already in progress or finalized cannot be expired. Triggers the same `checkout_session.failed` webhook as an automatic expiration.","operationId":"PublicApiController_expire","parameters":[{"name":"id","required":true,"in":"path","description":"Checkout session id (`cs_…`).","schema":{"example":"cs_65f1a2b3c4d5e6f7a8b9c0d1","type":"string"}}],"responses":{"200":{"description":"Checkout session expired.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutSessionResponse"}}}},"400":{"description":"Invalid request. Fix the field named in error.param (when present) before retrying.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"session_not_expirable":{"summary":"The buyer already started paying or the session is final","value":{"error":{"type":"invalid_request","code":"session_not_expirable","message":"Only sessions the buyer has not started paying can be expired.","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}},"401":{"description":"Authentication failed. Send `Authorization: Bearer <sk_live_…|sk_test_…>` of an active merchant.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"invalid_api_key":{"summary":"Missing/invalid API key or inactive merchant","value":{"error":{"type":"authentication_error","code":"invalid_api_key","message":"Invalid or inactive API key.","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}},"404":{"description":"The resource does not exist or belongs to another merchant.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"resource_missing":{"summary":"Unknown id or endpoint, or the session belongs to another merchant","value":{"error":{"type":"not_found","code":"resource_missing","message":"No such checkout session.","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}},"429":{"description":"Rate limit exceeded (default 120 requests/min per credential and endpoint). Back off for Retry-After seconds.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","example":60}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"rate_limited":{"summary":"Per-credential rate limit exceeded — honor Retry-After","value":{"error":{"type":"rate_limit_error","code":"rate_limited","message":"ThrottlerException: Too Many Requests","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}},"500":{"description":"Unexpected error. Nothing internal is leaked; retry with the same Idempotency-Key.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"internal_error":{"summary":"Unexpected failure on our side — safe to retry with the same Idempotency-Key","value":{"error":{"type":"api_error","code":"internal_error","message":"An unexpected error occurred.","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}}},"security":[{"apiKey":[]}],"summary":"Expire a checkout session","tags":["Checkout Sessions"]}},"/api/v1/checkout-sessions/{id}":{"get":{"description":"Returns the current status of a checkout session. This is the source of truth.","operationId":"PublicApiController_retrieve","parameters":[{"name":"id","required":true,"in":"path","description":"Checkout session id (`cs_…`).","schema":{"example":"cs_65f1a2b3c4d5e6f7a8b9c0d1","type":"string"}}],"responses":{"200":{"description":"Checkout session.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutSessionResponse"}}}},"401":{"description":"Authentication failed. Send `Authorization: Bearer <sk_live_…|sk_test_…>` of an active merchant.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"invalid_api_key":{"summary":"Missing/invalid API key or inactive merchant","value":{"error":{"type":"authentication_error","code":"invalid_api_key","message":"Invalid or inactive API key.","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}},"404":{"description":"The resource does not exist or belongs to another merchant.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"resource_missing":{"summary":"Unknown id or endpoint, or the session belongs to another merchant","value":{"error":{"type":"not_found","code":"resource_missing","message":"No such checkout session.","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}},"429":{"description":"Rate limit exceeded (default 120 requests/min per credential and endpoint). Back off for Retry-After seconds.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","example":60}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"rate_limited":{"summary":"Per-credential rate limit exceeded — honor Retry-After","value":{"error":{"type":"rate_limit_error","code":"rate_limited","message":"ThrottlerException: Too Many Requests","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}},"500":{"description":"Unexpected error. Nothing internal is leaked; retry with the same Idempotency-Key.","headers":{"X-Request-Id":{"description":"Correlation id of this request. Also returned as error.request_id on failures; quote it when contacting support.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"},"examples":{"internal_error":{"summary":"Unexpected failure on our side — safe to retry with the same Idempotency-Key","value":{"error":{"type":"api_error","code":"internal_error","message":"An unexpected error occurred.","request_id":"a1b2c3d4-1234-4a1b-9abc-1234567890ab"}}}}}}}},"security":[{"apiKey":[]}],"summary":"Retrieve a checkout session","tags":["Checkout Sessions"]}}},"info":{"title":"TX Pay — Merchant API","description":"API pública para integrar pagos desde el sitio del comercio (Hosted Checkout).\nAutenticación: `Authorization: Bearer <sk_live_…|sk_test_…>`.\n\nEsta API es apta para agentes de IA (AI-agent friendly): contrato legible por máquina en\n`/api/v1/openapi.json`, resumen para LLMs en https://app.txncompany.com/llms.txt y guía completa en https://app.txncompany.com/llms-full.txt.\n\nThis API is AI-agent friendly: machine-readable contract at\n`/api/v1/openapi.json`, LLM summary at https://app.txncompany.com/llms.txt, full guide at https://app.txncompany.com/llms-full.txt.","version":"v1","contact":{}},"tags":[{"name":"Checkout Sessions","description":""}],"servers":[{"url":"https://api.txncompany.com","description":"Production (livemode, sk_live_ keys)"},{"url":"https://api-dev.txncompany.com","description":"Sandbox (sk_test_ keys)"}],"components":{"securitySchemes":{"apiKey":{"scheme":"bearer","bearerFormat":"opaque (sk_live_… / sk_test_…)","type":"http","description":"Secret API key (sk_live_…/sk_test_…)","in":"header"}},"schemas":{"CreateCheckoutSessionDto":{"type":"object","properties":{"amount":{"type":"integer","minimum":1,"example":19990,"description":"Total charged to the customer, in CLP whole pesos (integer). The merchant receives this minus fees."},"currency":{"type":"string","example":"CLP","enum":["CLP"]},"success_url":{"type":"string","format":"uri","example":"https://shop.cl/order/4821/success","description":"Absolute URL; https only in production."},"cancel_url":{"type":"string","format":"uri","example":"https://shop.cl/order/4821/cancel","description":"Absolute URL; https only in production."},"external_reference":{"type":"string","maxLength":255,"example":"order-4821","description":"Your order id; echoed back."},"customer_email":{"type":"string","format":"email","example":"ana@correo.cl"},"source_country":{"type":"string","enum":["cl","co","ar","mx","ve","us","es","eu","pe","pa","cn","gb","br","ec"],"example":"ar","description":"Vita only: buyer country (ISO 3166-1 alpha-2, case-insensitive, echoed lowercase). Currency is derived from it."},"metadata":{"type":"object","maxProperties":20,"additionalProperties":{"type":"string","maxLength":500},"description":"Arbitrary key/value data echoed back. Max 20 keys, string values up to 500 chars."}},"required":["amount","currency","success_url","cancel_url"]},"CheckoutSessionResponse":{"type":"object","properties":{"id":{"type":"string","example":"cs_65f1a2b3c4d5e6f7a8b9c0d1","pattern":"^cs_[0-9a-f]{24}$","description":"Unique identifier for the checkout session (`cs_` + 24 hex chars)."},"object":{"type":"string","example":"checkout_session","enum":["checkout_session"],"description":"String representing the object type."},"status":{"type":"string","example":"pending","enum":["pending","approved","failed","expired"],"description":"Current status. `pending` covers created and in-progress; `failed` covers rejected, voided and refunded (see failure_reason)."},"amount":{"type":"integer","example":19990,"description":"Total charged to the customer, in CLP whole pesos."},"currency":{"type":"string","example":"CLP","description":"Three-letter ISO currency code."},"external_reference":{"type":"string","example":"order-4821","nullable":true,"description":"Your order id, echoed back. Null if not provided at creation."},"checkout_url":{"type":"string","example":"https://api.txncompany.com/checkout/65f1a2b3c4d5e6f7a8b9c0d1","format":"uri","description":"Hosted checkout page on the API host (`<api base>/checkout/<24-hex id>`). Redirect the buyer here."},"expires_at":{"type":"string","example":"2026-07-03T18:30:00.000Z","format":"date-time","description":"ISO 8601 timestamp when the session expires (15 minutes after creation by default; configurable per merchant). Always present for sessions created through this API."},"created_at":{"type":"string","example":"2026-07-03T17:30:00.000Z","format":"date-time","description":"ISO 8601 timestamp when the session was created. Always present for sessions created through this API."},"livemode":{"type":"boolean","example":false,"description":"True when created on the production host (sk_live_ key); false on the sandbox host (sk_test_ key)."},"payment_method":{"type":"string","example":null,"enum":["webpay","vita_wallet"],"nullable":true,"description":"Payment method the buyer selected on the checkout page. Null until then."},"customer_email":{"type":"string","example":"ana@correo.cl","nullable":true,"description":"Buyer email, if provided at creation."},"source_country":{"type":"string","example":null,"nullable":true,"description":"Buyer country you sent at creation (ISO 3166-1 alpha-2, always echoed lowercase, e.g. `ar`). Null when you did not send one — the API never defaults it."},"failure_reason":{"type":"string","example":null,"enum":["rejected","voided","refunded","expired"],"nullable":true,"description":"Why the session did not complete: `rejected`, `voided` or `refunded` when status is `failed`; `expired` when status is `expired`. Null otherwise."},"net_amount":{"type":"integer","example":19495,"nullable":true,"description":"Net amount the merchant receives, in CLP. Only set once the session is approved."},"fee_amount":{"type":"integer","example":495,"nullable":true,"description":"Fee charged by TX Pay, in CLP. Only set once the session is approved."},"metadata":{"type":"object","example":{"order_id":"4821"},"description":"Arbitrary key/value data echoed back, if provided at creation."}},"required":["id","object","status","amount","currency","external_reference","checkout_url","expires_at","created_at","livemode","payment_method","customer_email","source_country","failure_reason","net_amount","fee_amount"]},"ApiErrorDetail":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication_error","permission_error","not_found","idempotency_error","rate_limit_error","api_error"],"example":"invalid_request","description":"Broad error category. Stable; branch on it for generic handling."},"code":{"type":"string","example":"amount_below_minimum","description":"Machine-readable code for the specific failure. Stable; branch on it for precise handling."},"message":{"type":"string","example":"amount must be at least 50 CLP","description":"Human-readable explanation. Not stable; do not parse it."},"param":{"type":"string","example":"amount","description":"Request field the error refers to, when it maps to one."},"request_id":{"type":"string","example":"a1b2c3d4-1234-4a1b-9abc-1234567890ab","description":"Same value as the X-Request-Id response header. Quote it when contacting support. A UUID unless you sent X-Correlation-ID, in which case that value is echoed."}},"required":["type","code","message"]},"ApiErrorResponse":{"type":"object","properties":{"error":{"$ref":"#/components/schemas/ApiErrorDetail"}},"required":["error"]},"ListCheckoutSessionsResponse":{"type":"object","properties":{"object":{"type":"string","example":"list","enum":["list"],"description":"String representing the object type."},"data":{"description":"Array of checkout sessions, most recent first.","type":"array","items":{"$ref":"#/components/schemas/CheckoutSessionResponse"}},"page":{"type":"integer","example":1,"description":"Current page number."},"limit":{"type":"integer","example":10,"description":"Number of items per page."},"has_more":{"type":"boolean","example":false,"description":"True if there are more pages beyond this one."}},"required":["object","data","page","limit","has_more"]}}},"externalDocs":{"description":"Developer portal — integration guide","url":"https://app.txncompany.com/partners/developer-docs"}}