GetPaid Accounts API

Getpaid accounts created for sellers so they can start accepting payments and receiving payouts.

OpenAPI Specification

getpaid-accounts-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Getpaid Accounts 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: Accounts
  description: Getpaid accounts created for sellers so they can start accepting payments and receiving payouts.
paths:
  /v2/accounts/query:
    post:
      tags:
      - Accounts
      summary: Query accounts
      description: 'Query accounts filtering, sorting and paginating results.


        See [Queries](/operate/queries) for more examples and details about pagination and common query patterns.

        '
      operationId: query_accounts
      security:
      - OAuth:
        - accounts:read
      parameters:
      - $ref: '#/components/parameters/GetpaidIdempotencyKey'
        required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueryAccountsRequest'
            examples:
              QueryAccounts:
                $ref: '#/components/examples/QueryAccounts'
        required: true
      responses:
        '200':
          description: OK
          headers:
            Getpaid-Trace-Id:
              $ref: '#/components/headers/GetpaidTraceId'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueryAccountsResponse'
              examples:
                FilteredAccounts:
                  $ref: '#/components/examples/FilteredAccounts'
        '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/accounts/{account_id}/themes:
    get:
      tags:
      - Accounts
      summary: Get account themes
      description: 'Retrieve the themes configured for an account.


        Sellers can retrieve themes they own. Platforms can retrieve themes for sellers they own.

        '
      operationId: get_account_themes
      security:
      - OAuth:
        - accounts:read
      parameters:
      - name: account_id
        in: path
        description: The ID of the account whose themes should be retrieved.
        required: true
        schema:
          $ref: '#/components/schemas/AccountId'
      responses:
        '200':
          description: OK
          headers:
            Getpaid-Trace-Id:
              $ref: '#/components/headers/GetpaidTraceId'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetThemesResponse'
              examples:
                AccountThemes:
                  $ref: '#/components/examples/AccountThemes'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
        '429':
          $ref: '#/components/responses/429TooManyRequests'
        '500':
          $ref: '#/components/responses/500InternalServerError'
components:
  examples:
    FilteredAccounts:
      summary: Filtered accounts
      value:
        type: accounts
        cursor: Q3VyaW9zaXR5IEtpbGxlZCB0aGUgQ2F0Cg==
        data:
        - id: acc_44678r08jtm8zbt227tzhc4nw5
          legal_name: Garage Deutschland AG
          country: DE
          created_at: '2026-01-16T08:02:55.339Z'
        - id: acc_5y789s19kum9act338uaic5ox6
          legal_name: Titan Auto Parts GmbH
          country: DE
          created_at: '2026-01-04T11:28:17.144Z'
    AccountThemes:
      summary: Account themes
      value:
        themes:
        - id: thm_4jkgtzffbf9pzem7dgfhdeztwa
          name: Default Titan Auto Parts GmbH
          settings:
            logo:
              id: doc_4wt0wrfqwz0vkatave0fkjg046
              content_type: image/png
              url: https://example.com/logo.png
            business:
              legal_name: Titan Auto Parts GmbH
              trading_name: Titan Auto
            colors:
              primary: '#05495c'
              secondary: '#e07b7b'
          is_default: true
          created_at: '2026-02-03T10:00:00.000Z'
          updated_at: '2026-02-03T10:00:00.000Z'
    QueryAccounts:
      summary: Query accounts
      value:
        type: accounts
        filters:
          country: DE
          legal_name: Garage
        sorts:
        - field: created_at
          direction: descending
  responses:
    422InvalidParameters:
      description: Invalid Parameters
      headers:
        Getpaid-Trace-Id:
          $ref: '#/components/headers/GetpaidTraceId'
      content:
        application/problem+json:
          schema:
            allOf:
            - $ref: '#/components/schemas/ProblemDetailsBase'
            - type: object
              required:
              - errors
              properties:
                errors:
                  type: object
                  description: The JSON path of any request body fields or header names that are invalid with a description of the error
                  additionalProperties:
                    type: array
                    items:
                      type: string
                  example:
                    currency:
                    - invalid_option
                type:
                  example: https://docs.getpaid.io/integration/api/responses#422---invalid-parameters
                title:
                  example: Invalid Parameters
                status:
                  example: 422
    404NotFound:
      description: Not Found
      headers:
        Getpaid-Trace-Id:
          $ref: '#/components/headers/GetpaidTraceId'
      content:
        application/problem+json:
          schema:
            allOf:
            - $ref: '#/components/schemas/ProblemDetailsBase'
            - type: object
              properties:
                type:
                  example: https://docs.getpaid.io/integration/api/responses#404---not-found
                title:
                  example: Not Found
                status:
                  example: 404
    500InternalServerError:
      description: Internal Server Error
      headers:
        Getpaid-Trace-Id:
          $ref: '#/components/headers/GetpaidTraceId'
    429TooManyRequests:
      description: Too Many Requests
      headers:
        Getpaid-Trace-Id:
          $ref: '#/components/headers/GetpaidTraceId'
    401Unauthorized:
      description: Unauthorized
      headers:
        Getpaid-Trace-Id:
          $ref: '#/components/headers/GetpaidTraceId'
    400BadRequest:
      description: Bad Request
      headers:
        Getpaid-Trace-Id:
          $ref: '#/components/headers/GetpaidTraceId'
  schemas:
    QueryAccountsRequest:
      allOf:
      - $ref: '#/components/schemas/BaseQueryRequest'
      - required:
        - type
        properties:
          type:
            type: string
            enum:
            - accounts
          filters:
            $ref: '#/components/schemas/AccountsFiltersRequest'
          sorts:
            $ref: '#/components/schemas/AccountsSortsRequest'
    PaginationData:
      description: The list of queried elements.
      type: array
      items:
        type: object
    AccountId:
      allOf:
      - $ref: '#/components/schemas/Id'
      - description: The unique identifier of the account.
        example: acc_44678r08jtm8zbt227tzhc4nw5
    AccountsFiltersRequest:
      description: Filtering accounts.
      type: object
      properties:
        id:
          allOf:
          - description: The account identifier to filter by using an exact match operation.
          - $ref: '#/components/schemas/AccountId'
        legal_name:
          description: The account legal name to filter by using a contains operation.
          type: string
          maxLength: 255
        country:
          allOf:
          - description: The country to filter by using an exact match operation.
          - $ref: '#/components/schemas/Country'
    MediumString:
      type: string
      minLength: 1
      maxLength: 250
    PaginationFirst:
      description: Pagination. The number of elements that will be retrieved.
      type: integer
      default: 20
      minimum: 1
      maximum: 100
    ThemeId:
      allOf:
      - $ref: '#/components/schemas/Id'
      - description: The unique identifier of the theme.
        example: thm_4jkgtzffbf9pzem7dgfhdeztwa
    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
    AccountLegalName:
      allOf:
      - description: The legal name of the account.
      - $ref: '#/components/schemas/MediumString'
    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'
    AccountThemeSettings:
      type: object
      required:
      - logo
      - business
      - colors
      properties:
        logo:
          $ref: '#/components/schemas/ThemeAsset'
        icon:
          $ref: '#/components/schemas/ThemeAsset'
        business:
          $ref: '#/components/schemas/ThemeBusinessSettings'
        colors:
          $ref: '#/components/schemas/ThemeColorSettings'
        font:
          $ref: '#/components/schemas/ThemeFontSettings'
    PaginatedResponse:
      type: object
      required:
      - data
      properties:
        cursor:
          $ref: '#/components/schemas/PaginationCursor'
        data:
          $ref: '#/components/schemas/PaginationData'
    ThemeAsset:
      type: object
      required:
      - id
      - content_type
      - url
      properties:
        id:
          $ref: '#/components/schemas/DocumentId'
        content_type:
          type: string
          description: The media type of the theme asset.
          example: image/png
        url:
          allOf:
          - $ref: '#/components/schemas/Url'
          - description: The public URL of the theme asset.
            example: https://example.com/logo.png
    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'
    ThemeBusinessSettings:
      type: object
      required:
      - legal_name
      properties:
        legal_name:
          allOf:
          - $ref: '#/components/schemas/MediumString'
          - description: The legal business name displayed by the theme.
        trading_name:
          allOf:
          - $ref: '#/components/schemas/MediumString'
          - description: The trading name displayed by the theme.
    CreatedAt:
      allOf:
      - description: When the resource was created.
      - $ref: '#/components/schemas/DateTime'
    UpdatedAt:
      allOf:
      - description: When the resource was last updated.
      - $ref: '#/components/schemas/DateTime'
    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==
    ThemeFontSettings:
      type: object
      properties:
        family:
          allOf:
          - $ref: '#/components/schemas/MediumString'
          - description: The font family used by the theme.
        size:
          type: string
          description: The base font size used by the theme.
          example: 0.875rem
        external_url:
          allOf:
          - $ref: '#/components/schemas/Url'
          - description: The URL of the external font stylesheet used by the theme.
            example: https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap
    PaginationAfter:
      description: Pagination. The `cursor` from next page will be retrieved.
      type: string
      maxLength: 250
    AccountTheme:
      type: object
      required:
      - id
      - name
      - settings
      - is_default
      - created_at
      - updated_at
      properties:
        id:
          $ref: '#/components/schemas/ThemeId'
        name:
          allOf:
          - $ref: '#/components/schemas/MediumString'
          - description: The name of the theme.
        settings:
          $ref: '#/components/schemas/AccountThemeSettings'
        is_default:
          type: boolean
          description: Whether this is the default theme for the account.
        created_at:
          $ref: '#/components/schemas/CreatedAt'
        updated_at:
          $ref: '#/components/schemas/UpdatedAt'
    ThemeColorSettings:
      type: object
      required:
      - primary
      - secondary
      properties:
        primary:
          type: string
          description: The primary theme color as a hex RGB value.
          example: '#05495c'
        secondary:
          type: string
          description: The secondary theme color as a hex RGB value.
          example: '#e07b7b'
        text:
          type: string
          description: The text theme color as a hex RGB value.
          example: '#000000'
        error_text:
          type: string
          description: The error text theme color as a hex RGB value.
          example: '#b71d18'
    AccountsSortsRequest:
      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:
              - id
              - created_at
              - legal_name
              - country
    Id:
      type: string
      format: id
      minLength: 30
      maxLength: 50
    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
    GetThemesResponse:
      type: object
      required:
      - themes
      properties:
        themes:
          type: array
          description: The account themes.
          items:
            $ref: '#/components/schemas/AccountTheme'
    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
    Url:
      type: string
      format: uri
      maxLength: 1024
    DocumentId:
      allOf:
      - $ref: '#/components/schemas/Id'
      - description: The unique identifier of the document.
        example: doc_4wt0wrfqwz0vkatave0fkjg046
    BaseSortsRequest:
      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:
        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
    QueryAccountsResponse:
      allOf:
      - required:
        - type
        properties:
          type:
            type: string
            enum:
            - accounts
          cursor:
            type: string
          data:
            items:
              required:
              - id
              - legal_name
              - country
              - created_at
              properties:
                id:
                  $ref: '#/components/schemas/AccountId'
                legal_name:
                  $ref: '#/components/schemas/AccountLegalName'
                country:
                  $ref: '#/components/schemas/Country'
                created_at:
                  $ref: '#/components/schemas/CreatedAt'
      - $ref: '#/components/schemas/PaginatedResponse'
  parameters:
    GetpaidIdempotencyKey:
      name: Getpaid-Idempotency-Key
      in: header
      description: 'A unique idempotency key to allow safe retrying.

        See [Getpaid API idempotency](/integration/api/idempotency) for more details.

        '
      schema:
        type: string
        minLength: 10
        maxLength: 100
        pattern: ^[a-zA-Z0-9_-]{10,100}$
        example: 5c255194-30ec-11ed-a261-0242ac120002
  headers:
    GetpaidTraceId:
      description: The trace identifier for the request. It is a good idea to log this and provide it with any support requests
      schema:
        type: string
        example: 96ce50247f87f540bb2d86771b3728b8
  securitySchemes:
    OAuth:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth.getpaid.io/oauth/token
          scopes:
            accounts:read: Allows to read accounts and onboarding applications.
            accounts:read_write: Allows to read, create and/or operate accounts and onboarding applications.
            payments:read: Allows to read payments and checkouts.
            payments:read_write: Allows to read, create and/or operate payments and checkouts.
x-tagGroups:
- name: General
  tags:
  - Authentication
  - Documents
- name: Accept payments
  tags:
  - Checkouts
  - Payments
  - Accept payments webhooks
- name: Onboard sellers
  tags:
  - Accounts
  - Applications
  - Onboard sellers webhooks
- name: Operate
  tags:
  - Queries
  - Exports
  - Analytics
  - Operate webhooks