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

# Indicative conversion quote (valid 60s)



## OpenAPI

````yaml /openapi.json post /v1/fx/quote
openapi: 3.1.0
info:
  title: KryptaPay API
  description: >-
    API B2B de paiements numériques pour l'Afrique francophone.


    ## Authentification

    Deux méthodes sont supportées :

    - **Session utilisateur** : JWT signé dans un cookie `kp_token` (HttpOnly,
    SameSite=Lax) — utilisé par le tableau de bord.

    - **Clé API** : header `Authorization: Bearer kp_<env>_xxx` — utilisé par
    les intégrations serveur.


    Les endpoints sensibles exigent l'une ou l'autre. Les écritures monétaires
    acceptent un header `Idempotency-Key` pour la dé-duplication.


    ## Enveloppe de réponse

    Toutes les réponses suivent le format `{ ok: boolean, data?: T, error?: {
    code, message, details? } }`.


    ## Webhooks sortants

    Signature HMAC SHA-256 dans le header `X-KryptaPay-Signature`. Le secret est
    défini à la création de l'endpoint.
  version: 1.0.0
  contact:
    name: KryptaPay Support
    email: support@kryptapay.test
    url: https://kryptapay.test
  license:
    name: Proprietary
servers:
  - url: http://localhost
    description: Local dev
security:
  - bearerAuth: []
  - cookieAuth: []
tags:
  - name: wallets
    description: Portefeuilles fiat / stablecoin / IBAN virtuels
  - name: transactions
    description: Historique unifié des mouvements
  - name: payouts
    description: Versements Mobile Money / banque / stablecoin
  - name: payins
    description: Encaissements et liens de paiement
  - name: fx
    description: Cotations et conversions multi-devises
  - name: counterparties
    description: Bénéficiaires et tiers
  - name: invoices
    description: Factures + paiement public + reçus
  - name: status
    description: Statut public des services
paths:
  /v1/fx/quote:
    post:
      tags:
        - fx
      summary: Indicative conversion quote (valid 60s)
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                from:
                  type: string
                  enum:
                    - XOF
                    - XAF
                    - NGN
                    - GHS
                    - CDF
                    - EUR
                    - USD
                    - USDC
                    - USDT
                to:
                  type: string
                  enum:
                    - XOF
                    - XAF
                    - NGN
                    - GHS
                    - CDF
                    - EUR
                    - USD
                    - USDC
                    - USDT
                amount:
                  type: string
                  pattern: ^\d+(\.\d{1,8})?$
                  description: >-
                    Decimal amount with up to 8 fractional digits, e.g. "1500"
                    or "1500.75"
                side:
                  type: string
                  enum:
                    - debit_from
                    - credit_to
                  default: debit_from
              required:
                - from
                - to
                - amount
              additionalProperties: false
        required: true
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                    enum:
                      - true
                  data:
                    type: object
                    properties:
                      from:
                        type: string
                        enum:
                          - XOF
                          - XAF
                          - NGN
                          - GHS
                          - CDF
                          - EUR
                          - USD
                          - USDC
                          - USDT
                      to:
                        type: string
                        enum:
                          - XOF
                          - XAF
                          - NGN
                          - GHS
                          - CDF
                          - EUR
                          - USD
                          - USDC
                          - USDT
                      fromAmount:
                        type: string
                        pattern: ^\d+(\.\d{1,8})?$
                        description: >-
                          Decimal amount with up to 8 fractional digits, e.g.
                          "1500" or "1500.75"
                      toAmount:
                        type: string
                        pattern: ^\d+(\.\d{1,8})?$
                        description: >-
                          Decimal amount with up to 8 fractional digits, e.g.
                          "1500" or "1500.75"
                      midRate:
                        type: string
                      appliedRate:
                        type: string
                      spreadBps:
                        type: number
                      expiresAt:
                        type: string
                    required:
                      - from
                      - to
                      - fromAmount
                      - toAmount
                      - midRate
                      - appliedRate
                      - spreadBps
                      - expiresAt
                    additionalProperties: false
                required:
                  - ok
                  - data
                additionalProperties: false
        '404':
          description: Not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                    enum:
                      - false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - ok
                  - error
                additionalProperties: false
                description: Not found
        '422':
          description: Validation error or business-rule violation
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                    enum:
                      - false
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - ok
                  - error
                additionalProperties: false
                description: Validation error or business-rule violation
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT utilisateur ou clé API `kp_<env>_xxx`
    cookieAuth:
      type: apiKey
      in: cookie
      name: kp_token
      description: Session signée (front Next.js)

````