Paisr supports three transfer methods for moving money out of your wallet. P2P and ACH transfers start in a pending-approval state and require your wallet PIN to authorise before funds are released. A2A transfers between your own balances are approved automatically.
Transfer Methods
| Method | Description | Min Amount | Approval |
|---|---|---|---|
| A2A | Move between your own balances | 0.01 | Auto-approved |
| P2P | Send to another Paisr wallet | 0.10 | PIN required |
| ACH | Withdraw to a connected bank account | 25.00 | PIN required |
Initiating Transfers
All transfers are initiated through the same endpoint. The source is always a balance ID (bca_...) and the destination varies by method.
Account-to-Account (A2A)
Move funds between two balances you own. Useful for rebalancing currencies or moving funds to a saving balance. A2A transfers do not require a reference and are approved automatically.
Dashboard: Navigate to the wallet → Move → select source and destination balances → enter the amount → Initiate.
curl -X POST "https://api.live.paisr.tech/v2/transfers" \
-H "Authorization: Bearer <token>" \
-H "User-Agent: MyApp/1.0" \
-H "Content-Type: application/json" \
-d '{
"method": "A2A",
"source": "bca_<source_balance_id>",
"destination": "bca_<destination_balance_id>",
"amount": 100.00
}'Cross-currency A2A transfers are converted at the current market rate. The conversion breakdown is included in the transaction record.
Peer-to-Peer (P2P)
Send funds to another Paisr wallet. The destination can be a contact ID (fav_...) or a cashtag directly. A reference is required.
Dashboard: Navigate to the wallet → Send → select a balance and contact → enter the amount and reference → Initiate → enter your PIN → Approve.
curl -X POST "https://api.live.paisr.tech/v2/transfers" \
-H "Authorization: Bearer <token>" \
-H "User-Agent: MyApp/1.0" \
-H "Content-Type: application/json" \
-d '{
"method": "P2P",
"source": "bca_<balance_id>",
"destination": "acmecorp",
"amount": 100.00,
"reference": "Order #12345"
}'The response returns a transaction ID (tra_...) with status pending-approval. Use this ID to approve or cancel the transfer.
Bank Withdrawal (ACH)
Withdraw funds to a bank account. A reference is required. The minimum withdrawal amount is 25.00.
Dashboard: Navigate to the wallet → Withdraw → select a balance and bank account → enter the amount and reference → Initiate → enter your PIN → Approve.
curl -X POST "https://api.live.paisr.tech/v2/transfers" \
-H "Authorization: Bearer <token>" \
-H "User-Agent: MyApp/1.0" \
-H "Content-Type: application/json" \
-d '{
"method": "ACH",
"source": "bca_<balance_id>",
"destination": "cwa_<account_id>",
"amount": 250.00,
"reference": "Monthly settlement"
}'Approving a Transfer
P2P and ACH transfers require a cryptographic signature derived from your wallet PIN before funds are released. In the dashboard this happens through the PIN entry prompt. Via the API, generate the HMAC-SHA256 signature of the transaction ID using your wallet PIN as the key and submit it to the approve endpoint.
curl -X POST "https://api.live.paisr.tech/v2/transfers/{transaction_id}/approve" \
-H "Authorization: Bearer <token>" \
-H "User-Agent: MyApp/1.0" \
-H "Content-Type: application/json" \
-d '{
"signature": "<hmac_signature>"
}'Once approved, the transfer is irreversible. Funds are debited from the source balance immediately.
Cancelling a Transfer
A pending transfer can be cancelled before it is approved. Once approved, cancellation is not possible.
Dashboard: Navigate to the wallet → Transactions → select the transfer → Cancel.
curl -X POST "https://api.live.paisr.tech/v2/transfers/{transaction_id}/cancel" \
-H "Authorization: Bearer <token>" \
-H "User-Agent: MyApp/1.0" \
-H "Content-Type: application/json" \
-d '{
"note": "Sent to wrong contact"
}'Transaction History
Every transfer creates an immutable transaction record on your wallet. You can list and filter transactions by balance, status, method, or date range.
curl -X GET "https://api.live.paisr.tech/v2/wallets/{wallet_id}/transactions?method=P2P&status=settled" \
-H "Authorization: Bearer <token>" \
-H "User-Agent: MyApp/1.0"Retrieve the full details of a single transaction including its fee and conversion breakdown:
curl -X GET "https://api.live.paisr.tech/v2/wallets/{wallet_id}/transactions/{transaction_id}" \
-H "Authorization: Bearer <token>" \
-H "User-Agent: MyApp/1.0"