Skip to content

There are two ways to withdraw money from a customer's account, depending on whether the cash is already available.

Cash withdrawal

If the account has sufficient cash balance, use the withdrawal endpoint to pay out directly to the customer's validated bank account. A bankAccount may be connected through the addBankAccount journey or during allocation plan or savingsplan setup. Money arrives within 1-2 business days.

curl -i -X POST \
  https://api.sandbox.fondo.se/v2/partner/client/49ad7378-121c-4a53-9894-dfd14a7b4877/account/49ad7378-121c-4a53-9894-dfd14a7b4877/withdrawal \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "withdrawalType": "bank_payout",
    "bankAccount": "49ad7378-121c-4a53-9894-dfd14a7b4877",
    "clientRef": "my_order_123",
    "executorRef": "197001010003",
    "amount": 0
  }'

Withdrawal request schema

One of:

Payout to customers bank account

withdrawalTypestring(bank_payout)required

Payout to customers bank account

Value "bank_payout"
bankAccountstring(UUID)^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...required
Example: "49ad7378-121c-4a53-9894-dfd14a7b4877"
clientRefstring(client reference)

Client applied ref

Example: "my_order_123"
executorRefstring(executor reference)required

SSN of the individual executing the operation. On write operations, validated against the account owner's SSN — requests with a mismatched value are rejected.

The partner is responsible for verifying the executor's identity (e.g. via BankID) before including this value.

Example: "197001010003"
amountnumberrequired

Transaction amount

Order withdrawal (sell and pay out)

When the customer wants to sell fund units and withdraw the proceeds in one step, use the order withdrawal endpoint. This combines what would otherwise be two separate calls (redeem + withdraw) into one. Once the redemption settles, a bank payout is automatically triggered.

curl -i -X POST \
  https://api.sandbox.fondo.se/v2/partner/client/49ad7378-121c-4a53-9894-dfd14a7b4877/order/withdrawal \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "orderType": "redemption",
    "account": "49ad7378-121c-4a53-9894-dfd14a7b4877",
    "clientRef": "my_order_123",
    "executorRef": "197001010003",
    "instrument": "US64110L1061USD",
    "units": 1000,
    "paymentAccount": "49ad7378-121c-4a53-9894-dfd14a7b4877",
    "bankAccount": "49ad7378-121c-4a53-9894-dfd14a7b4877"
  }'

Like regular orders, you can dry-run with ?validate-only.

Order withdrawal request schema

orderTypestring
Value"redemption"
accountstring(UUID)^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...required
Example: "49ad7378-121c-4a53-9894-dfd14a7b4877"
clientRefstring

Client applied ref

Example: "my_order_123"
executorRefstring(executor reference)required

SSN of the individual executing the operation. On write operations, validated against the account owner's SSN — requests with a mismatched value are rejected.

The partner is responsible for verifying the executor's identity (e.g. via BankID) before including this value.

Example: "197001010003"
instrumentstringrequired

Fondo instrument ID

Example: "US64110L1061USD"
unitsnumberrequired

Number of units. 7 decimals

Example: 1000
paymentAccountstring(UUID)^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...
Example: "49ad7378-121c-4a53-9894-dfd14a7b4877"
bankAccountstring(UUID)^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...
Example: "49ad7378-121c-4a53-9894-dfd14a7b4877"

Next steps

  • Real-time updates — connect a WebSocket subscription to receive live events for orders, transactions, and journeys instead of polling.
  • API Reference — see the full API Reference for all available endpoints and schemas.
  • API Fundamentals — read about General API setup for details on sandbox, NPC, and production.