GetPaid Checkouts API

Payment checkout sessions for one-time payments that the buyer can complete using Getpaid hosted checkout.

Operations 3

POST /v2/checkouts Create a checkout #
GET /v2/checkouts/{checkout_id} Get a checkout #
POST /v2/checkouts/query Query checkouts #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/getpaid-checkouts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

getpaid-checkouts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Getpaid Checkouts API
  version: v2
  contact:
    email: support@getpaid.io
  description: '# Getting started


    Our APIs provide programmatic access to the Getpaid solution. This page contains a comprehensive reference for all

    resources of the Getpaid public API. For walkthrough documentation please see [Getpaid guides](/) for step by step usage

    of the Getpaid platform including the API and [Getpaid API integration](/integration/api) for the technical aspects of

    this Getpaid API.


    To get started, book a demo and sign up at <https://getpaid.io>. This will give you access to the [Getpaid

    dashboard](https://dashboard.getpaid.io) where you can configure your account and retrieve your credentials needed to

    authenticate with Getpaid API.


    ## Postman


    Getpaid provides a Postman collection to test the API features in sandbox. You can [download the Postman collection and

    the environments](/integration/api/postman) to start testing the Getpaid API.


    ## Fields formats


    | Type | Format |

    | :- | :- |

    | `amount-minor` | Amount in the minor currency unit (e.g. 100 cents for 1 EUR). |

    | `country` | The country code fields follow the [ISO 3166-1 alpha-2 standard](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) in uppercase. Examples: `DE`, `US`. |

    | `currency` | The currency code fields follow the [ISO 4217 standard](https://en.wikipedia.org/wiki/ISO_4217) in uppercase. Examples: `EUR`, `USD`. |

    | `date` | Dates are formatted using the complete date format according to the [ISO 8601 standard](https://www.w3.org/TR/NOTE-datetime): `YYYY-MM-DD`. Example: `2023-09-30`.                                        |

    | `date-time` | Date-time fields are formatted using the [ISO 8601 standard](https://www.w3.org/TR/NOTE-datetime) for the combined date and time in UTC with 3 seconds fractional digits: `YYYY-MM-DDThh:mm:ss.SSSZ`. Example: `2015-09-01T23:59:59.479Z`. |

    | `date-time-offset` | Date-time fields with time-zone are formatted [ISO 8601 standard](https://www.w3.org/TR/NOTE-datetime) for the combined date and time with the time-zone and no second fractional digits: `YYYY-MM-DDThh:mm:ssTZD`. Example: `2015-09-01T23:59:59+01:00`. |

    | `email` | Email fields should follow the [RFC 5322](https://tools.ietf.org/html/rfc5322) standard. Example: `jon.smith@acme.com` |

    | `hex-color` | Colors are represented as a string starting with `#` followed by six hexadecimal digits. Each pair of digits represents the intensity of red, green, and blue components respectively. Examples: `#FFFFFF`, `#000000`, `#FF5733`. |

    | `id` | Identifiers are formatted as a string of 3 alphabetic characters (which represents the type of the identified object), one underscore and 26 alphanumeric characters. Every identifier generated in our system is globally unique. Examples: `acc_44678r08jtm8zbt227tzhc4nw5`, `doc_473cr1y0ghbyc3m1yfbwvn3nxx`. |

    | `ip-address` | IP fields are formatted using the [Internet Protocol version 4 (IPv4)](https://en.wikipedia.org/wiki/Internet_Protocol_version_4) standard: `x.x.x.x` where `x` must be a decimal value between `0` and `255`. Example: `192.158.1.38`. |

    | `version` | A resource version. For resources that can evolved over time, a unique reference of the snapshot used in other resource. For example, the account information used for a payment, the information used for the statement descriptor or the processing configuration are tighted to the version of the account. |

    '
servers:
- url: https://api.getpaid.io
  description: Live
- url: https://api.sandbox.getpaid.io
  description: Sandbox
tags:
- name: Checkouts
  description: Payment checkout sessions for one-time payments that the buyer can complete using Getpaid hosted checkout.
paths:
  /v2/checkouts:
    post:
      tags:
      - Checkouts
      summary: Create a checkout
      description: "Create a payment checkout session.\n\nRelated webhooks:\n\n- [`checkout_completed`](#tag/Accept-payments-webhooks/operation/checkout_completed): sent when the checkout process is completed with a successful payment.\n- [`checkout_failed`](#tag/Accept-payments-webhooks/operation/checkout_failed): sent when the checkout lifetime is reached without a successful payment attempt, and at least one payment was attempted but none were successful.\n- [`checkout_in_progress`](#tag/Accept-payments-webhooks/operation/checkout_in_progress): sent when the checkout lifetime reaches its expiration, but a payment attempt is still in progress.\n- [`checkout_unattempted`](#tag/Accept-payments-webhooks/operation/checkout_unattempted): sent when the checkout lifetime is reached without a payment.\n- For each payment attempt:\n  - [`payment_captured`](#tag/Accept-payments-webhooks/operation/payment_captured): sent when the payment funds are captured and secured.\n  - [`payment_failed`](#tag/Accept-payments-webhooks/operation/payment_failed): sent when a payment fails due to business (decline) or technical issues.\n"
      operationId: create_checkout
      security:
      - OAuth:
        - payments:read_write
      parameters:
      - $ref: '#/components/parameters/GetpaidIdempotencyKey'
        required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCheckoutRequest'
            examples:
              CreateCheckout:
                $ref: '#/components/examples/CreateCheckout'
              CreateInitialRecurringCheckout:
                $ref: '#/components/examples/CreateInitialRecurringCheckout'
              CreateCheckoutExplicitMethods:
                $ref: '#/components/examples/CreateCheckoutExplicitMethods'
              CreateCheckoutBuyerDetails:
                $ref: '#/components/examples/CreateCheckoutBuyerDetails'
              CreateCheckoutCanada:
                $ref: '#/components/examples/CreateCheckoutCanada'
        required: true
      responses:
        '201':
          description: Created
          headers:
            Getpaid-Trace-Id:
              $ref: '#/components/headers/GetpaidTraceId'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCheckoutResponse'
              examples:
                CheckoutCreated:
                  $ref: '#/components/examples/CheckoutCreated'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '422':
          $ref: '#/components/responses/422InvalidParameters'
        '429':
          $ref: '#/components/responses/429TooManyRequests'
        '500':
          $ref: '#/components/responses/500InternalServerError'
  /v2/checkouts/{checkout_id}:
    get:
      tags:
      - Checkouts
      summary: Get a checkout
      description: Retrieve a payment checkout session.
      operationId: get_checkout
      security:
      - OAuth:
        - payments:read
      - OAuth:
        - payments:read_write
      parameters:
      - name: checkout_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/CheckoutId'
      responses:
        '200':
          description: OK
          headers:
            Getpaid-Trace-Id:
              $ref: '#/components/headers/GetpaidTraceId'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCheckoutResponse'
              examples:
                CheckoutCompleted:
                  $ref: '#/components/examples/CheckoutCompleted'
                CheckoutInitiated:
                  $ref: '#/components/examples/CheckoutInitiated'
                CheckoutStarted:
                  $ref: '#/components/examples/CheckoutStarted'
                CheckoutInProgress:
                  $ref: '#/components/examples/CheckoutInProgress'
                CheckoutFailed:
                  $ref: '#/components/examples/CheckoutFailed'
                CheckoutExpired:
                  $ref: '#/components/examples/CheckoutExpired'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
        '422':
          $ref: '#/components/responses/422InvalidParameters'
        '429':
          $ref: '#/components/responses/429TooManyRequests'
        '500':
          $ref: '#/components/responses/500InternalServerError'
  /v2/checkouts/query:
    post:
      tags:
      - Checkouts
      summary: Query checkouts
      description: 'Query checkouts filtering, and sorting and paginating results.


        See [Query resources](#tag/Queries/operation/query_resources) for more examples and details

        about other resources, pagination and everything related to operate the Getpaid solution.

        '
      operationId: query_checkouts
      security:
      - OAuth:
        - payments:read
      parameters:
      - $ref: '#/components/parameters/GetpaidIdempotencyKey'
        required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueryCheckoutsRequest'
            examples:
              QueryPayments:
                $ref: '#/components/examples/QueryCheckouts'
        required: true
      responses:
        '200':
          description: OK
          headers:
            Getpaid-Trace-Id:
              $ref: '#/components/headers/GetpaidTraceId'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueryCheckoutsResponse'
              examples:
                FilteredCheckouts:
                  $ref: '#/components/examples/FilteredCheckouts'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '422':
          $ref: '#/components/responses/422InvalidParameters'
        '429':
          $ref: '#/components/responses/429TooManyRequests'
        '500':
          $ref: '#/components/responses/500InternalServerError'
components:
  schemas:
    SplitPercentageAmountRequest:
      allOf:
      - $ref: '#/components/schemas/SplitBaseAmount'
      - type: object
        required:
        - percentage
        properties:
          percentage:
            allOf:
            - $ref: '#/components/schemas/Percentage'
            - description: The percentage of the total amount to allocate to this account.
    CheckoutPaymentMethodsWithSelected:
      allOf:
      - required:
        - selected
        properties:
          type:
            type: string
          selected:
            $ref: '#/components/schemas/PaymentMethodDescriptor'
            description: The payment method selected by the buyer.
      - $ref: '#/components/schemas/CheckoutPaymentMethodsAvailable'
    CardDynamicDescriptor:
      description: 'The card dynamic descriptor.


        It will be prefixed with `GPD*` when displayed on the buyer statement. You don''t need to include the `GPD*` prefix in the value sent.

        '
      type: string
      pattern: ^[a-zA-Z0-9 *\._-]{1,18}$
      minLength: 1
      maxLength: 18
      example: TITAN*202510-0232
    SddRemittanceInfo:
      description: 'The SEPA Direct Debit remittance information shown on the buyer statement.

        '
      type: string
      minLength: 1
      maxLength: 140
      example: 'Titan Auto Parts Ord. #0232 Inv. #202500632'
    PaymentMethodBase:
      type: object
      required:
      - type
      properties:
        type:
          $ref: '#/components/schemas/PaymentMethodType'
    CheckoutIsExpired:
      type: boolean
      description: Indicates whether the checkout has expired. A checkout is considered expired when the current time has passed the `expires_at` timestamp.
      example: false
    MediumString:
      type: string
      minLength: 1
      maxLength: 250
    PaginationData:
      description: The list of queried elements.
      type: array
      items:
        type: object
    CheckoutCardPaymentMethodOptions:
      description: Configuration options for card payment methods in the checkout.
      type: object
      required:
      - dynamic_descriptor
      properties:
        dynamic_descriptor:
          $ref: '#/components/schemas/CardDynamicDescriptor'
    CheckoutFailed:
      type: object
      required:
      - id
      - status
      - reference
      - created_at
      - updated_at
      - expires_at
      - is_expired
      - amount
      - currency
      - origin
      - payment_methods
      - splits
      - payments
      - theme
      - events
      properties:
        id:
          $ref: '#/components/schemas/CheckoutId'
        status:
          $ref: '#/components/schemas/CheckoutStatus'
        reference:
          $ref: '#/components/schemas/Reference'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        expires_at:
          $ref: '#/components/schemas/CheckoutExpiresAt'
        is_expired:
          $ref: '#/components/schemas/CheckoutIsExpired'
        amount:
          $ref: '#/components/schemas/AmountMinor'
        currency:
          $ref: '#/components/schemas/Currency'
        description:
          $ref: '#/components/schemas/CheckoutDescription'
        origin:
          $ref: '#/components/schemas/CheckoutOrigin'
        payment_methods:
          $ref: '#/components/schemas/CheckoutPaymentMethodsAvailable'
        splits:
          $ref: '#/components/schemas/SplitsCalculated'
        standing_instruction:
          $ref: '#/components/schemas/NewStandingInstruction'
        payments:
          $ref: '#/components/schemas/CheckoutPayments'
        theme:
          allOf:
          - description: The theme used for the checkout.
          - $ref: '#/components/schemas/ThemeRef'
    CheckoutPaymentMethodsResponse:
      description: The payment methods of this checkout.
      type: object
      required:
      - type
      - available
      properties:
        type:
          description: The available payment methods selection method.
          type: string
          enum:
          - default
          - explicit
        available:
          description: The list of payment methods available for this checkout.
          type: array
          minItems: 1
          uniqueItems: true
          items:
            $ref: '#/components/schemas/PaymentMethodDescriptor'
    Index:
      description: The index of the element in the list.
      type: integer
      minimum: 0
      example: 0
    SplitAmountMinor:
      allOf:
      - description: The amount allocated to this account in the minor currency unit (e.g. 100 cents for 1 EUR).
      - $ref: '#/components/schemas/AmountMinor'
    SplitPercentageAmountCalculated:
      allOf:
      - $ref: '#/components/schemas/SplitPercentageAmountRequest'
      - required:
        - amount
        properties:
          amount:
            $ref: '#/components/schemas/SplitAmountMinor'
    CheckoutPaymentMethodsRequest:
      description: 'Configure payment methods for the checkout.


        - `explicit`: use `available` to provide the methods to display.

        - `default`: all available payment methods are selected automatically.

        '
      anyOf:
      - $ref: '#/components/schemas/CheckoutExplicitPaymentMethodsRequest'
      - $ref: '#/components/schemas/CheckoutDefaultPaymentMethodsRequest'
      discriminator:
        propertyName: type
        mapping:
          explicit: '#/components/schemas/CheckoutExplicitPaymentMethodsRequest'
          default: '#/components/schemas/CheckoutDefaultPaymentMethodsRequest'
    PaymentMethodDisplayHint:
      allOf:
      - description: A hint of the payment method used.
      - $ref: '#/components/schemas/ShortString'
    DateTime:
      description: 'UTC timestamp in ISO 8601 format with milliseconds ([RFC 3339](https://www.rfc-editor.org/rfc/rfc3339.html)).

        Always includes the ''Z'' UTC indicator.

        '
      type: string
      format: date-time
      minLength: 24
      maxLength: 24
      example: '2025-09-01T22:05:48.479Z'
    ProcessingFeeRequest:
      description: 'The processing fee covered by this account.


        If not specified, the account will not cover any processing fee.


        The sum of all processing fees covered by all accounts must be exactly 100%.

        '
      type: object
      required:
      - percentage
      properties:
        percentage:
          allOf:
          - $ref: '#/components/schemas/Percentage'
          - description: The percentage of the total processing fee that this account will cover.
            example: 100
    CheckoutInitiatedStarted:
      type: object
      required:
      - id
      - status
      - reference
      - created_at
      - updated_at
      - expires_at
      - is_expired
      - amount
      - currency
      - flow
      - origin
      - payment_methods
      - splits
      - payments
      - theme
      - events
      properties:
        id:
          $ref: '#/components/schemas/CheckoutId'
        status:
          $ref: '#/components/schemas/CheckoutStatus'
        reference:
          $ref: '#/components/schemas/Reference'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        expires_at:
          $ref: '#/components/schemas/CheckoutExpiresAt'
        is_expired:
          $ref: '#/components/schemas/CheckoutIsExpired'
        amount:
          $ref: '#/components/schemas/AmountMinor'
        currency:
          $ref: '#/components/schemas/Currency'
        description:
          $ref: '#/components/schemas/CheckoutDescription'
        flow:
          $ref: '#/components/schemas/CheckoutFlow'
        origin:
          $ref: '#/components/schemas/CheckoutOrigin'
        payment_methods:
          $ref: '#/components/schemas/CheckoutPaymentMethodsAvailable'
        splits:
          $ref: '#/components/schemas/SplitsCalculated'
        standing_instruction:
          $ref: '#/components/schemas/NewStandingInstruction'
        payments:
          $ref: '#/components/schemas/CheckoutPayments'
        theme:
          allOf:
          - description: The theme used for the checkout.
          - $ref: '#/components/schemas/ThemeRef'
    PaymentMethodType:
      description: The type of payment method.
      type: string
      enum:
      - card
      - sepa_direct_debit
    StandingInstructionId:
      allOf:
      - $ref: '#/components/schemas/Id'
      - description: The unique identifier of the standing instruction.
        example: sti_4tbftjwzxja1h71nzas1g0g1xm
    CheckoutSepaDirectDebitPaymentMethodOptions:
      description: Configuration options for SEPA Direct Debit payment methods in the checkout.
      type: object
      required:
      - remittance_info
      properties:
        remittance_info:
          $ref: '#/components/schemas/SddRemittanceInfo'
    InitialStandingInstructionRequest:
      description: Terms for a new standing instruction to gather the consent in the initial payment in a series of recurring payments.
      type: object
      required:
      - terms
      properties:
        terms:
          $ref: '#/components/schemas/StandingInstructionTerms'
    SplitsCalculated:
      description: 'The list of payment splits for the accounts involved in the funds flow.


        The final split gross amounts have been calculated but processing fees are not included until the payment is captured.

        '
      type: object
      required:
      - type
      - accounts
      properties:
        type:
          $ref: '#/components/schemas/SplitsType'
        accounts:
          description: The list of accounts involved in the payment that will receive the funds.
          type: array
          minItems: 1
          uniqueItems: true
          items:
            description: A payment split account.
            type: object
            required:
            - type
            - id
            - version
            - legal_name
            - split
            - processing_fee
            properties:
              type:
                $ref: '#/components/schemas/SplitsAccountType'
              id:
                $ref: '#/components/schemas/AccountId'
              version:
                $ref: '#/components/schemas/AccountVersion'
              legal_name:
                $ref: '#/components/schemas/AccountLegalName'
              split:
                description: The amount in the payment currency to be allocated to this account.
                oneOf:
                - $ref: '#/components/schemas/SplitFixedAmount'
                - $ref: '#/components/schemas/SplitPercentageAmountCalculated'
                - $ref: '#/components/schemas/SplitRemainingAmountCalculated'
                discriminator:
                  propertyName: type
                  mapping:
                    fixed: '#/components/schemas/SplitFixedAmount'
                    percentage: '#/components/schemas/SplitPercentageAmountCalculated'
                    remaining: '#/components/schemas/SplitRemainingAmountCalculated'
              processing_fee:
                $ref: '#/components/schemas/ProcessingFeeRequest'
    BasePaymentMethodDetails:
      allOf:
      - $ref: '#/components/schemas/PaymentMethodBase'
      - required:
        - display_hint
        properties:
          display_hint:
            $ref: '#/components/schemas/PaymentMethodDisplayHint'
    CardScheme:
      description: The card scheme.
      type: string
      enum:
      - visa
      - mastercard
    PaginationCursor:
      description: The cursor to the last item. If non-empty, can be used to fetch the next page. If not set, there is no more elements.
      type: string
      maxLength: 250
      example: Q3VyaW9zaXR5IEtpbGxlZCB0aGUgQ2F0Cg==
    Country:
      type: string
      format: country
      minLength: 2
      maxLength: 2
      description: The two-letter [ISO 3166-1 alpha-2 country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
      example: DE
    CheckoutStatus:
      description: 'The status of the checkout.

        See the [list, transitions, and description of each status](/payments/checkouts#lifecycle) for more details.

        '
      type: string
      enum:
      - initiated
      - started
      - in_progress
      - completed
      - failed
      - expired
    CheckoutExpiresAt:
      allOf:
      - description: When the checkout session will expire if not completed.
      - $ref: '#/components/schemas/DateTime'
    CheckoutId:
      allOf:
      - $ref: '#/components/schemas/Id'
      - description: The unique identifier of the checkout.
        example: cko_4kf9v6xp00hzc99rdwr5m97wce
    ProblemDetailsBase:
      type: object
      description: The Problem Details JSON Object [[RFC7807](https://tools.ietf.org/html/rfc7807)].
      required:
      - type
      - title
      - status
      properties:
        type:
          type: string
          description: A URI reference [[RFC3986](https://tools.ietf.org/html/rfc3986)] that identifies the problem type. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
          format: uri
          example: https://docs.getpaid.io/ref/error-types#problem
        title:
          type: string
          description: A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.
          example: Invalid Request
        status:
          type: integer
          description: The HTTP status code.
          minimum: 400
          maximum: 599
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of the problem.
          example: The request body was invalid
    CheckoutInProgress:
      type: object
      required:
      - id
      - status
      - reference
      - created_at
      - updated_at
      - expires_at
      - is_expired
      - amount
      - currency
      - flow
      - origin
      - payment_methods
      - splits
      - payments
      - theme
      - events
      properties:
        id:
          $ref: '#/components/schemas/CheckoutId'
        status:
          $ref: '#/components/schemas/CheckoutStatus'
        reference:
          $ref: '#/components/schemas/Reference'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        expires_at:
          $ref: '#/components/schemas/CheckoutExpiresAt'
        is_expired:
          $ref: '#/components/schemas/CheckoutIsExpired'
        amount:
          $ref: '#/components/schemas/AmountMinor'
        currency:
          $ref: '#/components/schemas/Currency'
        description:
          $ref: '#/components/schemas/CheckoutDescription'
        flow:
          $ref: '#/components/schemas/CheckoutFlow'
        origin:
          $ref: '#/components/schemas/CheckoutOrigin'
        payment_methods:
          $ref: '#/components/schemas/CheckoutPaymentMethodsWithSelected'
        splits:
          $ref: '#/components/schemas/SplitsCalculated'
        standing_instruction:
          $ref: '#/components/schemas/NewStandingInstruction'
        payments:
          $ref: '#/components/schemas/CheckoutPayments'
        theme:
          allOf:
          - description: The theme used for the checkout.
          - $ref: '#/components/schemas/ThemeRef'
    CheckoutFlow:
      description: The flow required for the checkout to complete.
      type: object
      required:
      - next_step
      properties:
        next_step:
          description: The next step required to complete the flow.
          type: object
          required:
          - type
          - url
          properties:
            type:
              description: The type of the next step.
              type: string
              enum:
              - redirect
            url:
              allOf:
              - $ref: '#/components/schemas/Url'
              - description: The URL to redirect the buyer to complete the payment.
    CheckoutPayments:
      description: The payments initiated as part of this checkout.
      type: array
      uniqueItems: true
      items:
        description: A payment initiated as part of this checkout.
        type: object
        required:
        - index
        - id
        - status
        - created_at
        - updated_at
        - method
        properties:
          index:
            $ref: '#/components/schemas/Index'
          id:
            $ref: '#/components/schemas/PaymentId'
          status:
            $ref: '#/components/schemas/PaymentStatusPhase'
          created_at:
            $ref: '#/components/schemas/CreatedAt'
          updated_at:
            $ref: '#/components/schemas/UpdatedAt'
          method:
            $ref: '#/components/schemas/PaymentMethodDetails'
    CardPaymentMethodDescriptor:
      allOf:
      - $ref: '#/components/schemas/PaymentMethodBase'
      - required:
        - scheme
        properties:
          scheme:
            $ref: '#/components/schemas/CardScheme'
    SplitBaseAmount:
      type: object
      description: 'The amount in payment currency to be allocated to this account.


        The sum of all split amounts for all accounts must be exactly the total amount of the payment

        or use the `remaining` type for one of the accounts to allocate the remaining amount after all

        other splits have been calculated.

        '
      required:
      - type
      properties:
        type:
          type: string
          description: The type of split amount.
          enum:
          - fixed
          - percentage
          - remaining
    QueryCheckoutsRequest:
      allOf:
      - $ref: '#/components/schemas/BaseQueryRequest'
      - required:
        - type
        properties:
          type:
            type: string
            enum:
            - checkouts
          filters:
            $ref: '#/components/schemas/CheckoutsFiltersRequest'
          sorts:
            $ref: '#/components/schemas/CheckoutsSortsRequest'
    AccountId:
      allOf:
      - $ref: '#/components/schemas/Id'
      - description: The unique identifier of the account.
        example: acc_44678r08jtm8zbt227tzhc4nw5
    PaginationFirst:
      description: Pagination. The number of elements that will be retrieved.
      type: integer
      default: 20
      minimum: 1
      maximum: 100
    CreateCheckoutResponse:
      type: object
      required:
      - id
      - status
      - reference
      - created_at
      - updated_at
      - expires_at
      - flow
      - payment_methods
      - splits
      properties:
        id:
          $ref: '#/components/schemas/CheckoutId'
        status:
          $ref: '#/components/schemas/CheckoutStatus'
          const: initiated
        reference:
          $ref: '#/components/schemas/Reference'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        expires_at:
          $ref: '#/components/schemas/CheckoutExpiresAt'
        flow:
          $ref: '#/components/schemas/CheckoutFlow'
        payment_methods:
          $ref: '#/components/schemas/CheckoutPaymentMethodsResponse'
        splits:
          $ref: '#/components/schemas/SplitsCalculated'
    CardPaymentMethodDetails:
      allOf:
      - $ref: '#/components/schemas/BasePaymentMethodDetails'
      - required:
        - card
        properties:
          card:
            description: The card details.
            type: object
            required:
            - scheme
            - holder_name
            - first_digits
            - last_digits
            - expiry_month
            - expiry_year
            properties:
              scheme:
                $ref: '#/components/schemas/CardScheme'
              holder_name:
                description: The name of the cardholder as printed on the card.
                type: string
                minLength: 1
                maxLength: 26
                example: Jane Doe
              first_digits:
                description: The first four to six digits of the card number (BIN) that identify the issuing bank.
                type: string
                minLength: 4
                maxLength: 6
                example: '424242'
              last_digits:
                description: The last four digits of the card number.
                type: string
                minLength: 4
                maxLength: 4
                example: '4242'
              expiry_month:
                description: The expiration month of the card.
                type: integer
                minimum: 1
                maximum: 12
                example: 12
              expiry_year:
                description: The expiration year of the card.
                type: integer
                minimum: 2021
                example: 2025
              kind:
                description: Kind of the payment card.
                type: string
                enum:
                - credit
                - debit
                example: credit
              segment:
                description: Segment of the payment card.
                type: string
                enum:
                - consumer
                - corporate
                example: consumer
    BaseQueryRequest:
      type: object
      properties:
        type:
          description: 'The type of the Getpaid solution resources to query.


            Some query endpoints infer the resource type from the request path. In those cases, if this field is set, it

            must match the resource targeted by the request URL.

            '
          type: string
        first:
          allOf:
          - $ref: '#/components/schemas/PaginationFirst'
        after:
          $ref: '#/components/schemas/PaginationAfter'
        filters:
          description: Filters to reduce the data set to query. If not set, all resources available of the given type will be queried.
        sorts:
          $ref: '#/components/schemas/BaseSortsRequest'
    BaseSortItemRequest:
      description: Each field to sort by.
      type: object
      required:
      - field
      - d

# --- truncated at 32 KB (85 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/getpaid/refs/heads/main/openapi/getpaid-checkouts-api-openapi.yml