Pay out to a bank account
When to use
Use after recipient validation and required identity onboarding. The concrete public example is test Keeta USD → USD at a US bank account:
- source: test Keeta USD
keeta_any4zllibya6fum3lsoimxmnmeo57nklxlh4c6d6xosfacarfaa3knkiprkmm - destination:
USD,bank-account:us - environment:
test
Anchor-name gap: the guide uses a Resolver-selected Asset Movement anchor and does not name the operator. This corridor is illustrative until discovery returns a provider and the human approves it. Do not infer HopNow or a partner endpoint.
SDK steps
Confirm KYC/KYB readiness, source token balance, recipient ownership, bank details, amount, environment, fees, and provider terms.
Discover providers:
const client = new KeetaAnchor.AssetMovement.Client(userClient); const providers = await client.getProvidersForTransfer({ asset: { from: keetaUsdToken, to: 'USD' }, from: { type: 'chain', chain: { type: 'keeta', networkId: userClient.network } }, to: { type: 'bank-account', account: { type: 'us' } } });Build the documented
UsBankAccountResolvedrecipient locally. Never log account or routing numbers.Select a reviewed provider, check
getAccountStatus(...)if offered, and callprovider.initiateTransfer(...)with the exact source, destination, recipient, and base-unitvalue.Review the returned transfer ID and instruction. After final approval, follow it exactly:
const instruction = transfer.instructions[0]; await userClient.send( KeetaAnchor.KeetaNet.lib.Account.toAccount(instruction.sendToAddress), amount, keetaUsdToken, instruction.external );Poll
transfer.getTransferStatus()until a documented terminal status, respecting provider intervals.
Confirmations
- Confirm provider identity, recipient name, masked bank details, amount, currency, fees, expected delivery, and terms.
- Confirm
sendToAddress, token, amount, andexternalinstruction immediately before funding. - Require human approval for any new recipient or changed quote/instruction.
Failures
- No provider or missing operation: stop.
- KYC-share-needed, additional-KYC, or user-action-needed: present and complete only the typed action with consent.
- Never fund an instruction whose amount, token, provider, recipient, or identifier differs from the approved transfer.
- If funding publish or payout status is ambiguous, reconcile history and status before retrying.
- Do not expose bank details in logs, prompts, commits, or on-chain metadata.
Related skills
- Use complete-kyc or complete-kyb.
- Use discover-resolve-anchors for provider review.
- Apply spend-policy before initiation and funding.