When a TED is cross-core
The tenant policy
onus.shared_ispb_gate_enabled (default false) says that your ISPB is shared with another core. When it is true, or unreadable, the plugin asks the JD Courier ownership map who holds the recipient account of each TED to your ISPB:
With
false, a TED to your own ISPB is a P2P, and the plugin does not ask the map.
Send a cross-core TED
A cross-core TED uses the same two calls as a TED OUT: Initiate Transfer and Process Transfer.
- Initiate. The plugin prices the transfer as a TED OUT: the fee is charged on top of the amount, and the recipient gets the whole amount. In
nativefee mode, a fee package that takes the fee out of the amount is refused with422 BTF-3002. Like a P2P, a cross-core TED ignores the TED OUT operating window. - Process. The plugin checks the holder of the recipient account again. It holds the amount plus the fee on the sender’s account, with the ledger account
@intercoreas the counterpart. Then it sends the credit to the other core through the JD Courier.
The reconciliation worker resends a credit with an unknown outcome, inside and outside the TED OUT window. When the other core credits the recipient, the plugin commits the hold. The plugin keeps the hold and parks the transfer for an operator in these cases:
- After an attempt whose outcome was unknown, the other core refuses the credit, or the JD Courier answers that the holder of the recipient account changed.
- No answer arrives within 24 hours.
- The release of the hold does not finish.
PROCESSING, with reconciliation status MANUAL_REVIEW. Find it with List Pending Reconciliation. An operator resolves it as a TED OUT with Resolve Transfer Reconciliation: SETTLE commits the hold, and REVERT releases it.
Before it places the hold, /process refuses the transfer in these cases:
422 BTF-4003: the holder of the recipient account changed after the initiation. The transfer isFAILED.503 BTF-4000: the ownership map does not show the sender’s account as held by this engine. Send the confirmation again later.
Receive cross-core credits
The other core sends its cross-core TEDs to Bank Transfer through the JD Courier. The plugin books each one on the recipient’s ledger, with no fee:
- A credit debits
@intercoreand credits the recipient the whole amount, on theCROSS_CORE_INbinding. - A return of a cross-core TED that you sent debits
@intercoreand credits the original sender, on theCROSS_CORE_RETURN_INbinding. A return can be partial. The plugin refuses a return above the amount not yet returned.
CROSS_CORE_IN with status COMPLETED, and both fire transfer_incoming.completed.
Set up cross-core transfers
- Set the tenant policy
onus.shared_ispb_gate_enabledtotruethrough the Admin API. - Connect the plugin to the JD Courier with the JD Courier variables. Set
COURIER_ACCOUNT_CLAIMS_ENABLEDtotrue, so that the plugin claims the accounts of this engine on the ownership map. - Create an account with the alias
@intercorein each ledger that sends or receives cross-core TEDs. A credit from the other core debits it, so allow an overdraft on its balance. - Add the
CROSS_CORE_OUT,CROSS_CORE_IN, andCROSS_CORE_RETURN_INbindings to the ledger routing. Each ledger with aCROSS_CORE_OUTbinding also needs aCROSS_CORE_RETURN_INbinding. - Set up the other core as the JD Courier pages describe.

