Timbrar una factura
POST
/invoices/{id}/stamp
const url = 'https://api.dev.lade.com.mx/invoices/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/stamp?teamId=2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url 'https://api.dev.lade.com.mx/invoices/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/stamp?teamId=2489E9AD-2EE2-8E00-8EC9-32D5F69181C0' \ --header 'Authorization: Bearer <token>'Timbra (envía al SAT vía Facturapi) una factura en estado DRAFT o ERROR. Usa un lock atómico condicional para que solo un intento de timbrado esté en curso a la vez (409 si ya hay uno). Rechaza timbrar si la factura sigue en $0 (no editada aún). Descarga el PDF/XML resultantes y los sube a S3. Si Facturapi falla, marca la factura como ERROR y notifica por email a los OWNER/ADMIN del equipo (best-effort).
Authorizations
Sección titulada «Authorizations»Parameters
Sección titulada «Parameters»Path Parameters
Sección titulada «Path Parameters»id
required
string format: uuid
ID de la factura (UUID)
Query Parameters
Sección titulada «Query Parameters»teamId
required
string format: uuid
ID del equipo (UUID)
Responses
Sección titulada «Responses»Factura timbrada exitosamente
Media typeapplication/json
object
message
string
invoice
object
id
string format: uuid
status
string
uuid
UUID fiscal del SAT
string
folio
string
series
string
Example
{ "message": "Invoice stamped successfully", "invoice": { "id": "990e8400-e29b-41d4-a716-446655440004", "status": "VALID", "uuid": "A1B2C3D4-E5F6-7890-ABCD-EF1234567890", "folio": "142", "series": "A" }}Solicitud inválida
Media typeapplication/json
object
error
required
string
message
string
field
string
Example
{ "error": "Validation failed", "field": "email", "message": "Invalid email format"}Sin permisos
Media typeapplication/json
object
error
required
string
message
string
field
string
Example
{ "error": "Forbidden", "message": "You don't have permission to access this resource"}Recurso no encontrado
Media typeapplication/json
object
error
required
string
message
string
field
string
Example
{ "error": "Not found", "message": "Resource not found"}Conflicto con recurso existente
Media typeapplication/json
object
error
required
string
message
string
field
string
Example
{ "error": "Conflict", "message": "Resource already exists"}Error al comunicarse con el proveedor externo (Facturapi/Stripe)
Media typeapplication/json
object
error
required
string
message
string
field
string
Example
{ "error": "Facturapi error: the CSD certificate is invalid"}