Checkout Page · Schema
Payment
CompanyPaymentsCheckoutStripeNo-CodeE-CommerceSubscriptionEvent Ticketing
Properties
| Name | Type | Description |
|---|---|---|
| abandonedCartEmailSentAt | stringnull | Timestamp of the most recent abandoned-cart recovery email, if applicable. |
| abandonedCartEmailStatus | stringnull | The status of the abandonment email sent for this charge. `pending`: No email has been sent. Stays as pending if isAbandoned is false. `first_sent`: The first abandonment email has been sent. `second_ |
| abandonmentStatus | stringnull | 'abandoned': checkout was started but not completed and not recovered yet. 'recovered': was abandoned but the customer returned and paid. Absent when the charge is not an abandoned cart. |
| amount | number | Total amount billed for the record, in the smallest currency unit. |
| amountDue | number | Outstanding amount still due, in the smallest currency unit. |
| amountExcludingTax | numbernull | The total amount excluding tax. |
| amountPaid | number | Amount collected toward `amount`, in the smallest currency unit. Refunded records retain their original `amountPaid` value; use `amountRefunded` to determine the refunded portion. |
| amountRefunded | numbernull | Total amount refunded, in the smallest currency unit. Present on all records and `0` when no refund has been issued. NOTE: For records created before 2026-01-22T06:43:28.000Z, some refunds may have in |
| amountUsd | numbernull | The total amount in USD. Calculated using the exchange rate at the time of the transaction. |
| archivedAt | string | When the merchant archived this, hiding it from their default bookings list in the dashboard. Archiving changes nothing else: the payment, tickets and `orderStatus` stay as they were. Absent unless ar |
| archivedBy | string | The userId of the team member who archived this. Absent unless archived. |
| billing | objectnull | Billing details, including name, email, phone, and address. |
| canceledAt | string | The date this was canceled. |
| canceledBy | string | The userId that canceled this. If this is a booking, tickets were canceled in addition. |
| canceledByApiKey | stringnull | ID of the API key that canceled this, when it was canceled through the seller API. The key may have been deleted since; `canceledByApiKeyName` keeps its name. |
| canceledByApiKeyName | stringnull | Name of the API key that canceled this, as it was at the time. Kept when the key is deleted later. |
| canceledReason | string | The reason for the cancellation |
| clientIp | stringnull | Customer IP address. |
| complimentaryDiscountAmount | numbernull | On a complimentary booking, the discount that brought the total to 0, in the smallest currency unit. Equal to the pre-discount subtotal of the ticket lines. Absent otherwise. |
| coupon | objectnull | Coupon details when a coupon was applied. `amountOff` is the fixed discount configured on the coupon, `percentOff` is the configured percentage discount, and `discount` is the total discount actually |
| createdAt | string | ISO 8601 timestamp when this record was created. |
| currency | stringnull | Three-letter currency code. |
| customerEmail | stringnull | Customer's email address (e.g. `andrew@example.com`). Present on all records with a linked customer entity. Null on incomplete checkouts. Searchable via `search` |
| customerId | stringnull | Customer ID. |
| customerName | stringnull | Customer full name. Searchable via `search`. |
| discount | objectnull | |
| discountedFromPrice | numbernull | Original pre-discount price in the smallest currency unit. Marketing tool only. |
| dynamicPrice | numbernull | The dynamic price controlled by query params at checkout that overrides the default price configured on the page. |
| fees | arraynull | Array of fee objects. |
| fields | arraynull | Submitted form field responses. |
| id | string | Unique record ID. Use this for pagination cursors. |
| invoiceId | stringnull | Generated invoice ID when an invoice exists. This confirms that an invoice was created, but not that the invoice document itself is available here. |
| isAbandoned | booleannull | Whether the checkout flow was abandoned. |
| isComplimentary | booleannull | Whether this is a complimentary booking: issued by the merchant at no charge, recorded as `paid` with `amount`, `amountPaid` and `amountDue` of 0 while the ticket lines keep their face value. Always f |
| lastRefundAt | stringnull | Timestamp of the most recent refund action. |
| lastRefundReason | stringnull | Reason code for the most recent refund action. |
| lastRefundReasonNote | stringnull | Free-text note for the most recent refund action. Refund reason fields reflect only the most recent refund action, not the full refund history. |
| licenseKeyId | stringnull | Associated license key ID, if generate license keys is enabled. |
| livemode | booleannull | Whether this is a real transaction. |
| locale | stringnull | Customer's browser locale. |
| orderId | stringnull | Human-readable order number. |
| orderStatus | stringnull | Order lifecycle status. Valid values are active, canceled. |
| pageId | stringnull | Checkout page ID. |
| pageSlug | stringnull | Page URL slug. This is a URL fragment, not a human-friendly title. |
| payWhatYouWantPrice | numbernull | Pay-what-you-want amount selected by the customer, in the smallest currency unit. |
| paymentError | stringnull | Last payment-specific error message. This field is not guaranteed to be set and persists after a later successful payment, so check `status` before interpreting `paymentError`. |
| paymentMethod | objectnull | Payment method details, such as `gateway`, `method`, `brand`, `last4`, `country`, and `funding`. This may be absent when a payment method was never initiated. |
| paymentOption | objectnull | Payment option details. `type` is `full` for standard payments and `manual` for invoice or offline flows; when `type` is `manual`, a `status: unpaid` record is expected and does not indicate a failure |
| priceId | stringnull | Id of the price the customer selected at checkout. |
| priceSnapshot | object | |
| productId | stringnull | Product ID for the purchased item. |
| productPrice | numbernull | Base product price in the smallest currency unit. |
| productTitle | stringnull | Human-readable product name. |
| quantity | numbernull | Quantity purchased for this payment record. |
| queryParameters | objectnull | URL query parameters captured from the page link. |
| recoveredAt | stringnull | The date at which the customer recovered their checkout through cart abandonment. |
| screenWidth | numbernull | Customer's screen width in pixels. |
| sellerId | stringnull | Seller ID. |
| sessionId | stringnull | Unique session ID. |
| setupFee | numbernull | One-time setup fee in the smallest currency unit. |
| shipping | objectnull | Shipping details, including name, phone, and address. Often empty. |
| sku | stringnull | SKU for the purchased product or variant. |
| status | string | Payment status. `paid`: payment collected in full. `partially_paid`: some amount collected, but a balance remains. `refunded`: full refund issued. `amountPaid` still shows the original amount, not the |
| stripeChargeId | stringnull | |
| stripePaymentIntentId | stringnull | |
| stripeTaxCalculationId | stringnull | |
| stripeTaxTransactionId | stringnull | |
| taxAmount | numbernull | The total tax amount. |
| taxBreakdown | array | |
| taxRates | arraynull | Fixed tax rates applied to this record. Populated when `taxSource` is `fixed_tax_rate`. |
| taxSource | stringnull | How tax was applied. `fixed_tax_rate` when tax rates were applied directly to the record. `stripe_tax` when tax was calculated by Stripe based on the transaction details and Stripe Tax settings. |
| transactionIds | arraynull | |
| updatedAt | string | ISO 8601 timestamp when this record was last updated. |
| upsell | booleannull | Whether this record is an upsell. Upsell records are included in results by default. |
| upsellChargeId | stringnull | For an upsell record, the ID of the payment made on the page before the upsell. |
| upsellPageId | stringnull | For an upsell record, the ID of the page the buyer paid on before accepting the upsell (the start of the funnel). |
| upsellSubscriptionId | stringnull | For an upsell record, the ID of the subscription created on the page before the upsell. |
| userAgent | stringnull | Customer's browser user agent string. |
| variants | arraynull | Selected product variants and chosen options. |
| visitId | stringnull | Unique visit ID to track a customer across multiple sessions. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/checkoutpage-com/json-schema/checkoutpage-com-payment-schema.json",
"title": "Payment",
"x-generated": "2026-11-03",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/checkoutpage-com-openapi.yml#/components/schemas/Payment",
"properties": {
"abandonedCartEmailSentAt": {
"description": "Timestamp of the most recent abandoned-cart recovery email, if applicable.",
"format": "date-time",
"type": [
"string",
"null"
]
},
"abandonedCartEmailStatus": {
"description": "The status of the abandonment email sent for this charge.\n `pending`: No email has been sent. Stays as pending if isAbandoned is false.\n `first_sent`: The first abandonment email has been sent.\n `second_sent`: The second abandonment email has been sent.\n `third_sent`: The third abandonment email has been sent.\n `skipped`: The abandonment email processed was skipped.",
"enum": [
"pending",
"first_sent",
"second_sent",
"third_sent",
"skipped",
null
],
"type": [
"string",
"null"
]
},
"abandonmentStatus": {
"description": "'abandoned': checkout was started but not completed and not recovered yet. 'recovered': was abandoned but the customer returned and paid. Absent when the charge is not an abandoned cart.",
"enum": [
"abandoned",
"recovered",
null
],
"type": [
"string",
"null"
]
},
"amount": {
"description": "Total amount billed for the record, in the smallest currency unit.",
"type": "number"
},
"amountDue": {
"description": "Outstanding amount still due, in the smallest currency unit.",
"type": "number"
},
"amountExcludingTax": {
"description": "The total amount excluding tax.",
"type": [
"number",
"null"
]
},
"amountPaid": {
"description": "Amount collected toward `amount`, in the smallest currency unit. Refunded records retain their original `amountPaid` value; use `amountRefunded` to determine the refunded portion.",
"type": "number"
},
"amountRefunded": {
"description": "Total amount refunded, in the smallest currency unit. Present on all records and `0` when no refund has been issued. NOTE: For records created before 2026-01-22T06:43:28.000Z, some refunds may have incomplete metadata and show `amountRefunded: 0`.",
"type": [
"number",
"null"
]
},
"amountUsd": {
"description": "The total amount in USD. Calculated using the exchange rate at the time of the transaction.",
"type": [
"number",
"null"
]
},
"archivedAt": {
"description": "When the merchant archived this, hiding it from their default bookings list in the dashboard. Archiving changes nothing else: the payment, tickets and `orderStatus` stay as they were. Absent unless archived.",
"type": "string"
},
"archivedBy": {
"description": "The userId of the team member who archived this. Absent unless archived.",
"type": "string"
},
"billing": {
"description": "Billing details, including name, email, phone, and address.",
"properties": {
"address": {
"description": "Billing address.",
"properties": {
"city": {
"type": "string"
},
"country": {
"type": "string"
},
"line1": {
"type": "string"
},
"line2": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"state": {
"type": "string"
}
},
"type": [
"object",
"null"
]
},
"billingEmail": {
"type": [
"string",
"null"
]
},
"companyName": {
"type": [
"string",
"null"
]
},
"email": {
"description": "Email from the billing details.",
"type": [
"string",
"null"
]
},
"name": {
"description": "Name from the billing details.",
"type": [
"string",
"null"
]
},
"phone": {
"description": "Phone number from the billing details.",
"type": [
"string",
"null"
]
}
},
"type": [
"object",
"null"
]
},
"canceledAt": {
"description": "The date this was canceled.",
"type": "string"
},
"canceledBy": {
"description": "The userId that canceled this. If this is a booking, tickets were canceled in addition.",
"type": "string"
},
"canceledByApiKey": {
"description": "ID of the API key that canceled this, when it was canceled through the seller API. The key may have been deleted since; `canceledByApiKeyName` keeps its name.",
"type": [
"string",
"null"
]
},
"canceledByApiKeyName": {
"description": "Name of the API key that canceled this, as it was at the time. Kept when the key is deleted later.",
"type": [
"string",
"null"
]
},
"canceledReason": {
"description": "The reason for the cancellation",
"type": "string"
},
"clientIp": {
"description": "Customer IP address.",
"type": [
"string",
"null"
]
},
"complimentaryDiscountAmount": {
"description": "On a complimentary booking, the discount that brought the total to 0, in the smallest currency unit. Equal to the pre-discount subtotal of the ticket lines. Absent otherwise.",
"type": [
"number",
"null"
]
},
"coupon": {
"description": "Coupon details when a coupon was applied. `amountOff` is the fixed discount configured on the coupon, `percentOff` is the configured percentage discount, and `discount` is the total discount actually applied to this record.",
"properties": {
"amountOff": {
"description": "Fixed amount off configured on the coupon. Cannot be combined with `percentOff`.",
"type": [
"number",
"null"
]
},
"code": {
"description": "Coupon code.",
"type": [
"string",
"null"
]
},
"discount": {
"description": "Total discount actually applied to this record.",
"type": [
"number",
"null"
]
},
"id": {
"type": [
"string",
"null"
]
},
"label": {
"description": "Coupon label.",
"type": [
"string",
"null"
]
},
"percentOff": {
"description": "Percentage off configured on the coupon. Cannot be combined with `amountOff`.",
"type": [
"number",
"null"
]
}
},
"type": [
"object",
"null"
]
},
"createdAt": {
"description": "ISO 8601 timestamp when this record was created.",
"format": "date-time",
"type": "string"
},
"currency": {
"description": "Three-letter currency code.",
"type": [
"string",
"null"
]
},
"customerEmail": {
"description": "Customer's email address (e.g. `andrew@example.com`). Present on all records with a linked customer entity. Null on incomplete checkouts. Searchable via `search`",
"type": [
"string",
"null"
]
},
"customerId": {
"description": "Customer ID.",
"type": [
"string",
"null"
]
},
"customerName": {
"description": "Customer full name. Searchable via `search`.",
"type": [
"string",
"null"
]
},
"discount": {
"properties": {
"amount": {
"description": "Total discount amount.",
"type": [
"number",
"null"
]
},
"amountOff": {
"description": "Fixed amount off the original price. Cannot be combined with `percentOff`.",
"type": [
"number",
"null"
]
},
"maxQuantity": {
"description": "Maximum quantity allowed for the discount.",
"type": [
"number",
"null"
]
},
"minQuantity": {
"description": "Minimum quantity required to be eligible for the discount.",
"type": [
"number",
"null"
]
},
"percentOff": {
"description": "Percentage off the original price. Cannot be combined with `amountOff`.",
"type": [
"number",
"null"
]
}
},
"type": [
"object",
"null"
]
},
"discountedFromPrice": {
"description": "Original pre-discount price in the smallest currency unit. Marketing tool only.",
"type": [
"number",
"null"
]
},
"dynamicPrice": {
"description": "The dynamic price controlled by query params at checkout that overrides the default price configured on the page.",
"type": [
"number",
"null"
]
},
"fees": {
"description": "Array of fee objects.",
"items": {
"properties": {
"amount": {
"description": "Fee amount in the smallest currency unit. For a fee with both a percentage and a fixed amount, the sum of `percentageAmount` and `fixedAmount`.",
"type": [
"number",
"null"
]
},
"fixedAmount": {
"description": "The fixed part of `amount`, in the smallest currency unit, already multiplied by quantity or tickets when the fee multiplies. Only set on a fee with both a percentage and a fixed amount.",
"type": [
"number",
"null"
]
},
"name": {
"description": "Fee name.",
"type": [
"string",
"null"
]
},
"percentage": {
"description": "Fee percentage when applicable.",
"type": [
"number",
"null"
]
},
"percentageAmount": {
"description": "The part of `amount` from the percentage, in the smallest currency unit. Only set on a fee with both a percentage and a fixed amount. Can be 0, e.g. when a 100% coupon leaves nothing for the percentage to apply to.",
"type": [
"number",
"null"
]
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"fields": {
"description": "Submitted form field responses.",
"items": {
"properties": {
"element": {
"enum": [
"checkbox",
"quantity",
"multiple-choice",
"select",
"multi-select",
"po-number",
"text",
"textarea",
"number",
"date-time",
"date",
"time",
"address",
"email",
"tax-id",
"phone",
"country",
null
],
"type": [
"string",
"null"
]
},
"fieldId": {
"description": "Unique field ID.",
"type": [
"string",
"null"
]
},
"label": {
"description": "Label shown for the field.",
"type": [
"string",
"null"
]
},
"meta": {
"additionalProperties": {},
"type": [
"object",
"null"
]
},
"reference": {
"description": "Reference key for the field.",
"type": [
"string",
"null"
]
},
"type": {
"enum": [
"",
"company-name",
"po-number",
"name",
"first-name",
"last-name",
"email",
"billing-email",
"phone",
"address-line1",
"address-city",
"address-country",
"address-line2",
"address-postal_code",
"address-state",
"shipping-name",
"shipping-phone",
"shipping-address-line1",
"shipping-address-city",
"shipping-address-country",
"shipping-address-line2",
"shipping-address-postal_code",
"shipping-address-state",
"tax-id",
null
],
"type": [
"string",
"null"
]
},
"value": {
"description": "Submitted value for the field.",
"type": [
"string",
"null"
]
},
"values": {
"description": "Chosen option values of a multi-select field (an option without a value is named by its label), in the order the options are defined. `value` holds the same values joined with \", \". The matching labels, as they were when the answer was written, are in `meta.selectedOptionLabels` and joined in `meta.selectedOptionLabel`. Absent on every other field type.",
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"id": {
"description": "Unique record ID. Use this for pagination cursors.",
"type": "string"
},
"invoiceId": {
"description": "Generated invoice ID when an invoice exists. This confirms that an invoice was created, but not that the invoice document itself is available here.",
"type": [
"string",
"null"
]
},
"isAbandoned": {
"description": "Whether the checkout flow was abandoned.",
"type": [
"boolean",
"null"
]
},
"isComplimentary": {
"description": "Whether this is a complimentary booking: issued by the merchant at no charge, recorded as `paid` with `amount`, `amountPaid` and `amountDue` of 0 while the ticket lines keep their face value. Always false on payments.",
"type": [
"boolean",
"null"
]
},
"lastRefundAt": {
"description": "Timestamp of the most recent refund action.",
"format": "date-time",
"type": [
"string",
"null"
]
},
"lastRefundReason": {
"description": "Reason code for the most recent refund action.",
"type": [
"string",
"null"
]
},
"lastRefundReasonNote": {
"description": "Free-text note for the most recent refund action. Refund reason fields reflect only the most recent refund action, not the full refund history.",
"type": [
"string",
"null"
]
},
"licenseKeyId": {
"description": "Associated license key ID, if generate license keys is enabled.",
"type": [
"string",
"null"
]
},
"livemode": {
"description": "Whether this is a real transaction.",
"type": [
"boolean",
"null"
]
},
"locale": {
"description": "Customer's browser locale.",
"type": [
"string",
"null"
]
},
"orderId": {
"description": "Human-readable order number.",
"type": [
"string",
"null"
]
},
"orderStatus": {
"description": "Order lifecycle status. Valid values are active, canceled.",
"enum": [
"active",
"canceled",
null
],
"type": [
"string",
"null"
]
},
"pageId": {
"description": "Checkout page ID.",
"type": [
"string",
"null"
]
},
"pageSlug": {
"description": "Page URL slug. This is a URL fragment, not a human-friendly title.",
"type": [
"string",
"null"
]
},
"payWhatYouWantPrice": {
"description": "Pay-what-you-want amount selected by the customer, in the smallest currency unit.",
"type": [
"number",
"null"
]
},
"paymentError": {
"description": "Last payment-specific error message. This field is not guaranteed to be set and persists after a later successful payment, so check `status` before interpreting `paymentError`.",
"type": [
"string",
"null"
]
},
"paymentMethod": {
"description": "Payment method details, such as `gateway`, `method`, `brand`, `last4`, `country`, and `funding`. This may be absent when a payment method was never initiated.",
"properties": {
"brand": {
"description": "Payment method brand, such as visa or mastercard.",
"type": "string"
},
"country": {
"description": "Country associated with the payment method when available.",
"type": "string"
},
"expMonth": {
"description": "Card expiration month.",
"type": "number"
},
"expYear": {
"description": "Card expiration year.",
"type": "number"
},
"exp_month": {
"deprecated": true,
"description": "Card expiration month.",
"type": "number"
},
"exp_year": {
"deprecated": true,
"description": "Card expiration year.",
"type": "number"
},
"funding": {
"description": "Funding type for the payment method, such as debit or credit.",
"type": "string"
},
"gateway": {
"enum": [
"stripe",
"paypal",
"manual"
],
"type": "string"
},
"last4": {
"description": "Last four digits of the payment method when available.",
"type": "string"
},
"method": {
"description": "Payment method, such as card.",
"type": "string"
},
"mode": {
"enum": [
"default",
"express"
],
"type": "string"
},
"wallet": {
"description": "Wallet used for the payment method when applicable.",
"type": "string"
}
},
"type": [
"object",
"null"
]
},
"paymentOption": {
"description": "Payment option details. `type` is `full` for standard payments and `manual` for invoice or offline flows; when `type` is `manual`, a `status: unpaid` record is expected and does not indicate a failure.",
"properties": {
"description": {
"type": [
"string",
"null"
]
},
"instructions": {
"type": [
"string",
"null"
]
},
"manualType": {
"enum": [
"invoice",
"cash_on_delivery",
null
],
"type": [
"string",
"null"
]
},
"name": {
"type": [
"string",
"null"
]
},
"partialAmount": {
"type": [
"number",
"null"
]
},
"type": {
"enum": [
"manual",
"partial",
"full",
null
],
"type": [
"string",
"null"
]
}
},
"type": [
"object",
"null"
]
},
"priceId": {
"description": "Id of the price the customer selected at checkout.",
"type": [
"string",
"null"
]
},
"priceSnapshot": {
"$ref": "#/$defs/PriceSnapshot"
},
"productId": {
"description": "Product ID for the purchased item.",
"type": [
"string",
"null"
]
},
"productPrice": {
"description": "Base product price in the smallest currency unit.",
"type": [
"number",
"null"
]
},
"productTitle": {
"description": "Human-readable product name.",
"type": [
"string",
"null"
]
},
"quantity": {
"description": "Quantity purchased for this payment record.",
"type": [
"number",
"null"
]
},
"queryParameters": {
"additionalProperties": {
"type": "string"
},
"description": "URL query parameters captured from the page link.",
"type": [
"object",
"null"
]
},
"recoveredAt": {
"description": "The date at which the customer recovered their checkout through cart abandonment.",
"format": "date-time",
"type": [
"string",
"null"
]
},
"screenWidth": {
"description": "Customer's screen width in pixels.",
"type": [
"number",
"null"
]
},
"sellerId": {
"description": "Seller ID.",
"type": [
"string",
"null"
]
},
"sessionId": {
"description": "Unique session ID.",
"type": [
"string",
"null"
]
},
"setupFee": {
"description": "One-time setup fee in the smallest currency unit.",
"type": [
"number",
"null"
]
},
"shipping": {
"description": "Shipping details, including name, phone, and address. Often empty.",
"properties": {
"address": {
"description": "Shipping address.",
"properties": {
"city": {
"type": "string"
},
"country": {
"type": "string"
},
"line1": {
"type": "string"
},
"line2": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"state": {
"type": "string"
}
},
"type": [
"object",
"null"
]
},
"name": {
"description": "Name from the shipping details.",
"type": [
"string",
"null"
]
},
"phone": {
"description": "Phone number from the shipping details.",
"type": [
"string",
"null"
]
}
},
"type": [
"object",
"null"
]
},
"sku": {
"description": "SKU for the purchased product or variant.",
"type": [
"string",
"null"
]
},
"status": {
"description": "Payment status.\n `paid`: payment collected in full.\n `partially_paid`: some amount collected, but a balance remains.\n `refunded`: full refund issued. `amountPaid` still shows the original amount, not the net amount after refund. Use `amountRefunded` for the refund amount and `lastRefundAt` for the refund date.\n `partial_refund`: partial refund issued. Use `amountRefunded` for the refund amount and `amountPaid - amountRefunded` for the net amount retained. `lastRefundAt`, `lastRefundReason`, and `lastRefundReasonNote` describe the most recent refund action.\n `draft`: checkout in progress and not yet submitted.\n `draft_expired`: checkout started but expired before completion.\n `created`: payment record created, but no action taken yet.\n `pending`: payment submitted and awaiting processing.\n `unpaid`: manual or invoice payment created, but not yet paid. This is expected for invoice-based checkouts and is not a failure state.\n `failed`: payment attempt was rejected. Check `paymentError` for the most recent error message when present.\n `canceled`: payment was canceled.",
"enum": [
"created",
"pending",
"unpaid",
"partially_paid",
"paid",
"canceled",
"failed",
"partial_refund",
"refunded",
"draft",
"draft_expired"
],
"type": "string"
},
"stripeChargeId": {
"type": [
"string",
"null"
]
},
"stripePaymentIntentId": {
"type": [
"string",
"null"
]
},
"stripeTaxCalculationId": {
"type": [
"string",
"null"
]
},
"stripeTaxTransactionId": {
"type": [
"string",
"null"
]
},
"taxAmount": {
"description": "The total tax amount.",
"type": [
"number",
"null"
]
},
"taxBreakdown": {
"items": {
"properties": {
"taxAmount": {
"type": [
"number",
"null"
]
},
"taxRateDetails": {
"properties": {
"country": {
"type": [
"string",
"null"
]
},
"percentageDecimal": {
"type": [
"number",
"null"
]
},
"state": {
"type": [
"string",
"null"
]
},
"taxType": {
"type": [
"string",
"null"
]
}
},
"type": [
"object",
"null"
]
},
"taxType": {
"type": [
"string",
"null"
]
},
"taxabilityReason": {
"type": [
"string",
"null"
]
},
"taxableAmount": {
"type": [
"number",
"null"
]
}
},
"type": [
"object",
"null"
]
},
"type": "array"
},
"taxRates": {
"description": "Fixed tax rates applied to this record. Populated when `taxSource` is `fixed_tax_rate`.",
"items": {
"$ref": "#/$defs/HistoricalTaxRateSnapshot"
},
"type": [
"array",
"null"
]
},
"taxSource": {
"description": "How tax was applied. `fixed_tax_rate` when tax rates were applied directly to the record. `stripe_tax` when tax was calculated by Stripe based on the transaction details and Stripe Tax settings.",
"enum": [
"fixed_tax_rate",
"stripe_tax",
null
],
"type": [
"string",
"null"
]
},
"transactionIds": {
"items": {
"type": "string"
},
"type": [
"array",
"null"
]
},
"updatedAt": {
"description": "ISO 8601 timestamp when this record was last updated.",
"format": "date-time",
"type": "string"
},
"upsell": {
"description": "Whether this record is an upsell. Upsell records are included in results by default.",
"type": [
"boolean",
"null"
]
},
"upsellChargeId": {
"description": "For an upsell record, the ID of the payment made on the page before the upsell.",
"type": [
"string",
"null"
]
},
"upsellPageId": {
"description": "For an upsell record, the ID of the page the buyer paid on before accepting the upsell (the start of the funnel).",
"type": [
"string",
"null"
]
},
"upsellSubscriptionId": {
"description": "For an upsell record, the ID of the subscription created on the page before the upsell.",
"type": [
"string",
"null"
]
},
"userAgent": {
"description": "Customer's browser user agent string.",
"type": [
"string",
"null"
]
},
"variants": {
"description": "Selected product variants and chosen options.",
"items": {
"properties": {
"name": {
"type": [
"string",
"null"
]
},
"reference": {
"type": [
"string",
"null"
]
},
"selectedOptions": {
"items": {
"properties": {
"additionalChargeAmount": {
"type": [
"number",
"null"
]
},
"discount": {
"properties": {
"amount": {
"description": "Total discount amount.",
"type": [
"number",
"null"
]
},
"amountOff": {
"description": "Fixed amount off the original price. Cannot be combined with `percentOff`.",
"type": [
"number",
"null"
]
},
"maxQuantity": {
"description": "Maximum quantity allowed for the discount.",
"type": [
"number",
"null"
]
},
"minQuantity": {
"description": "Minimum quantity required to be eligible for the discount.",
"type": [
"number",
"null"
]
},
"percentOff": {
"description": "Percentage off the original price. Cannot be combined with `amountOff`.",
"type": [
"number",
"null"
]
}
},
"type": [
"object",
"null"
]
},
"optionId": {
"type": [
"string",
"null"
]
},
"optionName": {
"type": [
"string",
"null"
]
},
"originalAdditionalChargeAmount": {
"type": [
"number",
"null"
]
},
"quantity": {
"type": [
"number",
"null"
]
},
"sku": {
"type": [
"string",
"null"
]
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"selectionType": {
"enum": [
"single",
"multiple",
"quantity",
null
],
"type": [
"string",
"null"
]
},
"variantId": {
"type": [
"string",
"null"
]
}
},
"type": "object"
},
"type": [
"array",
"null"
]
},
"visitId": {
"description": "Unique visit ID to track a customer across multiple sessions.",
"ty
# --- truncated at 32 KB (38 KB total) ---
# Full source: https://artifacts.apis.io/checkoutpage-com/json-schema/checkoutpage-com-payment-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/checkoutpage-com-payment"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.