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

# Open an account for a ready customer

> Open one idempotent fiat or stablecoin rail. Same rail tuple returns the existing account.



## OpenAPI

````yaml /api-reference/openapi.json post /partner/customers/{customer_id}/accounts
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:
    post:
      tags:
        - partner-customer-accounts
      summary: Open an account for a ready customer
      description: >-
        Open one idempotent fiat or stablecoin rail. Same rail tuple returns the
        existing account.
      operationId: partner_customer_open_account
      parameters:
        - name: customer_id
          in: path
          required: true
          description: Public customer id returned by POST /partner/customers
          schema:
            type: string
            example: pcus_a1b2c3d4e5f6
          example: pcus_a1b2c3d4e5f6
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartnerCustomerAccountOpenRequest'
            example:
              asset_type: fiat
              currency: EUR
            examples:
              fiat_eur:
                summary: Fiat EUR
                value:
                  asset_type: fiat
                  currency: EUR
              usdc_base:
                summary: USDC on Base
                value:
                  asset_type: stablecoin
                  currency: USDC
                  network: Base
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
              example:
                status: success
                message: Account already exists
                data:
                  id: 18
                  customer_id: pcus_a1b2c3d4e5f6
                  asset_type: fiat
                  currency: EUR
                  network: null
                  status: active
                  display_name: EUR
                  account_number: DE89370400440532013000
                  bank_name: Example Bank
                  swift_bic: COBADEFFXXX
                  balance:
                    available: '250.00'
                    currency: EUR
                  created_at: '2026-08-01T12:00:00+00:00'
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
              example:
                status: success
                message: Account opened
                data:
                  id: 18
                  customer_id: pcus_a1b2c3d4e5f6
                  asset_type: fiat
                  currency: EUR
                  network: null
                  status: active
                  display_name: EUR
                  account_number: DE89370400440532013000
                  bank_name: Example Bank
                  swift_bic: COBADEFFXXX
                  balance:
                    available: '250.00'
                    currency: EUR
                  created_at: '2026-08-01T12:00:00+00:00'
        '409':
          description: Deposit account is not ready
          content:
            application/json:
              schema:
                type: object
              example:
                status: error
                message: Deposit account is not ready
                data:
                  deposit_account_status: pending
      security:
        - APIKeyHeader: []
components:
  schemas:
    PartnerCustomerAccountOpenRequest:
      type: object
      required:
        - asset_type
        - currency
      properties:
        asset_type:
          type: string
          description: fiat or stablecoin
          example: fiat
        currency:
          type: string
          example: EUR
        network:
          type: string
          description: 'Required for stablecoin: Base or Polygon'
          example: Base
        display_name:
          type: string
          example: EUR operating
      example:
        asset_type: fiat
        currency: EUR
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key

````