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 the internal_account
  • connected_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.


What's next

Discover how Mambu Payments manages incoming payments