Authentification
POST/api/v1/auth/register
PubliqueInscrire un marchand et ouvrir une session propriétaire.
No session is started. The account can sign in after the emailed link (valid 24 hours, single use) is confirmed with POST /auth/verify-email. Answers 503 email_unavailable when the server cannot send email.
Corps de la requête
| Champ | Type | Requis | Description |
|---|
email | string (email) | Oui | |
password | string (password) | Oui | length 12–128 |
captcha_token | string | Non | Cloudflare Turnstile response token. Required when GET /config returns a captcha site key; each token is single use. — length 0–2048 |
name | string | Non | length 0–100 |
locale | "en" | "fa" | "ar" | "zh" | "es" | "fr" | "ru" | Non | Language of the email. — default "en" |
Renvoie: 201 application/json
| Champ | Type | Requis | Description |
|---|
verification_required | true | Oui | |
email | string (email) | Oui | |
email_sent | boolean | Oui | False when the SMTP server rejected the message; signing in later sends a new link. |
Réponses
201Account created; confirmation email sent400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error503Email delivery is not configured (email_unavailable) or captcha verification is unavailable
curl -X POST "https://smg.sabco24.com/api/v1/auth/register" \
-H "Content-Type: application/json" \
-d '{"name":"Example Store","email":"merchant@example.com","password":"a-long-unique-passphrase","locale":"en"}'
POST/api/v1/auth/login
PubliqueSe connecter et ouvrir une session propriétaire.
An account whose email is not yet confirmed answers 403 email_not_verified after a correct password, and a new confirmation link is emailed at most every 5 minutes.
Corps de la requête
| Champ | Type | Requis | Description |
|---|
email | string (email) | Oui | |
password | string (password) | Oui | length 10–128 |
captcha_token | string | Non | Cloudflare Turnstile response token. Required when GET /config returns a captcha site key; each token is single use. — length 0–2048 |
locale | "en" | "fa" | "ar" | "zh" | "es" | "fr" | "ru" | Non | Language of the email. — default "en" |
Renvoie: 200 application/json
| Champ | Type | Requis | Description |
|---|
merchant | Merchant | Non | |
Réponses
200Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error503Captcha verification is temporarily unavailable
curl -X POST "https://smg.sabco24.com/api/v1/auth/login" \
-H "Content-Type: application/json" \
-d '{"email":"merchant@example.com","password":"a-long-unique-passphrase"}'
POST/api/v1/auth/verify-email
PubliqueConfirmer une adresse e-mail via le lien envoyé et ouvrir une session propriétaire.
token comes from the #verify= fragment of the emailed link. Tokens are single use; a newer email replaces older links.
Corps de la requête
| Champ | Type | Requis | Description |
|---|
token | string | Oui | Single-use token from the emailed link. — pattern ^[A-Za-z0-9_-]{43}$ |
Renvoie: 200 application/json
| Champ | Type | Requis | Description |
|---|
merchant | Merchant | Non | |
Réponses
200Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X POST "https://smg.sabco24.com/api/v1/auth/verify-email" \
-H "Content-Type: application/json" \
-d '{"token":"TOKEN_FROM_THE_EMAILED_LINK"}'
POST/api/v1/auth/password/forgot
PubliqueEnvoyer par e-mail un lien de réinitialisation du mot de passe.
Always answers 202 whether or not an account exists. The link is valid for 1 hour and single use.
Corps de la requête
| Champ | Type | Requis | Description |
|---|
email | string (email) | Oui | |
captcha_token | string | Non | Cloudflare Turnstile response token. Required when GET /config returns a captcha site key; each token is single use. — length 0–2048 |
locale | "en" | "fa" | "ar" | "zh" | "es" | "fr" | "ru" | Non | Language of the email. — default "en" |
Renvoie: 202 application/json
| Champ | Type | Requis | Description |
|---|
success | true | Oui | |
Réponses
202Accepted400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error503Email delivery is not configured (email_unavailable) or captcha verification is unavailable
curl -X POST "https://smg.sabco24.com/api/v1/auth/password/forgot" \
-H "Content-Type: application/json" \
-d '{"email":"merchant@example.com","locale":"en"}'
POST/api/v1/auth/password/reset
PubliqueDéfinir un nouveau mot de passe via un lien de réinitialisation et se connecter.
token comes from the #reset= fragment of the emailed link. Every existing session of the account is revoked, and the email counts as confirmed.
Corps de la requête
| Champ | Type | Requis | Description |
|---|
token | string | Oui | Single-use token from the emailed link. — pattern ^[A-Za-z0-9_-]{43}$ |
password | string (password) | Oui | length 12–128 |
Renvoie: 200 application/json
| Champ | Type | Requis | Description |
|---|
merchant | Merchant | Non | |
Réponses
200Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X POST "https://smg.sabco24.com/api/v1/auth/password/reset" \
-H "Content-Type: application/json" \
-d '{"token":"TOKEN_FROM_THE_EMAILED_LINK","password":"a-new-long-unique-passphrase"}'
POST/api/v1/auth/google
PubliqueSe connecter ou s’inscrire avec Google et ouvrir une session propriétaire.
Send the credential returned by Google Identity Services. The server verifies the RS256 signature against Google keys, the issuer, audience (GOOGLE_CLIENT_ID), expiry and email_verified. A new email creates an account (201). An existing confirmed account with the same email is linked to the Google account on first use; an unconfirmed one is claimed by the Google owner and its password stops working.
Corps de la requête
| Champ | Type | Requis | Description |
|---|
credential | string | Oui | Google ID token (JWT). — length 20–4096 |
Renvoie: 200 application/json
| Champ | Type | Requis | Description |
|---|
merchant | Merchant | Non | |
Réponses
200Signed in201Account created400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error503Google keys are temporarily unreachable
curl -X POST "https://smg.sabco24.com/api/v1/auth/google" \
-H "Content-Type: application/json" \
-d '{"credential":"GOOGLE_ID_TOKEN_FROM_GOOGLE_IDENTITY_SERVICES"}'
GET/api/v1/auth/session
PubliqueVérifier si ce navigateur est connecté.
Renvoie: 200 application/json
| Champ | Type | Requis | Description |
|---|
signed_in | boolean | Oui | |
Réponses
200Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X GET "https://smg.sabco24.com/api/v1/auth/session"
POST/api/v1/auth/logout
PubliqueFermer la session propriétaire en cours.
Renvoie: 200 application/json
| Champ | Type | Requis | Description |
|---|
success | true | Oui | |
Réponses
200Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X POST "https://smg.sabco24.com/api/v1/auth/logout" \
-H "Content-Type: application/json" \
-d '{}'
Clés API
POST/api/v1/api-keys
Session propriétaireCréer une clé API avec une expiration facultative ; le secret est affiché une seule fois.
Nécessite le cookie de session du propriétaire du tableau de bord ; les clés API sont refusées pour cette opération.
Corps de la requête
| Champ | Type | Requis | Description |
|---|
name | string | Oui | length 1–80 |
expires_in_days | integer | null | Non | Days until the key expires. Omit or send null for a key that never expires. — range 1–3650 · e.g. 90 |
Renvoie: 201 application/json
| Champ | Type | Requis | Description |
|---|
api_key | ApiKey & object | Non | |
secret | string | Non | |
warning | string | Non | |
Réponses
201Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X POST "https://smg.sabco24.com/api/v1/api-keys" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com" \
-H "Content-Type: application/json" \
-d '{"name":"string"}'
POST/api/v1/api-keys/{id}/roll
Session propriétaireRemplacer une clé API par un nouveau secret de même nom et de même durée.
The old key is revoked in the same transaction. The new secret is shown once.
Nécessite le cookie de session du propriétaire du tableau de bord ; les clés API sont refusées pour cette opération.
Paramètres de chemin
| Champ | Type | Requis | Description |
|---|
id | string | Oui | API key ID |
Renvoie: 201 application/json
| Champ | Type | Requis | Description |
|---|
api_key | ApiKey & object | Non | |
secret | string | Non | |
warning | string | Non | |
replaced_key_id | string | Non | |
Réponses
201Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X POST "https://smg.sabco24.com/api/v1/api-keys/ID/roll" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com" \
-H "Content-Type: application/json" \
-d '{}'
DELETE/api/v1/api-keys/{id}
Session propriétaireRévoquer immédiatement une clé API.
Nécessite le cookie de session du propriétaire du tableau de bord ; les clés API sont refusées pour cette opération.
Paramètres de chemin
| Champ | Type | Requis | Description |
|---|
id | string | Oui | API key ID |
Renvoie: 200 application/json
| Champ | Type | Requis | Description |
|---|
success | true | Oui | |
Réponses
200Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X DELETE "https://smg.sabco24.com/api/v1/api-keys/ID" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com"
Webhooks
POST/api/v1/webhooks
Session propriétaireEnregistrer un endpoint webhook HTTPS public ; le secret de signature n’est affiché qu’une fois.
Port 443 only. Local/private targets, IP literals, credentials, URL fragments and redirects are rejected. DNS is resolved and checked again at delivery time.
Nécessite le cookie de session du propriétaire du tableau de bord ; les clés API sont refusées pour cette opération.
Corps de la requête
| Champ | Type | Requis | Description |
|---|
url | string (uri) | Oui | length 0–2048 |
Renvoie: 201 application/json
| Champ | Type | Requis | Description |
|---|
webhook | Webhook & object | Non | |
secret | string | Non | |
Réponses
201Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X POST "https://smg.sabco24.com/api/v1/webhooks" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com" \
-H "Content-Type: application/json" \
-d '{"url":"https://merchant.example.com/hooks/smeta"}'
DELETE/api/v1/webhooks/{id}
Session propriétaireDésactiver un endpoint et annuler ses livraisons en attente.
Nécessite le cookie de session du propriétaire du tableau de bord ; les clés API sont refusées pour cette opération.
Paramètres de chemin
| Champ | Type | Requis | Description |
|---|
id | string | Oui | Webhook ID |
Renvoie: 200 application/json
| Champ | Type | Requis | Description |
|---|
success | true | Oui | |
Réponses
200Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X DELETE "https://smg.sabco24.com/api/v1/webhooks/ID" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com"
POST/api/v1/webhooks/{id}/test
Session propriétaireEnvoyer un événement webhook.test signé.
Nécessite le cookie de session du propriétaire du tableau de bord ; les clés API sont refusées pour cette opération.
Paramètres de chemin
| Champ | Type | Requis | Description |
|---|
id | string | Oui | Webhook ID |
Renvoie: 200 application/json
Réponses
200Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X POST "https://smg.sabco24.com/api/v1/webhooks/ID/test" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com" \
-H "Content-Type: application/json" \
-d '{}'
POST/api/v1/webhooks/deliveries/{id}/retry
Session propriétaireRelancer une livraison de webhook échouée ou en attente.
Nécessite le cookie de session du propriétaire du tableau de bord ; les clés API sont refusées pour cette opération.
Paramètres de chemin
| Champ | Type | Requis | Description |
|---|
id | string | Oui | Delivery ID |
Renvoie: 200 application/json
| Champ | Type | Requis | Description |
|---|
delivery | Delivery | Non | |
Réponses
200Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X POST "https://smg.sabco24.com/api/v1/webhooks/deliveries/ID/retry" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com" \
-H "Content-Type: application/json" \
-d '{}'
POSThttps://your-server.example/hooks/smeta
Receive a signed gateway event at your configured URL
Verify HMAC-SHA256(secret, timestamp + "." + original raw body). The signature header is sha256=<lowercase hex>. Reject timestamps outside your five-minute window and deduplicate event IDs. Each retry is freshly signed. GET the saved invoice with your server key and reconcile it before fulfilling once. invoice.confirmed includes the matched on-chain transaction.
En-têtes requis
X-SMeta-Event-IdX-SMeta-TimestampX-SMeta-Signature
Réponses
200Persisted successfully or already processed. Any 2xx acknowledges delivery.400Invalid event401Invalid or stale signature503Temporary failure; retry delivery
Support
POST/api/v1/support/chat
PubliqueDémarrer une discussion sur le site avec un nom, un e-mail et un premier message ; renvoie un jeton de discussion privé.
Opens a ticket from the visitor's first message, name and email. The response contains chat_token, shown only here; send it as X-Support-Chat-Token to read replies and continue. Contact details are never echoed back.
Corps de la requête
| Champ | Type | Requis | Description |
|---|
message | string | Oui | length 1–5000 |
name | string | Oui | length 1–100 |
email | string (email) | Oui | length 0–254 |
captcha_token | string | Non | Cloudflare Turnstile response token. Required when GET /config returns a captcha site key; each token is single use. — length 0–2048 |
Renvoie: 201 application/json
| Champ | Type | Requis | Description |
|---|
chat_token | string | Oui | Private bearer token for this conversation. |
ticket | object | Oui | |
name | string | Oui | |
messages | SupportMessage[] | Oui | |
Réponses
201Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error503Captcha verification is temporarily unavailable
curl -X POST "https://smg.sabco24.com/api/v1/support/chat" \
-H "Content-Type: application/json" \
-d '{"message":"Do you support WooCommerce?","name":"Jane Doe","email":"jane@example.com","captcha_token":"TURNSTILE_RESPONSE_TOKEN"}'
GET/api/v1/support/chat
PubliqueLire une discussion du site avec son jeton.
En-têtes requis
| Champ | Type | Requis | Description |
|---|
X-Support-Chat-Token | string | Oui | chat_token returned when the chat was started. Keep it private; it is the only key to this conversation. |
Renvoie: 200 application/json
| Champ | Type | Requis | Description |
|---|
ticket | object | Oui | |
name | string | Oui | |
messages | SupportMessage[] | Oui | |
Réponses
200Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X GET "https://smg.sabco24.com/api/v1/support/chat" \
-H "X-Support-Chat-Token: VALUE"
POST/api/v1/support/chat/messages
PubliqueEnvoyer un autre message dans une discussion du site ; une discussion fermée est rouverte.
En-têtes requis
| Champ | Type | Requis | Description |
|---|
X-Support-Chat-Token | string | Oui | chat_token returned when the chat was started. Keep it private; it is the only key to this conversation. |
Corps de la requête
| Champ | Type | Requis | Description |
|---|
message | string | Oui | length 1–5000 |
Renvoie: 201 application/json
| Champ | Type | Requis | Description |
|---|
ticket | object | Oui | |
name | string | Oui | |
messages | SupportMessage[] | Oui | |
Réponses
201Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X POST "https://smg.sabco24.com/api/v1/support/chat/messages" \
-H "X-Support-Chat-Token: VALUE" \
-H "Content-Type: application/json" \
-d '{"message":"Thanks, that helps."}'
Envoyer un message au support sans compte.
Creates a ticket that the support team answers by email. Only the reference is returned.
Corps de la requête
| Champ | Type | Requis | Description |
|---|
name | string | Oui | length 1–100 |
email | string (email) | Oui | length 0–254 |
subject | string | Oui | length 1–150 |
category | "general" | "payments" | "technical" | "account" | "other" | Non | default "general" |
message | string | Oui | length 1–5000 |
captcha_token | string | Non | Cloudflare Turnstile response token. Required when GET /config returns a captcha site key; each token is single use. — length 0–2048 |
Renvoie: 201 application/json
| Champ | Type | Requis | Description |
|---|
ticket | object | Non | |
Réponses
201Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error503Captcha verification is temporarily unavailable
curl -X POST "https://smg.sabco24.com/api/v1/support/contact" \
-H "Content-Type: application/json" \
-d '{"name":"Jane Doe","email":"jane@example.com","subject":"Question about pricing","category":"general","message":"Do you charge per invoice?","captcha_token":"TURNSTILE_RESPONSE_TOKEN"}'
GET/api/v1/support/tickets
Session propriétaireLister vos tickets de support.
Nécessite le cookie de session du propriétaire du tableau de bord ; les clés API sont refusées pour cette opération.
Renvoie: 200 application/json
Réponses
200Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X GET "https://smg.sabco24.com/api/v1/support/tickets" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com"
POST/api/v1/support/tickets
Session propriétaireOuvrir un ticket de support.
Nécessite le cookie de session du propriétaire du tableau de bord ; les clés API sont refusées pour cette opération.
Corps de la requête
| Champ | Type | Requis | Description |
|---|
subject | string | Oui | length 1–150 |
category | "general" | "payments" | "technical" | "account" | "other" | Non | default "general" |
message | string | Oui | length 1–5000 |
Renvoie: 201 SupportThread
Réponses
201Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X POST "https://smg.sabco24.com/api/v1/support/tickets" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com" \
-H "Content-Type: application/json" \
-d '{"subject":"Webhook signature fails","category":"technical","message":"Deliveries return 401 since yesterday."}'
GET/api/v1/support/tickets/{id}
Session propriétaireLire l’un de vos tickets avec ses messages.
Nécessite le cookie de session du propriétaire du tableau de bord ; les clés API sont refusées pour cette opération.
Paramètres de chemin
| Champ | Type | Requis | Description |
|---|
id | string | Oui | Ticket ID |
Renvoie: 200 SupportThread
Réponses
200Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X GET "https://smg.sabco24.com/api/v1/support/tickets/ID" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com"
POST/api/v1/support/tickets/{id}/messages
Session propriétaireRépondre à votre ticket ; un ticket fermé est rouvert.
Nécessite le cookie de session du propriétaire du tableau de bord ; les clés API sont refusées pour cette opération.
Paramètres de chemin
| Champ | Type | Requis | Description |
|---|
id | string | Oui | Ticket ID |
Corps de la requête
| Champ | Type | Requis | Description |
|---|
message | string | Oui | length 1–5000 |
Renvoie: 201 SupportThread
Réponses
201Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X POST "https://smg.sabco24.com/api/v1/support/tickets/ID/messages" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com" \
-H "Content-Type: application/json" \
-d '{"message":"string"}'
POST/api/v1/support/tickets/{id}/close
Session propriétaireFermer votre ticket.
Nécessite le cookie de session du propriétaire du tableau de bord ; les clés API sont refusées pour cette opération.
Paramètres de chemin
| Champ | Type | Requis | Description |
|---|
id | string | Oui | Ticket ID |
Renvoie: 200 SupportThread
Réponses
200Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X POST "https://smg.sabco24.com/api/v1/support/tickets/ID/close" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com" \
-H "Content-Type: application/json" \
-d '{}'
GET/api/v1/support/inbox
Session propriétaireÉquipe support : lister tous les tickets, ouverts en premier.
Requires a session for an account listed in SUPPORT_STAFF_EMAILS.
Nécessite le cookie de session du propriétaire du tableau de bord ; les clés API sont refusées pour cette opération.
Renvoie: 200 application/json
Réponses
200Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X GET "https://smg.sabco24.com/api/v1/support/inbox" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com"
GET/api/v1/support/inbox/{id}
Session propriétaireÉquipe support : lire un ticket avec les coordonnées.
Nécessite le cookie de session du propriétaire du tableau de bord ; les clés API sont refusées pour cette opération.
Paramètres de chemin
| Champ | Type | Requis | Description |
|---|
id | string | Oui | Ticket ID |
Renvoie: 200 SupportThread
Réponses
200Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X GET "https://smg.sabco24.com/api/v1/support/inbox/ID" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com"
POST/api/v1/support/inbox/{id}/messages
Session propriétaireÉquipe support : répondre au ticket d’un marchand.
Contact-form tickets return 409 email_reply_required because the visitor has no account.
Nécessite le cookie de session du propriétaire du tableau de bord ; les clés API sont refusées pour cette opération.
Paramètres de chemin
| Champ | Type | Requis | Description |
|---|
id | string | Oui | Ticket ID |
Corps de la requête
| Champ | Type | Requis | Description |
|---|
message | string | Oui | length 1–5000 |
Renvoie: 201 SupportThread
Réponses
201Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X POST "https://smg.sabco24.com/api/v1/support/inbox/ID/messages" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com" \
-H "Content-Type: application/json" \
-d '{"message":"string"}'
POST/api/v1/support/inbox/{id}/status
Session propriétaireÉquipe support : changer le statut d’un ticket.
Nécessite le cookie de session du propriétaire du tableau de bord ; les clés API sont refusées pour cette opération.
Paramètres de chemin
| Champ | Type | Requis | Description |
|---|
id | string | Oui | Ticket ID |
Corps de la requête
| Champ | Type | Requis | Description |
|---|
status | "open" | "answered" | "closed" | Oui | |
Renvoie: 200 SupportThread
Réponses
200Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X POST "https://smg.sabco24.com/api/v1/support/inbox/ID/status" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com" \
-H "Content-Type: application/json" \
-d '{"status":"open"}'