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

# B2B Onramp

> Initiate a fiat → stablecoin onramp via LINK’s B2B API. Provide core transaction details plus your banking details (the account you are paying FROM). Once a transaction (onramp) has been initiated, settlement account details are delivered to you through a `banking_details_received` webhook.



## OpenAPI

````yaml /reference/link-transaction.json post /otc/onramp
openapi: 3.1.0
info:
  title: link-transaction
  version: '1.0'
servers:
  - url: https://api.linkio.world
security:
  - sec0: []
tags:
  - name: Direct FX
  - name: Pan-Africa Ramp
  - name: BRL Ramp
  - name: IDR Ramp
  - name: B2B
  - name: Customers
  - name: Static Details
  - name: Transactions
  - name: Accounts
  - name: ESPESS
paths:
  /otc/onramp:
    post:
      tags:
        - B2B
      summary: B2B Onramp
      description: >-
        Initiate a fiat → stablecoin onramp via LINK’s B2B API. Provide core
        transaction details plus your banking details (the account you are
        paying FROM). Once a transaction (onramp) has been initiated, settlement
        account details are delivered to you through a
        `banking_details_received` webhook.
      operationId: post_otc_onramp
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - customer_id
                - currency
                - amount
                - stables
                - wallet_address
                - network
                - paymentDetails
              properties:
                customer_id:
                  type: string
                  description: Your platform’s customer ID for this transaction.
                currency:
                  type: string
                  description: Fiat currency being sent.
                  enum:
                    - AED
                    - AOA
                    - BIF
                    - CDF
                    - DZD
                    - EGP
                    - ETB
                    - EUR
                    - GBP
                    - GHS
                    - LYD
                    - MAD
                    - MUR
                    - MWK
                    - MZN
                    - NGN
                    - SGD
                    - SLE
                    - SSP
                    - TRY
                    - TZS
                    - UGX
                    - USD
                    - XAF
                    - XOF
                amount:
                  type: string
                  description: Fiat amount being sent.
                stables:
                  type: string
                  enum:
                    - USDC
                    - USDT
                  description: Stablecoin to receive.
                wallet_address:
                  type: string
                  description: Destination wallet address for the stablecoin.
                network:
                  type: string
                  description: >-
                    Blockchain network for the stablecoin. USDT → TRON, POLYGON,
                    or SOLANA. USDC → ETHEREUM, BSC, POLYGON, BASE, SOLANA, or
                    STELLAR.
                  enum:
                    - TRON
                    - ETHEREUM
                    - BSC
                    - POLYGON
                    - SOLANA
                    - BASE
                    - STELLAR
                paymentDetails:
                  type: object
                  description: >-
                    Your banking details — the account you are paying FROM.
                    Required fields depend on your currency’s payment method.
                    Call GET /otc/rate_quote first to get the paymentMethod for
                    your currency.
                  oneOf:
                    - title: ACH (USD)
                      required:
                        - accountNumber
                        - routingNumber
                        - accountName
                      properties:
                        accountNumber:
                          type: string
                        routingNumber:
                          type: string
                        accountName:
                          type: string
                        bankName:
                          type: string
                    - title: >-
                        Local Bank Transfer (NGN, BIF, CDF, DZD, ETB, GBP, GHS,
                        LYD, MUR, MWK, MZN, SGD, SLE, SSP, TZS, UGX)
                      required:
                        - accountNumber
                        - accountName
                        - bankName
                      properties:
                        accountNumber:
                          type: string
                        accountName:
                          type: string
                        bankName:
                          type: string
                        sortCode:
                          type: string
                          description: Optional.
                        branchCode:
                          type: string
                          description: Optional.
                        branchName:
                          type: string
                          description: Optional.
                    - title: IBAN (AED, AOA, EGP, EUR, GBP, TRY)
                      required:
                        - iban
                        - accountName
                        - bankName
                      properties:
                        iban:
                          type: string
                        accountName:
                          type: string
                        bankName:
                          type: string
                        swiftCode:
                          type: string
                          description: Optional.
                    - title: RIB (MAD, XAF, XOF)
                      required:
                        - rib
                        - accountName
                        - bankName
                      properties:
                        rib:
                          type: string
                        accountName:
                          type: string
                        bankName:
                          type: string
                        branchCode:
                          type: string
                          description: Optional.
      responses:
        '201':
          description: Transaction created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: TXN_SUCCESSFUL
                  status:
                    type: string
                    example: Success
                  message:
                    type: string
                  data:
                    type: object
                    properties:
                      transaction_id:
                        type: string
                      reference:
                        type: string
                        example: link-otc-12345678
                      type:
                        type: string
                        example: onramp
                      currency:
                        type: string
                      amount:
                        type: string
                      stables:
                        type: string
                      payout_amount:
                        type: string
                      rate:
                        type: number
                      transaction_status:
                        type: string
                        example: pending
                      payment_method:
                        type: string
                      date_created:
                        type: string
        '400':
          description: Validation error — missing or invalid fields
        '503':
          description: B2B quote unavailable — retry
components:
  securitySchemes:
    sec0:
      type: apiKey
      in: header
      name: ngnc-sec-key
      x-default: ''

````