Skip to main content
POST
Créer un lien de paiement
Idempotency-Key n’est pas pris en charge sur cet endpoint — un double-clic ou un retry réseau peut créer deux liens distincts. Sans conséquence financière : un lien en double se supprime depuis votre dashboard.
Aucune validation croisée serveur entre amount_type et amount : rien n’empêche de créer un lien FIXED sans amount. Vérifiez cette cohérence côté intégrateur.
redirect_url devient obligatoire (400 sinon) dès que show_confirmation_page vaut false — bascule exclusive : soit le client voit la page de confirmation SasPay après paiement, soit il est redirigé directement vers redirect_url, jamais les deux.
Chaque entrée de custom_fields doit avoir au minimum key et label (400 sinon), et les key doivent être uniques au sein d’un même lien. Ce sont des définitions de champs — les valeurs saisies par le client sont collectées au checkout (custom_field_values) et atterrissent dans Transaction.metadata, jamais sur PaymentLink lui-même.

Authorizations

Authorization
string
header
required

Clé API secrète du marchand — header Authorization: Bearer sk_live_xxx (ou sk_test_xxx en environnement de test).

Body

application/json
name
string
required
Maximum string length: 150
Example:

"Facture boutique"

currency
string
required
Required string length: 3
Example:

"XOF"

description
string
Maximum string length: 255
Example:

"Paiement en ligne"

amount_type
enum<string>
default:FIXED

FIXED : montant imposé (amount). FREE : le client choisit (min_amount optionnel comme plancher). Aucune validation croisée serveur — un lien FIXED sans amount est accepté.

Available options:
FIXED,
FREE
amount
string<decimal>
Example:

"15000.00"

min_amount
string<decimal>

Pertinent si amount_type=FREE

is_active
boolean
default:true
expires_at
string<date-time>
usage_limit
integer
Required range: x >= 1
Example:

100

require_phone
boolean
default:false

Rend customer.phone obligatoire au checkout depuis ce lien — même pour card/crypto, qui ne le demandent pas par défaut.

facebook_pixel_id
string
Maximum string length: 32
google_ads_id
string
Maximum string length: 32
custom_fields
object[]

Champs additionnels demandés au client au moment du paiement — les VALEURS saisies atterrissent dans Transaction.metadata, jamais un nouveau modèle.

show_confirmation_page
boolean
default:true
redirect_url
string<uri>

Requis si show_confirmation_page=false (400 sinon).

Response

Lien créé