Premiers appels¶
Ce guide vous accompagne pour effectuer vos premiers appels API en 5 minutes.
1. Créer une demande de pré-paiement¶
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": "client@example.com",
"guest_first_name": "Jean",
"guest_last_name": "Dupont",
"guest_phone": "+33612345678",
"language": "fr",
"reservation_ref": "RES-2026-042",
"reservation_data": {
"checkin": "2026-06-15",
"checkout": "2026-06-18",
"room": "Suite 201",
"nights": 3
}
}' \
https://votre-domaine.com/api/payment-requests/
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/"
}
Lien de paiement
Le payment_link est le chemin relatif vers le formulaire de paiement. Préparez l'URL complète : https://votre-domaine.com/payment/550e8400-...
2. Créer une empreinte bancaire¶
curl -X POST \
-H "X-API-Key: votre-clé-api" \
-H "Content-Type: application/json" \
-d '{
"request_type": "IMPRINT",
"amount": 200.00,
"currency": "EUR",
"guest_email": "client@example.com",
"guest_first_name": "Marie",
"guest_last_name": "Martin",
"reservation_ref": "RES-2026-043",
"language": "fr"
}' \
https://votre-domaine.com/api/payment-requests/
Réponse (201 Created) :
{
"uuid": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"reference": "IMP-2026-0015",
"status": "NOT_INITIATED",
"payment_link": "/payment/7c9e6679-7425-40de-944b-e07fc1f90ae7/"
}
Empreinte vs Pré-paiement
Pour une empreinte (IMPRINT), le montant représente le maximum capturable en cas de no-show. La carte du client n'est pas débitée lors de l'enregistrement.
3. Consulter l'état d'une demande¶
curl -H "X-API-Key: votre-clé-api" \
https://votre-domaine.com/api/payment-requests/550e8400-e29b-41d4-a716-446655440000/
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": "client@example.com",
"guest_first_name": "Jean",
"guest_last_name": "Dupont",
"reservation_ref": "RES-2026-042",
"reservation_data": {
"checkin": "2026-06-15",
"checkout": "2026-06-18",
"room": "Suite 201",
"nights": 3
},
"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"
}
4. Synchroniser les statuts (batch)¶
Pour synchroniser plusieurs réservations d'un coup :
curl -H "X-API-Key: votre-clé-api" \
"https://votre-domaine.com/api/payment-requests/statuses/?refs=RES-2026-042,RES-2026-043"
Réponse (200 OK) :
[
{
"uuid": "550e8400-...",
"reference": "DEP-2026-0042",
"reservation_ref": "RES-2026-042",
"request_type": "DEPOSIT",
"status": "CAPTURED",
"order_cycle": "CLOSED",
"amount": 150.00,
"amount_captured": 150.00
},
{
"uuid": "7c9e6679-...",
"reference": "IMP-2026-0015",
"reservation_ref": "RES-2026-043",
"request_type": "IMPRINT",
"status": "AUTHORISED",
"order_cycle": "OPEN",
"amount": 200.00,
"amount_captured": 0.00
}
]
5. Annuler une demande¶
curl -X POST \
-H "X-API-Key: votre-clé-api" \
https://votre-domaine.com/api/payment-requests/550e8400-e29b-41d4-a716-446655440000/cancel/
Réponse (200 OK) :
{
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"reference": "DEP-2026-0042",
"status": "CANCELLED"
}
Annulation
Seules les demandes non finalisées peuvent être annulées. Un paiement déjà capturé ne peut pas être annulé (utilisez le remboursement via l'administration).
6. Capturer (no-show) ou libérer (client présent)¶
Pour les empreintes en statut AUTHORISED_TO_VALIDATE (pré-autorisation active) :
# No-show : capturer le montant
curl -X POST -H "X-API-Key: votre-clé-api" \
https://votre-domaine.com/api/payment-requests/7c9e6679-.../capture/
# Client présent : libérer la pré-autorisation
curl -X POST -H "X-API-Key: votre-clé-api" \
https://votre-domaine.com/api/payment-requests/7c9e6679-.../release/
Pré-autorisation automatique
M-Pay crée automatiquement la pré-autorisation 2 jours avant le checkin si la date checkin est renseignée dans reservation_data. Voir le guide des scénarios pour le flux complet.