Exporting wallet entries
Contents
- Overview
- Version-specific information
- Permissions and Authentication
- Basic export (all wallet entries)
- Filtered export: wallet entries from the last 24 hours
- Filtered export: wallet entries in a date range
- Checking task status and downloading
- Further reading
Overview
Export wallet ledger entries from Spaaza, including credits, debits, balances, and associated user information.
To create a wallet entry export, send a POST /tasks request to the Services API with target.export_index set to "wallet-ledger". See the Tasks API reference for full endpoint documentation.
Version-specific information
| Version | Change details |
|---|---|
| N/A | N/A |
Permissions and Authentication
Wallet entry exports use the Tasks API endpoints, which require chain-scoped authentication on the Services API. See Permissions and Authentication in the Tasks API reference for details on supported authentication methods.
Basic export (all wallet entries)
Create an unfiltered CSV export of all wallet ledger entries for your chain:
curl -X POST 'https://{Services API hostname}/tasks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ACCESS_TOKEN_ID:ACCESS_TOKEN_SECRET' \
-d '{
"chain": YOUR_CHAIN_ID,
"desc": "Full wallet ledger export",
"target": {
"action": "export",
"export_index": "wallet-ledger",
"export_format": "csv"
},
"trigger": {
"once": "2026-05-26T12:00:00Z"
}
}'
Filtered export: wallet entries from the last 24 hours
Use a relative_less_than rule on the timestamp field for incremental syncs:
curl -X POST 'https://{Services API hostname}/tasks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ACCESS_TOKEN_ID:ACCESS_TOKEN_SECRET' \
-d '{
"chain": YOUR_CHAIN_ID,
"desc": "Wallet entries from the last 24 hours",
"target": {
"action": "export",
"export_index": "wallet-ledger",
"export_format": "csv"
},
"trigger": {
"once": "2026-05-26T12:00:00Z",
"segment": {
"entity": "people",
"index": "wallet-ledger",
"join": "all",
"chain_id": YOUR_CHAIN_ID,
"rules": [
{
"field_name": "timestamp",
"field_type": "date",
"operator": "relative_less_than",
"time_factor": "day",
"time_amount": 1
}
]
}
}
}'
Filtered export: wallet entries in a date range
Use is_between_date to export entries within a specific time window:
curl -X POST 'https://{Services API hostname}/tasks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ACCESS_TOKEN_ID:ACCESS_TOKEN_SECRET' \
-d '{
"chain": YOUR_CHAIN_ID,
"desc": "Wallet entries for April 2026",
"target": {
"action": "export",
"export_index": "wallet-ledger",
"export_format": "csv"
},
"trigger": {
"once": "2026-05-26T12:00:00Z",
"segment": {
"entity": "people",
"index": "wallet-ledger",
"join": "all",
"chain_id": YOUR_CHAIN_ID,
"rules": [
{
"field_name": "timestamp",
"field_type": "date",
"operator": "is_between_date",
"start_date": "2026-04-01T00:00:00Z",
"end_date": "2026-04-30T23:59:59Z"
}
]
}
}
}'
Checking task status and downloading
After creating the export, poll the task status:
curl 'https://{Services API hostname}/tasks/{TASK_ID}' \
-H 'Authorization: Bearer ACCESS_TOKEN_ID:ACCESS_TOKEN_SECRET'
When the task state is DONE, request the download URL:
curl 'https://{Services API hostname}/tasks/{TASK_ID}/download_url' \
-H 'Authorization: Bearer ACCESS_TOKEN_ID:ACCESS_TOKEN_SECRET'
Download the file promptly — the URL expires after approximately one hour.
See Get a task and Get download URL for full endpoint details.
Further reading
- Segment filter reference — Full list of operators and field types for filtering
- Tasks API reference — Complete endpoint documentation