A Singer tap that extracts data from the Airwallex API. It is built with hotglue-singer-sdk and speaks the standard Singer message protocol on stdout, so you can pair it with any compatible target.
- Authenticates with Airwallex using API key and client ID (token obtained via the login endpoint).
- Supports production and sandbox base URLs.
- Incremental sync on
financial_transactionsusingcreated_atand thefrom_created_atquery parameter.
| Stream | Endpoint | Primary key | Replication key |
|---|---|---|---|
accounts |
GET / (from config account_ids) |
id |
— |
account_details |
GET /account |
id |
— |
financial_transactions |
GET /financial_transactions |
id |
created_at |
bills |
GET /spend/bills |
id |
created_at |
transfers |
GET /transfers |
id |
— |
expenses |
GET /spend/expenses |
id |
created_at |
issuing_transactions |
GET /issuing/transactions |
transaction_id |
— |
direct_debits |
GET /direct_debits |
transaction_id |
created_at |
deposits |
GET /deposits |
id |
created_at |
conversions |
GET /fx/conversions |
conversion_id |
created_at |
Pagination uses page_size / page_num when the API returns has_more (except transfers, which uses cursor-based page_after).
- Python 3.7.1–3.10 (see
pyproject.toml).
From a clone of this repository:
pip install poetry
poetry installThe tap-airwallex console script is available via:
poetry run tap-airwallex --help| Setting | Type | Required | Default | Description |
|---|---|---|---|---|
api_key |
string | yes | — | Airwallex API key (x-api-key for login). |
client_id |
string | yes | — | Airwallex client ID (x-client-id for login). |
is_sandbox |
boolean | no | false |
If true, uses the demo API host (api-demo.airwallex.com). |
When you pass --config with a file path, a successful login may update that file with access_token and related fields for reuse on the next run.
{
"api_key": "YOUR_API_KEY",
"client_id": "YOUR_CLIENT_ID",
"is_sandbox": false
}Do not commit real credentials. Prefer environment variables or a secrets manager in production.
You can load settings from the process environment using --config=ENV (the Singer SDK merges env into config). Run tap-airwallex --about for the authoritative setting names and types for your installed version.
Discover stream catalog:
tap-airwallex --config config.json --discover > catalog.jsonRun a sync (with optional state):
tap-airwallex --config config.json --catalog catalog.json --state state.jsonPipe to any Singer target:
tap-airwallex --config config.json --catalog catalog.json | target-jsonlInspect built-in settings and stream metadata:
tap-airwallex --about| Mode | Base URL |
|---|---|
| Production | https://api.airwallex.com/api/v1 |
| Sandbox | https://api-demo.airwallex.com/api/v1 |
Official API documentation: Airwallex Docs.
poetry install
poetry run pytest
poetry run tap-airwallex --helpApache 2.0 — see pyproject.toml.