Finance Library Cancel Transfer

Hi Finance team!

Suppose we have a batch and a list of instructions. What is the best way to cancel them all?
So if one party wants to cancel, what can it do? Archive the Instruction. Who will archive others? And who archives the batch?

Thanks!
Victor

2 Likes

Hi Victor,

In the current implementation, the individuals or entities who sign the Batch, known as the requestors, have the ability to use the consuming Cancel choice of the Batch to cancel all associated Instructions.

It’s important to note that the requestors could be a variety of parties, such as the {buyer, seller} of a trade or a third-party like a trade registration party. However, it is generally not desirable for a single trading party, such as the buyer, to unilaterally be able to cancel a trade (as the Batch and its Instructions generally represent an obligation to settle). Instead, if a single trading party wishes to cancel a trade, it could be handled with a separate “propose-accept” workflow which gathers sufficient authorization to cancel.

Furthermore, while it’s possible for the requestors to Cancel each Instruction individually and then archive the Batch, the Cancel choice of the Batch does so atomically.

I hope that helps.

Johan

1 Like

Thanks for the answer, Johan. It helps a lot!

But what if I have Instructions where requestors are not taking action? Routed Steps case. Alice sends tokens to Bob through a chain:
Alice → AliceBank → CentralBank → BobBank → Bob

I have an instruction (AliceBank-BobBank leg) where the sender and receiver are not in the requestors. How can I effectively cancel the transfer from their perspective? For example, AliceBank rejects allocation and wants to stop the transfer.

Thanks!
Victor

1 Like

If any Instruction in the Batch is either not approved or not allocated, the settlement of the Batch will fail. Therefore, if AliceBank leaves their Instructions unapproved or unallocated, the transfer will not take place. Currently, the only way to indicate rejection is by leaving the corresponding instructions unapproved or unallocated.

For the particular case where AliceBank should be able to reject acting as an intermediary for a particular transfer (after the batch has been instantiated), it may be necessary to implement a separate workflow initiated by AliceBank which requests that the requestors amend the route or cancel the entire Batch (including its Instructions).

1 Like