> ## 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 fiat book-transfer for a ready customer account



## OpenAPI

````yaml /api-reference/openapi.json post /partner/customers/{customer_id}/accounts/{account_id}/book-transfers/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 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/customers/{customer_id}/accounts/{account_id}/book-transfers/preview:
    post:
      tags:
        - partner-customer-accounts
      summary: Preview a fiat book-transfer for a ready customer account
      operationId: >-
        partner_customer_preview_book_transfer_partner_customers__customer_id__accounts__account_id__book_transfers_preview_post
      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:
              - 17
            title: Account Id
            example: 1
          description: Source account id owned by this customer
          example: 1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: cdad3beb-f193-45ed-a4fc-28974a57dc70
            example:
              to_account_id: 7
              amount: '0.50'
      responses:
        '201':
          description: Same-currency fiat book-transfer 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: Book-transfer preview
                data:
                  preview_token: nvbook.eyJhbGciOiJIUzI1NiJ9.preview
                  currency: EUR
                  from_account_id: 21
                  to_account_id: 31
                  amount: '10.50'
                  fee: '0.00'
                  receive_amount: '10.50'
                  fee_status: estimated
                  expires_at: '2026-07-30T12:10:00+00:00'
              examples:
                preview:
                  summary: Book-transfer preview
                  value:
                    status: success
                    message: Book-transfer preview
                    data:
                      preview_token: nvbook.eyJhbGciOiJIUzI1NiJ9.preview
                      currency: EUR
                      from_account_id: 21
                      to_account_id: 31
                      amount: '10.50'
                      fee: '0.00'
                      receive_amount: '10.50'
                      fee_status: estimated
                      expires_at: '2026-07-30T12:10:00+00:00'
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                type: object
                required:
                  - status
                  - message
                properties:
                  status:
                    type: string
                    enum:
                      - error
                  message:
                    type: string
                  data:
                    type:
                      - object
                      - 'null'
                    properties:
                      id:
                        type: integer
                      status:
                        type: string
                      field:
                        type: string
                      allowed:
                        type: array
                        items:
                          type: string
                      upstream_http_status:
                        type: integer
                      liveness_required:
                        type: boolean
                      hint:
                        type: string
                      missing_fields:
                        type: array
                        items:
                          type: string
              example:
                status: error
                message: Unauthorized
              examples:
                unauthorized:
                  summary: Unauthorized
                  value:
                    status: error
                    message: Unauthorized
        '422':
          description: Currency mismatch, inactive account, or invalid amount
          content:
            application/json:
              schema:
                type: object
                required:
                  - status
                  - message
                properties:
                  status:
                    type: string
                    enum:
                      - error
                  message:
                    type: string
                  data:
                    type:
                      - object
                      - 'null'
                    properties:
                      id:
                        type: integer
                      status:
                        type: string
                      field:
                        type: string
                      allowed:
                        type: array
                        items:
                          type: string
                      upstream_http_status:
                        type: integer
                      liveness_required:
                        type: boolean
                      hint:
                        type: string
                      missing_fields:
                        type: array
                        items:
                          type: string
              example:
                status: error
                message: Book transfers require the same currency on both accounts
                data: null
              examples:
                same_currency:
                  summary: Currency mismatch
                  value:
                    status: error
                    message: Book transfers require the same currency on both accounts
                    data: null
        '503':
          description: International entity onboarding not configured on this environment
          content:
            application/json:
              schema:
                type: object
                required:
                  - status
                  - message
                properties:
                  status:
                    type: string
                    enum:
                      - error
                  message:
                    type: string
                  data:
                    type:
                      - object
                      - 'null'
                    properties:
                      id:
                        type: integer
                      status:
                        type: string
                      field:
                        type: string
                      allowed:
                        type: array
                        items:
                          type: string
                      upstream_http_status:
                        type: integer
                      liveness_required:
                        type: boolean
                      hint:
                        type: string
                      missing_fields:
                        type: array
                        items:
                          type: string
              example:
                status: error
                message: International entity onboarding is not configured
                data: null
              examples:
                not_configured:
                  summary: Feature not enabled
                  value:
                    status: error
                    message: International entity onboarding is not configured
                    data: null
      security:
        - APIKeyHeader: []
components:
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key

````