Timbra CFDI 4.0, complementos de Pagos y Nómina desde tu propio sistema. Bolsa prepagada, idempotency keys y auto-recarga vía Stripe.
# pip install contadb-sdkfrom contadb_sdk import ContaDBClientwith ContaDBClient(api_token="cdb_test_TU_TOKEN_AQUI") as client:resultado = client.timbrar(cfdi_xml=cfdi_firmado_xml,idempotency_key="factura-001",)print(f"UUID: {resultado.uuid}")print(f"Saldo restante: {resultado.saldo_restante} timbres")
Quickstart
Cuenta → token TEST → emisor sandbox → descargar Certificado Sandbox → firmar con el SDK → POST /timbrar (con Idempotency-Key) → cancelar. Al cambiar a cdb_ + CSD SAT pasas a live.
# pip install contadb-sdkfrom contadb_sdk import ContaDBClientwith ContaDBClient(api_token="cdb_test_TU_TOKEN_AQUI") as client:resultado = client.timbrar(cfdi_xml=cfdi_firmado_xml,idempotency_key="factura-001",)print(f"UUID: {resultado.uuid}")print(f"Saldo restante: {resultado.saldo_restante} timbres")
| TEST | LIVE | |
|---|---|---|
| Token | cdb_test_ | cdb_ |
| PAC | Sandbox ContaDB (in-process) | PAC de producción |
| Red | Ninguna llamada externa | PAC / SAT |
| Certificado | Certificado Sandbox (CSD simulado) | CSD SAT del emisor |
| Validez fiscal | Ninguna. CFDI sintético | CFDI fiscal |
| Stripe | No (400) | Recargas y auto-recarga |
| Timbres | Bolsa sandbox del tenant (200 / 14 d) | Bolsas paid por token |
Los certificados Sandbox son generados por ContaDB exclusivamente para pruebas y no pueden utilizarse para emitir CFDI fiscales ante el SAT. Envía siempre el header Idempotency-Key en TEST y LIVE.
Recetas POS
RFC receptor reservados (TEST)
Bolsas de timbres
Recarga cuando quieras o activa la auto-recarga vía Stripe. Tu saldo no vence pronto.
+ IVA · pago único
+ IVA · pago único
+ IVA · pago único
+ IVA · pago único
Precios MXN, antes de IVA. Pago único vía Stripe. La auto-recarga compra el mismo paquete cuando el saldo baja del umbral que tú definas.
Endpoints
api.contadb.mxAutenticación con Authorization: Bearer <token>.
/api/v1/timbrar/api/v1/cancelar/api/v1/saldo/api/v1/sandbox-emisores/api/v1/sandbox/bolsa/renovar/api/v1/recargasComplementos soportados
Detalles técnicos
Envía Idempotency-Key en cada timbrado para evitar duplicados en reintentos.
Por token. Si excedes recibes HTTP 429 con RATE_LIMIT_EXCEEDED.
Bloqueo automático de 5 minutos tras 5 errores consecutivos del mismo token.
Define un umbral y un paquete preferido: cuando el saldo baja, recargamos por ti.
Sin mensualidad, sin compromisos. Paga sólo los timbres que uses.