DESARROLLADORES
Referencia de la API
Todos los endpoints REST de SMetaGateway, generados a partir del contrato OpenAPI 3.1. Usa claves API bearer desde tu servidor; los importes son cadenas decimales.
Endpoints
Todas las operaciones agrupadas por recurso.
| Método | Ruta | Descripción | Autenticación |
|---|---|---|---|
| Sistema | |||
| GET | /health | Comprobar el estado del servicio y el modo de la pasarela. | Pública |
| GET | /config | Leer la configuración pública del cliente, incluida la clave de sitio del captcha. | Pública |
| Autenticación | |||
| POST | /auth/register | Registrar un comercio e iniciar la sesión de propietario. | Pública |
| POST | /auth/login | Iniciar sesión como propietario. | Pública |
| POST | /auth/verify-email | Confirmar una dirección de correo con el enlace enviado e iniciar una sesión de propietario. | Pública |
| POST | /auth/password/forgot | Enviar por correo un enlace para restablecer la contraseña. | Pública |
| POST | /auth/password/reset | Establecer una nueva contraseña con un enlace de restablecimiento e iniciar sesión. | Pública |
| POST | /auth/google | Iniciar sesión o registrarse con Google y abrir una sesión de propietario. | Pública |
| GET | /auth/session | Comprobar si este navegador ha iniciado sesión. | Pública |
| POST | /auth/logout | Cerrar la sesión de propietario actual. | Pública |
| Cuenta | |||
| GET | /me | Obtener la cuenta, billeteras, facturas, claves, webhooks y estadísticas. | Sesión de propietario |
| PATCH | /me | Actualizar el nombre visible del comercio. | Sesión de propietario |
| Billeteras | |||
| GET | /wallets | Listar las direcciones de cobro registradas. | Clave API o sesión |
| POST | /wallets | Registrar una dirección TRON con checksum válido (propiedad no verificada). | Sesión de propietario |
| Facturas | |||
| GET | /invoices | Listar las 500 facturas más recientes. | Clave API o sesión |
| POST | /invoices | Crear una factura y reservar un importe exacto único durante 90 días. | Clave API o sesión |
| GET | /invoices/{id} | Obtener una factura de este comercio. | Clave API o sesión |
| Checkout | |||
| GET | /checkout/{token} | Leer los datos de checkout seguros para el pagador mediante su token. | Pública |
| Claves API | |||
| POST | /api-keys | Crear una clave API con vencimiento opcional; el secreto se muestra una vez. | Sesión de propietario |
| POST | /api-keys/{id}/roll | Sustituir una clave API por un nuevo secreto con el mismo nombre y duración. | Sesión de propietario |
| DELETE | /api-keys/{id} | Revocar una clave API de inmediato. | Sesión de propietario |
| Libro contable | |||
| GET | /ledger.csv | Exportar el libro operativo completo en CSV. | Clave API o sesión |
| Webhooks | |||
| POST | /webhooks | Registrar un endpoint webhook HTTPS público; el secreto de firma se muestra una vez. | Sesión de propietario |
| DELETE | /webhooks/{id} | Desactivar un endpoint y cancelar sus entregas pendientes. | Sesión de propietario |
| POST | /webhooks/{id}/test | Enviar un evento webhook.test firmado. | Sesión de propietario |
| POST | /webhooks/deliveries/{id}/retry | Reintentar una entrega de webhook fallida o pendiente. | Sesión de propietario |
| Soporte | |||
| POST | /support/chat | Iniciar un chat del sitio con nombre, correo y primer mensaje; devuelve un token privado de chat. | Pública |
| GET | /support/chat | Leer un chat del sitio con su token. | Pública |
| POST | /support/chat/messages | Enviar otro mensaje en un chat del sitio; un chat cerrado se reabre. | Pública |
| POST | /support/contact | Enviar un mensaje a soporte sin cuenta. | Pública |
| GET | /support/tickets | Listar tus tickets de soporte. | Sesión de propietario |
| POST | /support/tickets | Abrir un ticket de soporte. | Sesión de propietario |
| GET | /support/tickets/{id} | Leer uno de tus tickets con sus mensajes. | Sesión de propietario |
| POST | /support/tickets/{id}/messages | Responder a tu ticket; un ticket cerrado se reabre. | Sesión de propietario |
| POST | /support/tickets/{id}/close | Cerrar tu ticket. | Sesión de propietario |
| GET | /support/inbox | Equipo de soporte: listar todos los tickets, primero los abiertos. | Sesión de propietario |
| GET | /support/inbox/{id} | Equipo de soporte: leer un ticket con los datos de contacto. | Sesión de propietario |
| POST | /support/inbox/{id}/messages | Equipo de soporte: responder al ticket de un comercio. | Sesión de propietario |
| POST | /support/inbox/{id}/status | Equipo de soporte: cambiar el estado de un ticket. | Sesión de propietario |
Sistema
GET/api/v1/health
PúblicaComprobar el estado del servicio y el modo de la pasarela.
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
status | "ok" | No | |
mode | "live" | No | Invoices are confirmed from verified TRON mainnet transfers. |
live_payments_enabled | true | No |
Respuestas
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/health"GET/api/v1/config
PúblicaLeer la configuración pública del cliente, incluida la clave de sitio del captcha.
captcha is null when Cloudflare Turnstile is not configured; otherwise send captcha_token with sign-in, registration, contact and chat requests. google is null when Google sign-in is not configured.
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
captcha | object | Sí | |
google | object | Sí |
Respuestas
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/config"Autenticación
POST/api/v1/auth/register
PúblicaRegistrar un comercio e iniciar la sesión de propietario.
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.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
email | string (email) | Sí | |
password | string (password) | Sí | length 12–128 |
captcha_token | string | No | Cloudflare Turnstile response token. Required when GET /config returns a captcha site key; each token is single use. — length 0–2048 |
name | string | No | length 0–100 |
locale | "en" | "fa" | "ar" | "zh" | "es" | "fr" | "ru" | No | Language of the email. — default "en" |
Devuelve: 201 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
verification_required | true | Sí | |
email | string (email) | Sí | |
email_sent | boolean | Sí | False when the SMTP server rejected the message; signing in later sends a new link. |
Respuestas
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
PúblicaIniciar sesión como propietario.
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.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
email | string (email) | Sí | |
password | string (password) | Sí | length 10–128 |
captcha_token | string | No | 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" | No | Language of the email. — default "en" |
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
merchant | Merchant | No |
Respuestas
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
PúblicaConfirmar una dirección de correo con el enlace enviado e iniciar una sesión de propietario.
token comes from the #verify= fragment of the emailed link. Tokens are single use; a newer email replaces older links.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
token | string | Sí | Single-use token from the emailed link. — pattern ^[A-Za-z0-9_-]{43}$ |
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
merchant | Merchant | No |
Respuestas
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
PúblicaEnviar por correo un enlace para restablecer la contraseña.
Always answers 202 whether or not an account exists. The link is valid for 1 hour and single use.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
email | string (email) | Sí | |
captcha_token | string | No | 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" | No | Language of the email. — default "en" |
Devuelve: 202 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
success | true | Sí |
Respuestas
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
PúblicaEstablecer una nueva contraseña con un enlace de restablecimiento e iniciar sesión.
token comes from the #reset= fragment of the emailed link. Every existing session of the account is revoked, and the email counts as confirmed.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
token | string | Sí | Single-use token from the emailed link. — pattern ^[A-Za-z0-9_-]{43}$ |
password | string (password) | Sí | length 12–128 |
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
merchant | Merchant | No |
Respuestas
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
PúblicaIniciar sesión o registrarse con Google y abrir una sesión de propietario.
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.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
credential | string | Sí | Google ID token (JWT). — length 20–4096 |
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
merchant | Merchant | No |
Respuestas
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
PúblicaComprobar si este navegador ha iniciado sesión.
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
signed_in | boolean | Sí |
Respuestas
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
PúblicaCerrar la sesión de propietario actual.
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
success | true | Sí |
Respuestas
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 '{}'Cuenta
GET/api/v1/me
Sesión de propietarioObtener la cuenta, billeteras, facturas, claves, webhooks y estadísticas.
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Devuelve: 200 Dashboard
Respuestas
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/me" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com"PATCH/api/v1/me
Sesión de propietarioActualizar el nombre visible del comercio.
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
name | string | Sí | length 1–100 |
Devuelve: 200 Dashboard
Respuestas
200Success400Validation error401Authentication required403Insufficient scope or invalid origin404Resource not found409Conflict, exhausted amount pool or manual review required429Rate limit exceeded500Internal server error
curl -X PATCH "https://smg.sabco24.com/api/v1/me" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com" \
-H "Content-Type: application/json" \
-d '{"name":"string"}'Billeteras
GET/api/v1/wallets
Clave API o sesiónListar las direcciones de cobro registradas.
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
wallets | Wallet[] | No |
Respuestas
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/wallets" \
-H "Authorization: Bearer $SMETA_API_KEY"POST/api/v1/wallets
Sesión de propietarioRegistrar una dirección TRON con checksum válido (propiedad no verificada).
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
label | string | Sí | length 1–80 |
address | string | Sí | pattern ^T[1-9A-HJ-NP-Za-km-z]{33}$ |
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
wallet | Wallet | No |
Respuestas
200Existing address201Registered400Validation 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/wallets" \
-H "Cookie: smg_session=$SESSION" \
-H "Origin: https://smg.sabco24.com" \
-H "Content-Type: application/json" \
-d '{"label":"Main business wallet","address":"T_YOUR_PUBLIC_TRON_ADDRESS"}'Facturas
GET/api/v1/invoices
Clave API o sesiónListar las 500 facturas más recientes.
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
invoices | Invoice[] | No |
Respuestas
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/invoices" \
-H "Authorization: Bearer $SMETA_API_KEY"POST/api/v1/invoices
Clave API o sesiónCrear una factura y reservar un importe exacto único durante 90 días.
Amount allocation is global for (network, token contract, receiving address, final payable micro-units), including merchants sharing an address. Reservations outlive invoice expiry. Historical amount reuse is assigned review status. The invoice is confirmed only when a verified TRON transfer of exactly payable_amount reaches wallet_address between creation and expiry.
Cabeceras obligatorias
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
Idempotency-Key | string | Sí | Clave única por intento de factura; reutilízala al reintentar. |
Cuerpo de la solicitud CreateInvoice
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
merchant_order_id | string | Sí | Unique per merchant. Reuse the original idempotency key for retries. — length 1–120 |
amount | string | Sí | Base price in USDT; minimum 0.000001, maximum 1000000000. The server adds a disclosed identification adjustment. — pattern ^(0|[1-9][0-9]{0,9})(\.[0-9]{1,6})?$ · e.g. "49.95" |
wallet_id | string | Sí | ID of a wallet registered to this merchant. — length 1–100 |
description | string | No | length 1–1000 |
metadata | object | No | JSON object, at most 16 KiB when serialized. Keep customer secrets out of metadata. |
expires_in_minutes | integer | No | range 1–1440 · default 20 |
Devuelve: 200 InvoiceEnvelope
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
invoice | Invoice | Sí | |
idempotent_replay | boolean | No |
Respuestas
200Identical idempotent replay201Invoice allocated400Validation 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/invoices" \
-H "Authorization: Bearer $SMETA_API_KEY" \
-H "Idempotency-Key: order-1001" \
-H "Content-Type: application/json" \
-d '{"merchant_order_id":"1001","amount":"49.95","wallet_id":"WALLET_ID","description":"Example order","expires_in_minutes":20}'GET/api/v1/invoices/{id}
Clave API o sesiónObtener una factura de este comercio.
Parámetros de ruta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | Invoice ID |
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
invoice | Invoice | No |
Respuestas
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/invoices/ID" \
-H "Authorization: Bearer $SMETA_API_KEY"Checkout
GET/api/v1/checkout/{token}
PúblicaLeer los datos de checkout seguros para el pagador mediante su token.
Parámetros de ruta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
token | string | Sí | Checkout capability token from checkout_url |
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
invoice | CheckoutInvoice | No |
Respuestas
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/checkout/TOKEN"Claves API
POST/api/v1/api-keys
Sesión de propietarioCrear una clave API con vencimiento opcional; el secreto se muestra una vez.
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
name | string | Sí | length 1–80 |
expires_in_days | integer | null | No | Days until the key expires. Omit or send null for a key that never expires. — range 1–3650 · e.g. 90 |
Devuelve: 201 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
api_key | ApiKey & object | No | |
secret | string | No | |
warning | string | No |
Respuestas
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
Sesión de propietarioSustituir una clave API por un nuevo secreto con el mismo nombre y duración.
The old key is revoked in the same transaction. The new secret is shown once.
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Parámetros de ruta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | API key ID |
Devuelve: 201 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
api_key | ApiKey & object | No | |
secret | string | No | |
warning | string | No | |
replaced_key_id | string | No |
Respuestas
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}
Sesión de propietarioRevocar una clave API de inmediato.
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Parámetros de ruta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | API key ID |
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
success | true | Sí |
Respuestas
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"Libro contable
GET/api/v1/ledger.csv
Clave API o sesiónExportar el libro operativo completo en CSV.
Devuelve: 200 text/csv
Respuestas
200CSV includes separate base, adjustment and payable columns; not a statutory accounting report.400Validation 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/ledger.csv" \
-H "Authorization: Bearer $SMETA_API_KEY"Webhooks
POST/api/v1/webhooks
Sesión de propietarioRegistrar un endpoint webhook HTTPS público; el secreto de firma se muestra una vez.
Port 443 only. Local/private targets, IP literals, credentials, URL fragments and redirects are rejected. DNS is resolved and checked again at delivery time.
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
url | string (uri) | Sí | length 0–2048 |
Devuelve: 201 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
webhook | Webhook & object | No | |
secret | string | No |
Respuestas
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}
Sesión de propietarioDesactivar un endpoint y cancelar sus entregas pendientes.
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Parámetros de ruta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | Webhook ID |
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
success | true | Sí |
Respuestas
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
Sesión de propietarioEnviar un evento webhook.test firmado.
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Parámetros de ruta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | Webhook ID |
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
event | Event | No | |
deliveries | Delivery[] | No |
Respuestas
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
Sesión de propietarioReintentar una entrega de webhook fallida o pendiente.
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Parámetros de ruta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | Delivery ID |
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
delivery | Delivery | No |
Respuestas
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.
Cabeceras obligatorias
X-SMeta-Event-IdX-SMeta-TimestampX-SMeta-Signature
Respuestas
200Persisted successfully or already processed. Any 2xx acknowledges delivery.400Invalid event401Invalid or stale signature503Temporary failure; retry delivery
Soporte
POST/api/v1/support/chat
PúblicaIniciar un chat del sitio con nombre, correo y primer mensaje; devuelve un token privado de chat.
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.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
message | string | Sí | length 1–5000 |
name | string | Sí | length 1–100 |
email | string (email) | Sí | length 0–254 |
captcha_token | string | No | Cloudflare Turnstile response token. Required when GET /config returns a captcha site key; each token is single use. — length 0–2048 |
Devuelve: 201 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
chat_token | string | Sí | Private bearer token for this conversation. |
ticket | object | Sí | |
name | string | Sí | |
messages | SupportMessage[] | Sí |
Respuestas
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
PúblicaLeer un chat del sitio con su token.
Cabeceras obligatorias
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
X-Support-Chat-Token | string | Sí | chat_token returned when the chat was started. Keep it private; it is the only key to this conversation. |
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket | object | Sí | |
name | string | Sí | |
messages | SupportMessage[] | Sí |
Respuestas
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
PúblicaEnviar otro mensaje en un chat del sitio; un chat cerrado se reabre.
Cabeceras obligatorias
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
X-Support-Chat-Token | string | Sí | chat_token returned when the chat was started. Keep it private; it is the only key to this conversation. |
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
message | string | Sí | length 1–5000 |
Devuelve: 201 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket | object | Sí | |
name | string | Sí | |
messages | SupportMessage[] | Sí |
Respuestas
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."}'POST/api/v1/support/contact
PúblicaEnviar un mensaje a soporte sin cuenta.
Creates a ticket that the support team answers by email. Only the reference is returned.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
name | string | Sí | length 1–100 |
email | string (email) | Sí | length 0–254 |
subject | string | Sí | length 1–150 |
category | "general" | "payments" | "technical" | "account" | "other" | No | default "general" |
message | string | Sí | length 1–5000 |
captcha_token | string | No | Cloudflare Turnstile response token. Required when GET /config returns a captcha site key; each token is single use. — length 0–2048 |
Devuelve: 201 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket | object | No |
Respuestas
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
Sesión de propietarioListar tus tickets de soporte.
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
tickets | SupportTicket[] | No |
Respuestas
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
Sesión de propietarioAbrir un ticket de soporte.
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
subject | string | Sí | length 1–150 |
category | "general" | "payments" | "technical" | "account" | "other" | No | default "general" |
message | string | Sí | length 1–5000 |
Devuelve: 201 SupportThread
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket | SupportTicket | Sí | |
messages | SupportMessage[] | Sí |
Respuestas
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}
Sesión de propietarioLeer uno de tus tickets con sus mensajes.
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Parámetros de ruta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | Ticket ID |
Devuelve: 200 SupportThread
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket | SupportTicket | Sí | |
messages | SupportMessage[] | Sí |
Respuestas
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
Sesión de propietarioResponder a tu ticket; un ticket cerrado se reabre.
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Parámetros de ruta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | Ticket ID |
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
message | string | Sí | length 1–5000 |
Devuelve: 201 SupportThread
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket | SupportTicket | Sí | |
messages | SupportMessage[] | Sí |
Respuestas
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
Sesión de propietarioCerrar tu ticket.
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Parámetros de ruta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | Ticket ID |
Devuelve: 200 SupportThread
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket | SupportTicket | Sí | |
messages | SupportMessage[] | Sí |
Respuestas
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
Sesión de propietarioEquipo de soporte: listar todos los tickets, primero los abiertos.
Requires a session for an account listed in SUPPORT_STAFF_EMAILS.
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Devuelve: 200 application/json
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
tickets | SupportTicket[] | No |
Respuestas
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}
Sesión de propietarioEquipo de soporte: leer un ticket con los datos de contacto.
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Parámetros de ruta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | Ticket ID |
Devuelve: 200 SupportThread
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket | SupportTicket | Sí | |
messages | SupportMessage[] | Sí |
Respuestas
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
Sesión de propietarioEquipo de soporte: responder al ticket de un comercio.
Contact-form tickets return 409 email_reply_required because the visitor has no account.
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Parámetros de ruta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | Ticket ID |
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
message | string | Sí | length 1–5000 |
Devuelve: 201 SupportThread
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket | SupportTicket | Sí | |
messages | SupportMessage[] | Sí |
Respuestas
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
Sesión de propietarioEquipo de soporte: cambiar el estado de un ticket.
Requiere la cookie de sesión del propietario del panel; las claves API se rechazan para esta operación.
Parámetros de ruta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | Ticket ID |
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
status | "open" | "answered" | "closed" | Sí |
Devuelve: 200 SupportThread
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket | SupportTicket | Sí | |
messages | SupportMessage[] | Sí |
Respuestas
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"}'Esquemas
Objetos que la API devuelve y acepta.
Error
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
error | object | Sí | |
mode | "live" | Sí | Invoices are confirmed from verified TRON mainnet transfers. |
Merchant
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | |
name | string | Sí | |
email | string (email) | Sí | |
mode | "live" | Sí | Invoices are confirmed from verified TRON mainnet transfers. |
support_staff | boolean | No | True when this account is listed in SUPPORT_STAFF_EMAILS and may use the support inbox. |
SupportTicket
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | |
reference | string | Sí | Human-friendly reference such as SMG-1A2B3C4D5E. |
subject | string | Sí | |
category | "general" | "payments" | "technical" | "account" | "other" | Sí | default "general" |
status | "open" | "answered" | "closed" | Sí | open: waiting for support; answered: support replied; closed: resolved. |
source | "dashboard" | "contact" | "chat" | Sí | dashboard: merchant ticket; contact: contact form, answered by email; chat: website chat widget, answered in place. |
created_at | string (date-time) | Sí | |
updated_at | string (date-time) | Sí | |
name | string | No | Support inbox only. |
email | string (email) | No | Support inbox only. |
merchant_id | string | null | No | Support inbox only. Null for contact-form and website-chat tickets. |
merchant_name | string | null | No | Support inbox only. |
SupportMessage
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | |
author | "customer" | "staff" | Sí | |
body | string | Sí | |
created_at | string (date-time) | Sí |
SupportThread
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
ticket | SupportTicket | Sí | |
messages | SupportMessage[] | Sí |
Wallet
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | |
label | string | Sí | |
address | string | Sí | |
network | "tron-mainnet" | Sí | |
verified | false | Sí | |
verification_status | "unverified" | Sí | |
created_at | string (date-time) | Sí |
CheckoutInvoice
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | |
base_amount | string | Sí | Exact USDT decimal string, six fractional digits in responses. Never a floating point number. — pattern ^[0-9]+\.[0-9]{6}$ · e.g. "49.953821" |
adjustment | string | Sí | Exact USDT decimal string, six fractional digits in responses. Never a floating point number. — pattern ^[0-9]+\.[0-9]{6}$ · e.g. "49.953821" |
payable_amount | string | Sí | Exact USDT decimal string, six fractional digits in responses. Never a floating point number. — pattern ^[0-9]+\.[0-9]{6}$ · e.g. "49.953821" |
wallet_address | string | Sí | |
status | "pending" | "confirmed" | "expired" | "review" | Sí | |
created_at | string (date-time) | No | |
expires_at | string (date-time) | No | |
reserved_until | string (date-time) | No | |
description | string | No | |
tx_hash | string | null | No | TRON transaction hash of the matched USDT transfer (64 hex characters). |
mode | "live" | Sí | Invoices are confirmed from verified TRON mainnet transfers. |
network | "tron-mainnet" | No | |
token | "USDT" | No | |
token_contract | "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t" | No | |
amount_reuse_review | boolean | No | |
merchant_name | string | Sí | Merchant business display name. |
Invoice
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | |
base_amount | string | Sí | Exact USDT decimal string, six fractional digits in responses. Never a floating point number. — pattern ^[0-9]+\.[0-9]{6}$ · e.g. "49.953821" |
adjustment | string | Sí | Exact USDT decimal string, six fractional digits in responses. Never a floating point number. — pattern ^[0-9]+\.[0-9]{6}$ · e.g. "49.953821" |
payable_amount | string | Sí | Exact USDT decimal string, six fractional digits in responses. Never a floating point number. — pattern ^[0-9]+\.[0-9]{6}$ · e.g. "49.953821" |
wallet_address | string | Sí | |
status | "pending" | "confirmed" | "expired" | "review" | Sí | |
created_at | string (date-time) | No | |
expires_at | string (date-time) | No | |
reserved_until | string (date-time) | No | |
description | string | No | |
tx_hash | string | null | No | TRON transaction hash of the matched USDT transfer (64 hex characters). |
mode | "live" | Sí | Invoices are confirmed from verified TRON mainnet transfers. |
network | "tron-mainnet" | No | |
token | "USDT" | No | |
token_contract | "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t" | No | |
amount_reuse_review | boolean | No | |
checkout_url | string (uri) | No | |
checkout_token | string | No | Capability token. Treat checkout URLs as confidential invoice links. |
merchant_order_id | string | Sí | |
wallet_id | string | Sí | |
metadata | object | Sí |
CreateInvoice
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
merchant_order_id | string | Sí | Unique per merchant. Reuse the original idempotency key for retries. — length 1–120 |
amount | string | Sí | Base price in USDT; minimum 0.000001, maximum 1000000000. The server adds a disclosed identification adjustment. — pattern ^(0|[1-9][0-9]{0,9})(\.[0-9]{1,6})?$ · e.g. "49.95" |
wallet_id | string | Sí | ID of a wallet registered to this merchant. — length 1–100 |
description | string | No | length 1–1000 |
metadata | object | No | JSON object, at most 16 KiB when serialized. Keep customer secrets out of metadata. |
expires_in_minutes | integer | No | range 1–1440 · default 20 |
InvoiceEnvelope
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
invoice | Invoice | Sí | |
idempotent_replay | boolean | No |
ApiKey
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | |
name | string | Sí | |
prefix | string | Sí | First characters of the secret, for identification only. |
mode | "live" | Sí | Invoices are confirmed from verified TRON mainnet transfers. |
scopes | "invoices:read" | "invoices:write" | "ledger:read"[] | Sí | |
created_at | string (date-time) | No | |
last_used_at | string | null (date-time) | No | |
revoked_at | string | null (date-time) | No | |
expires_at | string | null (date-time) | No | Null when the key never expires. |
expired | boolean | No |
Webhook
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | |
url | string (uri) | Sí | |
created_at | string (date-time) | No | |
active | boolean | Sí |
Delivery
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | |
webhook_id | string | Sí | |
event_id | string | Sí | |
status | "pending" | "sending" | "delivered" | "failed" | "cancelled" | Sí | |
attempts | integer | Sí | |
next_attempt_at | string | null (date-time) | No | |
last_error | string | null | No | |
response_status | integer | null | No | |
created_at | string (date-time) | No | |
delivered_at | string | null (date-time) | No |
Event
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | |
type | "invoice.created" | "invoice.confirmed" | "invoice.expired" | "invoice.review" | "webhook.test" | Sí | |
created_at | string (date-time) | Sí | |
mode | "live" | Sí | Invoices are confirmed from verified TRON mainnet transfers. |
data | object | Sí |
ConfirmedEvent
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | |
type | "invoice.confirmed" | Sí | |
created_at | string (date-time) | Sí | |
mode | "live" | Sí | Invoices are confirmed from verified TRON mainnet transfers. |
data | object | Sí |