CBS transfers

When both the originating and receiving accounts of a payment order are managed within Mambu Core, Mambu Payments can book the transactions directly in the Core, bypassing your external connector.

Initiating a CBS transfer

To trigger a CBS transfer, you have two options:

  • Explicit CBS transfer: Set the payment type to cbs_transfer. In this scenario, the receiving account ID must belong to an internal account (rather than an external account ID used for standard payments).
  • Automatic fallback: Initiate a payment order using any other type and set cbs_transfer_allowed: true. This allows Mambu Payments to automatically fall back to a cbs_transfer if it detects that the receiving account is managed in Mambu Core and registered as an internal account.

Authorization and booking

If Mambu authorization are configured for this flow, Mambu Payments will first create two authorization holds in Mambu Core. This process verifies that both accounts are active and capable of processing the respective transactions.

Once a CBS transfer is approved, two simultaneous transactions are booked in Mambu Core:

  • A withdrawal transaction from the originating account
  • A deposit transaction to the receiving account
sequenceDiagram
autonumber
participant C as Customer
participant N as Mambu Payments
participant M as Mambu Core
Note over C,M: A - Payment initiation
C->>+N: POST /payment_order<br>cbs_transfer_allowed = true<br>payment_type=sepa
N-->N: Assess if CBS transfer
N->>-C: 200
N-->>C: payment_order.pending_approval<br>payment_type=cbs_transfer
Note over C,M: B - Payment validation
N-->>C: payment_order.payment_validation_updated
N->>+M: POST /authorizationholds
M->>-N: 200
N->>+M: POST /authorizationholds
M->>-N: 200
N-->>C: payment_order.payment_validation_updated
Note over C,M: C - Payment processing
N-->>C: payment_order.approved
N-->>C: payment_order.processing
N-->>C: payment_order.sent
N-->>C: payment_order.executed
alt OK
N->>+M: POST /withdrawal_transaction
M->>-N: 200
N->>+M: POST /deposit_transaction
M->>-N: 200
N-->>C: payment_order.cbs_transaction_booked
else KO
N->>+M: POST /withdrawal_transaction
M->>-N: 200
N->>+M: POST /deposit_transaction
M->>-N: 400
N-->>C: payment_order.rejected
N->>M: DELETE /authorizationholds
N->>M: POST /deposit_transaction/id:adjust
N-->>C: payment_order.cbs_transaction_adjusted
end