Facturación pospago
Con la facturación pospago usted solicita Energy, Bandwidth, activación y verificaciones AML sin necesidad de recargar un depósito previamente. El precio de los servicios se determina mediante la tarifa aplicable específica para el cliente, incluidos los descuentos correspondientes. Los cargos, pagos y ajustes se reflejan en su factura conforme a las condiciones de facturación y pago de su contrato.
Netts habilita el pospago a petición para cuentas corporativas. Los endpoints de esta sección solo responden a cuentas con facturación pospago; las demás cuentas reciben 403 postpaid_required.
Cómo funciona
- Usted realiza pedidos de la forma habitual. Los mismos endpoints de pedidos, la misma API key. Una cuenta pospago no necesita saldo de depósito para estos pedidos. El precio es el estipulado en su contrato, incluidos sus descuentos.
- Los servicios suministrados se registran como cargos. Un pedido aceptado no constituye por sí solo un servicio suministrado. Un cargo aparece en uso una vez que el servicio o una parte cobrable por separado del pedido ha sido suministrada; esto puede ocurrir después de la respuesta del pedido.
- El precio y el tipo de cambio son fijos y se conservan. Una cotización válida fija el precio según su contrato para ese pedido. Sin una cotización, se aplica el precio vigente en su contrato al realizar el pedido, y el importe en la moneda de su contrato se calcula al tipo de cambio del momento en que se suministra el servicio. Los importes registrados no se recalculan cuando consulta el uso, recibe una factura o realiza un pago.
- Usted recibe y paga su factura. El periodo de facturación y las condiciones de pago son los acordados en su contrato. Una factura muestra los servicios del periodo, los pagos y ajustes aplicados, y el importe pendiente de pago; un pago no elimina los registros de servicio. Consulte facturas y pagos. La moneda de pago, la red y el plazo de pago se muestran en
settlementdentro de cuenta. Cualquier pago en exceso permanece en su cuenta como crédito y se utiliza para los cargos siguientes.
Tarifa, cotización y tipo de cambio registrado
Una cotización (freezePrice) fija el precio según su contrato durante un minuto. Realice el pedido con quoteId y los mismos parámetros dentro de ese minuto, y se facturará al precio cotizado, incluso si el precio cambia o el servicio se suministra más tarde. La cotización es opcional; consulte Energy de 1 hora y Energy de 5 minutos para conocer los campos de solicitud.
Sin una cotización, el importe en la moneda de su contrato se calcula al tipo de cambio vigente en el momento en que se suministra el servicio, no cuando consultó un precio o su cuenta. El tipo de cambio actual — su tipo de cambio y el mostrado en las respuestas de la cuenta — es solo para fines comparativos; no garantiza el tipo de cambio de un pedido futuro.
Las verificaciones AML se cotizan en dólares estadounidenses y se registran en la moneda de su contrato; el equivalente en TRX se calcula al tipo de cambio vigente al completarse la verificación. No recalcule un cargo de AML a partir de su importe redondeado en TRX.
Los importes se muestran en TRX y en la moneda de su contrato; sus límites se contabilizan en la moneda de su contrato. usdPerTrx es el tipo de cambio de TRX con respecto a la moneda de su contrato. Usted paga en la moneda y red de su contrato, indicadas en settlement.
Un pedido puede contener más de un cargo, por ejemplo, Energy y una activación cobrable por separado. Cada cargo tiene su propia hora y tipo de cambio. Los importes se redondean una sola vez a seis decimales, redondeo par; una cotización conserva sus importes cotizados. Concilie un pedido a partir de sus cargos, no aplicando el tipo de cambio actual a su total.
Todas las horas están en UTC. Todos los importes son cadenas decimales, por ejemplo "30000.000000" — procéselas con un tipo decimal, no con un float.
Límite de crédito
Netts establece el límite de crédito de su cuenta: lo máximo que puede adeudar en cualquier momento. Se muestra en cuenta y límites con "origin": "netts". Puede consultarlo pero no puede modificarlo ni desactivarlo; comuníquese con su gestor de Netts si necesita un límite diferente.
Los productos y las API keys comparten este único límite de crédito a nivel de cuenta. Cada nuevo pedido se evalúa frente a cada límite aplicable. Si esa comprobación detecta crédito disponible insuficiente, el pedido se rechaza antes de su ejecución:
{
"detail": {
"code": 1004,
"msg": "Postpaid credit limit reached.",
"paymentMode": "postpaid",
"reason": "limit_reached",
"product": "*",
"period": "outstanding",
"limitId": 1
}
}El endpoint del pedido responde con 402. Un pago libera el límite nuevamente. Si la comprobación no está disponible temporalmente, el endpoint del pedido responde con 503 y el código 5036 — reintente más tarde, el intento rechazado no generó ningún cobro. El importe disponible mostrado mediante una solicitud de lectura es la cifra actual, no una reserva para un pedido posterior; otros pedidos aceptados pueden modificarlo.
Sus propios límites
Dentro del límite de Netts usted puede establecer sus propios límites más bajos, ya sea para mantener el gasto bajo control o para restringir productos específicos:
- Su propio límite global — el total que usted se permite adeudar, por debajo del límite de Netts.
- Un límite por producto — cuánto puede consumir un producto individual, por ejemplo
energy_5m.
Sus límites nunca añaden crédito. Los límites por producto no se suman entre sí: con un límite de Netts de 50 USD, límites de producto de 50 USD para energy_1h y 50 USD para energy_5m siguen compartiendo 50 USD de crédito a nivel de cuenta. La comprobación del pedido aplica todos los límites pertinentes, y límites muestra para cada producto cuánto se puede gastar actualmente.
Un límite puede contabilizar:
period | Qué se contabiliza |
|---|---|
outstanding | cargos no pagados, más pedidos aceptados aún no registrados |
day | cargos del día UTC actual, incluidos los pagados, más pedidos aceptados aún no registrados |
week | cargos de la semana UTC actual a partir del lunes a las 00:00 UTC, incluidos los pagados, más pedidos aceptados aún no registrados |
order | el importe de un único nuevo pedido |
Un pago reduce su deuda, pero no reinicia el uso del día o de la semana. El crédito derivado de un pago en exceso se muestra como creditApplied y se descuenta una sola vez de su deuda global; no se añade a cada límite de producto.
Sus límites se expresan en la moneda del límite de Netts y no pueden ser superiores a este. Si Netts reduce su límite por debajo de uno de los suyos, la restricción aplicable más baja permanecerá vigente.
Productos: energy_1h, energy_5m, bandwidth, activation, aml_check.
Permisos de API key
Cada API key necesita un permiso para esta sección. Su gestor de Netts lo concede por clave:
| Permiso | Permite |
|---|---|
billing.read | cuenta, tipo de cambio, límites, uso, facturas y pagos |
limits.write | crear, modificar, desactivar y activar sus propios límites |
Sin el permiso, el endpoint responde con 403 y billing_read_required o forbidden. La lista blanca de IP de la clave se aplica igual que en cualquier otro endpoint. Estos endpoints siguen estando disponibles cuando el saldo del depósito es cero.
Endpoints
| Endpoint | Qué hace |
|---|---|
GET /apiv2/billing/account | límite de crédito, deuda y lo que está disponible ahora |
GET /apiv2/billing/rate | su tipo de cambio actual de TRX a la moneda de su contrato |
GET /apiv2/billing/limits | todos los límites con importes usados y disponibles, disponibles por producto |
POST /apiv2/billing/limits | crear, modificar, desactivar y activar sus propios límites |
GET /apiv2/billing/usage | componentes de cargo, vinculados a sus pedidos |
GET /apiv2/billing/invoices | facturas, una factura individual con sus cargos |
GET /apiv2/billing/payments | pagos y crédito |
Formato de respuesta
{ "success": true, "data": { }, "timestamp": "2026-10-19T20:12:30+00:00" }Un error del servicio:
{
"success": false,
"error": { "code": "postpaid_required", "message": "this account has no postpaid billing" },
"timestamp": "2026-10-19T20:12:30+00:00"
}Una clave ausente o no válida, o una solicitud desde una IP fuera de la lista blanca de la clave, es rechazada por el gateway de API antes de llegar al servicio, con 401:
{ "detail": { "code": -1, "msg": "Invalid or missing API key" } }El código -2 con "Invalid API key or IP not in whitelist" significa que la IP no figura en la lista blanca de la clave. Más de 10 solicitudes por segundo o 300 por minuto desde una misma IP se rechazan con 429 y {"message": "API rate limit exceeded"}.
| HTTP | code | Significado |
|---|---|---|
| 400 | invalid_request, invalid_amount, idempotency_key_required, invalid_idempotency_key | falta un parámetro o tiene un formato incorrecto |
| 403 | postpaid_required | la cuenta no tiene facturación pospago |
| 403 | postpaid_disabled | la facturación pospago está pausada: puede consultar, pero no modificar límites |
| 403 | billing_read_required, forbidden | la clave carece de billing.read o limits.write |
| 403 | netts_limit_readonly | el límite está establecido por Netts y no se puede modificar |
| 404 | not_found | no existe dicho límite o factura en su cuenta |
| 409 | revision_conflict | el límite se modificó mientras tanto; consúltelo de nuevo |
| 409 | limit_exists | ya posee un límite para este producto y periodo |
| 409 | idempotency_conflict | la Idempotency-Key ya se utilizó con otra solicitud |
| 409 | no_account_limit | la cuenta aún no tiene un límite de crédito establecido por Netts |
| 422 | above_account_limit | el valor es superior al límite de Netts |
| 422 | product_not_postpaid | el producto no está disponible en pospago |
| 422 | unit_mismatch | la moneda del límite de Netts ha cambiado; establezca un nuevo valor antes de activar su límite |
| 503 | unavailable | temporalmente no disponible; reintente más tarde |
| 503 | rate_unavailable | su tipo de cambio no está disponible temporalmente; reintente más tarde |