Receive SEPA payments
Learn how to receive SEPA payments with Mambu Payments (formerly Numeral)
Payments received with Mambu Payments are represented as
incoming payments. Mambu Payments receives incoming payment files, debatches them if applicable, parses them into individual incoming payments, and creates and sends events to your webhooks.
Receive SCT or SDD payment
Receive SCT Inst payment
When receiving an SCT Inst payment, Mambu Payments sends an API request to a synchronous webhook URL dedicated to receiving instant payments. Customer must respond to this request with a positive or negative response within 3 seconds.
sequenceDiagram participant Customer participant Numeral as Mambu Payments participant Partner bank as SEPA partner bank (if applicable) participant CSM as SEPA CSM CSM->>Partner bank: Forward pacs.008 message Partner bank->>Numeral: Forward pacs.008 message Numeral->>Numeral: Decrypt file and verify signature Numeral->>Numeral: Parse incoming payment Numeral-->>Customer:Send incoming_payment.pending_confirmation<br>event to synchrononous webhook activate Customer Customer->>Customer: Check if beneficiary account exists<br>and is not blocked alt Payment can be credited Customer->>Numeral: Send positive response<br>status = confirmed Numeral->>Partner bank: Generate and send pacs.002 ACCP Partner bank->>CSM: Forward pacs.002 ACCP else Payment cannot be credited Customer->>Numeral: Send negative response<br>status = rejected<br>reason = AC04 Numeral->>Partner bank: Generate and send pacs.002 RJCT Partner bank->>CSM: Forward pacs.002 RJCT end deactivate Customer
Below are request and response samples:
{
"id": "cb97daf4-d6b0-4e58-aa4a-25087ca526b2",
"object": "event",
"topic": "incoming_payment",
"type": "pending_confirmation",
"data": {
"id": "5019fceb-8114-556e-81a5-67ad3a64342a",
"status": "pending_confirmation",
"status_details": "",
"object": "incoming_payment",
"idempotency_key": "",
"type": "sepa_instant",
"direction": "credit",
"amount": 685,
"currency": "EUR",
"connected_account_id": "507f2821-240e-4c83-b441-5881a6f907d4",
"originating_account": {
"account_number": "FR7688511000011234567890107",
"bank_code": "BNPAFRPP",
"holder_name": "PartnerCo",
"holder_address": {
"line_1": "",
"line_2": "",
"building_number": "",
"street_name": "",
"postal_code": "",
"region_state": "",
"city": "Paris",
"country": "FR"
},
"creditor_identifier": ""
},
"receiving_account": {
"account_number": "FR7688511000011234567890107",
"bank_code": "SOGEFRPP",
"holder_name": "TechCo",
"holder_address": {
"line_1": "",
"line_2": "",
"building_number": "",
"street_name": "",
"postal_code": "",
"region_state": "",
"city": "Lyon",
"country": "FR"
}
},
"receiving_account_id": "",
"reference": "",
"metadata": {},
"direct_debit_mandate": null,
"direct_debit_mandate_id": "",
"value_date": "2025-11-03",
"requested_execution_date": "",
"bank_data": {
"end_to_end_id": "10IBZ20240806000000010000427135",
"file_id": "953d6f51-d4b0-5387-803d-c51c49d12980",
"message_id": "10IBZ20240806000000010000427135",
"original_instruction_id": "1",
"transaction_id": "10IBZ20240806000000010000427135"
},
"reconciliation_status": "unreconciled",
"reconciled_amount": 0,
"created_at": "2025-11-03T14:40:25.655337Z",
"connected_account": "507f2821-240e-4c83-b441-5881a6f907d4"
},
"status": "created",
"status_details": "",
"related_object_id": "5019fceb-8114-556e-81a5-67ad3a64342a",
"related_object_type": "incoming_payment",
"created_at": "2025-11-03T14:40:25.721171152Z"
}{
"status": "confirmed",
"reason": null
}{
"status": "rejected",
"reason": "AC04" /* SEPA rejection code */
}If the request does not receive a response within 3 seconds, Mambu Payments will automatically respond to the SEPA sponsor bank or SEPA CSM with one of the following rejection codes
| Cause | Rejection code |
|---|---|
| Timeout | AB06 - Timeout instructed agent |
Non-200 response (3xx or 4xx) | AB09 - Error creditor agent |
Error (5xx) | AB08 - Offline creditor agent |
Receive incoming payment status updates
| Status | Description |
|---|---|
| received | Incoming payment has been received. |
| pending_confirmation | Incoming payment has been created and is pending confirmation. It can be confirmed or rejected. Only applicable to incoming instant payments. |
| confirmed | Incoming payment has been confirmed. Only applicable to incoming instant payments. |
| rejected | Incoming payment has been rejected, either by the customer or by the SEPA partner bank in case of instant payment timing out. |
Related resources
- Incoming payment object
- Confirm incoming payment API endpoint
- Reject incoming payment API endpoint
- Incoming payment lifecycle
Updated about 5 hours ago
