curl --request GET \
--url https://api-sandbox.ledgersyncappv2.com/v3/operations/{operation_id} \
--header 'Authorization: Bearer <token>'{
"id": "op_01HXYZ8A6N7K2W9PQ4T5Z3V6E0",
"type": "account.refresh",
"created_at": "2023-11-07T05:31:56Z",
"result": {
"kind": "connection",
"connection": {
"id": "con_FINICITY_41294",
"client_id": "cli_01HXYZ8A6N7K2W9PQ4T5Z3V6E0",
"created_at": "2023-11-07T05:31:56Z",
"institution": {
"id": "<string>",
"name": "Chase",
"logo_url": "<string>"
},
"last_refreshed_at": "2023-11-07T05:31:56Z",
"last_error": {
"code": "unknown_api_key",
"message": "The API key you presented doesn't match any active key.",
"type": "auth_error",
"doc_url": "https://portal.ledgersyncappv2.com/errors/unknown_api_key",
"category": "AUTH_ERROR",
"is_user_actionable": true,
"source_diagnostic_code": "FIN-103",
"param": "client.email",
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
"errors": [
{
"param": "client.email",
"message": "must be a valid email address",
"code": "invalid_email"
}
]
},
"expected_capabilities": {
"transactions": {},
"balance": {},
"available_balance": {},
"statements": {},
"check_images": {}
},
"realized_capabilities": {
"transactions": {
"last_success_at": "2023-11-07T05:31:56Z",
"next_refresh_after": "2023-11-07T05:31:56Z",
"last_error": {
"code": "unknown_api_key",
"message": "The API key you presented doesn't match any active key.",
"type": "auth_error",
"doc_url": "https://portal.ledgersyncappv2.com/errors/unknown_api_key",
"category": "AUTH_ERROR",
"is_user_actionable": true,
"source_diagnostic_code": "FIN-103",
"param": "client.email",
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
"errors": [
{
"param": "client.email",
"message": "must be a valid email address",
"code": "invalid_email"
}
]
}
},
"balance": {
"last_success_at": "2023-11-07T05:31:56Z",
"next_refresh_after": "2023-11-07T05:31:56Z",
"last_error": {
"code": "unknown_api_key",
"message": "The API key you presented doesn't match any active key.",
"type": "auth_error",
"doc_url": "https://portal.ledgersyncappv2.com/errors/unknown_api_key",
"category": "AUTH_ERROR",
"is_user_actionable": true,
"source_diagnostic_code": "FIN-103",
"param": "client.email",
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
"errors": [
{
"param": "client.email",
"message": "must be a valid email address",
"code": "invalid_email"
}
]
}
},
"available_balance": {
"last_success_at": "2023-11-07T05:31:56Z",
"next_refresh_after": "2023-11-07T05:31:56Z",
"last_error": {
"code": "unknown_api_key",
"message": "The API key you presented doesn't match any active key.",
"type": "auth_error",
"doc_url": "https://portal.ledgersyncappv2.com/errors/unknown_api_key",
"category": "AUTH_ERROR",
"is_user_actionable": true,
"source_diagnostic_code": "FIN-103",
"param": "client.email",
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
"errors": [
{
"param": "client.email",
"message": "must be a valid email address",
"code": "invalid_email"
}
]
}
},
"statements": {
"last_success_at": "2023-11-07T05:31:56Z",
"next_refresh_after": "2023-11-07T05:31:56Z",
"last_error": {
"code": "unknown_api_key",
"message": "The API key you presented doesn't match any active key.",
"type": "auth_error",
"doc_url": "https://portal.ledgersyncappv2.com/errors/unknown_api_key",
"category": "AUTH_ERROR",
"is_user_actionable": true,
"source_diagnostic_code": "FIN-103",
"param": "client.email",
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
"errors": [
{
"param": "client.email",
"message": "must be a valid email address",
"code": "invalid_email"
}
]
}
},
"check_images": {
"last_success_at": "2023-11-07T05:31:56Z",
"next_refresh_after": "2023-11-07T05:31:56Z",
"last_error": {
"code": "unknown_api_key",
"message": "The API key you presented doesn't match any active key.",
"type": "auth_error",
"doc_url": "https://portal.ledgersyncappv2.com/errors/unknown_api_key",
"category": "AUTH_ERROR",
"is_user_actionable": true,
"source_diagnostic_code": "FIN-103",
"param": "client.email",
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
"errors": [
{
"param": "client.email",
"message": "must be a valid email address",
"code": "invalid_email"
}
]
}
}
},
"_debug": {
"source_used": "<string>"
},
"updated_at": "2023-11-07T05:31:56Z"
}
},
"error": {
"code": "unknown_api_key",
"message": "The API key you presented doesn't match any active key.",
"type": "auth_error",
"doc_url": "https://portal.ledgersyncappv2.com/errors/unknown_api_key",
"category": "AUTH_ERROR",
"is_user_actionable": true,
"source_diagnostic_code": "FIN-103",
"param": "client.email",
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
"errors": [
{
"param": "client.email",
"message": "must be a valid email address",
"code": "invalid_email"
}
]
},
"completed_at": "2023-11-07T05:31:56Z"
}Check on an async operation
A handful of endpoints (initiate connection, refresh) hand
you back an operation_id. Polling
here is the fallback if you can’t run a webhook handler —
usually you’ll get the result via webhook first. The
result field is populated when status=succeeded; error
when status=failed.
For connection.initiate operations specifically: while
the operation is queued/running the embedded
result.connection.id is a UUID-prefixed placeholder
(con_<uuid>) that is not valid against any other
endpoint. Once status=succeeded, result.connection.id
is the canonical
con_<SOURCE>_<bankAccountId> (e.g. con_FINICITY_41294,
con_MX_1224) — store that id and use it for subsequent
/connections, /accounts, /transactions, and
/statements calls. See the Connection lifecycle section
at the top of this reference for the full handshake.
curl --request GET \
--url https://api-sandbox.ledgersyncappv2.com/v3/operations/{operation_id} \
--header 'Authorization: Bearer <token>'{
"id": "op_01HXYZ8A6N7K2W9PQ4T5Z3V6E0",
"type": "account.refresh",
"created_at": "2023-11-07T05:31:56Z",
"result": {
"kind": "connection",
"connection": {
"id": "con_FINICITY_41294",
"client_id": "cli_01HXYZ8A6N7K2W9PQ4T5Z3V6E0",
"created_at": "2023-11-07T05:31:56Z",
"institution": {
"id": "<string>",
"name": "Chase",
"logo_url": "<string>"
},
"last_refreshed_at": "2023-11-07T05:31:56Z",
"last_error": {
"code": "unknown_api_key",
"message": "The API key you presented doesn't match any active key.",
"type": "auth_error",
"doc_url": "https://portal.ledgersyncappv2.com/errors/unknown_api_key",
"category": "AUTH_ERROR",
"is_user_actionable": true,
"source_diagnostic_code": "FIN-103",
"param": "client.email",
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
"errors": [
{
"param": "client.email",
"message": "must be a valid email address",
"code": "invalid_email"
}
]
},
"expected_capabilities": {
"transactions": {},
"balance": {},
"available_balance": {},
"statements": {},
"check_images": {}
},
"realized_capabilities": {
"transactions": {
"last_success_at": "2023-11-07T05:31:56Z",
"next_refresh_after": "2023-11-07T05:31:56Z",
"last_error": {
"code": "unknown_api_key",
"message": "The API key you presented doesn't match any active key.",
"type": "auth_error",
"doc_url": "https://portal.ledgersyncappv2.com/errors/unknown_api_key",
"category": "AUTH_ERROR",
"is_user_actionable": true,
"source_diagnostic_code": "FIN-103",
"param": "client.email",
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
"errors": [
{
"param": "client.email",
"message": "must be a valid email address",
"code": "invalid_email"
}
]
}
},
"balance": {
"last_success_at": "2023-11-07T05:31:56Z",
"next_refresh_after": "2023-11-07T05:31:56Z",
"last_error": {
"code": "unknown_api_key",
"message": "The API key you presented doesn't match any active key.",
"type": "auth_error",
"doc_url": "https://portal.ledgersyncappv2.com/errors/unknown_api_key",
"category": "AUTH_ERROR",
"is_user_actionable": true,
"source_diagnostic_code": "FIN-103",
"param": "client.email",
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
"errors": [
{
"param": "client.email",
"message": "must be a valid email address",
"code": "invalid_email"
}
]
}
},
"available_balance": {
"last_success_at": "2023-11-07T05:31:56Z",
"next_refresh_after": "2023-11-07T05:31:56Z",
"last_error": {
"code": "unknown_api_key",
"message": "The API key you presented doesn't match any active key.",
"type": "auth_error",
"doc_url": "https://portal.ledgersyncappv2.com/errors/unknown_api_key",
"category": "AUTH_ERROR",
"is_user_actionable": true,
"source_diagnostic_code": "FIN-103",
"param": "client.email",
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
"errors": [
{
"param": "client.email",
"message": "must be a valid email address",
"code": "invalid_email"
}
]
}
},
"statements": {
"last_success_at": "2023-11-07T05:31:56Z",
"next_refresh_after": "2023-11-07T05:31:56Z",
"last_error": {
"code": "unknown_api_key",
"message": "The API key you presented doesn't match any active key.",
"type": "auth_error",
"doc_url": "https://portal.ledgersyncappv2.com/errors/unknown_api_key",
"category": "AUTH_ERROR",
"is_user_actionable": true,
"source_diagnostic_code": "FIN-103",
"param": "client.email",
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
"errors": [
{
"param": "client.email",
"message": "must be a valid email address",
"code": "invalid_email"
}
]
}
},
"check_images": {
"last_success_at": "2023-11-07T05:31:56Z",
"next_refresh_after": "2023-11-07T05:31:56Z",
"last_error": {
"code": "unknown_api_key",
"message": "The API key you presented doesn't match any active key.",
"type": "auth_error",
"doc_url": "https://portal.ledgersyncappv2.com/errors/unknown_api_key",
"category": "AUTH_ERROR",
"is_user_actionable": true,
"source_diagnostic_code": "FIN-103",
"param": "client.email",
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
"errors": [
{
"param": "client.email",
"message": "must be a valid email address",
"code": "invalid_email"
}
]
}
}
},
"_debug": {
"source_used": "<string>"
},
"updated_at": "2023-11-07T05:31:56Z"
}
},
"error": {
"code": "unknown_api_key",
"message": "The API key you presented doesn't match any active key.",
"type": "auth_error",
"doc_url": "https://portal.ledgersyncappv2.com/errors/unknown_api_key",
"category": "AUTH_ERROR",
"is_user_actionable": true,
"source_diagnostic_code": "FIN-103",
"param": "client.email",
"trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
"errors": [
{
"param": "client.email",
"message": "must be a valid email address",
"code": "invalid_email"
}
]
},
"completed_at": "2023-11-07T05:31:56Z"
}Authorizations
Pass your secret key in the Authorization header as a Bearer
token: Authorization: Bearer sk_test_... (sandbox) or
Bearer sk_live_... (production).
Keys are created in the developer portal and the plaintext secret is shown exactly once at creation. Treat them like passwords — never embed them in mobile apps or front-end code.
Path Parameters
Response
The Operation, with result or error once it's done.
Tracks an async operation's progress.
"op_01HXYZ8A6N7K2W9PQ4T5Z3V6E0"
connection.initiate, connection.complete, account.refresh, statement.extract, transaction.sync "account.refresh"
queued, running, succeeded, failed Resource produced by the operation, present only when
status=succeeded. The kind field discriminates the
variant for SDK code generation.
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
Show child attributes
Show child attributes
Populated when status=failed. Same shape as error.*
in an HTTP error response — branch on code.
Show child attributes
Show child attributes
