Outgoing payments
When you create a payment_order from an internal_account linked to Mambu Core, Mambu Payments automatically handles booking the corresponding transaction in Mambu Core.
Payment creation
Create a payment order using the following request:
curl --request POST \
--url https://sandbox.numeral.io/v1/payment_orders \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '
{
"type": "sepa",
"direction": "credit",
// Other payment order attributes (amount, receiving account, etc.)
"originating_account_id": "9271b509-70cf-5459-9904-2af3264b745e",
"connected_account_id": "0e606186-0e33-45a1-a102-18c12980a0dd"
}
'Parameters:
originating_account_id: the ID of theinternal_accountconnected_account_id: the ID of the connector the internal account is attached to
For full details on the payment order creation endpoint, see the API reference.
Payment validation
Using Mambu Payments' native payment validation feature, when a payment reaches pending_approval status, you can choose one of two actions in Mambu Core:
- Authorization hold: reduces the available balance on the corresponding deposit account without creating a transaction.
- Direct transaction booking: immediately books the transaction in Mambu Core.
These validations can be combined with others, such as AML screening or velocity checks.
Both options verify that the deposit account:
- exists in Mambu Core and has a valid status
- has sufficient funds
- has no restrictions blocking the transaction
If validation fails, the payment order can be automatically canceled.
If the payment order is canceled (either by another validation step or manually by a dashboard user) Mambu Payments handles any cleanup automatically:
- An active authorization hold is automatically released.
- A booked transaction is reversed with an offsetting transaction.
sequenceDiagram title: Failed authorization hold participant C as You participant N as Mambu Payments participant M as Mambu Core participant S as Connector C->>+N: POST /payment_orders N->>-C: 200 N-->>C: payment_order.pending_approval alt Authorization hold N->>+M: Create authorization hold M->>-N: Reject authorization hold else Transaction N->>+M: Book transaction M->>-N: Reject transaction end N-->>C: payment_order.canceled
sequenceDiagram title: Reversed authorization hold participant C as You participant N as Mambu Payments participant M as Mambu Core participant S as Connector C->>+N: POST /payment_orders N->>-C: 200 N-->>C: payment_order.pending_approval alt Authorization hold N->>+M: Create authorization hold M->>-N: Accept authorization hold else Transaction N->>+M: Book transaction M->>-N: Accept transaction N-->>C: payment_order.cbs_transaction_booked end N-->>C: payment_order.payment_validation_updated C->>N: Cancel payment order N-->>C: payment_order.canceled alt Authorization hold N->>M: Reverse authorization hold N-->>C: payment_order.cbs_authoirzation_reversed else Transaction N->>M: Book opposite transaction N-->>C: payment_order.cbs_transaction_booked end
sequenceDiagram title: Approved payment participant C as You participant N as Mambu Payments participant M as Mambu Core participant S as Connector C->>+N: POST /payment_orders N->>-C: 200 N-->>C: payment_order.pending_approval alt Authorization hold N->>+M: Create authorization hold M->>-N: Accept authorization hold else Transaction N->>+M: Book transaction M->>-N: Accept transaction N-->>C: payment_order.cbs_transaction_booked end N-->>C: payment_order.payment_validation_updated N->>N: Process other validations N-->>C: payment_order.approved
Payment procesing
Once a payment is approved, it is submitted to your connector. The following outcomes are possible:
Payment rejected
If your connector rejects the payment order:
- An active authorization hold is automatically released.
- A booked transaction is reversed with an offsetting transaction.
sequenceDiagram participant C as You participant N as Mambu Payments participant M as Mambu Core participant S as Connector N-->>C: payment_order.approved N-->>C: payment_order.processing N->>+S: Forward payment N-->>C: payment_order.sent S->>-N: Reject payment N-->>C: payment_order.rejected alt Authorization hold present N->>M: Cancel authorization hold N-->>C: payment_order.cbs_authorization_reversed else Transaction booked N->>M: Book opposite transaction N-->>C: payment_order.cbs_transaction_booked end
Payment executed
If your connector accepts the payment and Mambu Payments receives execution confirmation:
- An active authorization hold is automatically settled.
- If no hold was created, a withdrawal transaction is booked on the deposit account in Mambu Core.
sequenceDiagram participant C as You participant N as Mambu Payments participant M as Mambu Core participant S as Connector N-->>C: payment_order.approved N-->>C: payment_order.processing N->>+S: Forward payment N-->>C: payment_order.sent S->>-N: Accept payment N-->>C: payment_order.executed alt Authorization present N->>M: Settle authorization hold N-->>C: payment_order.cbs_authorization_settled else No transaction nor authorization N->>M: Book transaction N-->>C: payment_order.cbs_transaction_booked end
Payment returned
If the payment is subsequently returned, the associated return object triggers a corresponding credit transaction in Mambu Core, restoring funds to the customer's account.
Updated about 13 hours ago
