Demandes de paiement¶
Référence complète des endpoints de l'API de gestion des demandes de paiement.
Créer une demande¶
Crée une nouvelle demande de paiement (pré-paiement ou empreinte bancaire).
Corps de la requête¶
| Champ | Type | Requis | Défaut | Description |
|---|---|---|---|---|
request_type |
string | Oui | — | IMPRINT ou DEPOSIT |
amount |
decimal | DEPOSIT: oui | 0 |
Montant en devise (ex: 150.00) |
currency |
string | Non | EUR |
Devise ISO 4217 (EUR, CHF, USD) |
guest_email |
string | Oui | — | Adresse email du client |
guest_first_name |
string | Oui | — | Prénom du client |
guest_last_name |
string | Oui | — | Nom du client |
guest_phone |
string | Non | "" |
Téléphone du client |
language |
string | Non | fr |
Langue du formulaire : fr, en, de |
reservation_ref |
string | Oui | — | Référence de réservation dans votre PMS |
reservation_data |
object | Non | {} |
Données supplémentaires (JSON libre) |
Réponse 201 Created¶
{
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"reference": "DEP-2026-0042",
"status": "NOT_INITIATED",
"payment_link": "/payment/550e8400-e29b-41d4-a716-446655440000/"
}
Erreurs¶
| Code | Réponse | Cause |
|---|---|---|
| 400 | {"error": "DEPOSIT requests require an amount greater than 0"} |
Pré-paiement sans montant |
| 401 | Non autorisé | Clé API manquante ou invalide |
Exemple¶
curl -X POST \
-H "X-API-Key: votre-clé-api" \
-H "Content-Type: application/json" \
-d '{
"request_type": "DEPOSIT",
"amount": 150.00,
"currency": "EUR",
"guest_email": "jean.dupont@email.com",
"guest_first_name": "Jean",
"guest_last_name": "Dupont",
"reservation_ref": "RES-2026-100"
}' \
https://votre-domaine.com/api/payment-requests/
Lister les demandes¶
Retourne la liste de toutes les demandes de paiement du tenant courant.
Paramètres de requête¶
| Paramètre | Type | Description |
|---|---|---|
status |
string | Filtrer par statut (PENDING, CAPTURED, etc.) |
Réponse 200 OK¶
Tableau d'objets PaymentRequestDetail (voir Schémas).
Exemple¶
# Toutes les demandes en attente
curl -H "X-API-Key: votre-clé-api" \
"https://votre-domaine.com/api/payment-requests/?status=PENDING"
Détail d'une demande¶
Retourne le détail complet d'une demande de paiement.
Paramètres de chemin¶
| Paramètre | Type | Description |
|---|---|---|
uuid |
string (UUID) | Identifiant unique de la demande |
Réponse 200 OK¶
{
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"reference": "DEP-2026-0042",
"request_type": "DEPOSIT",
"status": "CAPTURED",
"amount": 150.00,
"amount_captured": 150.00,
"amount_refunded": 0.00,
"currency": "EUR",
"guest_email": "jean.dupont@email.com",
"guest_first_name": "Jean",
"guest_last_name": "Dupont",
"reservation_ref": "RES-2026-100",
"reservation_data": {
"checkin": "2026-07-01",
"checkout": "2026-07-05"
},
"masked_pan": "497010XXXXXX0014",
"card_expiry_month": 12,
"card_expiry_year": 2030,
"order_cycle": "CLOSED",
"email_sent": true,
"created_at": "2026-03-08T10:30:00Z",
"updated_at": "2026-03-08T10:35:00Z"
}
Erreurs¶
| Code | Réponse | Cause |
|---|---|---|
| 404 | {"error": "Payment request ... not found."} |
UUID inexistant |
Synchroniser les statuts¶
Endpoint optimisé pour la synchronisation PMS. Retourne les statuts pour une liste de références de réservations.
Paramètres de requête¶
| Paramètre | Type | Description |
|---|---|---|
refs |
string | Références de réservation séparées par des virgules |
Réponse 200 OK¶
[
{
"uuid": "550e8400-...",
"reference": "DEP-2026-0042",
"reservation_ref": "RES-001",
"request_type": "DEPOSIT",
"status": "CAPTURED",
"order_cycle": "CLOSED",
"amount": 150.00,
"amount_captured": 150.00
}
]
Exemple¶
curl -H "X-API-Key: votre-clé-api" \
"https://votre-domaine.com/api/payment-requests/statuses/?refs=RES-001,RES-002,RES-003"
Fréquence recommandée
Synchronisez toutes les 5 à 10 minutes pour un bon compromis entre fraîcheur des données et charge serveur.
Capturer un paiement¶
Capture (débite) un paiement pré-autorisé. Utilisé en cas de no-show pour les empreintes bancaires.
Paramètres de chemin¶
| Paramètre | Type | Description |
|---|---|---|
uuid |
string (UUID) | Identifiant unique de la demande |
Réponse 200 OK¶
{
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"reference": "IMP-2026-0200",
"status": "CAPTURED"
}
Erreurs¶
| Code | Réponse | Cause |
|---|---|---|
| 400 | {"error": "..."} |
Statut incompatible (doit être AUTHORISED_TO_VALIDATE) |
| 404 | {"error": "Payment request ... not found."} |
UUID inexistant |
Exemple¶
# No-show : capturer le montant garanti
curl -X POST -H "X-API-Key: votre-clé-api" \
https://votre-domaine.com/api/payment-requests/550e8400-.../capture/
Pré-requis
La demande doit être en statut AUTHORISED_TO_VALIDATE (pré-autorisation active). Ce statut est atteint automatiquement J-2 avant le checkin pour les empreintes.
Libérer une pré-autorisation¶
Libère une pré-autorisation active. Le montant bloqué sur la carte du client est débloqué. Utilisé quand le client se présente.
Paramètres de chemin¶
| Paramètre | Type | Description |
|---|---|---|
uuid |
string (UUID) | Identifiant unique de la demande |
Réponse 200 OK¶
{
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"reference": "IMP-2026-0200",
"status": "CANCELLED"
}
Erreurs¶
| Code | Réponse | Cause |
|---|---|---|
| 400 | {"error": "..."} |
Statut incompatible (doit être AUTHORISED_TO_VALIDATE) |
| 404 | {"error": "Payment request ... not found."} |
UUID inexistant |
Exemple¶
# Le client est arrivé : libérer la garantie
curl -X POST -H "X-API-Key: votre-clé-api" \
https://votre-domaine.com/api/payment-requests/550e8400-.../release/
Bonne pratique
Libérez toujours les pré-autorisations quand le client se présente. Sinon le montant reste bloqué sur sa carte jusqu'à expiration (jusqu'à 6 jours).
Annuler une demande¶
Annule une demande de paiement non finalisée.
Paramètres de chemin¶
| Paramètre | Type | Description |
|---|---|---|
uuid |
string (UUID) | Identifiant unique de la demande |
Réponse 200 OK¶
{
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"reference": "DEP-2026-0042",
"status": "CANCELLED"
}
Erreurs¶
| Code | Réponse | Cause |
|---|---|---|
| 400 | {"error": "..."} |
Demande déjà en statut terminal |
| 404 | {"error": "Payment request ... not found."} |
UUID inexistant |
Restriction
Seules les demandes non finalisées (NOT_INITIATED, PENDING, ERROR) peuvent être annulées. Un paiement déjà capturé ne peut pas être annulé — utilisez le remboursement via l'administration.
Supprimer une demande¶
Supprime définitivement une demande de paiement.
Paramètres de chemin¶
| Paramètre | Type | Description |
|---|---|---|
uuid |
string (UUID) | Identifiant unique de la demande |
Réponse 200 OK¶
Erreurs¶
| Code | Réponse | Cause |
|---|---|---|
| 404 | {"error": "Payment request ... not found."} |
UUID inexistant |
Action irréversible
La suppression est définitive. Préférez l'annulation pour conserver l'historique.