Emitir nota de crédito
const url = 'https://api.chaski.ec/v1/credit-notes';const options = { method: 'POST', headers: { 'Idempotency-Key': 'example', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"invoice":"example","reason":"example","external_ref":"example","items":[{"code":"example","auxiliary_code":"example","description":"example","quantity":"example","unit_price":"example","discount":"example","taxes":[{"type":"iva","rate":"0","percent":"example"}],"details":{"additionalProperty":"example"}}],"additional_info":{"additionalProperty":"example"},"metadata":{"additionalProperty":"example"},"send_email":true}'};
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.chaski.ec/v1/credit-notes \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: example' \ --data '{ "invoice": "example", "reason": "example", "external_ref": "example", "items": [ { "code": "example", "auxiliary_code": "example", "description": "example", "quantity": "example", "unit_price": "example", "discount": "example", "taxes": [ { "type": "iva", "rate": "0", "percent": "example" } ], "details": { "additionalProperty": "example" } } ], "additional_info": { "additionalProperty": "example" }, "metadata": { "additionalProperty": "example" }, "send_email": true }'Modifica una factura authorized: sale del mismo emisor y punto de emisión, con el mismo comprador. La suma de las notas de crédito activas (pending, received, authorized) de una factura no puede pasar de su total: si pasa, responde 422 credit_exceeds_invoice con el saldo en available. Una factura voided responde 409 invoice_voided. Responde 202 con status: "pending" y se notifica con credit_note.authorized o credit_note.rejected. En producción valida la cuota del plan y los paquetes: si no queda, 402 quota_exceeded (con limit, current, period_end y addon_offer). Los comprobantes de pruebas no consumen cuota.
Authorizations
Sección titulada «Authorizations»Parameters
Sección titulada «Parameters»Header Parameters
Sección titulada «Header Parameters»Una clave única por petición (por ejemplo un UUID). Vale 24 h: reintentar con la misma clave y el mismo body devuelve la misma respuesta.
Request Bodyrequired
Sección titulada «Request Bodyrequired»object
object
object
object
object
Responses
Sección titulada «Responses»OK
object
Clave de acceso de 49 dígitos
object
object
object
object
object
Example
{ "id": "cn_01jbx3k9q2f8m4tn6vwz0yh5ce", "status": "pending", "environment": "test", "emission_point": "001-001", "number": "001-001-000000007", "invoice": "inv_01jbx3k9q2f8m4tn6vwz0yh5ce", "invoice_number": "001-001-000000123", "totals": { "taxes": [ { "type": "iva" } ] }}Petición inválida
object
object
Example
{ "error": { "code": "invalid_request" }}Falta la API key o no es válida
object
object
Example
{ "error": { "code": "invalid_request" }}Cuota de comprobantes agotada (quota_exceeded)
object
object
Example
{ "error": { "code": "invalid_request" }}Sin permiso (cuenta suspendida, emisor no habilitado en producción, límite del plan…)
object
object
Example
{ "error": { "code": "invalid_request" }}Conflicto (recurso repetido, Idempotency-Key en curso…)
object
object
Example
{ "error": { "code": "invalid_request" }}No se puede procesar (certificado vencido, Idempotency-Key reutilizada…)
object
object
Example
{ "error": { "code": "invalid_request" }}Demasiadas peticiones
object
object
Example
{ "error": { "code": "invalid_request" }}