Référence API/Encaissement et liens de paiement
Encaissement et liens de paiement
Recevez sur votre solde via un lien de paiement public avec virement, carte et crypto, via une demande de montant fixe liée à une facture, ou via un compte virtuel au nom de votre entreprise en USD, EUR ou MXN. Une demande passe à payée uniquement quand un paiement entrant correspond sans ambiguïté en montant, devise, moment et titulaire ; les virements non appariés créditent tout de même votre solde.
Create a payment link
/payment-links| Champ | Type | obligatoire | Notes |
|---|---|---|---|
| name | string | facultatif | |
| methods | array | facultatif | |
| published | boolean | facultatif |
Requête
{
"name": "Invoices",
"methods": [
"bank_transfer",
"card",
"crypto"
],
"published": true
}Réponse 201
{
"id": "pl_7a2c",
"name": "Invoices",
"url": "https://decaf.so/pay/cargo-ledger",
"methods": [
{
"type": "bank_transfer",
"ready": true
},
{
"type": "card",
"ready": true
},
{
"type": "crypto",
"ready": true
}
],
"published": true
}List payment links
/payment-linksGet a payment link
/payment-links/{id}Paramètres
idpathstringobligatoire
Update methods or publication
/payment-links/{id}Paramètres
idpathstringobligatoire
| Champ | Type | obligatoire | Notes |
|---|---|---|---|
| name | string | facultatif | |
| methods | array | facultatif | |
| published | boolean | facultatif |
Create a fixed-amount payment request
/payment-requestsMarked paid only when an incoming payment matches amount, currency, timing and owner unambiguously. Unmatched bank transfers still credit your balance as deposits.
| Champ | Type | obligatoire | Notes |
|---|---|---|---|
| payment_link_id | string | obligatoire | |
| amount | Amount | obligatoire | Decimal string. Up to two decimals for fiat, six for USDC. |
| currency | string | obligatoire | |
| reference | string | facultatif | |
| expires_at | string | facultatif |
Requête
{
"payment_link_id": "pl_7a2c",
"amount": "1250.00",
"currency": "USD",
"reference": "INV-0912",
"expires_at": "2026-09-30T00:00:00Z"
}Réponse 201
{
"id": "pr_31aa",
"url": "https://decaf.so/pay/cargo-ledger/pr_31aa",
"amount": "1250.00",
"currency": "USD",
"reference": "INV-0912",
"status": "open",
"expires_at": "2026-09-30T00:00:00Z"
}Exemples: Create a fixed-amount payment request
curl -X POST https://sandbox.api.decaf.so/v1/payment-requests \
-H "Authorization: Bearer $DECAF_API_KEY" \
-H "Content-Type: application/json" \
-d '{"payment_link_id":"pl_7a2c","amount":"1250.00","currency":"USD","reference":"INV-0912","expires_at":"2026-09-30T00:00:00Z"}'Open a virtual account
/virtual-accountsRequires business verification and the corridor. Details are returned masked.
| Champ | Type | obligatoire | Notes |
|---|---|---|---|
| currency | enum: USD, EUR, MXN | obligatoire |
Requête
{
"currency": "EUR"
}Réponse 201
{
"id": "va_1f3e",
"currency": "EUR",
"rail": "sepa",
"status": "active",
"details": {
"iban": "DE•• •••• 3310",
"bic": "•••",
"beneficiary_name": "Cargo Ledger GmbH"
},
"reference_required": true
}Erreurs: 403 verification_required
Exemples: Open a virtual account
curl -X POST https://sandbox.api.decaf.so/v1/virtual-accounts \
-H "Authorization: Bearer $DECAF_API_KEY" \
-H "Content-Type: application/json" \
-d '{"currency":"EUR"}'List virtual accounts
/virtual-accountsObtenir l’accès
Développez sur le sandbox dès cette semaine.
Dites-nous les corridors dont vous avez besoin et qui vous payez. Les clés sandbox sont délivrées par une personne.