Payment Flow
Creating Payment Intents
Create a payment intent with a payment method, amount, customer info, and return URLs:
{
"paymentMethod": {
"id": "mbway-eupago",
"phone": "+351912345678"
},
"reference": "ORDER-12345",
"customer": {
"id": "cust_abc123",
"email": "customer@example.com"
},
"amount": "50.00",
"currency": "EUR",
"returnLinks": {
"default": "https://yourproduct.com/return",
"cancel": "https://yourproduct.com/cancel"
}
}
The response includes the payment intent id (UUID), status, and an action object that tells you what to do next with the customer.
Some methods (notably Rillpay) require additional
customerfields. See the individual payment method guides for the exact requirements.
Action Types
Redirect Action
Used by neteller-paysafe, paysafecard-trustpayments, card-rillpay, and openbanking-rillpay.
{
"type": "redirect",
"method": "GET",
"url": "https://provider.com/pay/...",
"expiresAt": "2025-11-18T15:30:00.000+00:00"
}
Redirect the customer to url; they complete the payment at the provider and are sent back to your returnLinks.
Requisites Action
Used by mbway-eupago (reference only) and multibanco-eupago (entity + reference).
{
"type": "requisites",
"requisites": {
"entity": "12345",
"reference": "123 456 789"
},
"expiresAt": "2025-11-20T23:59:59.000+00:00"
}
Display the requisites to the customer alongside the intent's amount and currency. The customer pays out-of-band (ATM, online banking, MBWay app) and the settlement arrives asynchronously.
The
requisitesobject does not containamount; use theamountfrom the payment intent itself.
Webhooks
Configure at portal-test.sweuze.com.
Fulfill orders on payment_intent.succeeded (or payment.succeeded) - never on return URLs, which can be manipulated by the customer.
Webhooks are cryptographically signed. See Webhook Validation.
Idempotency
- The same
referencematches existing non-canceled intents. If youPOST /payment-intentswith areferencethat already has an active intent, the existing intent is returned instead of creating a duplicate. - Use unique
referencevalues for new orders. - Deduplicate webhooks by
id- each delivery may be retried.
Error Handling
| Code | Meaning | Action |
|---|---|---|
| 401 | Invalid auth | Check API key and signature header |
| 409 | Intent blocked | Customer account issue |
| 422 | Validation failed | Check fields array (includes per-method conditional requirements) |
| 502 | Provider error | Retry or offer an alternative method |