Ultimate Sender vs. Ultimate Receiver

Last updated: May 8, 2026

Astra has introduced two new parameters to our Routine endpoints:

  • ultimate_sender_id

  • ultimate_receiver_id

An ultimate sender or receiver is simply an Astra User ID. However, it's not just any User ID. This guide covers when and how to use these new parameters.

The ultimate_sender_id and the ultimate_receiver_id are never used together in the same Routine. You'll only ever use one or the other.

The ultimate_sender_id and the ultimate_receiver_id are not required for all Routines.

Purpose

For compliance purposes, these new parameters enable Astra to better track the flow of funds among individuals and counterparties.

Ultimate Receiver ID

Who is ultimately receiving funds in this transaction?

Not Applicable Example:

Let's say your program issues bank accounts to consumers, and you allow your consumers to fund these newly issued bank accounts from their personal bank account.

In this scenario, the bank account the consumer is funding is issued to them and belongs to them. The Astra Routine is considered "Me-to-Me" since money is moving between two payment instruments owned by the same person.

In this scenario, the ultimate_receiver_id is not applicable. The ultimate_sender_id is also not applicable.

Applicable Example:

Let's say your program enables your consumers to fund a wallet, but behind the scenes, all funds across all consumers are settling into a single omnibus account owned and operated by your program. The funds are then ledgered.

In this scenario, although the consumer is funding their wallet, the funds are technically being routed to an omnibus accounts that is not issued to the consumer. The omnibus account is owned and operated by your program. This makes the Routine "Peer-to-Peer" (consumer-to-business) instead of "Me-to-Me".

However, the consumer is still funding "their" wallet, and is not paying your business for a service.

So who is ultimately receiving the funds? The business or the consumer? In this scenario, the ultimate receiver is the consumer who is funding their wallet. They are the ones who are ultimately receiving the funds, therefore the ultimate_receiver_id is required in the Routine payload. The utlimate_receiver_id is the Astra User ID of the consumer funding their wallet.

The ultimate_sender_id is not applicable in this Use Case.

Ultimate Sender ID

Who is ultimately sending funds in this transaction?

Not Applicable Example:

Let's say your program issues bank accounts to consumers, and you allow your consumers to both deposit and withdraw funds from these bank accounts.

In this scenario, the bank account the consumer is withdrawing funds from is issued to them and belongs to them. Assuming they are withdrawing funds to another bank account they own, the Astra Routine is considered "Me-to-Me" since money is moving between two payment instruments owned by the same person.

In this scenario, the ultimate_sender_id is not applicable. The ultimate_receiver_id is also not applicable.

Applicable Example:

Let's say your program enables your consumers to deposit and withdraw funds from a wallet, but behind the scenes, all funds across all consumers are being withdrawn from single omnibus account owned and operated by your program. The funds are ledgered, preventing consumer A from withdrawing the funds of consumer B.

In this scenario, although the consumer is withdrawing funds from their wallet, the funds are technically being withdrawn from an omnibus accounts that is not issued to the consumer. The omnibus account is owned and operated by your program. This makes the Routine "Peer-to-Peer" (business-to-consumer) instead of "Me-to-Me".

However, the consumer is still withdrawing from "their" wallet, and your business isn't paying the consumer for a service.

So who is ultimately sending the funds? The business or the consumer? In this scenario, the ultimate sender is the consumer who is withdrawing funds from their wallet. They are "sending" funds to themselves, therefore the ultimate_sender_id is required in the Routine payload. The utlimate_sender_id is the Astra User ID of the consumer withdrawing from their wallet.

The ultimate_receiver_id is not applicable in this Use Case.