List bank payrolls
Changed onReturns a paginated list of bank payrolls — the batches of wire-transfer transactions Cardda submits to a single bank account. A payroll groups multiple transactions so they can be authorized at the bank with a single TOTP / coordinate / signature challenge.
Use this endpoint to:
- Show "month-end vendor batches" in your dashboard, sorted newest-first.
- Audit the lifecycle of a batch (draft → enrolled → preauthorized → approved / declined).
- Reconcile each line item: the response includes transactions for every payroll, so you don't need a second round-trip per row.
- Pull the receipt (receipt is true once the bank returns the proof of payment).
Response structure
Each payroll exposes:
| Field | Description |
|---|---|
| id | UUID. |
| name | Free-form label (e.g. "April vendor batch"). |
| status | Lifecycle status (see enum below). |
| transition | Currently-running async transition, when applicable (enroll, preauthorize, authorize, delete). |
| payment_date | Scheduled payment date (date only). |
| category | Optional grouping key set by the company. |
| online | Payment timing flag — true for same-day payrolls, false for deferred payrolls (a future payment_date is required). |
| holder_id | UUID of the company (multi-tenancy). |
| sender_id | UUID of the source bank_account. |
| bank_id | Bank where the payroll lives (e.g. cl_banco_de_chile, cl_santander). |
| external_id | Identifier returned by the bank once the payroll is accepted. |
| number_of_transactions | Count of line items in the batch. |
| total | Sum of amount across all transactions. |
| transactions | Embedded array of line items. |
| receipt | Whether a downloadable receipt exists. Pull it from GET /v1/banking/bank_payrolls/{id}/receipt/url. |
Common queries
# Most recent 60 payrolls of a company (the dashboard's default)
GET /v1/banking/bank_payrolls?\
holder_id=<company_uuid>&_order=desc&_field=created_at&_start=0&_end=60
# Only payrolls awaiting authorization (the "to-do" inbox)
GET /v1/banking/bank_payrolls?\
status={"$in":["enrolled","preauthorized"]}&\
holder_id=<company_uuid>
# Search by name
GET /v1/banking/bank_payrolls?\
name={"$regex":"april"}&holder_id=<company_uuid>
# Batch fetch by id
GET /v1/banking/bank_payrolls?id={"$in":["<uuid1>","<uuid2>"]}
# Payrolls of a specific source account
GET /v1/banking/bank_payrolls?sender_id=<bank_account_uuid>
All operators in Filters ($gt, $lt, $in, $regex, $or, $ne, …) are supported across every column listed in Query parameters.
Request
- Base URLhttps://api.cardda.com
- AuthHTTP bearer
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Query parameters
Filter by payroll UUID. Use id={"$in":[...]} for batch lookups.
UUID of the company that owns the payroll. The most common filter — the dashboard always pins the active company here. Equivalent to the company-id header for ownership scoping.
UUID of the source bank_account.
Bank identifier. Use GET /v1/banking/banks for the catalog. Examples: cl_banco_de_chile, cl_santander, cl_bci, cl_security, cl_itau, cl_banco_estado, mx_stp, pe_bcp.
Lifecycle status of the payroll.
Async state machine transition currently running on the payroll.
Free-form label. Combines well with $regex for text search.
STI subclass — controls which bank-specific behaviors apply. The values are bank-prefixed (e.g. Banking::BancoDeChile::BankPayroll). Only set this if you specifically want one bank's payrolls.
Scheduled payment date (YYYY-MM-DD). Accepts a single date string or a JSON-encoded operator object ({"$gte":"...","$lt":"..."}). Schema is type: string (no format) so both forms validate.
Bank-assigned identifier returned once the batch is accepted. Useful for reconciliation against the bank's own statement.
Creation timestamp (UTC ISO-8601). Accepts a single date-time string or a JSON-encoded operator object ({"$gte":"...","$lt":"..."}). Schema is type: string (no format) so both forms validate.
Parameters
Response
Paginated list of bank payrolls. Headers include X-Total-Count and Content-Range for offset pagination — see Pagination.
Changes
- info
endpoint added
- info