---
title: "List v2 payment orders (provider)"
method: GET
path: "/provider/orders"
tags: ["Provider"]
---

# List v2 payment orders (provider)

`GET /provider/orders`

Returns a paginated list of payment orders assigned to the authenticated provider, in the v2 response schema. Requires a `currency` query parameter. Supports optional `direction` (`onramp` / `offramp`), `search`, `export=csv`, `from`/`to` date filters, and `ordering` (asc/desc).

## Query parameters

- `currency` string, required
- `page` integer
- `pageSize` integer
- `status` 'initiated' | 'deposited' | 'pending' | 'fulfilling' | 'fulfilled' | 'validated' | 'settling' | 'settled' | 'cancelled' | 'refunding' | 'refunded' | 'expired'
- `ordering` 'asc' | 'desc'
- `search` string
- `export` 'csv'
- `from` string, date
- `to` string, date
- `direction` 'onramp' | 'offramp'

## Response `200`

Paginated list of orders

- object
  - `status` string
  - `message` string
  - `data` V2PaymentOrderListResponse
    - `total` integer
    - `page` integer
    - `pageSize` integer
    - `orders` V2PaymentOrderGetResponse[]
      - `id` string, uuid
      - `status` 'initiated' | 'deposited' | 'pending' | 'fulfilling' | 'fulfilled' | 'validated' | 'settling' | 'settled' | 'cancelled' | 'refunding' | 'refunded' | 'expired'
      - `orderType` 'regular' | 'otc'
      - `direction` 'offramp' | 'onramp'
      - `createdAt` string, date-time
      - `updatedAt` string, date-time
      - `amount` string
      - `amountInUsd` string
      - `amountPaid` string
      - `amountReturned` string
      - `percentSettled` string
      - `rate` string
      - `senderFee` string
      - `senderFeePercent` string
      - `transactionFee` string
      - `reference` string
      - `txHash` string
      - `providerAccount` union
        - V2CryptoProviderAccount — Returned for offramp orders — the address to send stablecoins to
          - `network` string
          - `receiveAddress` string — EVM address to send stablecoins to
          - `validUntil` string, date-time — Deadline for the stablecoin deposit
        - V2FiatProviderAccount — Returned for onramp orders — the virtual account to deposit fiat into
          - `institution` string — Institution label for the virtual account (human-readable; from provider or stored metadata).
          - `accountIdentifier` string — Account number or mobile number to send fiat to
          - `accountName` string
          - `amountToTransfer` string — Exact fiat amount the user must deposit
          - `currency` string — Fiat currency code
          - `validUntil` string, date-time — Deadline — order expires if fiat not received by this time
      - `source` union
        - V2CryptoSource
          - `type` 'crypto', required
          - `currency` string, required — Stablecoin symbol (e.g. USDT, USDC, cNGN)
          - `network` 'ethereum' | 'base' | 'bnb-smart-chain' | 'lisk' | 'scroll' | 'celo' | 'arbitrum-one' | 'polygon', required
          - `refundAddress` string, required — Wallet address for refunds if the order can't be fulfilled
        - V2FiatSource
          - `type` 'fiat', required
          - `currency` string, required — Fiat currency code (e.g. NGN, KES, BRL)
          - `country` string — ISO 3166-1 alpha-2 country code (optional)
          - `refundAccount` V2FiatRefundAccount, required
            - `institution` string, required — Bank or mobile provider code (SWIFT prefix or Paycrest institution code)
            - `institutionName` string — Human-readable institution name (e.g. OPay). Present on GET responses when the code resolves in Paycrest.
            - `accountIdentifier` string, required — Account number or mobile number
            - `accountName` string, required — Account holder name
      - `destination` union
        - V2FiatDestination
          - `type` 'fiat', required
          - `currency` string, required — Fiat currency code (e.g. NGN, KES)
          - `country` string — ISO 3166-1 alpha-2 country code (optional)
          - `providerId` string — Pin order to a specific provider (optional)
          - `kyc` object — Optional destination (recipient) KYC for offramp. Do not send sender or provider KYB on offramp create.
          - `recipient` V2FiatRecipient, required
            - `institution` string, required — Institution code (e.g. SAFAKEPC for Safaricom M-Pesa). Till and Paybill use the same mobile institution with channel metadata.
            - `institutionName` string — Human-readable institution name (e.g. OPay). Present on GET responses when the code resolves in Paycrest.
            - `accountIdentifier` string, required — Bank account, mobile phone (E.164 or local), till number, or paybill account reference depending on channel.
            - `accountName` string, required
            - `memo` string, required — Payment narration / reference
            - `metadata` object — Corridor-specific hints. For KES mobile offramp, use channel and optional businessNumber (see Sender API Integration guide).
              - …
        - V2CryptoDestination
          - `type` 'crypto', required
          - `currency` string, required — Stablecoin symbol (e.g. USDT, USDC)
          - `providerId` string
          - `recipient` V2CryptoRecipient, required
            - `address` string, required — Wallet address to receive stablecoins
            - `network` 'ethereum' | 'base' | 'bnb-smart-chain' | 'lisk' | 'scroll' | 'celo' | 'arbitrum-one' | 'polygon', required

## Other responses

- `400` — Bad request (e.g. missing currency)
- `401` — Unauthorized

---

[API](https://skmtc.net/paycrest/apis/paycrest-aggregator-api.md) · [All operations](https://skmtc.net/paycrest/apis/paycrest-aggregator-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/paycrest/paycrest-aggregator-api/revisions/f20903971a91/schema)
