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

# Create Cross-Border Quote

> Calculates the NGN amount a merchant will receive for a supported local-currency collection. For Kenya, send KES in normal customer-facing units. For Uganda, send UGX in normal customer-facing units.

Calculates the estimated NGN amount a merchant will receive for a supported local-currency collection.

For Kenya collections, send `country` as `KE`, `currency` as `KES`, and the customer amount in normal KES units. For Uganda collections, send `country` as `UG`, `currency` as `UGX`, and the customer amount in normal UGX units.

The returned `merchantReceives` amount is the NGN amount after NexaPay's FX margin.

### Notes

* Quotes use provider sell rates.
* The rate shown by this endpoint is for preview.
* The final locked rate is stored when the collection is initiated.
* Merchant-facing integrations should display `merchantRate` and `merchantReceives`.


## OpenAPI

````yaml POST /cross-border/quote
openapi: 3.0.0
info:
  title: NexaPay Business API
  version: 1.0.0
  description: Server-to-server merchant integration API documentation.
servers:
  - url: https://api.nexapay.ng/api/v1/business
    description: Production Server
security: []
tags: []
paths:
  /cross-border/quote:
    post:
      tags:
        - Cross-Border Collections
      summary: Create cross-border collection quote
      description: >-
        Calculates the NGN amount a merchant will receive for a supported
        local-currency collection. For Kenya, send KES in normal customer-facing
        units. For Uganda, send UGX in normal customer-facing units.
      parameters:
        - $ref: '#/components/parameters/BusinessEnvHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                businessId:
                  type: string
                  description: The unique ID of the business profile.
                country:
                  type: string
                  example: UG
                currency:
                  type: string
                  example: UGX
                sourceCurrency:
                  type: string
                  example: UGX
                targetCurrency:
                  type: string
                  example: NGN
                  default: NGN
                amount:
                  type: number
                  example: 20000
                  description: Customer amount in source-currency units.
              required:
                - businessId
                - country
                - amount
                - currency
      responses:
        '200':
          description: Quote generated successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  quote:
                    type: object
                    properties:
                      corridorKey:
                        type: string
                        example: UG_UGX_NGN
                      provider:
                        type: string
                        example: brails
                      country:
                        type: string
                        example: UG
                      sourceCurrency:
                        type: string
                        example: UGX
                      targetCurrency:
                        type: string
                        example: NGN
                      sourceAmount:
                        type: number
                        example: 100
                      providerRate:
                        type: number
                        example: 0.4
                        description: Derived provider rate before NexaPay FX margin.
                      merchantRate:
                        type: number
                        example: 0.36
                        description: Rate shown to the merchant after NexaPay FX margin.
                      merchantReceives:
                        type: number
                        example: 7200
                        description: >-
                          NGN amount credited to the merchant after successful
                          payment confirmation.
                      markupType:
                        type: string
                        example: percentage
                      markupValue:
                        type: number
                        example: 10
                      rateSource:
                        type: string
                        example: sellRate
                      creditMode:
                        type: string
                        example: instant
        '400':
          description: Invalid amount or unsupported corridor.
        '502':
          description: Unable to fetch provider rates.
      security:
        - ApiKeyAuth: []
components:
  parameters:
    BusinessEnvHeader:
      name: x-business-env
      in: header
      required: false
      schema:
        type: string
        enum:
          - prod
          - test
        default: prod
      description: Target environment selector (live production vs. simulated sandbox).
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Merchant API Key (e.g., nexa-prod-... or nexa-test-...)

````