Deposits
A deposit is money received into a client's virtual account. Deposits are inbound only—there is no "create deposit" endpoint. A payer sends funds to the client's virtual account details, and when the money arrives CAPAY records a deposit and credits that client's balance.
Funds land directly on the client that owns the receiving virtual account
(identified by clientId); there is no internal re-allocation step.
You can query deposits at any time, and simulate them in Sandbox to test your integration end to end.
Query deposits
curl "https://api.sandbox.capay.com.au/deposits?clientId=401f4647-8372-495f-8de0-aafb3e1eaf93&status=COMPLETED" \
-H "Authorization: Bearer <token>"
Query parameters
| Parameter | Description |
|---|---|
referenceNo | Human-readable deposit reference, e.g. 20240726-FA8JZ4 |
currencyCode | ISO 4217 currency code |
clientId | Client the deposit belongs to |
accountId | Virtual account that received the funds |
status | Deposit status (see lifecycle) |
depositDateFrom / depositDateTo | Deposit date range |
createdTimeFrom / createdTimeTo | Creation time range |
updatedTimeFrom / updatedTimeTo | Last-updated time range |
skip / limit | Pagination (defaults 0 / 10) |
Deposit object
| Field | Type | Description |
|---|---|---|
id | string | Deposit ID |
clientId | string | Client that received the funds |
accountId | string | Virtual account credited |
currencyCode | string | ISO 4217 currency code |
amount | number | Amount received |
type | enum | Settlement type: WIRE TRANSFER or PAYID |
referenceNo | string | Human-readable reference |
depositDate | string | YYYY-MM-DD |
payer | object | Payer details (name, account, reference) |
clientName | string | Name of the receiving client |
status | enum | See lifecycle below |
createdTime / updatedTime | string | ISO 8601 timestamps |
Deposit status lifecycle
| Status | Description |
|---|---|
SCHEDULED | Deposit created, not yet processed |
PENDING DIRECT DEBIT | Waiting for direct debit to be initiated |
DIRECT DEBIT PROCESSING | Direct debit being processed by the bank |
COMPLETED | Funds available in the account |
CANCELLED | Cancelled before processing |
REJECTED | Rejected by the bank or payment system |
PENDING REFUND | Refund requested, awaiting processing |
REFUNDING | Refund in progress |
REFUNDED | Funds refunded |
REFUND CANCELLED | Refund request cancelled |
REFUND REJECTED | Refund rejected by the payee |
All deposit status changes trigger a webhook
notification (event type DEPOSIT).
Simulate a deposit (Sandbox only)
POST /deposits/simulate creates a production-like deposit against a client's
virtual account. It is available only in Sandbox and moves no real money—
use it to trigger webhook notifications, exercise auto-processing of payments,
and test deposit retrieval.
curl -X POST "https://api.sandbox.capay.com.au/deposits/simulate" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"amount": 10,
"accountNumber": "999000123",
"routingNumber": "012999",
"currencyCode": "AUD",
"name": "CAPAY Sandbox",
"paymentReference": "Test deposit"
}'
The maximum simulated amount is 100. amount is the only required field;
currencyCode is required for multi-currency accounts.