> ## 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.

# Preview a currency conversion for a ready customer account

> Preview a **cross-currency** conversion between two accounts owned by this customer.

Preview a **cross-currency** conversion between two accounts owned by this customer.

Returns a signed `preview_token`, `rate`, `amount_from` / `amount_to`, and `expires_at` (often only a few minutes). Confirm before expiry.

<Note>
  Same-currency moves use [book transfers](/customers/book-transfers). Corridor ramps use [quote → accept](/orders/quote-and-accept).
</Note>

Guide: [Currency conversions](/customers/conversions).


## OpenAPI

````yaml /api-reference/openapi.json post /partner/customers/{customer_id}/accounts/{account_id}/conversions/preview
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 order-path account currency conversion rails). Customer ledger
      conversions use partner-customer-transfers `/conversions`.
    x-group: Partner
  - name: partner-customers
    description: >-
      Vault KYC: requirements, create, list, get/update, documents, submit, and
      revoke (`pcus_*`).
    x-group: Customers
  - name: partner-customer-accounts
    description: >-
      Customer deposit rails: open / list / get accounts and deposit
      instructions.
    x-group: Customer accounts
  - name: partner-customer-transfers
    description: >-
      On-ledger money movement: stablecoin sends, same-currency book transfers,
      and cross-currency conversions.
    x-group: Customer transfers
  - name: partner-customer-payouts
    description: >-
      External bank payouts: scheme discovery, local bank directory
      (NGN/GHS/CAD), preview, confirm, and status.
    x-group: Customer payouts
paths:
  /partner/customers/{customer_id}/accounts/{account_id}/conversions/preview:
    post:
      tags:
        - partner-customer-transfers
      summary: Preview a currency conversion for a ready customer account
      description: >-
        Preview a **cross-currency** conversion between two accounts owned by
        this customer.
      operationId: partner_customer_preview_conversion
      parameters:
        - name: customer_id
          in: path
          required: true
          schema:
            type: string
            description: Public customer id returned by POST /partner/customers
            examples:
              - pcus_a1b2c3d4e5f6
            title: Customer Id
            example: pcus_06a83150db3c
          description: Public customer id returned by POST /partner/customers
          example: pcus_06a83150db3c
        - name: account_id
          in: path
          required: true
          schema:
            type: integer
            description: Source account id owned by this customer
            examples:
              - 63
            title: Account Id
            example: 63
          description: Source account id owned by this customer
          example: 63
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - to_account_id
                - amount
              properties:
                to_account_id:
                  type: integer
                  description: >-
                    Destination partner account id (different currency, same
                    customer)
                amount:
                  type: string
                  description: Decimal debit amount in the source account currency
                  example: '1.00'
            example:
              to_account_id: 68
              amount: '1.00'
      responses:
        '201':
          description: Cross-currency conversion preview
          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: Conversion preview
                data:
                  preview_token: ep_fx_prev_example.token
                  from_account_id: 63
                  to_account_id: 68
                  from_currency: EUR
                  to_currency: NGN
                  amount_from: '1.00'
                  amount_to: '1511.72'
                  rate: 1511.724589
                  fee: '0.00'
                  fee_status: estimated
                  expires_at: '2026-09-15T11:05:13+00:00'
              examples:
                eur_to_ngn:
                  summary: EUR → NGN preview
                  value:
                    status: success
                    message: Conversion preview
                    data:
                      preview_token: ep_fx_prev_example.token
                      from_account_id: 63
                      to_account_id: 68
                      from_currency: EUR
                      to_currency: NGN
                      amount_from: '1.00'
                      amount_to: '1511.72'
                      rate: 1511.724589
                      fee: '0.00'
                      fee_status: estimated
                      expires_at: '2026-09-15T11:05:13+00:00'
        '422':
          description: Validation or quote expiry
          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
                      code:
                        type: string
                      min_amount:
                        type: number
                      currency:
                        type: string
                      upstream_http_status:
                        type: integer
              example:
                status: error
                message: Source and destination accounts must differ
                data:
                  field: to_account_id
      security:
        - APIKeyHeader: []
components:
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key

````