> ## Documentation Index
> Fetch the complete documentation index at: https://partners.elementpay.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Indicative order field requirements for a corridor

> Returns partner-neutral **field name** hints before ``POST /partner/orders/quote``. Call after ``GET /corridors`` and ``GET /payment-methods``. Query: ``country``, ``currency``, ``order_type`` (OnRamp or OffRamp). List payout rails with ``GET /payment-methods`` first when several exist; pass ``payment_method_type`` (e.g. ``BankSepa``) on this call. Single-rail international bank corridors (e.g. GH) may omit it. rail: ``mobile_money`` or ``bank`` — both require ``network_id`` on quote (from catalog ``providers[].id`` or ``GET /banks`` for bank). Optional ``customer_type`` (``retail`` or ``institution``) on local fiat rail corridors. No JSON Schema, bank lists, fees, or provider labels. Bank lists and dynamic form schemas are separate partner endpoints (see partner quickstart). Binding check: quote endpoint.

Returns partner-neutral **field name** hints before [`POST /partner/orders/quote`](/partner/orders/quote).

Call after [`GET /partner/corridors`](/partner/corridors) and [`GET /partner/payment-methods`](/partner/payment-methods).

### Query

`country`, `currency`, `order_type` (`OnRamp` or `OffRamp`).

When several payout rails exist, list them with [`GET /partner/payment-methods`](/partner/payment-methods) first, then pass `payment_method_type` (e.g. `BankSepa`) on this call. Single-rail international bank corridors (e.g. GH) may omit it.

### Rails

* **`mobile_money`** or **`bank`** — both require `network_id` on quote (from catalog `providers[].id` or [`GET /partner/banks`](/partner/banks) for bank)
* Optional **`customer_type`** (`retail` or `institution`) on local fiat corridors

This endpoint does **not** return JSON Schema, bank lists, fees, or provider labels. Bank lists and dynamic form schemas are separate partner endpoints (see [Quickstart](/quickstart)).

<Note>
  Binding check: [`POST /partner/orders/quote`](/partner/orders/quote).
</Note>


## OpenAPI

````yaml /api-reference/openapi.json get /partner/order-requirements
openapi: 3.1.0
info:
  title: Element Pay Partner API
  description: >-
    Provider-neutral fiat ↔ crypto ramps for partners. Discover corridors,
    create a binding quote, accept it, and receive webhooks. African local fiat
    (mobile money and bank) is auto-routed by corridor.
  version: 1.0.0
servers:
  - url: https://sandbox.elementpay.net/api/v1
    description: Sandbox
security:
  - APIKeyHeader: []
tags:
  - name: partner
    description: >-
      Corridor discovery, indicative rates, binding quotes, and order acceptance
      (including account currency conversion).
    x-group: Partner
  - name: partner-customers
    description: >-
      Vault KYC: requirements, create, list, get/update, documents, and submit
      (pcus_*).
    x-group: Customers
  - name: partner-customer-accounts
    description: >-
      Customer accounts and funding: open/list/get rails, deposit instructions,
      stablecoin sends, and same-currency fiat book transfers.
    x-group: Customer accounts
paths:
  /partner/order-requirements:
    get:
      tags:
        - partner
      summary: Indicative order field requirements for a corridor
      description: >-
        Returns partner-neutral **field name** hints before ``POST
        /partner/orders/quote``. Call after ``GET /corridors`` and ``GET
        /payment-methods``. Query: ``country``, ``currency``, ``order_type``
        (OnRamp or OffRamp). List payout rails with ``GET /payment-methods``
        first when several exist; pass ``payment_method_type`` (e.g.
        ``BankSepa``) on this call. Single-rail international bank corridors
        (e.g. GH) may omit it. rail: ``mobile_money`` or ``bank`` — both require
        ``network_id`` on quote (from catalog ``providers[].id`` or ``GET
        /banks`` for bank). Optional ``customer_type`` (``retail`` or
        ``institution``) on local fiat rail corridors. No JSON Schema, bank
        lists, fees, or provider labels. Bank lists and dynamic form schemas are
        separate partner endpoints (see partner quickstart). Binding check:
        quote endpoint.
      operationId: partner_order_requirements_partner_order_requirements_get
      parameters:
        - name: country
          in: query
          required: true
          schema:
            type: string
            minLength: 2
            maxLength: 2
            description: ISO country code.
            title: Country
          description: ISO country code.
        - name: currency
          in: query
          required: true
          schema:
            type: string
            minLength: 3
            maxLength: 3
            description: Fiat currency code.
            title: Currency
          description: Fiat currency code.
        - name: order_type
          in: query
          required: true
          schema:
            type: string
            description: OnRamp or OffRamp.
            examples:
              - OffRamp
            title: Order Type
          description: OnRamp or OffRamp.
        - name: customer_type
          in: query
          required: false
          schema:
            type: string
            description: >-
              retail or institution — affects required customer fields on local
              fiat rail corridors.
            default: retail
            title: Customer Type
          description: >-
            retail or institution — affects required customer fields on local
            fiat rail corridors.
        - name: payment_method_type
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Narrows payment_method requirements: mobile_money | bank (rail) or
              international bank PaymentMethodType from payment-methods (e.g.
              BankLocal).
            title: Payment Method Type
          description: >-
            Narrows payment_method requirements: mobile_money | bank (rail) or
            international bank PaymentMethodType from payment-methods (e.g.
            BankLocal).
      responses:
        '200':
          description: Indicative field requirements before quote
          content:
            application/json:
              schema:
                type: object
                required:
                  - status
                  - message
                properties:
                  status:
                    type: string
                    enum:
                      - success
                  message:
                    type: string
                  data:
                    type: object
              example:
                status: success
                message: Partner order requirements (indicative)
                data:
                  context:
                    country: KE
                    currency: KES
                    order_type: OnRamp
                    payment_method_type: mobile_money
                  customer:
                    - name
                    - phone
                    - dob
                    - id_number
                    - id_type
                  payment_method:
                    - type
                    - phone_number
                    - network_id
                  order:
                    - wallet_address
                    - local_amount
                    - asset
              examples:
                ke_momo_onramp:
                  summary: KE momo OnRamp
                  value:
                    status: success
                    message: Partner order requirements (indicative)
                    data:
                      context:
                        country: KE
                        currency: KES
                        order_type: OnRamp
                        payment_method_type: mobile_money
                      customer:
                        - name
                        - phone
                        - dob
                        - id_number
                        - id_type
                      payment_method:
                        - type
                        - phone_number
                        - network_id
                      order:
                        - wallet_address
                        - local_amount
                        - asset
        '400':
          description: Bad request (missing corridor parameters or rail resolution failed)
          content:
            application/json:
              schema:
                type: object
                required:
                  - status
                  - message
                properties:
                  status:
                    type: string
                    enum:
                      - error
                  message:
                    type: string
                  data:
                    type:
                      - object
                      - 'null'
                    properties:
                      field:
                        type: string
                      country:
                        type: string
                      currency:
                        type: string
                      upstream_http_status:
                        type: integer
              example:
                status: error
                message: >-
                  Provide country for African corridors (e.g. KE) or currency
                  for international bank (EUR/USD).
                data: null
        '422':
          description: Validation error (corridor not supported or invalid parameters)
          content:
            application/json:
              schema:
                type: object
                required:
                  - status
                  - message
                properties:
                  status:
                    type: string
                    enum:
                      - error
                  message:
                    type: string
                  data:
                    type:
                      - object
                      - 'null'
                    properties:
                      field:
                        type: string
                      country:
                        type: string
                      currency:
                        type: string
                      upstream_http_status:
                        type: integer
              example:
                status: error
                message: Corridor not supported on this environment.
                data:
                  currency: EUR
                  country: FR
        '502':
          description: Upstream discovery temporarily unavailable
          content:
            application/json:
              schema:
                type: object
                required:
                  - status
                  - message
                properties:
                  status:
                    type: string
                    enum:
                      - error
                  message:
                    type: string
                  data:
                    type:
                      - object
                      - 'null'
                    properties:
                      field:
                        type: string
                      country:
                        type: string
                      currency:
                        type: string
                      upstream_http_status:
                        type: integer
              example:
                status: error
                message: Quote request failed
                data:
                  upstream_http_status: 502
              examples:
                upstream_unavailable:
                  summary: Discovery upstream error
                  value:
                    status: error
                    message: Quote request failed
                    data:
                      upstream_http_status: 502
      security:
        - APIKeyHeader: []
components:
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key

````