Μενού τεκμηρίωσης: Merchants
Merchants
The businesses that issue documents under your account.
Η αναφορά API είναι διαθέσιμη μόνο στα αγγλικά, όπως και το API.
Σε αυτή τη σελίδα
Create a merchant #
/api/v1/merchantsCreates a merchant: a business that issues documents under your account, seen by your test and live keys alike. Its external_id is unique ignoring case; creating a taken one is 409 already_exists, so look it up instead (a Shopify reinstall).
- Bearer API key
- Idempotency-Key required
Header parameters
idempotency-keystringrequiredA key you choose (1-255 printable ASCII characters, e.g. a UUID) that makes a create request safe to retry: the same key with the same body returns the first result instead of creating a second document.
1 to 255 characters
Show patternHide pattern
^[\x21-\x7E]+$
Request body
external_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.
Up to 200 characters
Show patternHide pattern
\SnamestringrequiredThe merchant's name, as you show it: 1 to 200 characters, trimmed.
Up to 200 characters
Show patternHide pattern
\Stax_idstringThe merchant's own Greek tax number (ΑΦΜ), 9 digits. Spaces, hyphens and dots are removed before it is checked. Needed before the merchant can be onboarded to a provider.
Up to 60 characters
branchintegerBranch number in the AADE registry; 0 (the default) for the head office.
From 0 to 9999
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.
Show nested fields (1)Hide nested fields (1)
{key}stringA value, up to 500 characters.
1 to 40 characters
Request
JSON{
"external_id": "olive-oil.myshopify.com",
"name": "Olive Oil Co"
}| Status | Description |
|---|---|
201 | The merchant. A replay returns the first answer. |
| 4XX, 5XX | An error: see Errors below. |
Response body · 201
dataobjectrequiredA business that issues documents under your account.
Show nested fields (9)Hide nested fields (9)
idstringrequiredId of the merchant (mer_…).
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$objectstringrequiredAlways "merchant".
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.
Up to 200 characters
Show patternHide pattern
\SnamestringrequiredThe merchant's name, as you show it: 1 to 200 characters, trimmed.
Up to 200 characters
Show patternHide pattern
\Stax_idstring | nullrequiredThe merchant's ΑΦΜ, normalised, or null when not given.
branchintegerrequiredBranch number in the AADE registry; 0 for the head office.
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.
Show nested fields (1)Hide nested fields (1)
{key}stringA value, up to 500 characters.
1 to 40 characters
archivedbooleanrequiredTrue once the merchant is archived; it then issues nothing new.
createdstringrequiredWhen the merchant was created.
Format:
date-time
Example response · 201{
"data": {
"id": "mer_02y9O8rh7F50tGi0QcWRrx",
"object": "merchant",
"external_id": "olive-oil.myshopify.com",
"name": "Olive Oil Co",
"tax_id": "string",
"branch": 0,
"metadata": {
"shop_domain": "olive-oil.myshopify.com"
},
"archived": false,
"created": "2026-10-11T09:30:00.000Z"
}
}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 201, 400, 409, 413, 415, 429 · At least 1
ratelimit-remainingintegerRequests left in the current window; 0 means the next one is refused until the window resets.
With 201, 400, 409, 413, 415, 429 · At least 0
ratelimit-resetintegerSeconds until the current window resets.
With 201, 400, 409, 413, 415, 429 · At least 0
idempotent-replayedstringtrue when this answer replays an earlier request with the same Idempotency-Key (nothing new was created); absent on the request that created it.
With 201 · Always
truewww-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. |
idempotency_conflict | 409 | No | This idempotency key was already used with a different request. |
idempotency_in_progress | 409 | Yes | A request with this idempotency key is still in progress; retry it after Retry-After to get its answer. |
already_exists | 409 | No | An object with this identifier already exists; look it up instead of creating it again. |
payload_too_large | 413 | No | The request body is too large. |
unsupported_media_type | 415 | No | The request body must be JSON (Content-Type: application/json). |
rate_limited | 429 | Yes | A rate limit was reached. Retry later. |
internal_error | 500 | No | An unexpected server error occurred. |
Retrieve a merchant #
/api/v1/merchants/{id}Returns one of your merchants.
- Bearer API key
Path parameters
idstringrequiredThe merchant's id (mer_…).
Request
curlcurl -X GET 'https://tallio.dev/api/v1/merchants/mer_02y9O8rh7F50tGi0QcWRrx' \
-H "Authorization: Bearer $TALLIO_API_KEY"| Status | Description |
|---|---|
200 | The merchant. |
| 4XX, 5XX | An error: see Errors below. |
Response body · 200
dataobjectrequiredA business that issues documents under your account.
Show nested fields (9)Hide nested fields (9)
idstringrequiredId of the merchant (mer_…).
Show patternHide pattern
^mer_[0-9A-Za-z]{22}$objectstringrequiredAlways "merchant".
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.
Up to 200 characters
Show patternHide pattern
\SnamestringrequiredThe merchant's name, as you show it: 1 to 200 characters, trimmed.
Up to 200 characters
Show patternHide pattern
\Stax_idstring | nullrequiredThe merchant's ΑΦΜ, normalised, or null when not given.
branchintegerrequiredBranch number in the AADE registry; 0 for the head office.
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.
Show nested fields (1)Hide nested fields (1)
{key}stringA value, up to 500 characters.
1 to 40 characters
archivedbooleanrequiredTrue once the merchant is archived; it then issues nothing new.
createdstringrequiredWhen the merchant was created.
Format:
date-time
Example response · 200{
"data": {
"id": "mer_02y9O8rh7F50tGi0QcWRrx",
"object": "merchant",
"external_id": "olive-oil.myshopify.com",
"name": "Olive Oil Co",
"tax_id": "string",
"branch": 0,
"metadata": {
"shop_domain": "olive-oil.myshopify.com"
},
"archived": false,
"created": "2026-10-11T09:30:00.000Z"
}
}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. |