Orphan operations

Every payment Mambu Payments did not automatically book in Mambu Core are called orphan operations. This page explains how to spot and manage them.

How it works

Mambu Payments tries to book each incoming payment in Mambu Core automatically. When it can't, the payment is flagged as an orphan operation and has cbs_data.booking_status: pending.

There are multiple reasons a payment can be an orphan operation:

  • No internal account was found and thus, Mambu Payments didn’t know on what account to book the transaction
  • The configuration is incomplete
  • Mambu Core returned an error when Mambu Payments tried to book it

Navigate to Mambu Core integration → Orphan operations to see the list. Each row shows the payment amount, connected account, and the reason it's unbooked (booking_status_error_code / booking_status_details). Click a row to open the side panel and resolve it.

The list only shows pending payments. Once you resolve one, it is removed from the list.

Resolve an orphan operation

There are five ways to resolve an orphan operation, depending on its cause.

Link to an internal account

Use this when the payment has no matching internal account.

Pick the correct internal account from the picker in the side panel. Linking the payment triggers the same automatic booking flow Mambu Payments uses for any other incoming payment, you don't book the transaction yourself. booking_status moves to in_progress, then to booked once Mambu Core confirms, or back to pending with a new error if it fails again.

Use this for account_error cases: no active internal account found, multiple active internal accounts found, or no CBS data on the matched account.

Exclude from Mambu Core

Use this when the payment should not be booked in Mambu Core (for example, funds that don't belong on the ledger).

Excluding sets booking_status to excluded and removes the payment from the Orphan Operations list. You can reverse this from the payment's details at any time, which sets booking_status back to pending.

Return the payment

Use this when the payment needs to go back to the sender instead of being booked.

This opens the standard return flow for the incoming payment. The payment follows your usual return process from there and isn't booked into Mambu Core.

Retry the last failed booking

Use this when the cause was transient (for instance, a timeout, a rate limit, or a temporary Mambu Core error) and you expect the same booking to succeed without changes.

Retrying replays the last transaction booking attempt. booking_status moves to in_progress while Mambu Payments retries, then to booked on success or back to pending with an updated error on failure.

Retry only applies to cbs_error and account_error cases where a booking attempt was already made. It's not available if no transaction was ever attempted.

Book on suspense account

Use this when you need to get the funds onto the ledger now, but can't yet resolve the correct internal account (for example, the customer's account is closed or under review).

This books the payment to your configured suspense account instead of the original internal account, using the same suspense mechanism Mambu Payments uses for irrejectable payments. The resulting transactions[] entry has context: suspense. Once the correct account is identified, move the funds from suspense to it in Mambu Core directly, Mambu Payments doesn't automate that second leg.

Book on suspense account requires a suspense account to be configured. If none is configured, this option isn't available.