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 payment

When receiving an SCT payment, Mambu Payments creates an incoming payment and sends an event to an asynchronous webhook URL. No response is expected from customer.

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: Create incoming payment
Numeral-->>Customer:Send incoming_payment.received event
activate Customer
Customer->>Customer: Check if beneficiary account exists<br>and is not blocked

alt Payment can be credited
	Customer->>Customer: Credit payment
else Payment cannot be credited
	Customer->>Customer: Return payment
end

deactivate Customer

Receive SCT Inst payment

When receiving an SCT Inst payment, Mambu Payments create an incoming payment and sends an event 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: Create 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->>Customer: Confirm and credit payment
	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->>Customer: Reject payment
	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 SDD payment

When receiving an SDD payment, Mambu Payments creates an incoming payment and sends an event to an asynchronous webhook URL. No response is expected from customer.

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 SCT Inst payments.
confirmedIncoming payment has been confirmed. Only applicable to SCT Inst payments.
rejectedIncoming payment has been rejected, either by the customer or by the SEPA partner bank in case of SCT Inst payment timing out.

Related resources