Internal Transfer
Internal transfers allow you to send funds to another Sznd user or business using their Sznd tag. This uses the Quotes API with quote_type: "TRANSFER".
Overview
- Look Up Recipient — Find the Sznd user or business by their tag
- Create a TRANSFER Quote — Lock in rates and fees using the recipient's
user_tag - Accept the Quote — Execute the transfer
- Webhook Notification — Receive confirmation when the transfer completes
For same-currency transfers between wallets, there's also a Direct Transfer shortcut that skips the quote step.
Step 1: Look Up Recipient
Verify the recipient exists and is active by looking up their Sznd tag.
Endpoint
GET /api/v1/client/users/by-tag
Authentication
Query Parameters
Success Response (200 OK)
Confirm the recipient details before proceeding.
Step 2: Create a TRANSFER Quote
Create a quote using the recipient's user_tag instead of a beneficiary_id.
Endpoint
POST /api/v1/client/quotes
Authentication
Request Body (Transfer)
Required Parameters
Optional Parameters
Success Response (201 Created)
Step 3: Accept the Quote
Accept the quote to execute the transfer. The funds are transferred immediately.
Endpoint
POST /api/v1/client/quotes/{id}/accept
Authentication
Success Response (200 OK)
Step 4: Webhook Notification
You'll receive a transaction webhook when the transfer completes:
Example: Complete Internal Transfer Flow
cURL
Step 1: Look up recipient
Step 2: Create transfer quote
Step 3: Accept the quote
JavaScript
Same-Currency Shortcut: Direct Transfer
For same-currency transfers, you can skip the quote step and use the direct transfer endpoint:
POST /api/v1/client/transactions/transfer
This is simpler but requires both wallets to use the same currency and you need the recipient's wallet ID. When you only have the recipient's tag, use the quote-based flow above.
For full details, see the Transfers API — Direct Transfer.
Best Practices
- Verify Recipient First — Always look up the user tag before creating a transfer to confirm the recipient is active.
- Use Unique Origin References — Each
origin_referencemust be unique to prevent duplicate transfers. - Immediate Processing — Internal transfers are processed immediately upon quote acceptance, unlike external payouts which may take time.
- Store References — Save
transaction_idandtransaction_referencefor reconciliation.