Menu de la documentation : Logs
Logs
Your requests to the API and the calls Tallio made to providers for you.
La référence de l’API n’existe qu’en anglais, comme l’API.
List provider calls #
/api/v1/provider_callsReturns the calls Tallio made to providers for your key's mode, newest first, as metadata: what was asked, how it ended and the provider's error. Filter by document and by when the call started.
- Bearer API key
Query parameters
limitintegerHow many items to return, 1 to 100; 10 by default.
From 1 to 100 · Default:
10starting_afterstringAn id (pcl_…) from this list: return the items after it, older ones (pass the last id of the current page). Not with ending_before.
Up to 64 characters
ending_beforestringAn id (pcl_…) from this list: return the items before it, newer ones (pass the first id of the current page). Not with starting_after.
Up to 64 characters
documentstringOnly calls about this document (doc_…).
Show patternHide pattern
^doc_[0-9A-Za-z]{22}$created[gte]stringOnly provider calls started at or after this moment (ISO 8601, e.g. 2026-10-11T09:30:00Z).
Format:
date-timecreated[lte]stringOnly provider calls started at or before this moment (ISO 8601, e.g. 2026-10-11T09:30:00Z).
Format:
date-time
Request
curlcurl -X GET 'https://tallio.dev/api/v1/provider_calls' \
-H "Authorization: Bearer $TALLIO_API_KEY"| Status | Description |
|---|---|
200 | A page of provider calls. |
| 4XX, 5XX | An error: see Errors below. |
Response body · 200
objectstringrequiredAlways "list".
Always
listdataobject[]requiredThis page's items, newest first.
Each item: One call Tallio made to a provider on your behalf, as the provider-call log keeps it: metadata only.
Show nested fields (16)Hide nested fields (16)
idstringrequiredId of the provider call (pcl_…).
Show patternHide pattern
^pcl_[0-9A-Za-z]{22}$objectstringrequiredAlways "provider_call".
Always
provider_calllivemodebooleanrequiredTrue for a call made for live documents, false for test ones.
providerstringrequiredThe licensed e-invoicing provider (or direct myDATA, or Tallio's sandbox) that issues the document.
One of:
sandbox,mydata,wrapp,impact,epsilon,softone,prosvasisoperationstringrequiredWhat Tallio asked the provider: issue, status (a status check), fetchPdf, lookup, verify (the connection's credentials), cancel or onboard.
One of:
issue,status,fetchPdf,lookup,verify,cancel,onboardpurposestringrequiredoperation: the operation's own exchange; auth: a login made for it, which never carries its verdict.
One of:
operation,authoutcomestringrequiredHow the call ended: ok, rejected (the provider refused it), transient (worth retrying), unknown (no clear answer, e.g. a timeout) or not_supported (the provider does not offer the operation).
One of:
ok,rejected,transient,unknown,not_supportedsettled_atstring | nullrequiredWhen Tallio recorded its verdict on the call's outcome; null while the outcome is only read from the HTTP status, and always null for an auth call.
Format:
date-timehttp_statusinteger | nullrequiredThe provider's HTTP status; null when no answer came back.
From 100 to 599
duration_msintegerrequiredHow long the call took.
From 0 to 9007199254740991
errorobject | nullrequiredThe provider's error, without its raw body (that is in response); null when the call succeeded. provider_message is removed (null) when the bodies are purged.
Show nested fields (4)Hide nested fields (4)
codestringrequiredStable machine-readable error code. Branch on this, never on
message.One of:
validation_failed,unauthorized,not_found,idempotency_conflict,idempotency_in_progress,already_exists,invalid_state,payload_too_large,unsupported_media_type,rate_limited,not_supported,regime_mismatch,connection_unavailable,provider_credentials_invalid,provider_rejected,balance_exceeded,provider_unavailable,pdf_not_ready,service_unavailable,internal_errormessagestringrequiredTallio's own explanation, safe to show to a developer; the provider's words are in provider_message.
provider_codestring | nullrequiredThe provider's own error code, or null when the error did not come from a provider.
provider_messagestring | nullrequiredThe provider's own error message, verbatim, or null when the error did not come from a provider. On a document or connection it is removed (null), like provider_raw, once the retention window ends or by a data-subject erasure.
urlstring | nullrequiredThe provider URL called, origin and path only; the query is in request.
merchantstringrequiredThe merchant the call was made for (mer_…).
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$documentstring | nullrequiredThe document the call was about (doc_…); null when none.
Show patternHide pattern
^doc_[0-9A-Za-z]{22}$connectionstring | nullrequiredThe connection used (con_…); null for the sandbox.
Show patternHide pattern
^con_[0-9A-Za-z]{22}$started_atstringrequiredWhen the call started.
Format:
date-time
has_morebooleanrequiredWhether more items exist past this page in the direction you paged (starting_after or ending_before).
Example response · 200{
"object": "list",
"data": [],
"has_more": false
}Response headers
x-request-idstringThe request's correlation id; quote it when reporting a problem. One of: req_ plus a uuid (Tallio made it), client: plus the x-request-id you sent (8-128 of A-Z a-z 0-9 . _ : -), or the hosting platform's id.
With every response
Show patternHide pattern
^(?:req_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|client:[A-Za-z0-9._:-]{8,128}|[A-Za-z0-9._-]{1,16}::[A-Za-z0-9._:-]{6,110})$ratelimit-limitintegerRequests allowed in the current window for the bucket this request counted against.
With 200, 400, 429 · At least 1
ratelimit-remainingintegerRequests left in the current window; 0 means the next one is refused until the window resets.
With 200, 400, 429 · At least 0
ratelimit-resetintegerSeconds until the current window resets.
With 200, 400, 429 · At least 0
www-authenticatestringThe bearer challenge: send a vendor secret key as
Authorization: Bearer <key>.With 401 · Always
Bearer realm="tallio"retry-afterintegerSeconds to wait before retrying a request refused with 429
rate_limited.With 429 · At least 1
| Code | Status | Retryable | Meaning |
|---|---|---|---|
validation_failed | 400 | No | Request validation failed. |
unauthorized | 401 | No | Authentication is required. |
rate_limited | 429 | Yes | A rate limit was reached. Retry later. |
internal_error | 500 | No | An unexpected server error occurred. |
Retrieve a provider call #
/api/v1/provider_calls/{id}Returns one provider call of your key's mode with what Tallio sent and what the provider answered, credentials removed. Past the retention window, or after a data-subject erasure, the bodies are null and bodies_purged_at says when.
- Bearer API key
Path parameters
idstringrequiredThe provider call's id (pcl_…).
Request
curlcurl -X GET 'https://tallio.dev/api/v1/provider_calls/pcl_02y9O8rh7F50tGi0QcWRrx' \
-H "Authorization: Bearer $TALLIO_API_KEY"| Status | Description |
|---|---|
200 | The provider call. |
| 4XX, 5XX | An error: see Errors below. |
Response body · 200
dataobjectrequiredOne provider call with its request and response bodies.
Show nested fields (21)Hide nested fields (21)
idstringrequiredId of the provider call (pcl_…).
Show patternHide pattern
^pcl_[0-9A-Za-z]{22}$objectstringrequiredAlways "provider_call".
Always
provider_calllivemodebooleanrequiredTrue for a call made for live documents, false for test ones.
providerstringrequiredThe licensed e-invoicing provider (or direct myDATA, or Tallio's sandbox) that issues the document.
One of:
sandbox,mydata,wrapp,impact,epsilon,softone,prosvasisoperationstringrequiredWhat Tallio asked the provider: issue, status (a status check), fetchPdf, lookup, verify (the connection's credentials), cancel or onboard.
One of:
issue,status,fetchPdf,lookup,verify,cancel,onboardpurposestringrequiredoperation: the operation's own exchange; auth: a login made for it, which never carries its verdict.
One of:
operation,authoutcomestringrequiredHow the call ended: ok, rejected (the provider refused it), transient (worth retrying), unknown (no clear answer, e.g. a timeout) or not_supported (the provider does not offer the operation).
One of:
ok,rejected,transient,unknown,not_supportedsettled_atstring | nullrequiredWhen Tallio recorded its verdict on the call's outcome; null while the outcome is only read from the HTTP status, and always null for an auth call.
Format:
date-timehttp_statusinteger | nullrequiredThe provider's HTTP status; null when no answer came back.
From 100 to 599
duration_msintegerrequiredHow long the call took.
From 0 to 9007199254740991
errorobject | nullrequiredThe provider's error, without its raw body (that is in response); null when the call succeeded. provider_message is removed (null) when the bodies are purged.
Show nested fields (4)Hide nested fields (4)
codestringrequiredStable machine-readable error code. Branch on this, never on
message.One of:
validation_failed,unauthorized,not_found,idempotency_conflict,idempotency_in_progress,already_exists,invalid_state,payload_too_large,unsupported_media_type,rate_limited,not_supported,regime_mismatch,connection_unavailable,provider_credentials_invalid,provider_rejected,balance_exceeded,provider_unavailable,pdf_not_ready,service_unavailable,internal_errormessagestringrequiredTallio's own explanation, safe to show to a developer; the provider's words are in provider_message.
provider_codestring | nullrequiredThe provider's own error code, or null when the error did not come from a provider.
provider_messagestring | nullrequiredThe provider's own error message, verbatim, or null when the error did not come from a provider. On a document or connection it is removed (null), like provider_raw, once the retention window ends or by a data-subject erasure.
urlstring | nullrequiredThe provider URL called, origin and path only; the query is in request.
merchantstringrequiredThe merchant the call was made for (mer_…).
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$documentstring | nullrequiredThe document the call was about (doc_…); null when none.
Show patternHide pattern
^doc_[0-9A-Za-z]{22}$connectionstring | nullrequiredThe connection used (con_…); null for the sandbox.
Show patternHide pattern
^con_[0-9A-Za-z]{22}$started_atstringrequiredWhen the call started.
Format:
date-timerequestobject | nullrequiredThe request Tallio sent as logged: method, full URL, headers and body, plus error when no answer came. Credentials were removed before it was stored.
bodyis parsed JSON or text; a body over 64 KB is a string ending in…[truncated: N bytes]. When even the headers would not fit, the whole side is{omitted: "[envelope omitted: N bytes]"}. Null when no body was kept (an operation that logs none, or none arrived), once the bodies were purged (see bodies_purged_at), or when it could not be opened (see bodies_unreadable), or always for a login exchange (see bodies_withheld).Show nested fields (1)Hide nested fields (1)
{key}any
responseobject | nullrequiredThe provider's answer as logged: status, headers and body. Credentials were removed before it was stored.
bodyis parsed JSON or text; a body over 64 KB is a string ending in…[truncated: N bytes]. When even the headers would not fit, the whole side is{omitted: "[envelope omitted: N bytes]"}. Null when no body was kept (an operation that logs none, or none arrived), once the bodies were purged (see bodies_purged_at), or when it could not be opened (see bodies_unreadable), or always for a login exchange (see bodies_withheld).Show nested fields (1)Hide nested fields (1)
{key}any
bodies_purged_atstring | nullrequiredWhen the bodies were removed, by the retention window or a data-subject erasure; null while they are kept.
Format:
date-timebodies_unreadablebooleanrequiredTrue when a stored body could not be opened; that side is null, and Tallio logs it to look into.
bodies_withheldbooleanrequiredTrue for a login exchange with the provider (purpose auth): its bodies can hold the merchant's session, so request and response are always null.
Example response · 200{
"data": {
"id": "pcl_02y9O8rh7F50tGi0QcWRrx",
"object": "provider_call",
"livemode": false,
"provider": "sandbox",
"operation": "issue",
"purpose": "operation",
"outcome": "ok",
"settled_at": "2026-10-11T09:30:00.000Z",
"http_status": 100,
"duration_ms": 0,
"error": {
"code": "validation_failed",
"message": "string",
"provider_code": "string",
"provider_message": "string"
},
"url": "string",
"merchant": "mer_02y9O8rh7F50tGi0QcWRrx",
"document": "doc_02y9O8rh7F50tGi0QcWRrx",
"connection": "con_02y9O8rh7F50tGi0QcWRrx",
"started_at": "2026-10-11T09:30:00.000Z",
"request": {},
"response": {},
"bodies_purged_at": "2026-10-11T09:30:00.000Z",
"bodies_unreadable": false,
"bodies_withheld": false
}
}Response headers
x-request-idstringThe request's correlation id; quote it when reporting a problem. One of: req_ plus a uuid (Tallio made it), client: plus the x-request-id you sent (8-128 of A-Z a-z 0-9 . _ : -), or the hosting platform's id.
With every response
Show patternHide pattern
^(?:req_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|client:[A-Za-z0-9._:-]{8,128}|[A-Za-z0-9._-]{1,16}::[A-Za-z0-9._:-]{6,110})$ratelimit-limitintegerRequests allowed in the current window for the bucket this request counted against.
With 200, 404, 429 · At least 1
ratelimit-remainingintegerRequests left in the current window; 0 means the next one is refused until the window resets.
With 200, 404, 429 · At least 0
ratelimit-resetintegerSeconds until the current window resets.
With 200, 404, 429 · At least 0
www-authenticatestringThe bearer challenge: send a vendor secret key as
Authorization: Bearer <key>.With 401 · Always
Bearer realm="tallio"retry-afterintegerSeconds to wait before retrying a request refused with 429
rate_limited.With 429 · At least 1
| Code | Status | Retryable | Meaning |
|---|---|---|---|
unauthorized | 401 | No | Authentication is required. |
not_found | 404 | No | The requested resource was not found. |
rate_limited | 429 | Yes | A rate limit was reached. Retry later. |
internal_error | 500 | No | An unexpected server error occurred. |
List requests #
/api/v1/requestsReturns the requests your key's mode made to the API, newest first, as metadata. Filter by HTTP status, operation, document, request id and creation time.
- Bearer API key
Query parameters
limitintegerHow many items to return, 1 to 100; 10 by default.
From 1 to 100 · Default:
10starting_afterstringAn id (rql_…) from this list: return the items after it, older ones (pass the last id of the current page). Not with ending_before.
Up to 64 characters
ending_beforestringAn id (rql_…) from this list: return the items before it, newer ones (pass the first id of the current page). Not with starting_after.
Up to 64 characters
statusintegerOnly requests answered with this HTTP status, e.g. 422.
From 100 to 599
operation_idstringOnly requests to this operation, by its id (e.g. createDocument); an unknown id lists nothing.
Up to 64 characters
Show patternHide pattern
^[A-Za-z][A-Za-z0-9]*$documentstringOnly requests that answered with this document (doc_…).
Show patternHide pattern
^doc_[0-9A-Za-z]{22}$request_idstringOnly requests with this x-request-id.
Show patternHide pattern
^(?:req_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|client:[A-Za-z0-9._:-]{8,128}|[A-Za-z0-9._-]{1,16}::[A-Za-z0-9._:-]{6,110})$created[gte]stringOnly requests created at or after this moment (ISO 8601, e.g. 2026-10-11T09:30:00Z).
Format:
date-timecreated[lte]stringOnly requests created at or before this moment (ISO 8601, e.g. 2026-10-11T09:30:00Z).
Format:
date-time
Request
curlcurl -X GET 'https://tallio.dev/api/v1/requests' \
-H "Authorization: Bearer $TALLIO_API_KEY"| Status | Description |
|---|---|
200 | A page of logged requests. |
| 4XX, 5XX | An error: see Errors below. |
Response body · 200
objectstringrequiredAlways "list".
Always
listdataobject[]requiredThis page's items, newest first.
Each item: One request your key made to the API, as the request log keeps it: metadata only.
Show nested fields (14)Hide nested fields (14)
idstringrequiredId of the logged request (rql_…).
Show patternHide pattern
^rql_[0-9A-Za-z]{22}$objectstringrequiredAlways "api_request".
Always
api_requestrequest_idstringrequiredThe request's x-request-id. Not unique: an MCP tool call logs two requests under one id.
livemodebooleanrequiredTrue for a live key's request, false for a test key's.
sourcestringrequiredapi: a call to the REST API; mcp: a tool call made through the MCP server.
One of:
api,mcpmethodstringrequiredThe HTTP method.
pathstringrequiredThe operation's route template, e.g. /api/v1/documents/{id}.
operation_idstring | nullrequiredThe operation's id, e.g. getDocument; null when none matched.
statusintegerrequiredThe HTTP status Tallio answered with.
From 100 to 599
duration_msintegerrequiredHow long Tallio took to answer, until the response's headers were ready.
From 0 to 9007199254740991
idempotency_keystring | nullrequiredThe Idempotency-Key the request carried; null if none.
merchantstring | nullrequiredThe merchant the request was about (mer_…); null when none.
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$documentstring | nullrequiredThe document the request answered with (doc_…); null when none.
Show patternHide pattern
^doc_[0-9A-Za-z]{22}$createdstringrequiredWhen the request arrived.
Format:
date-time
has_morebooleanrequiredWhether more items exist past this page in the direction you paged (starting_after or ending_before).
Example response · 200{
"object": "list",
"data": [],
"has_more": false
}Response headers
x-request-idstringThe request's correlation id; quote it when reporting a problem. One of: req_ plus a uuid (Tallio made it), client: plus the x-request-id you sent (8-128 of A-Z a-z 0-9 . _ : -), or the hosting platform's id.
With every response
Show patternHide pattern
^(?:req_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|client:[A-Za-z0-9._:-]{8,128}|[A-Za-z0-9._-]{1,16}::[A-Za-z0-9._:-]{6,110})$ratelimit-limitintegerRequests allowed in the current window for the bucket this request counted against.
With 200, 400, 429 · At least 1
ratelimit-remainingintegerRequests left in the current window; 0 means the next one is refused until the window resets.
With 200, 400, 429 · At least 0
ratelimit-resetintegerSeconds until the current window resets.
With 200, 400, 429 · At least 0
www-authenticatestringThe bearer challenge: send a vendor secret key as
Authorization: Bearer <key>.With 401 · Always
Bearer realm="tallio"retry-afterintegerSeconds to wait before retrying a request refused with 429
rate_limited.With 429 · At least 1
| Code | Status | Retryable | Meaning |
|---|---|---|---|
validation_failed | 400 | No | Request validation failed. |
unauthorized | 401 | No | Authentication is required. |
rate_limited | 429 | Yes | A rate limit was reached. Retry later. |
internal_error | 500 | No | An unexpected server error occurred. |
Retrieve a request #
/api/v1/requests/{id}Returns one logged request of your key's mode with its request and response bodies, credentials removed. Past the retention window, or after a data-subject erasure, the bodies are null and bodies_purged_at says when.
- Bearer API key
Path parameters
idstringrequiredThe logged request's id (rql_…).
Request
curlcurl -X GET 'https://tallio.dev/api/v1/requests/rql_02y9O8rh7F50tGi0QcWRrx' \
-H "Authorization: Bearer $TALLIO_API_KEY"| Status | Description |
|---|---|
200 | The logged request. |
| 4XX, 5XX | An error: see Errors below. |
Response body · 200
dataobjectrequiredOne logged request with its request and response bodies.
Show nested fields (18)Hide nested fields (18)
idstringrequiredId of the logged request (rql_…).
Show patternHide pattern
^rql_[0-9A-Za-z]{22}$objectstringrequiredAlways "api_request".
Always
api_requestrequest_idstringrequiredThe request's x-request-id. Not unique: an MCP tool call logs two requests under one id.
livemodebooleanrequiredTrue for a live key's request, false for a test key's.
sourcestringrequiredapi: a call to the REST API; mcp: a tool call made through the MCP server.
One of:
api,mcpmethodstringrequiredThe HTTP method.
pathstringrequiredThe operation's route template, e.g. /api/v1/documents/{id}.
operation_idstring | nullrequiredThe operation's id, e.g. getDocument; null when none matched.
statusintegerrequiredThe HTTP status Tallio answered with.
From 100 to 599
duration_msintegerrequiredHow long Tallio took to answer, until the response's headers were ready.
From 0 to 9007199254740991
idempotency_keystring | nullrequiredThe Idempotency-Key the request carried; null if none.
merchantstring | nullrequiredThe merchant the request was about (mer_…); null when none.
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$documentstring | nullrequiredThe document the request answered with (doc_…); null when none.
Show patternHide pattern
^doc_[0-9A-Za-z]{22}$createdstringrequiredWhen the request arrived.
Format:
date-timerequestobject | nullrequiredThe request as logged: method, path with its query, headers and body. Credentials were removed before it was stored.
bodyis parsed JSON or text; a body over 64 KB is a string ending in…[truncated: N bytes]. When even the headers would not fit, the whole side is{omitted: "[envelope omitted: N bytes]"}. Null when no body was kept (an operation that logs none, or none arrived), once the bodies were purged (see bodies_purged_at), or when it could not be opened (see bodies_unreadable).Show nested fields (1)Hide nested fields (1)
{key}any
responseobject | nullrequiredThe response as logged: status, headers and body. Credentials were removed before it was stored.
bodyis parsed JSON or text; a body over 64 KB is a string ending in…[truncated: N bytes]. When even the headers would not fit, the whole side is{omitted: "[envelope omitted: N bytes]"}. Null when no body was kept (an operation that logs none, or none arrived), once the bodies were purged (see bodies_purged_at), or when it could not be opened (see bodies_unreadable).Show nested fields (1)Hide nested fields (1)
{key}any
bodies_purged_atstring | nullrequiredWhen the bodies were removed, by the retention window or a data-subject erasure; null while they are kept.
Format:
date-timebodies_unreadablebooleanrequiredTrue when a stored body could not be opened; that side is null, and Tallio logs it to look into.
Example response · 200{
"data": {
"id": "rql_02y9O8rh7F50tGi0QcWRrx",
"object": "api_request",
"request_id": "req_0192f4c1-7a40-7c42-9b1d-4e5f6a7b8c9d",
"livemode": false,
"source": "api",
"method": "string",
"path": "string",
"operation_id": "string",
"status": 100,
"duration_ms": 0,
"idempotency_key": "string",
"merchant": "mer_02y9O8rh7F50tGi0QcWRrx",
"document": "doc_02y9O8rh7F50tGi0QcWRrx",
"created": "2026-10-11T09:30:00.000Z",
"request": {},
"response": {},
"bodies_purged_at": "2026-10-11T09:30:00.000Z",
"bodies_unreadable": false
}
}Response headers
x-request-idstringThe request's correlation id; quote it when reporting a problem. One of: req_ plus a uuid (Tallio made it), client: plus the x-request-id you sent (8-128 of A-Z a-z 0-9 . _ : -), or the hosting platform's id.
With every response
Show patternHide pattern
^(?:req_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|client:[A-Za-z0-9._:-]{8,128}|[A-Za-z0-9._-]{1,16}::[A-Za-z0-9._:-]{6,110})$ratelimit-limitintegerRequests allowed in the current window for the bucket this request counted against.
With 200, 404, 429 · At least 1
ratelimit-remainingintegerRequests left in the current window; 0 means the next one is refused until the window resets.
With 200, 404, 429 · At least 0
ratelimit-resetintegerSeconds until the current window resets.
With 200, 404, 429 · At least 0
www-authenticatestringThe bearer challenge: send a vendor secret key as
Authorization: Bearer <key>.With 401 · Always
Bearer realm="tallio"retry-afterintegerSeconds to wait before retrying a request refused with 429
rate_limited.With 429 · At least 1
| Code | Status | Retryable | Meaning |
|---|---|---|---|
unauthorized | 401 | No | Authentication is required. |
not_found | 404 | No | The requested resource was not found. |
rate_limited | 429 | Yes | A rate limit was reached. Retry later. |
internal_error | 500 | No | An unexpected server error occurred. |