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

# Confirm a currency conversion for a ready customer account

> Confirm a conversion using `preview_token` + `idempotency_key` from a prior preview on the **same** source `account_id`.

Confirm a conversion using `preview_token` + `idempotency_key` from a prior preview on the **same** source `account_id`.

Reuse the same `idempotency_key` after network errors. Request a **fresh** preview for each new conversion.

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


## OpenAPI

````yaml /api-reference/openapi.json post /partner/customers/{customer_id}/accounts/{account_id}/conversions
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:
    post:
      tags:
        - partner-customer-transfers
      summary: Confirm a currency conversion for a ready customer account
      description: >-
        Confirm a conversion using `preview_token` + `idempotency_key` from a
        prior preview on the **same** source `account_id`.
      operationId: partner_customer_confirm_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:
                - preview_token
                - idempotency_key
              properties:
                preview_token:
                  type: string
                  minLength: 16
                  description: Token from conversions/preview
                idempotency_key:
                  type: string
                  minLength: 8
                  maxLength: 64
                  description: Partner-stable id; forwarded as upstream unique_reference
                  example: fx-2026-09-15-001
            example:
              preview_token: ep_fx_prev_example.token
              idempotency_key: fx-2026-09-15-001
      responses:
        '201':
          description: Cross-currency conversion submitted
          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 submitted
                data:
                  id: 01M2JBPTX2A9R85G1SZMQC5AKS
                  status: completed
                  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: final
              examples:
                completed:
                  summary: Conversion completed
                  value:
                    status: success
                    message: Conversion submitted
                    data:
                      id: 01M2JBPTX2A9R85G1SZMQC5AKS
                      status: completed
                      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: final
        '422':
          description: Invalid or mismatched preview
          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: Conversion preview does not match this account
                data: null
      security:
        - APIKeyHeader: []
components:
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key

````