Accounts
Endpoints to manage your accounts, their settings, bank movements, and on-demand scrapes.
Accounts
Use these endpoints to manage the bank accounts you have enrolled in Reconbanker, change their settings, inspect their movements, and trigger scrapes on demand. All endpoints require Authorization: Bearer <jwt>.
List accounts
Use this endpoint to list every account you have enrolled.
GET /accountsResponse 200 OK:
[
{
"id": "uuid",
"bank": "itau",
"name": "Operating account",
"status": "active",
"mode": "reconcile"
}
]mode falls back to "reconcile" for accounts that have no settings saved yet.
Create an account
Use this endpoint to enroll a new bank account.
POST /accounts
Content-Type: application/jsonRequest body:
{
"bankId": "uuid",
"name": "Operating account"
}bankId- required.name- required.
Responses:
201 Created- returns the new account.400 Bad Request-{ "error": "bankId and name are required" }
Get one account
Use this endpoint to fetch a single account by id.
GET /accounts/:accountIdResponse 200 OK:
{
"id": "uuid",
"bank": "itau",
"name": "Operating account",
"status": "active"
}404 Not Found when the account does not exist.
Delete an account
Use this endpoint to remove an account. You must repeat the account's current name in the request body. This is a safety check so you do not delete the wrong one by mistake.
DELETE /accounts/:accountId
Content-Type: application/jsonRequest body:
{ "confirmation_name": "Operating account" }Responses:
204 No Content- deleted.400 Bad Request-{ "error": "confirmation_name is required" }
Get account settings
Use this endpoint to read every setting on an account.
GET /accounts/:accountId/configResponse 200 OK:
{
"id": "uuid",
"account_id": "uuid",
"mode": "reconcile",
"pending_orders_endpoint": "https://customer.example/pending",
"webhook_url": "https://customer.example/webhook",
"retry_limit": 3,
"polling_method": "GET",
"polling_body": null,
"auth_type": "bearer",
"auth_token": "<token>",
"webhook_auth_type": "bearer",
"webhook_auth_token": "<token>",
"notify_on_expired": false,
"webhook_extra_fields": null,
"silent_ingestion": false,
"bank_username": "user@bank"
}Returns null when no settings have been saved yet.
Update account settings
Use this endpoint to save or update every setting on an account in one call. The request body replaces the current settings.
PUT /accounts/:accountId/config
Content-Type: application/jsonRequest body:
{
"pending_orders_endpoint": "https://customer.example/pending",
"webhook_url": "https://customer.example/webhook",
"webhook_auth_type": "bearer",
"webhook_auth_token": "<token>",
"retry_limit": 3,
"polling_method": "GET",
"polling_body": null,
"auth_type": "bearer",
"auth_token": "<token>",
"bank_username": "user@bank",
"bank_password": "<password>",
"notify_on_expired": false,
"webhook_extra_fields": { "tenant": "acme" },
"mode": "reconcile",
"silent_ingestion": false
}Field notes:
mode-"reconcile"(default) or"passthrough".pending_orders_endpoint- required whenmodeis"reconcile". Ignored in passthrough.webhook_url- always required.webhook_auth_type/webhook_auth_token- credentials Reconbanker uses to call your webhook.retry_limit- how many times Reconbanker re-attempts a match before giving up. Default3.polling_method-"GET"(default) or"POST".polling_body- sent as the JSON body whenpolling_methodis"POST". Ignored otherwise.auth_type/auth_token- credentials Reconbanker uses to call your pending orders endpoint. Also act as fallback for the webhook auth.bank_username/bank_password- your online banking credentials. Stored encrypted. Leave both off to keep existing credentials unchanged.notify_on_expired- whentrue, fires a webhook withstatus: "expired"for stale requests.webhook_extra_fields- JSON object merged into every webhook payload. These keys are reserved and cannot be overridden:external_id,status,amount,currency,name,id,received_at.silent_ingestion- passthrough only. Whentrue, Reconbanker marks transactions as notified but does not actually call the webhook (useful for backfills).
Responses:
200 OK- returns the same shape as the read endpoint.400 Bad Request- one of the validation messages (webhook_url is required,pending_orders_endpoint is required when mode is reconcile, etc.).
List account movements
Use this endpoint to list bank transactions Reconbanker has read for an account.
GET /accounts/:accountId/movements?limit=100&offset=0Query parameters:
limit- defaults to100, maximum500.offset- defaults to0.
Response 200 OK:
[
{
"id": "uuid",
"external_id": "string",
"amount": "1500.00",
"currency": "UYU",
"sender_name": "ACME SA",
"received_at": "2026-05-13T10:15:00Z",
"notified_at": null,
"excluded_at": null
}
]Newest movements first.
Resend a movement webhook
Use this endpoint to replay a passthrough webhook for a specific bank transaction (for example, when your receiver was down).
POST /accounts/:accountId/movements/:movementId/notifyResponses:
202 Accepted-{ "queued": true }404 Not Found-{ "error": "Movement not found for this account" }
Trigger a bank scrape
Use this endpoint to make Reconbanker log in to your bank right now instead of waiting for the next scheduled run.
POST /accounts/:accountId/scrapeResponse 202 Accepted:
{ "jobId": "string" }See Conciliation for the matching endpoints and Banks for the bank catalog.