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

# Obtenir un devis

> Calculer les frais et taux avant de créer un payout

Obtient un devis pour un payout avec taux de change, frais et montant total à débiter.

Le devis est **valide 5 minutes**. Utilisez le `quoteId` retourné dans `POST /payouts/initiate` pour confirmer.

### Authentification

```bash theme={null}
X-API-Key: pk_test_xxx:sk_test_xxx
```

## Flux recommandé

<Steps>
  <Step title="Obtenir un devis">
    `POST /payouts/quote` → Recevez le `quoteId`, les frais et le montant total
  </Step>

  <Step title="Afficher au marchand">
    Montrez les frais, taux de change et montant total avant confirmation
  </Step>

  <Step title="Confirmer le payout">
    `POST /payouts/initiate` avec le `quoteId` + détails du bénéficiaire
  </Step>
</Steps>

## Paramètres

| Champ                 | Type   | Requis | Description                                             |
| --------------------- | ------ | ------ | ------------------------------------------------------- |
| `amount`              | number | Oui    | Montant à envoyer                                       |
| `currency`            | string | Oui    | Devise du montant (XOF, USD, EUR...)                    |
| `destinationCountry`  | string | Oui    | Code ISO du pays destination                            |
| `destinationCurrency` | string | Non    | Devise de destination (si différente)                   |
| `method`              | string | Oui    | Méthode : `wave`, `orange_money`, `bank_transfer`, etc. |
| `type`                | string | Non    | Type de transfert : `c2c` ou `b2b` (défaut: `c2c`)      |

<Tip>
  Le montant peut être dans n'importe quelle devise. Le système calcule automatiquement les conversions.
</Tip>

## Exemples

### Mobile Money (local)

```bash theme={null}
curl -X POST https://sandbox-api.caurisflux.com/api/v1/payouts/quote \
  -H "X-API-Key: pk_test_xxx:sk_test_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 50000,
    "currency": "XOF",
    "destinationCountry": "SN",
    "method": "wave"
  }'
```

```json 200 - Réponse theme={null}
{
  "quoteId": "QT-MOBILE-001",
  "expiresAt": "2026-04-03T15:00:00.000Z",
  "expiresIn": 300,
  "input": { "amount": 50000, "currency": "XOF" },
  "source": { "amount": 50000, "currency": "XOF" },
  "destination": { "amount": 50000, "currency": "XOF", "country": "SN" },
  "fees": { "amount": 750, "currency": "XOF" },
  "totalDebit": { "amount": 50750, "currency": "XOF" },
  "fx": null,
  "method": "wave"
}
```

### Virement Bancaire (local)

```bash theme={null}
curl -X POST https://sandbox-api.caurisflux.com/api/v1/payouts/quote \
  -H "X-API-Key: pk_test_xxx:sk_test_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 500000,
    "currency": "XOF",
    "destinationCountry": "SN",
    "method": "bank_transfer"
  }'
```

```json 200 - Réponse theme={null}
{
  "quoteId": "QT-BANK-001",
  "expiresAt": "2026-04-03T15:00:00.000Z",
  "expiresIn": 300,
  "input": { "amount": 500000, "currency": "XOF" },
  "source": { "amount": 500000, "currency": "XOF" },
  "destination": { "amount": 500000, "currency": "XOF", "country": "SN" },
  "fees": { "amount": 2500, "currency": "XOF" },
  "totalDebit": { "amount": 502500, "currency": "XOF" },
  "fx": null,
  "method": "bank_transfer"
}
```

### International C2C (USD → INR)

```bash theme={null}
curl -X POST https://sandbox-api.caurisflux.com/api/v1/payouts/quote \
  -H "X-API-Key: pk_test_xxx:sk_test_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 500,
    "currency": "USD",
    "destinationCountry": "IN",
    "destinationCurrency": "INR",
    "method": "bank_transfer",
    "type": "c2c"
  }'
```

```json 200 - Réponse theme={null}
{
  "quoteId": "QT-A1B2C3D4E5F6",
  "expiresAt": "2026-04-03T13:20:00.000Z",
  "expiresIn": 300,
  "input": { "amount": 500, "currency": "USD" },
  "source": { "amount": 500, "currency": "USD" },
  "destination": { "amount": 42170, "currency": "INR", "country": "IN" },
  "fees": { "amount": 7583, "currency": "XOF" },
  "totalDebit": { "amount": 313083, "currency": "XOF" },
  "fx": {
    "rate": 84.34,
    "spreadPercent": 1,
    "sourceCurrency": "USD",
    "destinationCurrency": "INR"
  },
  "method": "bank_transfer"
}
```

### B2B SWIFT (USD → EUR)

```bash theme={null}
curl -X POST https://sandbox-api.caurisflux.com/api/v1/payouts/quote \
  -H "X-API-Key: pk_test_xxx:sk_test_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 5000,
    "currency": "USD",
    "destinationCountry": "DE",
    "destinationCurrency": "EUR",
    "method": "bank_transfer",
    "type": "b2b"
  }'
```

```json 200 - Réponse theme={null}
{
  "quoteId": "QT-B2B-001",
  "expiresAt": "2026-04-03T15:00:00.000Z",
  "expiresIn": 300,
  "input": { "amount": 5000, "currency": "USD" },
  "source": { "amount": 5000, "currency": "USD" },
  "destination": { "amount": 4580, "currency": "EUR", "country": "DE" },
  "fees": { "amount": 15000, "currency": "XOF" },
  "totalDebit": { "amount": 3070000, "currency": "XOF" },
  "fx": {
    "rate": 0.916,
    "spreadPercent": 1,
    "sourceCurrency": "USD",
    "destinationCurrency": "EUR"
  },
  "method": "bank_transfer"
}
```

## Champs de réponse

| Champ         | Type         | Description                                              |
| ------------- | ------------ | -------------------------------------------------------- |
| `quoteId`     | string       | ID du devis à utiliser dans `/payouts/initiate`          |
| `expiresAt`   | string       | Date d'expiration du devis                               |
| `expiresIn`   | number       | Secondes restantes avant expiration                      |
| `input`       | object       | Montant et devise demandés                               |
| `source`      | object       | Montant envoyé au provider                               |
| `destination` | object       | Montant reçu par le bénéficiaire                         |
| `fees`        | object       | Frais appliqués                                          |
| `totalDebit`  | object       | Montant total débité de votre solde (en devise merchant) |
| `fx`          | object\|null | Taux de change (`null` si même devise)                   |
| `method`      | string       | Méthode de paiement                                      |

### Objet `fx`

| Champ                 | Type   | Description             |
| --------------------- | ------ | ----------------------- |
| `rate`                | number | Taux de change appliqué |
| `spreadPercent`       | number | Marge appliquée (%)     |
| `sourceCurrency`      | string | Devise source           |
| `destinationCurrency` | string | Devise destination      |

<Warning>
  Le devis expire après 5 minutes. Passé ce délai, vous devez en demander un nouveau.
</Warning>
