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

CauseRejection code
TimeoutAB06 - Timeout instructed agent
Non-200 response (3xx or 4xx)AB09 - Error creditor agent
Error (5xx)AB08 - Offline creditor agent

Receive incoming payment status updates

StatusDescription
receivedIncoming payment has been received.
pending_confirmationIncoming payment has been created and is pending confirmation. It can be confirmed or rejected. Only applicable to incoming instant payments.
confirmedIncoming payment has been confirmed. Only applicable to incoming instant payments.
rejectedIncoming payment has been rejected, either by the customer or by the SEPA partner bank in case of instant payment timing out.

Related resources