Endpoints
Request changes: create a transfer
v2 identified source/destination by chain + user/wallet, and allowed a raw destination address:Request changes: create a batch transfer
v2 — one destination array (destination.batch), each entry needs a bare userId or raw walletAddress and a string amount; chain and top-level requireApproval work the same as a single transfer:
destination.batch becomes a top-level destinations array of registered wallets with numeric amounts; chain is still derived from the source wallet:
Same 50-item cap and XRPL exclusion apply on both sides.
Response changes: single transfer
v2 (nested envelope, lowercase currency):Response changes: batch transfer
v2 (nested envelope,source/destination entries carry a raw userId/walletAddress):
receipt for the whole batch):
Status and lifecycle
Unchanged — v2 and v3 share the exact same status enum (OPEN_QUOTE, PENDING_APPROVAL, COMPLETED, etc.). Note CANCELLED still exists in the shared enum even though the public cancel endpoint isn’t available in v3 yet.