Checkout Page · Schema

Booking

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
dynamicPrice numbernull The dynamic price controlled by query params at checkout that overrides the default price configured on the page.
eventTitle stringnull Human-readable event name. (e.g. "Future of AI Summit 2026", "Conference"). Present on all records. Use this instead of `pageSlug` when presenting event information. Searchable via `search`
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.
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.
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
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.
shipping objectnull Shipping details, including name, phone, and address. Often empty.
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.
ticketFeesAmount numbernull Booking fees actually charged on this booking, in the smallest currency unit. Starts from the sum of `tickets[].fee.totalAmount`; an order-level coupon that applies to fees reaches them only after it
tickets arraynull Array of ticket objects.
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.
visitId stringnull Unique visit ID to track a customer across multiple sessions.
View JSON Schema on GitHub

JSON Schema

checkoutpage-com-booking-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/checkoutpage-com/json-schema/checkoutpage-com-booking-schema.json",
  "title": "Booking",
  "x-generated": "2026-11-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/checkoutpage-com-openapi.yml#/components/schemas/Booking",
  "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"
      ]
    },
    "dynamicPrice": {
      "description": "The dynamic price controlled by query params at checkout that overrides the default price configured on the page.",
      "type": [
        "number",
        "null"
      ]
    },
    "eventTitle": {
      "description": "Human-readable event name. (e.g. \"Future of AI Summit 2026\", \"Conference\"). Present on all records. Use this instead of `pageSlug` when presenting event information. Searchable via `search`",
      "type": [
        "string",
        "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"
      ]
    },
    "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"
      ]
    },
    "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"
      ]
    },
    "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"
      ]
    },
    "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"
      ]
    },
    "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"
      ]
    },
    "ticketFeesAmount": {
      "description": "Booking fees actually charged on this booking, in the smallest currency unit. Starts from the sum of `tickets[].fee.totalAmount`; an order-level coupon that applies to fees reaches them only after it has used up the ticket prices. 0 on a complimentary booking or when no ticket had a fee.",
      "type": [
        "number",
        "null"
      ]
    },
    "tickets": {
      "description": "Array of ticket objects.",
      "items": {
        "properties": {
          "capacity": {
            "description": "Ticket type capacity. If not set ticket capacity is unlimited.",
            "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"
            ]
          },
          "fee": {
            "description": "The ticket type fee charged on this line item, kept separate from `price`. Null when the ticket type had no fee.",
            "properties": {
              "amount": {
                "description": "Fee per ticket at the time of purchase, in the smallest currency unit.",
                "type": [
                  "number",
                  "null"
                ]
              },
              "display": {
                "description": "How the fee was presented at checkout.",
                "enum": [
                  "included",
                  "separate",
                  null
                ],
                "type": [
                  "string",
                  "null"
                ]
              },
              "name": {
                "description": "Name of the fee.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "totalAmount": {
                "description": "Total fee for this line item, in the smallest currency unit: `amount` × `quantity`, less the share of a ticket-scoped coupon that applied to fees. An order-level coupon is not reflected here; see `ticketFeesAmount`.",
                "type": [
                  "number",
                  "null"
                ]
              }
            },
            "type": [
              "object",
              "null"
            ]
          },
          "name": {
            "description": "Ticket name.",
            "type": [
              "string",
              "null"
            ]
          },
          "originalPrice": {
            "description": "Per-ticket price before discount, in the smallest currency unit.",
            "type": [
              "number",
              "null"
            ]
          },
          "price": {
            "description": "Per-ticket price in the smallest currency unit.",
            "type": [
              "number",
              "null"
            ]
          },
          "pricing": {
            "description": "Ticket type pricing at time of purchase. 'pwyw' means the buyer chose the amount (pay what you want).",
            "enum": [
              "paid",
              "pwyw",
              "free",
              null
            ],
            "type": [
              "string",
              "null"
            ]
          },
          "quantity": {
            "description": "Quantity purchased for this ticket line item.",
            "type": [
              "number",
              "null"
            ]
          },
          "reference": {
            "description": "Ticket reference.",
            "type": [
              "string",
              "null"
            ]
          },
          "ticketGroupCapacity": {
            "description": "Ticket group capacity.",
            "type": [
              "number",
              "null"
            ]
          },
          "ticketGroupId": {
            "description": "Ticket group ID.",
            "type": [
              "string",
              "null"
            ]
          },
          "ticketGroupName": {
            "description": "Ticket group name.",
            "type": [
              "string",
              "null"
            ]
          },
          "ticketGroupReference": {
            "description": "Ticket group reference.",
            "type": [
              "string",
              "null"
            ]
          },
          "ticketTypeId": {
            "description": "Ticket type ID.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "type": [
        "array",
        "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 

# --- truncated at 32 KB (34 KB total) ---
# Full source: https://artifacts.apis.io/checkoutpage-com/json-schema/checkoutpage-com-booking-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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/checkoutpage-com-booking"
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.