# Find all Payments

`GET /v2/payments`

Core API v2, Payments.

Retrieve a paginated list of Payments

**Authentication:** Send `Authorization: Bearer <token>`. To authenticate, generate a Secret API Key from your ODUS Dashboard and include it in the `Authorization` header as follows: `Authorization: Bearer <YOUR_SECRET_API_KEY>`

## Parameters

### Query parameters

- `limit` (number): Number of items per page. Defaults to 10, capped at 100. Send 0 to return no items, which is how you ask for "withTotal"'s count without fetching a page you do not need.
- `cursor` (string): Opaque cursor from a previous response ("nextCursor" or "prevCursor"). Send it back with the same "sortBy" and "sortDirection" — the cursor encodes them and a request that disagrees is rejected. "limit" may change between pages and simply changes the page size. Omit "cursor" for the first page.
- `withTotal` (boolean): Set to true to also return how many items match the filters, as "totalCount" in the response's pagination. The count ignores "cursor", so it does not change as you page — fetch it once per set of filters rather than on every page. Counting stops at 10000, above which "totalCountIsExact" is false. Omit this parameter to skip the count entirely.
- `sortDirection` (string): Sort direction. Defaults to ASC. One of `ASC`, `DESC`, `asc`, `desc`.
- `sortBy` (string): Field to sort by. Defaults to createdAt. One of `id`, `createdAt`, `updatedAt`, `amount`, `status`, `currency`.
- `id` (filter): Send as `id[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `createdAt` (filter): Send as `createdAt[<operator>]=<value>`. Operators: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`.
- `updatedAt` (filter): Send as `updatedAt[<operator>]=<value>`. Operators: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`.
- `amount` (filter): Send as `amount[<operator>]=<value>`. Operators: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`.
- `status` (filter): Send as `status[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `displayStatus` (filter): Send as `displayStatus[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `currency` (filter): Send as `currency[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `amountCaptured` (filter): Send as `amountCaptured[<operator>]=<value>`. Operators: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`.
- `amountReversed` (filter): Send as `amountReversed[<operator>]=<value>`. Operators: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`.
- `captureMethod` (filter): Send as `captureMethod[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `captureDelay` (filter): Send as `captureDelay[<operator>]=<value>`. Operators: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`.
- `captureAt` (filter): Send as `captureAt[<operator>]=<value>`. Operators: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`.
- `statementDescriptor` (filter): Send as `statementDescriptor[<operator>]=<value>`. Operators: `eq`, `ne`, `like`, `ilike`, `in`, `nin`.
- `isCaptured` (filter): Send as `isCaptured[<operator>]=<value>`. Operators: `eq`, `ne`.
- `isReversed` (filter): Send as `isReversed[<operator>]=<value>`. Operators: `eq`, `ne`.
- `isFullyReversed` (filter): Send as `isFullyReversed[<operator>]=<value>`. Operators: `eq`, `ne`.
- `isChargebacked` (filter): Send as `isChargebacked[<operator>]=<value>`. Operators: `eq`, `ne`.
- `isRedirectRequired` (filter): Send as `isRedirectRequired[<operator>]=<value>`. Operators: `eq`, `ne`.
- `initiator` (filter): Send as `initiator[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `offSessionType` (filter): Send as `offSessionType[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `latestTransaction` (filter): Send as `latestTransaction[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `latestTransaction.processorId` (filter): Send as `latestTransaction.processorId[<operator>]=<value>`. Operators: `eq`, `in`.
- `latestTransaction.outcome.authCode` (filter): Send as `latestTransaction.outcome.authCode[<operator>]=<value>`. Operators: `eq`, `in`.
- `latestTransaction.gatewayProfile.id` (filter): Send as `latestTransaction.gatewayProfile.id[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `latestTransaction.gatewayProfile.title` (filter): Send as `latestTransaction.gatewayProfile.title[<operator>]=<value>`. Operators: `eq`, `ne`, `like`, `ilike`, `in`, `nin`.
- `customer` (filter): Send as `customer[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `customer.email` (filter): Send as `customer.email[<operator>]=<value>`. Operators: `eq`, `ne`, `like`, `ilike`, `in`, `nin`.
- `paymentMethod` (filter): Send as `paymentMethod[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `paymentMethod.type` (filter): Send as `paymentMethod.type[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `paymentMethod.card.lastFour` (filter): Send as `paymentMethod.card.lastFour[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `paymentMethod.card.bin` (filter): Send as `paymentMethod.card.bin[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`, `gte`, `lte`.
- `paymentMethod.card.brand` (filter): Send as `paymentMethod.card.brand[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `paymentMethod.card.expYear` (filter): Send as `paymentMethod.card.expYear[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `paymentMethod.card.expMonth` (filter): Send as `paymentMethod.card.expMonth[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `paymentMethodOptions.card.gatewayProfile` (filter): Send as `paymentMethodOptions.card.gatewayProfile[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `paymentMethodOptions.card.cascade` (filter): Send as `paymentMethodOptions.card.cascade[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `paymentMethodOptions.card.mode` (filter): Send as `paymentMethodOptions.card.mode[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `paymentMethodOptions.paypal.gatewayProfile` (filter): Send as `paymentMethodOptions.paypal.gatewayProfile[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `product.name` (filter): Send as `product.name[<operator>]=<value>`. Operators: `eq`, `ne`, `like`, `ilike`, `in`, `nin`.
- `product` (filter): Send as `product[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.
- `metadata` (filter): Send as `metadata[<operator>]=<value>`. Operators: `eq`, `ne`, `like`, `in`, `nin`.
- `latestDeclineType` (filter): Send as `latestDeclineType[<operator>]=<value>`. Operators: `eq`, `ne`, `in`, `nin`.

## Responses

### `200`

OK

Type: object.

- `pagination` (object (CursorPageMetaDTO))
  - `mode` (string, required): Discriminator identifying cursor-based pagination metadata. One of `cursor`. Default `cursor`. Example: `cursor`.
  - `pageSize` (number, required): Number of items per page. Minimum 0. Example: `10`.
  - `hasNextPage` (boolean, required): Whether a next page exists. Example: `false`.
  - `hasPreviousPage` (boolean, required): Whether a previous page exists. Example: `true`.
  - `nextCursor` (string, required, nullable): Opaque cursor for fetching the next page. Null when there is no next page. Example: `eyJzIjoiY3JlYXRlZEF0IiwiZCI6ImFzYyIsIm4iOiJmb3J3YXJkIn0`.
  - `prevCursor` (string, required, nullable): Opaque cursor for fetching the previous page. Null when there is no previous page. Example: `eyJzIjoiY3JlYXRlZEF0IiwiZCI6ImFzYyIsIm4iOiJiYWNrd2FyZCJ9`.
  - `totalCount` (number): Number of items matching this request's filters, ignoring the cursor. Present only when the request sets "withTotal". Counting stops at 10000; read "totalCountIsExact" before showing this as a total. Example: `139`.
  - `totalCountIsExact` (boolean): Whether "totalCount" is the exact number of matching items. False when more items match than counting reaches, in which case "totalCount" holds that limit and should be shown as a lower bound, for example "over 10,000". Present only when the request sets "withTotal". Example: `true`.
- `data` (array of object (PaymentPartialDTO))
  - `createdAt` (string (date-time), required): The date and time when the entity was created. Example: `2024-02-18T12:00:00Z`.
  - `updatedAt` (string (date-time), required, nullable): The date and time when the entity was last updated. Example: `2024-02-21T12:15:00Z`.
  - `id` (string, required): ID of the payment. Example: `pay_2QC7PqoUeOxQEWscJJt6B3PkvyL`.
  - `status` (string, required): Status of the payment. One of `open`, `requires_action`, `succeeded`, `cancelled`. Example: `succeeded`.
  - `displayStatus` (string, required): A user-friendly aggregate status for display purposes. One of `retrying`, `chargeback`, `reversed`, `cancelled`, `partially_reversed`, `succeeded`, `uncaptured`, `incomplete`, `failed`, `unattempted`. Example: `succeeded`.
  - `amount` (number, required): Payment amount in minor currency, e.g. 1500 for 15.00 USD. Example: `1500`.
  - `note` (string, nullable): Optional note for the payment. Only available from the dashboard or the API using a secret key. Example: `This is a note for the payment`.
  - `currency` (string, required): Currency of the payment. One of `usd`, `eur`, `gbp`, `cad`, `aud`, `pln`, `czk`, `sek`, `dkk`. Example: `usd`.
  - `amountReversed` (number, required): Amount reversed for the payment. Example: `0`.
  - `amountCaptured` (number, required): Amount captured for the payment. Example: `1500`.
  - `isCaptured` (boolean, required): Indicates if the payment has been captured. Example: `true`.
  - `isRedirectRequired` (boolean, required): Indicates if a redirect is required for the payment. Example: `false`.
  - `isReversed` (boolean, required): Indicates if the payment has been partially reversed. Example: `false`.
  - `isFullyReversed` (boolean, required): Indicates if the payment has been fully reversed. Example: `false`.
  - `isRecovered` (boolean, required): Whether the payment recovered after one or more retry attempts and eventually succeeded. Example: `true`.
  - `isRetrying` (boolean, required): Whether the payment is currently in a retrying state after a failed attempt. Example: `true`.
  - `isChargebacked` (boolean): Whether a chargeback has been recorded for this payment. Only available from the dashboard or the API using a secret key. Example: `false`.
  - `chargebackRecordedAt` (string (date-time), nullable): The timestamp when a chargeback was recorded for this payment. Only available from the dashboard or the API using a secret key. Example: `2026-01-15T10:30:00.000Z`.
  - `authorizedAt` (string (date-time), nullable): The timestamp when an authorization was recorded for this payment. Only available from the dashboard or the API using a secret key. Example: `2026-01-15T10:30:00.000Z`.
  - `capturedAt` (string (date-time), nullable): The timestamp when a capture was recorded for this payment. Only available from the dashboard or the API using a secret key. Example: `2026-01-15T10:35:00.000Z`.
  - `reversedAt` (string (date-time), nullable): The timestamp when a reversal was recorded for this payment. Only available from the dashboard or the API using a secret key. Example: `2026-01-20T14:00:00.000Z`.
  - `initiator` (string, required): The initiator of the payment, indicating who initiated the payment. One of `customer`, `merchant`. Example: `customer`.
  - `offSessionType` (string, required, nullable): The off-session type of the payment. Only present for merchant-initiated payments. One of `recurring`, `unscheduled`. Example: `recurring`.
  - `statementDescriptor` (string, nullable): Statement to be shown on bank statement. Only available from the dashboard or the API using a secret key. Example: `Some product`.
  - `statementDescriptorSuffix` (string, nullable): Statement descriptor suffix, appended to your account's descriptor by gateways that support a per-payment suffix. Only available from the dashboard or the API using a secret key. Example: `PRO PLAN`.
  - `latestMessage` (string, required, nullable): Latest message available for the payment. This message is non-sensitive and may be displayed to the customer. Example: `Payment was declined by the issuing bank.`.
  - `latestDeclineType` (string, nullable): The decline type for the latest transaction. Only available from the dashboard or the API using a secret key. One of `soft_decline`, `hard_decline`, `not_attempted`. Example: `hard_decline`.
  - `action` (object, required, nullable): The action that needs to be taken for this payment, e.g. redirecting the customer to a payment gateway.
    - `redirectUrl` (string, required): URL to redirect the customer to for completing payment authentication (e.g., 3D Secure) Example: `https://example.com`.
  - `checkoutKey` (string): The checkout key for this payment, used for client-side payment processing by the Checkout SDK. Example: `ck_live_abc123def456`.
  - `metadata` (object, required, nullable): Metadata for the payment.
  - `attribution` (object, required, nullable): Attribution data for marketing tracking, including UTM parameters and platform click IDs.
    - `utm_source` (string, required, nullable): Traffic source (platform/site) Example: `google`.
    - `utm_medium` (string, required, nullable): Marketing medium/channel. Example: `cpc`.
    - `utm_campaign` (string, required, nullable): Campaign name/identifier. Example: `summer_sale`.
    - `utm_term` (string, required, nullable): Paid search keywords. Example: `running+shoes`.
    - `utm_content` (string, required, nullable): Differentiates ads/links. Example: `banner_a`.
    - `utm_id` (string, required, nullable): Used in URLs to assign a unique identifier or numerical ID to a specific marketing campaign. Example: `utm_123`.
    - `utm_contentid` (string, required, nullable): Content ID for tracking. Example: `content_123`.
    - `ref_id` (string, required, nullable): Reference ID for tracking. Example: `ref_abc`.
    - `fbclid` (string, required, nullable): Facebook click identifier. Example: `fbclid_abc`.
    - `cmpid` (string, required, nullable): Campaign ID. Example: `cmp_123`.
    - `sub1` (string, required, nullable): Sub-tracking parameter 1.
    - `sub2` (string, required, nullable): Sub-tracking parameter 2.
    - `sub3` (string, required, nullable): Sub-tracking parameter 3.
    - `sub4` (string, required, nullable): Sub-tracking parameter 4.
    - `sub5` (string, required, nullable): Sub-tracking parameter 5.
    - `sub6` (string, required, nullable): Sub-tracking parameter 6.
    - `sub7` (string, required, nullable): Sub-tracking parameter 7.
    - `sub8` (string, required, nullable): Sub-tracking parameter 8.
    - `sub9` (string, required, nullable): Sub-tracking parameter 9.
    - `sub10` (string, required, nullable): Sub-tracking parameter 10.
  - `retry` (object, nullable): Retry details for this payment.
    - `attempts` (number, required): The number of retry attempts made. Example: `2`.
    - `nextAt` (string (date-time), required, nullable): The date when the next retry attempt is scheduled.
    - `nextAmount` (number, required, nullable): The amount to be charged for the next retry attempt. Example: `999`.
  - `customer` (object, required, nullable): Customer associated with the payment.
    - `createdAt` (string (date-time), required): The date and time when the entity was created. Example: `2024-02-18T12:00:00Z`.
    - `updatedAt` (string (date-time), required, nullable): The date and time when the entity was last updated. Example: `2024-02-21T12:15:00Z`.
    - `metadata` (map of string to string, nullable): Metadata used by merchants to store additional information about the entity.
    - `id` (string, required): The ID of the customer. Example: `cus_2QC7PqoUeOxQEWscJJt6B3PkvyL`.
    - `email` (string, required): The email of the customer. Example: `user@gmail.com`.
    - `name` (string, required, nullable): The name of the customer. Example: `John Doe`.
    - `phoneNumber` (string, required, nullable): The phone number of the customer. Numbers submitted since normalisation began are stored in E.164 format (`+` followed by digits) when they could be validated; any other number is returned as it was sent. Example: `+12015550123`.
    - `dateOfBirth` (string (date), required, nullable): The date of birth of the customer. Pattern `^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$`. Example: `2020-01-01`.
    - `gender` (string, required, nullable): The gender of the customer. One of `male`, `female`, `other`. Example: `male`.
    - `restrictMit` (boolean): Whether the customer is restricted from making merchant-initiated payments. Only available from the dashboard or the API using a secret key. Example: `false`.
    - `restrictCit` (boolean): Whether the customer is restricted from making customer-initiated payments. Only available from the dashboard or the API using a secret key. Example: `false`.
    - `restrictReason` (string, nullable): Reason for restricting the customer. Only available from the dashboard or the API using a secret key. Example: `Customer restricted due to suspicious activity`.
    - `isRestricted` (boolean): Whether the customer has at least one restriction applied (either `restrictMit` or `restrictCit`). Only available from the dashboard or the API using a secret key. Example: `true`.
    - `billingAddress` (object, required): The billing address of the customer.
      - `firstName` (string, required, nullable)
      - `lastName` (string, required, nullable)
      - `companyName` (string, required, nullable)
      - `line1` (string, required, nullable)
      - `line2` (string, required, nullable)
      - `city` (string, required, nullable)
      - `state` (string, required, nullable)
      - `postalCode` (string, required, nullable)
      - `country` (string, required, nullable)
    - `shippingAddress` (object, required): The shipping address of the customer.
      - `firstName` (string, required, nullable)
      - `lastName` (string, required, nullable)
      - `companyName` (string, required, nullable)
      - `line1` (string, required, nullable)
      - `line2` (string, required, nullable)
      - `city` (string, required, nullable)
      - `state` (string, required, nullable)
      - `postalCode` (string, required, nullable)
      - `country` (string, required, nullable)
  - `paymentMethod` (object, nullable): Payment method used for the payment. Only available from the dashboard or the API using a secret key.
    - `createdAt` (string (date-time), required): The date and time when the entity was created. Example: `2024-02-18T12:00:00Z`.
    - `updatedAt` (string (date-time), required, nullable): The date and time when the entity was last updated. Example: `2024-02-21T12:15:00Z`.
    - `metadata` (map of string to string, required, nullable): Metadata used by merchants to store additional information about the entity.
    - `id` (string, required): The ID of the payment method. Example: `pm_2QC7PqoUeOxQEWscJJt6B3PkvyL`.
    - `type` (string, required): The type of the payment method. One of `card`, `paypal`, `applePay`. Example: `card`.
    - `customer` (string, required, nullable): The ID of the customer who this payment method belongs to. Example: `cus_2QC7PqoUeOxQEWscJJt6B3PkvyL`.
    - `isDefault` (boolean, required): Whether the payment method is the default one for the customer. Example: `false`.
    - `card` (object, required, nullable): The card details of the payment method. Set only when `type` is `card`.
      - `brand` (string, required, nullable): The brand of the card. One of `visa`, `mastercard`, `amex`, `discover`. Example: `amex`.
      - `lastFour` (string, required): The last four digits of the card. Example: `1234`.
      - `bin` (string, required): The card BIN/IIN (Bank/Issuer Identification Number) - 4 to 8 digits. Example: `123456`.
      - `expMonth` (string, required, nullable): The expiration month of the card (in MM format) Example: `12`.
      - `expYear` (string, required, nullable): The expiration year of the card (in YYYY format) Example: `2025`.
      - `cardholderName` (string, required, nullable): The name on the card. Example: `John Doe`.
    - `applePay` (object, required, nullable): The Apple Pay details of the payment method. Set only when `type` is `applePay`.
      - `displayName` (string, required, nullable): The display name of the Apple Pay payment method. Example: `MasterCard 1234`.
  - `latestTransaction` (object, required, nullable): The latest transaction for this payment. Only available from the dashboard or the API using a secret key.
    - `createdAt` (string (date-time), required): The date and time when the entity was created. Example: `2024-02-18T12:00:00Z`.
    - `updatedAt` (string (date-time), required, nullable): The date and time when the entity was last updated. Example: `2024-02-21T12:15:00Z`.
    - `metadata` (map of string to string, nullable): Metadata used by merchants to store additional information about the entity.
    - `id` (string, required): The unique identifier of the transaction.
    - `status` (string, required): Current status of the transaction. One of `pending`, `confirmation_requested`, `authorized`, `failed`. Example: `authorized`.
    - `authentication` (string, required): How far the transaction got through customer authentication — 3-D Secure for a card, the equivalent payer-action step for a redirect-based method. `not_requested` when the gateway never asked for it, so an absent challenge is distinguishable from a failed one. One of `not_requested`, `pending`, `succeeded`, `failed`. Example: `not_requested`.
    - `amount` (number, required): Transaction amount in minor currency units (e.g., 1500 for $15.00) Example: `1500`.
    - `initiator` (string, required): The initiator of the transaction. One of `customer`, `merchant`. Example: `customer`.
    - `statementDescriptor` (string, nullable): The statement descriptor that will appear on the customer's statement. Only available from the dashboard or the API using a secret key. Example: `Hello World`.
    - `statementDescriptorSuffix` (string, nullable): The statement descriptor suffix, appended to your account's descriptor by gateways that support a per-payment suffix. Only available from the dashboard or the API using a secret key. Example: `PRO PLAN`.
    - `amountReversed` (number, required): The amount that has been reversed by refunds or voids. Example: `0`.
    - `amountCaptured` (number, required): The amount that has been captured. Example: `1500`.
    - `isReversed` (boolean, required): Whether the transaction has been reversed. Example: `false`.
    - `isFullyReversed` (boolean, required): Whether the transaction has been fully reversed. Example: `false`.
    - `isCaptureFailed` (boolean, required): Whether the capture operation failed. Example: `false`.
    - `isReverseFailed` (boolean, required): Whether the reverse operation failed. Example: `false`.
    - `isRefundFailed` (boolean, required): Whether the refund operation failed. Example: `false`.
    - `isVoidFailed` (boolean, required): Whether the void operation failed. Example: `false`.
    - `isCaptured` (boolean, required): Whether the transaction has been captured. Example: `true`.
    - `isChargebacked` (boolean, required): Whether the transaction has a chargeback recorded. Example: `false`.
    - `chargebackRecordedAt` (string (date-time), nullable): The timestamp when a chargeback was recorded for this transaction. Example: `2026-01-15T10:30:00.000Z`.
    - `captureMethod` (string, required): Capture method used for this transaction. One of `automatic`, `automaticDelayed`, `manual`. Example: `automatic`.
    - `captureDelay` (number, required, nullable): Delay in days before capture occurs. Only applicable for 'automaticDelayed' capture method. Example: `0`.
    - `currency` (string, required): Currency of the transaction. One of `usd`, `eur`, `gbp`, `cad`, `aud`, `pln`, `czk`, `sek`, `dkk`. Example: `usd`.
    - `processorId` (string, nullable): The external transaction ID from the payment processor. Only available from the dashboard or the API using a secret key. Example: `ch_1J8lZpJ9j1bSv2Jr6sVjXZ1N`.
    - `outcome` (object, nullable): Outcome details from the gateway operation. Only available from the dashboard or the API using a secret key.
      - `status` (string, required): One of `success`, `partial`, `failure`.
      - `errorCode` (string, required, nullable): One of `internal_error`, `not_supported`, `generic_decline`, `insufficient_funds`, `authentication_failed`, `authentication_cancelled`, `authentication_unavailable`, `cancelled`, `invalid_card_details`, `expired_card`, `authentication_required`, `transaction_not_permitted`, `generic_issuer_error`, `generic_processor_error`, `processor_rate_limited`, `processor_timeout`, `fraud_suspected`, `card_restricted`, `authentication_rejected`, `payment_method_unusable`, `generic_hard_decline`, `already_captured`, `merchant_account_restricted`, `merchant_configuration_error`, `invalid_request`, `blocked_by_policy`, `order_not_permitted`, `stored_credential_revoked`.
      - `errorMessage` (string, required, nullable)
      - `safeErrorMessage` (string, required, nullable)
      - `declineType` (string, required, nullable): One of `soft_decline`, `hard_decline`, `not_attempted`.
      - `retryStrategy` (string, required, nullable): One of `never_retry`, `retry_with_new_payment_method`, `retry_after_delay`, `retry_immediately`.
      - `specialCode` (string, required, nullable): One of `confirmation_requested`.
      - `authCode` (string, required, nullable)
      - `processorCode` (string, required, nullable)
      - `processorMessage` (string, required, nullable)
    - `gatewayProfile` (object): Gateway profile used for this transaction. Only available from the dashboard or the API using a secret key.
      - `createdAt` (string (date-time), required): The date and time when the entity was created. Example: `2024-02-18T12:00:00Z`.
      - `updatedAt` (string (date-time), required, nullable): The date and time when the entity was last updated. Example: `2024-02-21T12:15:00Z`.
      - `metadata` (map of string to string, required, nullable): Metadata used by merchants to store additional information about the entity.
      - `id` (string, required): ID of the Gateway Profile. Example: `gwp_2QC7PqoUeOxQEWscJJt6B3PkvyL`.
      - `active` (boolean, required): Whether the gateway profile is active and available for processing. Example: `true`.
      - `title` (string, required): Title of the Gateway Profile. Example: `Profile #1`.
      - `integration` (string, required): Associated Gateway Integration. One of `stripe`, `adyen`, `checkout`, `paypal`. Example: `stripe`.
      - `environment` (string, required, nullable): The environment the gateway profile operates in. One of `live`, `test`. Example: `test`.
      - `supportedPaymentMethods` (array of string, required): Supported payment methods for the Gateway Profile. Each item: One of `card`, `paypal`, `applePay`.
    - `execution` (string, nullable): The cascade execution associated with this transaction. Only available from the dashboard or the API using a secret key.
    - `paymentMethod` (object, required): The payment method used for this transaction.
      - `createdAt` (string (date-time), required): The date and time when the entity was created. Example: `2024-02-18T12:00:00Z`.
      - `updatedAt` (string (date-time), required, nullable): The date and time when the entity was last updated. Example: `2024-02-21T12:15:00Z`.
      - `metadata` (map of string to string, nullable): Metadata used by merchants to store additional information about the entity.
      - `id` (string, required): The ID of the payment method. Example: `pm_2QC7PqoUeOxQEWscJJt6B3PkvyL`.
      - `type` (string, required): The type of the payment method. One of `card`, `paypal`, `applePay`. Example: `card`.
      - `customer` (string, required, nullable): The ID of the customer who this payment method belongs to. Example: `cus_2QC7PqoUeOxQEWscJJt6B3PkvyL`.
      - `isDefault` (boolean, required): Whether the payment method is the default one for the customer. Example: `false`.
      - `card` (object, required, nullable): The card details of the payment method. Set only when `type` is `card`.
        - `brand` (string, required, nullable): The brand of the card. One of `visa`, `mastercard`, `amex`, `discover`. Example: `amex`.
        - `lastFour` (string, required): The last four digits of the card. Example: `1234`.
        - `bin` (string, required): The card BIN/IIN (Bank/Issuer Identification Number) - 4 to 8 digits. Example: `123456`.
        - `expMonth` (string, required, nullable): The expiration month of the card (in MM format) Example: `12`.
        - `expYear` (string, required, nullable): The expiration year of the card (in YYYY format) Example: `2025`.
        - `cardholderName` (string, required, nullable): The name on the card. Example: `John Doe`.
      - `applePay` (object, required, nullable): The Apple Pay details of the payment method. Set only when `type` is `applePay`.
        - `displayName` (string, required, nullable): The display name of the Apple Pay payment method. Example: `MasterCard 1234`.
    - `customer` (string, required, nullable): The ID of the customer associated with this transaction.

### `202`

The merchant is entitled but its environment is not provisioned yet. Provisioning has been kicked off (exactly once) and is in progress; retry the request — it succeeds once the environment is ready. Returned only for identity-token (dashboard) requests bound to a merchant, not for secret-key API calls; any such endpoint can return it while provisioning is underway.

Type: object (ProvisioningInProgress).

- `status` (string, required): Signals the merchant environment is still being provisioned. One of `provisioning`.
- `merchantAccountId` (string, required): The merchant account whose environment is being provisioned. Example: `dAI3aa87ROOeupeBCjNSKCOBOisBCYjB`.

### Errors

- `400`: The request was rejected. `type` is `invalid_request_error` when the request itself is at fault — `errors` then lists every problem found, with field-attributable entries prefixed by the field’s path; or `invalid_state_error` when the request was well-formed but the resource is not in a state that allows it.
- `401`: No API key was supplied, or the key is not valid. `type` is `authentication_error`.
- `403`: The API key is valid but lacks the permission this operation requires. `type` is `permission_error`.
- `429`: Too many requests. A limit applies per operation; requests to other operations are unaffected. `type` is `rate_limit_error`. Use the `Retry-After-global` header to know when to retry.
- `500`: The request could not be completed because of an unexpected error. `type` is `api_error`.
- `503`: The request could not be served right now: the API is temporarily at capacity, or a dependency needed to authorize the request is unavailable — the auth service that verifies credentials, or the entitlement lookup behind it. `type` is `api_error`. It is raised before the operation runs, so the request had no effect, and unlike a plain 500 the condition is transient: retry with backoff.
- `504`: The request exceeded the processing time limit and was abandoned. `type` is `api_error` and `code` is `timeout` — unlike a plain 500 the request may still have taken effect, so retry with the same idempotency key rather than blindly.

Every error response has the same body: see [Errors](https://docs.odus.com/docs/guides/api-features/errors.md).

---

Generated from the Core API v2 OpenAPI document, https://api.odus.com/openapi.v2.json. Interactive page: https://docs.odus.com/docs/api/core/v2/payment-controller-find-all-paginated
