GetPaid Payments API

Create and manage payments initiated by the platform on behalf of the buyer. For recurring and unscheduled payments based on a previous standing instruction.

Operations 4

POST /v2/payments Create a payment #
GET /v2/payments/{payment_id} Get a payment #
POST /v2/payments/{payment_id}/refunds Refund a payment #
POST /v2/payments/query Query payments #

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-payments-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-payments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Getpaid Payments 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: Payments
  description: 'Create and manage payments initiated by the platform on behalf of the buyer.


    For recurring and unscheduled payments based on a previous standing instruction.

    '
paths:
  /v2/payments:
    post:
      tags:
      - Payments
      summary: Create a payment
      description: 'Create a payment initiated by the platform on behalf of a buyer.


        Related webhooks:


        - [`payment_captured`](#tag/Accept-payments-webhooks/operation/payment_captured): sent when the payment funds are captured and secured.

        - [`payment_failed`](#tag/Accept-payments-webhooks/operation/payment_failed): sent when a payment fails due to business (decline) or technical issues.

        '
      operationId: create_payment
      security:
      - OAuth:
        - payments:read_write
      parameters:
      - $ref: '#/components/parameters/GetpaidIdempotencyKey'
        required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePaymentRequest'
            examples:
              CreateSubsequentPayment:
                $ref: '#/components/examples/CreateSubsequentPayment'
        required: true
      responses:
        '201':
          description: Created
          headers:
            Getpaid-Trace-Id:
              $ref: '#/components/headers/GetpaidTraceId'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatePaymentResponse'
              examples:
                PaymentCreated:
                  $ref: '#/components/examples/PaymentCreated'
        '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/payments/{payment_id}:
    get:
      tags:
      - Payments
      summary: Get a payment
      description: Retrieve a payment.
      operationId: get_payment
      security:
      - OAuth:
        - payments:read
      - OAuth:
        - payments:read_write
      parameters:
      - name: payment_id
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/PaymentId'
      responses:
        '200':
          description: OK
          headers:
            Getpaid-Trace-Id:
              $ref: '#/components/headers/GetpaidTraceId'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPaymentResponse'
              examples:
                CompletePayment:
                  $ref: '#/components/examples/CompletePayment'
        '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/payments/{payment_id}/refunds:
    post:
      tags:
      - Payments
      summary: Refund a payment
      description: 'Refund a captured payment fully or partially.


        Related webhooks:


        - [`payment_refunded`](#tag/Accept-payments-webhooks/operation/payment_refunded): sent when the funds are returned to the buyer.

        - [`payment_refund_failed`](#tag/Accept-payments-webhooks/operation/payment_refund_failed): sent when a refund process fails due to business or technical issues.

        '
      operationId: refund_payment
      security:
      - OAuth:
        - payments:read_write
      parameters:
      - name: payment_id
        in: path
        description: The ID of the payment to refund.
        required: true
        schema:
          $ref: '#/components/schemas/PaymentId'
      - $ref: '#/components/parameters/GetpaidIdempotencyKey'
        required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefundPaymentRequest'
            examples:
              CreateFullRefund:
                $ref: '#/components/examples/CreateFullRefund'
              CreatePartialRefund:
                $ref: '#/components/examples/CreatePartialRefund'
        required: true
      responses:
        '201':
          description: Created
          headers:
            Getpaid-Trace-Id:
              $ref: '#/components/headers/GetpaidTraceId'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefundPaymentResponse'
              examples:
                FullRefundCreated:
                  $ref: '#/components/examples/FullRefundCreated'
                PartialRefundCreated:
                  $ref: '#/components/examples/PartialRefundCreated'
        '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/payments/query:
    post:
      tags:
      - Payments
      summary: Query payments
      description: 'Query payments 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_payments
      security:
      - OAuth:
        - payments:read
      parameters:
      - $ref: '#/components/parameters/GetpaidIdempotencyKey'
        required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueryPaymentsRequest'
            examples:
              QueryPayments:
                $ref: '#/components/examples/QueryPayments'
        required: true
      responses:
        '200':
          description: OK
          headers:
            Getpaid-Trace-Id:
              $ref: '#/components/headers/GetpaidTraceId'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueryPaymentsResponse'
              examples:
                FilteredPayments:
                  $ref: '#/components/examples/FilteredPayments'
        '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.
    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'
    QueryPaymentsRequest:
      allOf:
      - $ref: '#/components/schemas/BaseQueryRequest'
      - required:
        - type
        properties:
          type:
            type: string
            enum:
            - payments
          filters:
            $ref: '#/components/schemas/PaymentsFiltersRequest'
          sorts:
            $ref: '#/components/schemas/PaymentsSortsRequest'
    MediumString:
      type: string
      minLength: 1
      maxLength: 250
    PaginationData:
      description: The list of queried elements.
      type: array
      items:
        type: object
    BasePaymentMethodRequest:
      description: The payment method configuration for this payment.
      type: object
      required:
      - type
      properties:
        type:
          description: The payment method type.
          type: string
    StatementDescriptorResponse:
      description: 'The final statement descriptor shown on the buyer statement.


        This value is calculated per payment method:


        - **Cards**: `dynamic_descriptor` with the `GPD*` prefix.

        - **SEPA Direct Debit**: `remittance_info`.

        '
      type: string
      minLength: 1
      maxLength: 140
      example: GPD*TITAN*202510-0232
    RefundPaymentRequest:
      oneOf:
      - $ref: '#/components/schemas/FullRefundPaymentRequest'
      - $ref: '#/components/schemas/PartialRefundPaymentRequest'
      discriminator:
        propertyName: type
        mapping:
          full: '#/components/schemas/FullRefundPaymentRequest'
          partial: '#/components/schemas/PartialRefundPaymentRequest'
    RefundPaymentResponse:
      oneOf:
      - $ref: '#/components/schemas/FullRefundPaymentResponse'
      - $ref: '#/components/schemas/PartialRefundPaymentResponse'
      discriminator:
        propertyName: type
        mapping:
          full: '#/components/schemas/FullRefundPaymentResponse'
          partial: '#/components/schemas/PartialRefundPaymentResponse'
    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'
    PaymentsFiltersRequest:
      description: Filtering payments.
      type: object
      properties:
        id:
          allOf:
          - description: The payment identifier to filter by using an exact match operation.
          - $ref: '#/components/schemas/PaymentId'
        reference:
          description: The payment reference to filter by using a contains operation.
          type: string
        seller_legal_name:
          description: The seller legal name to filter by using a contains operation.
          type: string
        statuses:
          description: The list of payment statuses to filter by.
          type: array
          minItems: 1
          uniqueItems: true
          items:
            $ref: '#/components/schemas/PaymentStatus'
    BaseRefundPaymentRequest:
      type: object
      required:
      - type
      - reference
      properties:
        type:
          $ref: '#/components/schemas/RefundType'
        reference:
          $ref: '#/components/schemas/Reference'
        webhooks:
          description: Configuration for webhooks to receive refund status updates.
          type: object
          required:
          - url
          properties:
            url:
              allOf:
              - description: The URL to which webhook events will be sent.
                example: https://webhooks.titanauto.com/getpaid
              - $ref: '#/components/schemas/Url'
    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
    PaymentMethodType:
      description: The type of payment method.
      type: string
      enum:
      - card
      - sepa_direct_debit
    PaymentOriginBase:
      type: object
      required:
      - type
      properties:
        type:
          description: 'The payment origin type.


            - `api`: The payment was created via the API.

            - `checkout`: The payment was created as an attempt of a checkout session.

            '
          type: string
          enum:
          - api
          - checkout
    StandingInstructionId:
      allOf:
      - $ref: '#/components/schemas/Id'
      - description: The unique identifier of the standing instruction.
        example: sti_4tbftjwzxja1h71nzas1g0g1xm
    ReasonBase:
      description: Reason of the status of the resource when it requires additional steps or is a failure state.
      type: object
      required:
      - code
      - description
      properties:
        code:
          description: Code to identify the cause of the status of the resource.
          type: string
        description:
          description: Human-readable description of the reason for the status of the resource.
          type: string
    CardPaymentMethodHint:
      allOf:
      - required:
        - scheme
        properties:
          type:
            type: string
          scheme:
            $ref: '#/components/schemas/CardScheme'
      - $ref: '#/components/schemas/BasePaymentMethodHint'
    PaymentsSortsRequest:
      description: Fields to sort the data by. If not set, the data will be sorted by the creation date descending.
      type: array
      minItems: 1
      uniqueItems: true
      items:
        allOf:
        - $ref: '#/components/schemas/BaseSortItemRequest'
        - properties:
            field:
              enum:
              - created_at
              - amount
              - seller_legal_name
    RefundReason:
      allOf:
      - description: 'The reason for the refund status when it requires additional steps or is a failure state.

          See all the [possible refund reasons for each status](/payments/refunds/lifecycle/reason-codes) for more details.

          '
        properties:
          code:
            description: 'Code to identify the cause of the refund status.

              See all the [possible refund reason codes for each status](/payments/refunds/lifecycle/reason-codes) for more details.

              '
          description:
            description: Human-readable description of the reason for the refund status.
      - $ref: '#/components/schemas/ReasonBase'
    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
    CreatePaymentResponse:
      type: object
      required:
      - id
      - status
      - reference
      - created_at
      - updated_at
      - method
      - splits
      - totals
      properties:
        id:
          $ref: '#/components/schemas/PaymentId'
        status:
          $ref: '#/components/schemas/PaymentStatus'
        reason:
          $ref: '#/components/schemas/PaymentReason'
        reference:
          $ref: '#/components/schemas/Reference'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
        statement_descriptor:
          $ref: '#/components/schemas/StatementDescriptorResponse'
        method:
          $ref: '#/components/schemas/PaymentMethodDetails'
        splits:
          $ref: '#/components/schemas/SplitsCalculatedAndCalculatingFees'
        authentication:
          $ref: '#/components/schemas/PaymentAuthentication'
        totals:
          $ref: '#/components/schemas/PaymentTotals'
    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==
    SplitsCalculatedAndCalculatingFees:
      description: 'The list of payment splits for the accounts involved in the funds flow.


        The final split amounts and processing fees have been calculated.

        '
      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/ProcessingFeeCalculating'
    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
    SddPaymentMethodRequest:
      allOf:
      - $ref: '#/components/schemas/BasePaymentMethodRequest'
      - type: object
        required:
        - remittance_info
        properties:
          type:
            description: The payment method type.
            type: string
          remittance_info:
            $ref: '#/components/schemas/SddRemittanceInfo'
    PaymentStatus:
      description: 'The status of the payment.

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

        '
      type: string
      enum:
      - initiated
      - action_required
      - submitted
      - authorized
      - captured
      - declined
      - failed
      - partially_refunded
      - refunded
    EstimatedUpdateBefore:
      allOf:
      - description: When the payment status is estimated to be updated next.
      - $ref: '#/components/schemas/DateTimeOffset'
    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
    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
    RefundSplitAccount:
      description: A refund split account.
      type: object
      required:
      - id
      - split
      properties:
        id:
          $ref: '#/components/schemas/AccountId'
        split:
          description: The amount in the payment currency to return from this account.
          type: object
          required:
          - amount
          properties:
            amount:
              allOf:
              - description: The amount returned from this account in the minor currency unit (e.g. 100 cents for 1 EUR).
              - $ref: '#/components/schemas/AmountMinor'
    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
      - direction
      properties:
        field:
          description: The field to sort by. Each field available can only be used once in the list.
          type: string
        direction:
          description: The sort direction
          type: string
          enum:
          - ascending
          - descending
    BaseRefundPaymentResponse:
      type: object
      required:
      - id
      - type
      - status
      - reference
      - created_at
      - updated_at
      properties:
        id:
          $ref: '#/components/schemas/RefundId'
        type:
          $ref: '#/components/schemas/RefundType'
        status:
          $ref: '#/components/schemas/RefundStatus'
          const: initiated
        reference:
          $ref: '#/components/schemas/Reference'
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
    ShortString:
      type: string
      minLength: 1
      maxLength: 50
    BasePaymentMethodHint:
      allOf:
      - $ref: '#/components/schemas/PaymentMethodBase'
      - required:
        - display_hint
        properties:
          display_hint:
            $ref: '#/components/schemas/PaymentMethodDisplayHint'
    PaymentAuthentication:
      description: Information about the authentication performed for the payment if any.
      type: object
      required:
      - type
      - status
      properties:
        type:
          description: The type of authentication performed for the payment.
          type: string
          enum:
          - 3ds
        status:
          description: 'The status of the authentication.


            - `succeeded`: the authentication was successful.

            - `failed`: the authentication failed.

            '
          type: string
          enum:
          - succeeded
          - failed
        result:
          description: The 3DS authentication result.
          type: object
          required:
          - code
          - eci
          properties:
            code:
              description: The 3DS authentication result code.
              type: string
              minLength: 1
              maxLength: 1
              enum:
              - Y
              - A
              - N
              - U
              - R
            eci:
              description: The Electronic Commerce Indicator (ECI) value for the authentication.
              type: string
              minLength: 2
              maxLength: 2
              enum:
              - '05'
              - '06'
              - '07'
              - '01'
              - '02'
              - '03'
    PaymentOrigin:
      description: The origin of the payment creation.
      allOf:
      - $ref: '#/components/schemas/PaymentOriginApi'
      - $ref: '#/components/schemas/PaymentOriginCheckout'
      discriminator:
        pr

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