Μενού τεκμηρίωσης: Events
Events
What happened in your account, kept for polling and catching up.
Η αναφορά API είναι διαθέσιμη μόνο στα αγγλικά, όπως και το API.
Σε αυτή τη σελίδα
List events #
/api/v1/eventsReturns the events of your key's mode, newest first, each exactly as webhooks deliver it. Filter by type, document, merchant and creation time; catch up after downtime by paging back to the last event you handled.
- Bearer API key
Query parameters
limitintegerHow many items to return, 1 to 100; 10 by default.
From 1 to 100 · Default:
10starting_afterstringAn id (evt_…) 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 (evt_…) 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
typestring[]Only events of these types; repeat the parameter for several (type=a&type=b).
1 to 20 items
documentstringOnly events about this document (doc_…).
Show patternHide pattern
^doc_[0-9A-Za-z]{22}$merchantstringOnly events about this merchant or its documents and connections (mer_…).
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$created[gte]stringOnly events created at or after this moment (ISO 8601, e.g. 2026-10-11T09:30:00Z).
Format:
date-timecreated[lte]stringOnly events 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/events' \
-H "Authorization: Bearer $TALLIO_API_KEY"| Status | Description |
|---|---|
200 | A page of events. |
| 4XX, 5XX | An error: see Errors below. |
Response body · 200
objectstringrequiredAlways "list".
Always
listdataobject[]requiredThis page's items, newest first.
Each item: Something that happened in your account. Webhooks deliver these; consumers dedupe on id.
Show nested fields (13)Hide nested fields (13)
idstringrequiredId of the event (evt_…).
Show patternHide pattern
^evt_[0-9A-Za-z]{22}$objectstringrequiredAlways "event".
Always
eventtypestringrequiredWhat happened: document.created (Tallio accepted a document), document.issued (it has a MARK), document.rejected (the provider or AADE refused it), document.failed (Tallio could not deliver it), merchant.created (a merchant was created), connection.created (a merchant was connected to a provider), connection.verified (the provider accepted its credentials), connection.invalid (the provider refused them), connection.disconnected (it was disconnected), connect_session.completed (a merchant connected through a hosted connect link), webhook_endpoint.disabled (Tallio disabled an endpoint failing for days) and document.retried (a failed document was queued to be sent again).
One of:
document.created,document.issued,document.rejected,document.failed,merchant.created,connection.created,connection.verified,connection.invalid,connection.disconnected,connect_session.completed,webhook_endpoint.disabled,document.retriedcreatedstringrequiredWhen the event happened.
Format:
date-timeapi_versionstringrequiredThe API version data.object is rendered in, e.g. 0.1.0.
livemodebooleanrequiredTrue for an event from live mode, false for test mode.
dataanyOfrequiredThe object the event is about. Its kind follows from type (document.* carries a Document, merchant.* a Merchant, connection.* a Connection, connect_session.* a ConnectSession, webhook_endpoint.* a WebhookEndpoint); narrow on data.object.object.
dataobjectrequiredA document event's data: object is the document right after the event (data.object.object is "document").
Option 1 of 5
Show nested fields (2)Hide nested fields (2)
objectobjectrequiredA fiscal document Tallio issues through a provider, with its status and history.
Option 1 of 5
Show nested fields (23)Hide nested fields (23)
idstringrequiredId of the document (doc_…).
Option 1 of 5
Show patternHide pattern
^doc_[0-9A-Za-z]{22}$objectstringrequiredAlways "document".
Option 1 of 5 · Always
documentmerchantstringrequiredId of the merchant (mer_…).
Option 1 of 5
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$modestringrequiredlive for a document created with a live key, test for a test key.
Option 1 of 5 · One of:
live,testproviderstringrequiredThe licensed e-invoicing provider (or direct myDATA, or Tallio's sandbox) that issues the document.
Option 1 of 5 · One of:
sandbox,mydata,wrapp,impact,epsilon,softone,prosvasistypestringrequiredAADE myDATA document type: 1.1 sales invoice, 2.1 service invoice, 5.1 credit note (associated), 5.2 credit note (non-associated), 11.1 retail sales receipt, 11.2 retail service receipt.
Option 1 of 5 · One of:
1.1,2.1,5.1,5.2,11.1,11.2statusstringrequiredWhere the document stands: pending (Tallio accepted it; not yet issued, see stage), issued (has a MARK), rejected (the provider or AADE refused it), failed (Tallio could not deliver it to the provider).
Option 1 of 5 · One of:
pending,issued,rejected,failedstagestring | nullrequiredWhere a pending document is (queued, submitting, awaiting_mark, reconciling); null unless status is pending.
Option 1 of 5 · One of:
queued,submitting,awaiting_mark,reconcilingissue_datestringrequiredIssue date, YYYY-MM-DD.
Option 1 of 5 · Format:
datecurrencystringrequiredISO 4217 currency. Only EUR for now.
Option 1 of 5 · Always
EURnetintegerrequiredSum of the lines' net amounts, in minor units, at most 1000000000000000.
Option 1 of 5 · From 0 to 1000000000000000
vatintegerrequiredSum of the lines' VAT, each line rounded half up to the minor unit, in minor units, at most 1000000000000000.
Option 1 of 5 · From 0 to 1000000000000000
grossintegerrequirednet + vat, in minor units, at most 1250000000000000.
Option 1 of 5 · From 0 to 1250000000000000
markstring | nullrequiredMARK (AADE registration number) once issued, as a digit string; null before.
Option 1 of 5
Show patternHide pattern
^[1-9]\d{0,18}$uidstring | nullrequiredmyDATA uid: the SHA-1 (40 upper-case hex digits) AADE derives from the document's identifiers; null until known.
Option 1 of 5
Show patternHide pattern
^[0-9A-F]{40}$qr_urlstring | nullrequiredURL the document's QR code points to; null until the provider returns one.
Option 1 of 5 · Format:
urierrorobject | nullrequiredWhy the document was rejected or failed; null otherwise.
Option 1 of 5
Show nested fields (6)Hide nested fields (6)
codestringrequiredStable machine-readable error code. Branch on this, never on
message.Option 1 of 5 · 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,connection_unavailable,provider_credentials_invalid,provider_rejected,provider_unavailable,service_unavailable,internal_errormessagestringrequiredHuman-readable explanation, safe to show to a developer.
Option 1 of 5
provider_codestring | nullrequiredThe provider's own error code, or null when the error did not come from a provider.
Option 1 of 5
provider_messagestring | nullrequiredThe provider's own error message, verbatim, or null when the error did not come from a provider.
Option 1 of 5
retryablebooleanrequiredTrue when the same request may succeed if sent again later.
Option 1 of 5
provider_rawanyThe provider's error response body as received, or a TruncatedProviderRaw marker when it exceeds 4096 bytes of JSON. Never holds request headers, credentials or the request payload.
Option 1 of 5
classificationobjectrequiredHow the document was classified for myDATA.
Option 1 of 5
Show nested fields (2)Hide nested fields (2)
sourcestringrequireddefault when any line took Tallio's default, else override when any line took the merchant's override, else line.
Option 1 of 5 · One of:
line,override,defaultwarningsstring[]requiredWhat to check before issuing, e.g. that defaults were applied.
Option 1 of 5
Each item: Option 1 of 5
external_referencestring | nullrequiredYour own reference for the document, or null.
Option 1 of 5 · Default:
nullmetadataobjectrequiredUp to 50 key-value pairs of your own (keys up to 40 characters, values up to 500). Do not put personal data in it.
Option 1 of 5 · Default:
{}Show nested fields (1)Hide nested fields (1)
{key}stringA value, up to 500 characters.
Option 1 of 5 · 1 to 40 characters
timelineobject[]requiredThe document's events, oldest first, at most 100.
Option 1 of 5 · Up to 100 items
Each item: One event in a document's history. GET /events/{id} returns the full Event. Option 1 of 5
Show nested fields (3)Hide nested fields (3)
idstringrequiredId of the event (evt_…).
Option 1 of 5
Show patternHide pattern
^evt_[0-9A-Za-z]{22}$typestringrequiredWhat happened: document.created (Tallio accepted a document), document.issued (it has a MARK), document.rejected (the provider or AADE refused it), document.failed (Tallio could not deliver it), merchant.created (a merchant was created), connection.created (a merchant was connected to a provider), connection.verified (the provider accepted its credentials), connection.invalid (the provider refused them), connection.disconnected (it was disconnected), connect_session.completed (a merchant connected through a hosted connect link), webhook_endpoint.disabled (Tallio disabled an endpoint failing for days) and document.retried (a failed document was queued to be sent again).
Option 1 of 5 · One of:
document.created,document.issued,document.rejected,document.failed,merchant.created,connection.created,connection.verified,connection.invalid,connection.disconnected,connect_session.completed,webhook_endpoint.disabled,document.retriedcreatedstringrequiredWhen the event happened.
Option 1 of 5 · Format:
date-time
createdstringrequiredWhen Tallio accepted the document.
Option 1 of 5 · Format:
date-timeupdatedstringrequiredWhen the document last changed.
Option 1 of 5 · Format:
date-time
previous_attributesobjectThe values the changed fields had before the event; absent for an event that changed nothing.
Option 1 of 5
Show nested fields (23)Hide nested fields (23)
idstringId of the document (doc_…).
Option 1 of 5
Show patternHide pattern
^doc_[0-9A-Za-z]{22}$objectstringAlways "document".
Option 1 of 5 · Always
documentmerchantstringId of the merchant (mer_…).
Option 1 of 5
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$modestringlive for a document created with a live key, test for a test key.
Option 1 of 5 · One of:
live,testproviderstringThe licensed e-invoicing provider (or direct myDATA, or Tallio's sandbox) that issues the document.
Option 1 of 5 · One of:
sandbox,mydata,wrapp,impact,epsilon,softone,prosvasistypestringAADE myDATA document type: 1.1 sales invoice, 2.1 service invoice, 5.1 credit note (associated), 5.2 credit note (non-associated), 11.1 retail sales receipt, 11.2 retail service receipt.
Option 1 of 5 · One of:
1.1,2.1,5.1,5.2,11.1,11.2statusstringWhere the document stands: pending (Tallio accepted it; not yet issued, see stage), issued (has a MARK), rejected (the provider or AADE refused it), failed (Tallio could not deliver it to the provider).
Option 1 of 5 · One of:
pending,issued,rejected,failedstagestring | nullWhere a pending document is (queued, submitting, awaiting_mark, reconciling); null unless status is pending.
Option 1 of 5 · One of:
queued,submitting,awaiting_mark,reconcilingissue_datestringIssue date, YYYY-MM-DD.
Option 1 of 5 · Format:
datecurrencystringISO 4217 currency. Only EUR for now.
Option 1 of 5 · Always
EURnetintegerSum of the lines' net amounts, in minor units, at most 1000000000000000.
Option 1 of 5 · From 0 to 1000000000000000
vatintegerSum of the lines' VAT, each line rounded half up to the minor unit, in minor units, at most 1000000000000000.
Option 1 of 5 · From 0 to 1000000000000000
grossintegernet + vat, in minor units, at most 1250000000000000.
Option 1 of 5 · From 0 to 1250000000000000
markstring | nullMARK (AADE registration number) once issued, as a digit string; null before.
Option 1 of 5
Show patternHide pattern
^[1-9]\d{0,18}$uidstring | nullmyDATA uid: the SHA-1 (40 upper-case hex digits) AADE derives from the document's identifiers; null until known.
Option 1 of 5
Show patternHide pattern
^[0-9A-F]{40}$qr_urlstring | nullURL the document's QR code points to; null until the provider returns one.
Option 1 of 5 · Format:
urierrorobject | nullWhy the document was rejected or failed; null otherwise.
Option 1 of 5
Show nested fields (6)Hide nested fields (6)
codestringrequiredStable machine-readable error code. Branch on this, never on
message.Option 1 of 5 · 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,connection_unavailable,provider_credentials_invalid,provider_rejected,provider_unavailable,service_unavailable,internal_errormessagestringrequiredHuman-readable explanation, safe to show to a developer.
Option 1 of 5
provider_codestring | nullrequiredThe provider's own error code, or null when the error did not come from a provider.
Option 1 of 5
provider_messagestring | nullrequiredThe provider's own error message, verbatim, or null when the error did not come from a provider.
Option 1 of 5
retryablebooleanrequiredTrue when the same request may succeed if sent again later.
Option 1 of 5
provider_rawanyThe provider's error response body as received, or a TruncatedProviderRaw marker when it exceeds 4096 bytes of JSON. Never holds request headers, credentials or the request payload.
Option 1 of 5
classificationobjectHow the document was classified for myDATA.
Option 1 of 5
Show nested fields (2)Hide nested fields (2)
sourcestringrequireddefault when any line took Tallio's default, else override when any line took the merchant's override, else line.
Option 1 of 5 · One of:
line,override,defaultwarningsstring[]requiredWhat to check before issuing, e.g. that defaults were applied.
Option 1 of 5
Each item: Option 1 of 5
external_referencestring | nullYour own reference for the document, or null.
Option 1 of 5
metadataobjectUp to 50 key-value pairs of your own (keys up to 40 characters, values up to 500). Do not put personal data in it.
Option 1 of 5
Show nested fields (1)Hide nested fields (1)
{key}stringA value, up to 500 characters.
Option 1 of 5 · 1 to 40 characters
timelineobject[]The document's events, oldest first, at most 100.
Option 1 of 5 · Up to 100 items
Each item: One event in a document's history. GET /events/{id} returns the full Event. Option 1 of 5
Show nested fields (3)Hide nested fields (3)
idstringrequiredId of the event (evt_…).
Option 1 of 5
Show patternHide pattern
^evt_[0-9A-Za-z]{22}$typestringrequiredWhat happened: document.created (Tallio accepted a document), document.issued (it has a MARK), document.rejected (the provider or AADE refused it), document.failed (Tallio could not deliver it), merchant.created (a merchant was created), connection.created (a merchant was connected to a provider), connection.verified (the provider accepted its credentials), connection.invalid (the provider refused them), connection.disconnected (it was disconnected), connect_session.completed (a merchant connected through a hosted connect link), webhook_endpoint.disabled (Tallio disabled an endpoint failing for days) and document.retried (a failed document was queued to be sent again).
Option 1 of 5 · One of:
document.created,document.issued,document.rejected,document.failed,merchant.created,connection.created,connection.verified,connection.invalid,connection.disconnected,connect_session.completed,webhook_endpoint.disabled,document.retriedcreatedstringrequiredWhen the event happened.
Option 1 of 5 · Format:
date-time
createdstringWhen Tallio accepted the document.
Option 1 of 5 · Format:
date-timeupdatedstringWhen the document last changed.
Option 1 of 5 · Format:
date-time
dataobjectrequiredA merchant event's data: object is the merchant right after the event (data.object.object is "merchant").
Option 2 of 5
Show nested fields (2)Hide nested fields (2)
objectobjectrequiredA business that issues documents under your account.
Option 2 of 5
Show nested fields (9)Hide nested fields (9)
idstringrequiredId of the merchant (mer_…).
Option 2 of 5
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$objectstringrequiredAlways "merchant".
Option 2 of 5 · Always
merchantexternal_idstringrequiredYour own id for the merchant, e.g. a shop domain: 1 to 200 characters, trimmed, unique in your account ignoring case (Shop-A and shop-a are the same merchant). Find a merchant by it.
Option 2 of 5 · Up to 200 characters
Show patternHide pattern
\SnamestringrequiredThe merchant's name, as you show it: 1 to 200 characters, trimmed.
Option 2 of 5 · Up to 200 characters
Show patternHide pattern
\Stax_idstring | nullrequiredThe merchant's ΑΦΜ, normalised, or null when not given.
Option 2 of 5
branchintegerrequiredBranch number in the AADE registry; 0 for the head office.
Option 2 of 5 · From 0 to 9007199254740991
metadataobjectrequiredUp to 50 key-value pairs of your own (keys up to 40 characters, values up to 500). Do not put personal data in it.
Option 2 of 5
Show nested fields (1)Hide nested fields (1)
{key}stringA value, up to 500 characters.
Option 2 of 5 · 1 to 40 characters
archivedbooleanrequiredTrue once the merchant is archived; it then issues nothing new.
Option 2 of 5
createdstringrequiredWhen the merchant was created.
Option 2 of 5 · Format:
date-time
previous_attributesobjectThe values the changed fields had before the event; absent for an event that changed nothing.
Option 2 of 5
Show nested fields (9)Hide nested fields (9)
idstringId of the merchant (mer_…).
Option 2 of 5
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$objectstringAlways "merchant".
Option 2 of 5 · Always
merchantexternal_idstringYour own id for the merchant, e.g. a shop domain: 1 to 200 characters, trimmed, unique in your account ignoring case (Shop-A and shop-a are the same merchant). Find a merchant by it.
Option 2 of 5 · Up to 200 characters
Show patternHide pattern
\SnamestringThe merchant's name, as you show it: 1 to 200 characters, trimmed.
Option 2 of 5 · Up to 200 characters
Show patternHide pattern
\Stax_idstring | nullThe merchant's ΑΦΜ, normalised, or null when not given.
Option 2 of 5
branchintegerBranch number in the AADE registry; 0 for the head office.
Option 2 of 5 · From 0 to 9007199254740991
metadataobjectUp to 50 key-value pairs of your own (keys up to 40 characters, values up to 500). Do not put personal data in it.
Option 2 of 5
Show nested fields (1)Hide nested fields (1)
{key}stringA value, up to 500 characters.
Option 2 of 5 · 1 to 40 characters
archivedbooleanTrue once the merchant is archived; it then issues nothing new.
Option 2 of 5
createdstringWhen the merchant was created.
Option 2 of 5 · Format:
date-time
dataobjectrequiredA connection event's data: object is the connection right after the event (data.object.object is "connection").
Option 3 of 5
Show nested fields (1)Hide nested fields (1)
objectobjectrequiredA merchant's credentials for one provider in one mode. The credentials themselves are never returned.
Option 3 of 5
Show nested fields (9)Hide nested fields (9)
idstringrequiredId of the connection (con_…).
Option 3 of 5
Show patternHide pattern
^con_[0-9A-Za-z]{22}$objectstringrequiredAlways "connection".
Option 3 of 5 · Always
connectionmerchantstringrequiredThe merchant this connection belongs to (mer_…).
Option 3 of 5
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$providerstringrequiredThe licensed e-invoicing provider (or direct myDATA, or Tallio's sandbox) that issues the document.
Option 3 of 5 · One of:
sandbox,mydata,wrapp,impact,epsilon,softone,prosvasismodestringrequiredlive for a connection made with a live key, test for a test key.
Option 3 of 5 · One of:
live,teststatusstringrequiredactive (documents can be routed to it), invalid (the provider refused its credentials; fix and verify again), disconnected (no longer used; its credentials are deleted 30 days later).
Option 3 of 5 · One of:
active,invalid,disconnectedverified_atstring | nullrequiredWhen the provider last accepted its credentials; null until then.
Option 3 of 5 · Format:
date-timelast_errorobject | nullrequiredWhy the provider last refused it; null otherwise.
Option 3 of 5
Show nested fields (6)Hide nested fields (6)
codestringrequiredStable machine-readable error code. Branch on this, never on
message.Option 3 of 5 · 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,connection_unavailable,provider_credentials_invalid,provider_rejected,provider_unavailable,service_unavailable,internal_errormessagestringrequiredHuman-readable explanation, safe to show to a developer.
Option 3 of 5
provider_codestring | nullrequiredThe provider's own error code, or null when the error did not come from a provider.
Option 3 of 5
provider_messagestring | nullrequiredThe provider's own error message, verbatim, or null when the error did not come from a provider.
Option 3 of 5
retryablebooleanrequiredTrue when the same request may succeed if sent again later.
Option 3 of 5
provider_rawanyThe provider's error response body as received, or a TruncatedProviderRaw marker when it exceeds 4096 bytes of JSON. Never holds request headers, credentials or the request payload.
Option 3 of 5
createdstringrequiredWhen the connection was created.
Option 3 of 5 · Format:
date-time
dataobjectrequiredA connect-session event's data: object is the session right after the event (data.object.object is "connect_session"); it never carries the link.
Option 4 of 5
Show nested fields (1)Hide nested fields (1)
objectobjectrequiredThe connect session right after the event, without its one-time link.
Option 4 of 5
Show nested fields (6)Hide nested fields (6)
idstringrequiredId of the connect session (cs_…).
Option 4 of 5
Show patternHide pattern
^cs_[0-9A-Za-z]{22}$objectstringrequiredAlways "connect_session".
Option 4 of 5 · Always
connect_sessionmerchantstringrequiredThe merchant being connected (mer_…).
Option 4 of 5
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$expires_atstringrequiredWhen the link stops working: 30 minutes after it was made.
Option 4 of 5 · Format:
date-timecompleted_atstring | nullrequiredWhen the merchant connected through it; null until then.
Option 4 of 5 · Format:
date-timeconnectionstring | nullrequiredThe connection the merchant made through it (con_…), or null.
Option 4 of 5
Show patternHide pattern
^con_[0-9A-Za-z]{22}$
dataobjectrequiredA webhook-endpoint event's data: object is the endpoint right after the event (data.object.object is "webhook_endpoint").
Option 5 of 5
Show nested fields (1)Hide nested fields (1)
objectobjectrequiredA URL that receives your events, signed with its own secret.
Option 5 of 5
Show nested fields (9)Hide nested fields (9)
idstringrequiredId of the webhook endpoint (we_…).
Option 5 of 5
Show patternHide pattern
^we_[0-9A-Za-z]{22}$objectstringrequiredAlways "webhook_endpoint".
Option 5 of 5 · Always
webhook_endpointurlstringrequiredWhere events are POSTed.
Option 5 of 5
enabled_eventsanyOf[]requiredThe event types delivered, or ["*"].
Option 5 of 5
Show nested fields (3)Hide nested fields (3)
enabled_events[]anyOfrequiredAn event type to deliver, or * for every type.
Option 5 of 5
enabled_events[]stringrequiredWhat happened: document.created (Tallio accepted a document), document.issued (it has a MARK), document.rejected (the provider or AADE refused it), document.failed (Tallio could not deliver it), merchant.created (a merchant was created), connection.created (a merchant was connected to a provider), connection.verified (the provider accepted its credentials), connection.invalid (the provider refused them), connection.disconnected (it was disconnected), connect_session.completed (a merchant connected through a hosted connect link), webhook_endpoint.disabled (Tallio disabled an endpoint failing for days) and document.retried (a failed document was queued to be sent again).
Option 5 of 5 › Option 1 of 2 · One of:
document.created,document.issued,document.rejected,document.failed,merchant.created,connection.created,connection.verified,connection.invalid,connection.disconnected,connect_session.completed,webhook_endpoint.disabled,document.retriedenabled_events[]stringrequiredOption 5 of 5 › Option 2 of 2 · Always
*
descriptionstring | nullrequiredYour note about the endpoint, or null.
Option 5 of 5
modestringrequiredlive for an endpoint made with a live key (live events), test for a test key.
Option 5 of 5 · One of:
live,teststatusstringrequiredenabled (events are delivered) or disabled (by you, or by Tallio after failing for days).
Option 5 of 5 · One of:
enabled,disableddisabled_reasonstring | nullrequiredWhy Tallio disabled it (failing: it failed every delivery for days); null otherwise.
Option 5 of 5
createdstringrequiredWhen the endpoint was created.
Option 5 of 5 · Format:
date-time
requestobject | nullrequiredThe API call that caused the event; null when Tallio caused it, e.g. issuing in the background.
Show nested fields (2)Hide nested fields (2)
idstringrequiredRequest id (the x-request-id response header) of the API call that caused it.
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})$idempotency_keystring | nullrequiredThe Idempotency-Key that call sent, or null.
1 to 255 characters
Show patternHide pattern
^[\x21-\x7E]+$
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 an event #
/api/v1/events/{id}Returns one event of your key's mode, with the snapshot of its object taken when it happened.
- Bearer API key
Path parameters
idstringrequiredThe event's id (evt_…).
Request
curlcurl -X GET 'https://tallio.dev/api/v1/events/evt_02y9O8rh7F50tGi0QcWRrx' \
-H "Authorization: Bearer $TALLIO_API_KEY"| Status | Description |
|---|---|
200 | The event. |
| 4XX, 5XX | An error: see Errors below. |
Response body · 200
dataobjectrequiredSomething that happened in your account. Webhooks deliver these; consumers dedupe on id.
Show nested fields (13)Hide nested fields (13)
idstringrequiredId of the event (evt_…).
Show patternHide pattern
^evt_[0-9A-Za-z]{22}$objectstringrequiredAlways "event".
Always
eventtypestringrequiredWhat happened: document.created (Tallio accepted a document), document.issued (it has a MARK), document.rejected (the provider or AADE refused it), document.failed (Tallio could not deliver it), merchant.created (a merchant was created), connection.created (a merchant was connected to a provider), connection.verified (the provider accepted its credentials), connection.invalid (the provider refused them), connection.disconnected (it was disconnected), connect_session.completed (a merchant connected through a hosted connect link), webhook_endpoint.disabled (Tallio disabled an endpoint failing for days) and document.retried (a failed document was queued to be sent again).
One of:
document.created,document.issued,document.rejected,document.failed,merchant.created,connection.created,connection.verified,connection.invalid,connection.disconnected,connect_session.completed,webhook_endpoint.disabled,document.retriedcreatedstringrequiredWhen the event happened.
Format:
date-timeapi_versionstringrequiredThe API version data.object is rendered in, e.g. 0.1.0.
livemodebooleanrequiredTrue for an event from live mode, false for test mode.
dataanyOfrequiredThe object the event is about. Its kind follows from type (document.* carries a Document, merchant.* a Merchant, connection.* a Connection, connect_session.* a ConnectSession, webhook_endpoint.* a WebhookEndpoint); narrow on data.object.object.
dataobjectrequiredA document event's data: object is the document right after the event (data.object.object is "document").
Option 1 of 5
Show nested fields (2)Hide nested fields (2)
objectobjectrequiredA fiscal document Tallio issues through a provider, with its status and history.
Option 1 of 5
Show nested fields (23)Hide nested fields (23)
idstringrequiredId of the document (doc_…).
Option 1 of 5
Show patternHide pattern
^doc_[0-9A-Za-z]{22}$objectstringrequiredAlways "document".
Option 1 of 5 · Always
documentmerchantstringrequiredId of the merchant (mer_…).
Option 1 of 5
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$modestringrequiredlive for a document created with a live key, test for a test key.
Option 1 of 5 · One of:
live,testproviderstringrequiredThe licensed e-invoicing provider (or direct myDATA, or Tallio's sandbox) that issues the document.
Option 1 of 5 · One of:
sandbox,mydata,wrapp,impact,epsilon,softone,prosvasistypestringrequiredAADE myDATA document type: 1.1 sales invoice, 2.1 service invoice, 5.1 credit note (associated), 5.2 credit note (non-associated), 11.1 retail sales receipt, 11.2 retail service receipt.
Option 1 of 5 · One of:
1.1,2.1,5.1,5.2,11.1,11.2statusstringrequiredWhere the document stands: pending (Tallio accepted it; not yet issued, see stage), issued (has a MARK), rejected (the provider or AADE refused it), failed (Tallio could not deliver it to the provider).
Option 1 of 5 · One of:
pending,issued,rejected,failedstagestring | nullrequiredWhere a pending document is (queued, submitting, awaiting_mark, reconciling); null unless status is pending.
Option 1 of 5 · One of:
queued,submitting,awaiting_mark,reconcilingissue_datestringrequiredIssue date, YYYY-MM-DD.
Option 1 of 5 · Format:
datecurrencystringrequiredISO 4217 currency. Only EUR for now.
Option 1 of 5 · Always
EURnetintegerrequiredSum of the lines' net amounts, in minor units, at most 1000000000000000.
Option 1 of 5 · From 0 to 1000000000000000
vatintegerrequiredSum of the lines' VAT, each line rounded half up to the minor unit, in minor units, at most 1000000000000000.
Option 1 of 5 · From 0 to 1000000000000000
grossintegerrequirednet + vat, in minor units, at most 1250000000000000.
Option 1 of 5 · From 0 to 1250000000000000
markstring | nullrequiredMARK (AADE registration number) once issued, as a digit string; null before.
Option 1 of 5
Show patternHide pattern
^[1-9]\d{0,18}$uidstring | nullrequiredmyDATA uid: the SHA-1 (40 upper-case hex digits) AADE derives from the document's identifiers; null until known.
Option 1 of 5
Show patternHide pattern
^[0-9A-F]{40}$qr_urlstring | nullrequiredURL the document's QR code points to; null until the provider returns one.
Option 1 of 5 · Format:
urierrorobject | nullrequiredWhy the document was rejected or failed; null otherwise.
Option 1 of 5
Show nested fields (6)Hide nested fields (6)
codestringrequiredStable machine-readable error code. Branch on this, never on
message.Option 1 of 5 · 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,connection_unavailable,provider_credentials_invalid,provider_rejected,provider_unavailable,service_unavailable,internal_errormessagestringrequiredHuman-readable explanation, safe to show to a developer.
Option 1 of 5
provider_codestring | nullrequiredThe provider's own error code, or null when the error did not come from a provider.
Option 1 of 5
provider_messagestring | nullrequiredThe provider's own error message, verbatim, or null when the error did not come from a provider.
Option 1 of 5
retryablebooleanrequiredTrue when the same request may succeed if sent again later.
Option 1 of 5
provider_rawanyThe provider's error response body as received, or a TruncatedProviderRaw marker when it exceeds 4096 bytes of JSON. Never holds request headers, credentials or the request payload.
Option 1 of 5
classificationobjectrequiredHow the document was classified for myDATA.
Option 1 of 5
Show nested fields (2)Hide nested fields (2)
sourcestringrequireddefault when any line took Tallio's default, else override when any line took the merchant's override, else line.
Option 1 of 5 · One of:
line,override,defaultwarningsstring[]requiredWhat to check before issuing, e.g. that defaults were applied.
Option 1 of 5
Each item: Option 1 of 5
external_referencestring | nullrequiredYour own reference for the document, or null.
Option 1 of 5 · Default:
nullmetadataobjectrequiredUp to 50 key-value pairs of your own (keys up to 40 characters, values up to 500). Do not put personal data in it.
Option 1 of 5 · Default:
{}Show nested fields (1)Hide nested fields (1)
{key}stringA value, up to 500 characters.
Option 1 of 5 · 1 to 40 characters
timelineobject[]requiredThe document's events, oldest first, at most 100.
Option 1 of 5 · Up to 100 items
Each item: One event in a document's history. GET /events/{id} returns the full Event. Option 1 of 5
Show nested fields (3)Hide nested fields (3)
idstringrequiredId of the event (evt_…).
Option 1 of 5
Show patternHide pattern
^evt_[0-9A-Za-z]{22}$typestringrequiredWhat happened: document.created (Tallio accepted a document), document.issued (it has a MARK), document.rejected (the provider or AADE refused it), document.failed (Tallio could not deliver it), merchant.created (a merchant was created), connection.created (a merchant was connected to a provider), connection.verified (the provider accepted its credentials), connection.invalid (the provider refused them), connection.disconnected (it was disconnected), connect_session.completed (a merchant connected through a hosted connect link), webhook_endpoint.disabled (Tallio disabled an endpoint failing for days) and document.retried (a failed document was queued to be sent again).
Option 1 of 5 · One of:
document.created,document.issued,document.rejected,document.failed,merchant.created,connection.created,connection.verified,connection.invalid,connection.disconnected,connect_session.completed,webhook_endpoint.disabled,document.retriedcreatedstringrequiredWhen the event happened.
Option 1 of 5 · Format:
date-time
createdstringrequiredWhen Tallio accepted the document.
Option 1 of 5 · Format:
date-timeupdatedstringrequiredWhen the document last changed.
Option 1 of 5 · Format:
date-time
previous_attributesobjectThe values the changed fields had before the event; absent for an event that changed nothing.
Option 1 of 5
Show nested fields (23)Hide nested fields (23)
idstringId of the document (doc_…).
Option 1 of 5
Show patternHide pattern
^doc_[0-9A-Za-z]{22}$objectstringAlways "document".
Option 1 of 5 · Always
documentmerchantstringId of the merchant (mer_…).
Option 1 of 5
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$modestringlive for a document created with a live key, test for a test key.
Option 1 of 5 · One of:
live,testproviderstringThe licensed e-invoicing provider (or direct myDATA, or Tallio's sandbox) that issues the document.
Option 1 of 5 · One of:
sandbox,mydata,wrapp,impact,epsilon,softone,prosvasistypestringAADE myDATA document type: 1.1 sales invoice, 2.1 service invoice, 5.1 credit note (associated), 5.2 credit note (non-associated), 11.1 retail sales receipt, 11.2 retail service receipt.
Option 1 of 5 · One of:
1.1,2.1,5.1,5.2,11.1,11.2statusstringWhere the document stands: pending (Tallio accepted it; not yet issued, see stage), issued (has a MARK), rejected (the provider or AADE refused it), failed (Tallio could not deliver it to the provider).
Option 1 of 5 · One of:
pending,issued,rejected,failedstagestring | nullWhere a pending document is (queued, submitting, awaiting_mark, reconciling); null unless status is pending.
Option 1 of 5 · One of:
queued,submitting,awaiting_mark,reconcilingissue_datestringIssue date, YYYY-MM-DD.
Option 1 of 5 · Format:
datecurrencystringISO 4217 currency. Only EUR for now.
Option 1 of 5 · Always
EURnetintegerSum of the lines' net amounts, in minor units, at most 1000000000000000.
Option 1 of 5 · From 0 to 1000000000000000
vatintegerSum of the lines' VAT, each line rounded half up to the minor unit, in minor units, at most 1000000000000000.
Option 1 of 5 · From 0 to 1000000000000000
grossintegernet + vat, in minor units, at most 1250000000000000.
Option 1 of 5 · From 0 to 1250000000000000
markstring | nullMARK (AADE registration number) once issued, as a digit string; null before.
Option 1 of 5
Show patternHide pattern
^[1-9]\d{0,18}$uidstring | nullmyDATA uid: the SHA-1 (40 upper-case hex digits) AADE derives from the document's identifiers; null until known.
Option 1 of 5
Show patternHide pattern
^[0-9A-F]{40}$qr_urlstring | nullURL the document's QR code points to; null until the provider returns one.
Option 1 of 5 · Format:
urierrorobject | nullWhy the document was rejected or failed; null otherwise.
Option 1 of 5
Show nested fields (6)Hide nested fields (6)
codestringrequiredStable machine-readable error code. Branch on this, never on
message.Option 1 of 5 · 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,connection_unavailable,provider_credentials_invalid,provider_rejected,provider_unavailable,service_unavailable,internal_errormessagestringrequiredHuman-readable explanation, safe to show to a developer.
Option 1 of 5
provider_codestring | nullrequiredThe provider's own error code, or null when the error did not come from a provider.
Option 1 of 5
provider_messagestring | nullrequiredThe provider's own error message, verbatim, or null when the error did not come from a provider.
Option 1 of 5
retryablebooleanrequiredTrue when the same request may succeed if sent again later.
Option 1 of 5
provider_rawanyThe provider's error response body as received, or a TruncatedProviderRaw marker when it exceeds 4096 bytes of JSON. Never holds request headers, credentials or the request payload.
Option 1 of 5
classificationobjectHow the document was classified for myDATA.
Option 1 of 5
Show nested fields (2)Hide nested fields (2)
sourcestringrequireddefault when any line took Tallio's default, else override when any line took the merchant's override, else line.
Option 1 of 5 · One of:
line,override,defaultwarningsstring[]requiredWhat to check before issuing, e.g. that defaults were applied.
Option 1 of 5
Each item: Option 1 of 5
external_referencestring | nullYour own reference for the document, or null.
Option 1 of 5
metadataobjectUp to 50 key-value pairs of your own (keys up to 40 characters, values up to 500). Do not put personal data in it.
Option 1 of 5
Show nested fields (1)Hide nested fields (1)
{key}stringA value, up to 500 characters.
Option 1 of 5 · 1 to 40 characters
timelineobject[]The document's events, oldest first, at most 100.
Option 1 of 5 · Up to 100 items
Each item: One event in a document's history. GET /events/{id} returns the full Event. Option 1 of 5
Show nested fields (3)Hide nested fields (3)
idstringrequiredId of the event (evt_…).
Option 1 of 5
Show patternHide pattern
^evt_[0-9A-Za-z]{22}$typestringrequiredWhat happened: document.created (Tallio accepted a document), document.issued (it has a MARK), document.rejected (the provider or AADE refused it), document.failed (Tallio could not deliver it), merchant.created (a merchant was created), connection.created (a merchant was connected to a provider), connection.verified (the provider accepted its credentials), connection.invalid (the provider refused them), connection.disconnected (it was disconnected), connect_session.completed (a merchant connected through a hosted connect link), webhook_endpoint.disabled (Tallio disabled an endpoint failing for days) and document.retried (a failed document was queued to be sent again).
Option 1 of 5 · One of:
document.created,document.issued,document.rejected,document.failed,merchant.created,connection.created,connection.verified,connection.invalid,connection.disconnected,connect_session.completed,webhook_endpoint.disabled,document.retriedcreatedstringrequiredWhen the event happened.
Option 1 of 5 · Format:
date-time
createdstringWhen Tallio accepted the document.
Option 1 of 5 · Format:
date-timeupdatedstringWhen the document last changed.
Option 1 of 5 · Format:
date-time
dataobjectrequiredA merchant event's data: object is the merchant right after the event (data.object.object is "merchant").
Option 2 of 5
Show nested fields (2)Hide nested fields (2)
objectobjectrequiredA business that issues documents under your account.
Option 2 of 5
Show nested fields (9)Hide nested fields (9)
idstringrequiredId of the merchant (mer_…).
Option 2 of 5
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$objectstringrequiredAlways "merchant".
Option 2 of 5 · Always
merchantexternal_idstringrequiredYour own id for the merchant, e.g. a shop domain: 1 to 200 characters, trimmed, unique in your account ignoring case (Shop-A and shop-a are the same merchant). Find a merchant by it.
Option 2 of 5 · Up to 200 characters
Show patternHide pattern
\SnamestringrequiredThe merchant's name, as you show it: 1 to 200 characters, trimmed.
Option 2 of 5 · Up to 200 characters
Show patternHide pattern
\Stax_idstring | nullrequiredThe merchant's ΑΦΜ, normalised, or null when not given.
Option 2 of 5
branchintegerrequiredBranch number in the AADE registry; 0 for the head office.
Option 2 of 5 · From 0 to 9007199254740991
metadataobjectrequiredUp to 50 key-value pairs of your own (keys up to 40 characters, values up to 500). Do not put personal data in it.
Option 2 of 5
Show nested fields (1)Hide nested fields (1)
{key}stringA value, up to 500 characters.
Option 2 of 5 · 1 to 40 characters
archivedbooleanrequiredTrue once the merchant is archived; it then issues nothing new.
Option 2 of 5
createdstringrequiredWhen the merchant was created.
Option 2 of 5 · Format:
date-time
previous_attributesobjectThe values the changed fields had before the event; absent for an event that changed nothing.
Option 2 of 5
Show nested fields (9)Hide nested fields (9)
idstringId of the merchant (mer_…).
Option 2 of 5
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$objectstringAlways "merchant".
Option 2 of 5 · Always
merchantexternal_idstringYour own id for the merchant, e.g. a shop domain: 1 to 200 characters, trimmed, unique in your account ignoring case (Shop-A and shop-a are the same merchant). Find a merchant by it.
Option 2 of 5 · Up to 200 characters
Show patternHide pattern
\SnamestringThe merchant's name, as you show it: 1 to 200 characters, trimmed.
Option 2 of 5 · Up to 200 characters
Show patternHide pattern
\Stax_idstring | nullThe merchant's ΑΦΜ, normalised, or null when not given.
Option 2 of 5
branchintegerBranch number in the AADE registry; 0 for the head office.
Option 2 of 5 · From 0 to 9007199254740991
metadataobjectUp to 50 key-value pairs of your own (keys up to 40 characters, values up to 500). Do not put personal data in it.
Option 2 of 5
Show nested fields (1)Hide nested fields (1)
{key}stringA value, up to 500 characters.
Option 2 of 5 · 1 to 40 characters
archivedbooleanTrue once the merchant is archived; it then issues nothing new.
Option 2 of 5
createdstringWhen the merchant was created.
Option 2 of 5 · Format:
date-time
dataobjectrequiredA connection event's data: object is the connection right after the event (data.object.object is "connection").
Option 3 of 5
Show nested fields (1)Hide nested fields (1)
objectobjectrequiredA merchant's credentials for one provider in one mode. The credentials themselves are never returned.
Option 3 of 5
Show nested fields (9)Hide nested fields (9)
idstringrequiredId of the connection (con_…).
Option 3 of 5
Show patternHide pattern
^con_[0-9A-Za-z]{22}$objectstringrequiredAlways "connection".
Option 3 of 5 · Always
connectionmerchantstringrequiredThe merchant this connection belongs to (mer_…).
Option 3 of 5
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$providerstringrequiredThe licensed e-invoicing provider (or direct myDATA, or Tallio's sandbox) that issues the document.
Option 3 of 5 · One of:
sandbox,mydata,wrapp,impact,epsilon,softone,prosvasismodestringrequiredlive for a connection made with a live key, test for a test key.
Option 3 of 5 · One of:
live,teststatusstringrequiredactive (documents can be routed to it), invalid (the provider refused its credentials; fix and verify again), disconnected (no longer used; its credentials are deleted 30 days later).
Option 3 of 5 · One of:
active,invalid,disconnectedverified_atstring | nullrequiredWhen the provider last accepted its credentials; null until then.
Option 3 of 5 · Format:
date-timelast_errorobject | nullrequiredWhy the provider last refused it; null otherwise.
Option 3 of 5
Show nested fields (6)Hide nested fields (6)
codestringrequiredStable machine-readable error code. Branch on this, never on
message.Option 3 of 5 · 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,connection_unavailable,provider_credentials_invalid,provider_rejected,provider_unavailable,service_unavailable,internal_errormessagestringrequiredHuman-readable explanation, safe to show to a developer.
Option 3 of 5
provider_codestring | nullrequiredThe provider's own error code, or null when the error did not come from a provider.
Option 3 of 5
provider_messagestring | nullrequiredThe provider's own error message, verbatim, or null when the error did not come from a provider.
Option 3 of 5
retryablebooleanrequiredTrue when the same request may succeed if sent again later.
Option 3 of 5
provider_rawanyThe provider's error response body as received, or a TruncatedProviderRaw marker when it exceeds 4096 bytes of JSON. Never holds request headers, credentials or the request payload.
Option 3 of 5
createdstringrequiredWhen the connection was created.
Option 3 of 5 · Format:
date-time
dataobjectrequiredA connect-session event's data: object is the session right after the event (data.object.object is "connect_session"); it never carries the link.
Option 4 of 5
Show nested fields (1)Hide nested fields (1)
objectobjectrequiredThe connect session right after the event, without its one-time link.
Option 4 of 5
Show nested fields (6)Hide nested fields (6)
idstringrequiredId of the connect session (cs_…).
Option 4 of 5
Show patternHide pattern
^cs_[0-9A-Za-z]{22}$objectstringrequiredAlways "connect_session".
Option 4 of 5 · Always
connect_sessionmerchantstringrequiredThe merchant being connected (mer_…).
Option 4 of 5
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$expires_atstringrequiredWhen the link stops working: 30 minutes after it was made.
Option 4 of 5 · Format:
date-timecompleted_atstring | nullrequiredWhen the merchant connected through it; null until then.
Option 4 of 5 · Format:
date-timeconnectionstring | nullrequiredThe connection the merchant made through it (con_…), or null.
Option 4 of 5
Show patternHide pattern
^con_[0-9A-Za-z]{22}$
dataobjectrequiredA webhook-endpoint event's data: object is the endpoint right after the event (data.object.object is "webhook_endpoint").
Option 5 of 5
Show nested fields (1)Hide nested fields (1)
objectobjectrequiredA URL that receives your events, signed with its own secret.
Option 5 of 5
Show nested fields (9)Hide nested fields (9)
idstringrequiredId of the webhook endpoint (we_…).
Option 5 of 5
Show patternHide pattern
^we_[0-9A-Za-z]{22}$objectstringrequiredAlways "webhook_endpoint".
Option 5 of 5 · Always
webhook_endpointurlstringrequiredWhere events are POSTed.
Option 5 of 5
enabled_eventsanyOf[]requiredThe event types delivered, or ["*"].
Option 5 of 5
Show nested fields (3)Hide nested fields (3)
enabled_events[]anyOfrequiredAn event type to deliver, or * for every type.
Option 5 of 5
enabled_events[]stringrequiredWhat happened: document.created (Tallio accepted a document), document.issued (it has a MARK), document.rejected (the provider or AADE refused it), document.failed (Tallio could not deliver it), merchant.created (a merchant was created), connection.created (a merchant was connected to a provider), connection.verified (the provider accepted its credentials), connection.invalid (the provider refused them), connection.disconnected (it was disconnected), connect_session.completed (a merchant connected through a hosted connect link), webhook_endpoint.disabled (Tallio disabled an endpoint failing for days) and document.retried (a failed document was queued to be sent again).
Option 5 of 5 › Option 1 of 2 · One of:
document.created,document.issued,document.rejected,document.failed,merchant.created,connection.created,connection.verified,connection.invalid,connection.disconnected,connect_session.completed,webhook_endpoint.disabled,document.retriedenabled_events[]stringrequiredOption 5 of 5 › Option 2 of 2 · Always
*
descriptionstring | nullrequiredYour note about the endpoint, or null.
Option 5 of 5
modestringrequiredlive for an endpoint made with a live key (live events), test for a test key.
Option 5 of 5 · One of:
live,teststatusstringrequiredenabled (events are delivered) or disabled (by you, or by Tallio after failing for days).
Option 5 of 5 · One of:
enabled,disableddisabled_reasonstring | nullrequiredWhy Tallio disabled it (failing: it failed every delivery for days); null otherwise.
Option 5 of 5
createdstringrequiredWhen the endpoint was created.
Option 5 of 5 · Format:
date-time
requestobject | nullrequiredThe API call that caused the event; null when Tallio caused it, e.g. issuing in the background.
Show nested fields (2)Hide nested fields (2)
idstringrequiredRequest id (the x-request-id response header) of the API call that caused it.
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})$idempotency_keystring | nullrequiredThe Idempotency-Key that call sent, or null.
1 to 255 characters
Show patternHide pattern
^[\x21-\x7E]+$
Example response · 200{
"data": {
"id": "evt_02y9O8s1a8ymJqpmAy0nLe",
"object": "event",
"type": "document.issued",
"created": "2026-10-11T09:30:02.000Z",
"api_version": "0.1.0",
"livemode": false,
"data": {
"object": {
"id": "doc_02y9O8rhJKVUXRvojdffcz",
"object": "document",
"merchant": "mer_02y9O8rh7F50tGi0QcWRrx",
"mode": "test",
"provider": "sandbox",
"type": "1.1",
"status": "issued",
"stage": null,
"issue_date": "2026-10-10",
"currency": "EUR",
"net": 2500,
"vat": 435,
"gross": 2935,
"mark": "900000000000001",
"uid": "4E1F0A6C2B9D8E7F6A5B4C3D2E1F0A9B8C7D6E5F",
"qr_url": "https://sandbox.tallio.invalid/qr/900000000000001",
"error": null,
"classification": {
"source": "default",
"warnings": [
"No income classification on line 2; applied the 1.1 default category1_1/E3_561_001. Set it on the line, or as a merchant override, if that is wrong."
]
},
"external_reference": "#1042",
"metadata": {
"order_id": "5520731963508"
},
"timeline": [
{
"id": "evt_02y9O8rhJ2Z2v1fOH2XiSH",
"type": "document.created",
"created": "2026-10-11T09:30:00.000Z"
},
{
"id": "evt_02y9O8s1a8ymJqpmAy0nLe",
"type": "document.issued",
"created": "2026-10-11T09:30:02.000Z"
}
],
"created": "2026-10-11T09:30:00.000Z",
"updated": "2026-10-11T09:30:02.000Z"
},
"previous_attributes": {
"status": "pending",
"stage": "awaiting_mark",
"mark": null,
"uid": null,
"qr_url": null,
"timeline": [
{
"id": "evt_02y9O8rhJ2Z2v1fOH2XiSH",
"type": "document.created",
"created": "2026-10-11T09:30:00.000Z"
}
],
"updated": "2026-10-11T09:30:00.000Z"
}
},
"request": null
}
}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. |