Skip to main content

Overview

Withdrawals let organisations move value from managed wallets toward fiat bank payouts. Phase 1 is intentionally operational: after your tokens are sent on-chain to Prudra’s configured exchange receive address, Prudra operations completes the bank transfer manually. Status stays queryable via API so your agents and dashboards stay in sync.

How it works

  1. You register one or more bank accounts (masked in list responses).
  2. You call withdraw with the managed wallet id, amount, token, chain, and optional bankAccountId plus reference string.
  3. We process you withdrawl from 1-3 working days

Setting up a bank account

HTTP
curl -X POST https://api.prudra.dev/wallet-infra/bank-accounts \
  -H "Authorization: Bearer prv_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "accountName": "Acme Operations",
    "currency": "GBP",
    "sortCode": "12-34-56",
    "accountNumber": "12345678"
  }'
SDK
import { registerBankAccount, listBankAccounts } from '@prudra/wallet';

const bank = await registerBankAccount({
  accountName: 'Acme Operations',
  currency: 'GBP',
  sortCode: '12-34-56',
  accountNumber: '12345678',
});
List returns masked account numbers and truncated IBAN hints. DELETE soft-deactivates a bank account.

Initiating a withdrawal

curl -X POST https://api.prudra.dev/wallet-infra/withdraw \
  -H "Authorization: Bearer prv_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "fromWalletId": "mwt_xxx",
    "fromWalletType": "master",
    "amount": "250.00",
    "token": "USDC",
    "chain": "base",
    "bankAccountId": "ba_xxx",
    "reference": "invoice-2026-04-001"
  }'
bankAccountId is optional: if omitted, ops may still process manually using your org’s default instructions, but linking a bank row is recommended. The response includes id, status (e.g. pending_conversion), txHash, estimatedDays, and reference.

What happens next (Phase 1)

  • On-chain: Funds must confirm to the Prudra exchange wallet; txHash is your receipt.
  • Off-chain: Operations validates KYC/banking coverage and initiates the payout.
  • Support: Use reference and withdrawal id when contacting Prudra.
Automated status webhooks may be added in later phases; poll GET /wallet-infra/withdrawals/:id today.

Supported currencies and regions

Coverage depends on Prudra’s banking partners and your organisation’s verification status. Register accounts with the appropriate currency field (GBP, EUR, USD, etc.). Unsupported corridors return clear errors at registration or withdrawal time as the product hardens.

Expected timing

2–3 business days is the default estimatedDays hint for manual processing after the on-chain leg is observed. Bridges or congested chains may add delay before the exchange wallet credits.

Tracking status

EndpointPurpose
GET /wallet-infra/withdrawalsRecent withdrawals for the org.
GET /wallet-infra/withdrawals/:idSingle withdrawal row including status and txHash.

Configuration (operators)

Set in the API environment:
  • PRUDRA_EXCHANGE_ADDRESS
  • PRUDRA_EXCHANGE_CHAIN (default base)
  • PRUDRA_EXCHANGE_TOKEN (default USDC)
  • PAYMENT_STUB_MODE=true for stub transfers in development