Credit notes

Issue credit note

POST
/v1/ec/credit-notes

A credit note ("nota de crédito") cancels or reduces an authorized invoice: a return, a discount granted afterwards, a corrected price. Name the invoice in modified_document: by document_id when it was issued in Fiscalbase, and then the buyer may be left out and each line given as the invoice line's code with the quantity credited; or by number and issue_date for one issued elsewhere, with the buyer and the lines in full. Say why in reason. Its total can't exceed the invoice's credit_balance, and an invoice issued to consumidor_final takes no credit note.

Issuing numbers the document, stores it and queues it to be signed and sent to the SRI, all at once: the issue date is today in Ecuador. The status then advances on its own (pending, submitted, then authorized, returned or not_authorized): send wait to answer once the SRI decides, or retrieve it or receive a webhook. A refused document says why in sri_messages, each with its remedy. Check the body first with POST /v1/ec/credit-notes/preview, which spends no number, and pass its preview_id to issue exactly what was previewed. Send an Idempotency-Key to retry without duplicating.

Authorization

AuthorizationBearer <token>

Your API key, which acts for the one business it was created for: fb_sandbox_… issues in sandbox, fb_test_… in test, the tax authority's testing service, and fb_live_… in live.

In: header

Query Parameters

wait?|

Seconds, up to 25, to wait for the SRI's decision before answering: the answer comes as soon as the document leaves pending and submitted (authorized, returned or not_authorized), or when the time runs out, still undecided. Without it, at once. The SRI usually decides within seconds; when it is slow, keep the webhook or retrieve the document later.

Range0 <= value <= 25
preview_id?string

The preview_id of POST /v1/ec/credit-notes/preview for this same body: if the body isn't the one previewed, or the preview is from an earlier day, nothing is issued and the answer is 409 preview_mismatch.

Match^[0-9a-f]{64}$

Header Parameters

idempotency-key?string
Length1 <= length <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

The issue date is always today in Ecuador: documents are transmitted when issued.

buyer?||

Who receives the credit. Omit it when modified_document is an invoice's document_id: it is that invoice's buyer.

modified_document*|
reason*string

Why the invoice is credited (motivo), in free text: the SRI has no codes for it. Such as a return, a discount granted afterwards or a correction of a price.

Match^[^\n\r]*$
Length1 <= length <= 300
lines*array<|>

What is credited: each line in full, or, when modified_document is an invoice's document_id, by the invoice line's code and the quantity credited.

Items1 <= items
iva_refunds?array<>

IVA refunded to an older adult (valorDevolucionIva, annex 20), by rate, as the SRI's DIG service authorized it. It is subtracted from the total; the buyer must identify with a cedula.

fiscal_machine?

The fiscal machine the document is issued from (annex 13). Only when one issues it.

additional_info?array<>
Default[]
establishment?string

The establishment whose series numbers it, such as 001. Without it, the first active series of the document type.

Match^\d{3}$
emission_point?string

The emission point of that establishment, such as 001. Without it, the first active one.

Match^\d{3}$
metadata?

Up to 20 pairs of your own, such as your order id, returned as sent and never interpreted; lists filter by them (metadata[key]=value).

Default{}
simulate?

Only with a sandbox key (422 in test and live, where the SRI decides): the outcome the simulator gives this revision, to rehearse how your system handles each one. Without it, it is authorized.

Response Body

application/json

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X POST "https://example.com/v1/ec/credit-notes" \  -H "Content-Type: application/json" \  -d '{    "modified_document": {      "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6"    },    "reason": "string",    "lines": [      {        "description": "string",        "quantity": "string",        "unit_price": "string",        "taxes": [          {            "type": "iva",            "rate": "iva_15"          }        ]      }    ]  }'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "country": "ec",  "currency": "string",  "environment": "sandbox",  "status": "pending",  "status_transitions": {    "pending": "2019-08-24T14:15:22Z",    "submitted": "2019-08-24T14:15:22Z",    "authorized": "2019-08-24T14:15:22Z",    "returned": "2019-08-24T14:15:22Z",    "not_authorized": "2019-08-24T14:15:22Z",    "annulled": "2019-08-24T14:15:22Z"  },  "entity_id": "8161163a-f227-466f-bc01-090a01e80165",  "number": "string",  "access_key": "stringstringstringstringstringstringstringstrings",  "authorization": {    "number": "string",    "authorized_at": "2019-08-24T14:15:22Z"  },  "sri_messages": [    {      "code": "string",      "message": "string",      "detail": "string",      "type": "error",      "cause": "string",      "remedy": "string"    }  ],  "metadata": {    "property1": "string",    "property2": "string"  },  "issued_at": "2019-08-24T14:15:22Z",  "delivery_status": "sent",  "emails": [    {      "to": "string",      "status": "sent",      "sent_at": "2019-08-24T14:15:22Z",      "delivered_at": "2019-08-24T14:15:22Z",      "opened_at": "2019-08-24T14:15:22Z",      "bounced_at": "2019-08-24T14:15:22Z",      "complained_at": "2019-08-24T14:15:22Z",      "bounce_type": "permanent"    }  ],  "portal_views": 0,  "portal_last_viewed_at": "2019-08-24T14:15:22Z",  "channel": "api",  "import_id": "13230382-dadc-41f2-963d-e123bd5c0585",  "verification": "sri",  "listing": {    "import_id": "13230382-dadc-41f2-963d-e123bd5c0585",    "file": "string",    "entry": "string",    "sha256": "stringstringstringstringstringstringstringstringstringstringstri",    "line": 1,    "authorized_at": "2019-08-24T14:15:22Z"  },  "object": "credit_note",  "lines": [    {      "code": "string",      "auxiliary_code": "string",      "description": "string",      "unit": "string",      "quantity": "string",      "unit_price": "string",      "discount": "string",      "net": "string",      "taxes": [        {          "type": "iva",          "rate": "iva_15",          "base": "string",          "value": "string"        }      ],      "additional_info": [        {          "name": "string",          "value": "string"        }      ]    }  ],  "taxes": [    {      "type": "iva",      "rate": "iva_15",      "base": "string",      "value": "string",      "additional_discount": "string",      "refund": "string"    }  ],  "subtotal": "string",  "discount": "string",  "iva": "string",  "ice": "string",  "irbpnr": "string",  "total": "string",  "issue_date": "string",  "buyer": {    "identification_type": "ruc",    "identification": "string",    "name": "string",    "address": "string",    "email": "string"  },  "modified_document": {    "document_type": "factura",    "number": "string",    "issue_date": "2019-08-24"  },  "reason": "string",  "compensations": [    {      "code": "string",      "rate": "string",      "value": "string"    }  ],  "fiscal_machine": {    "brand": "string",    "model": "string",    "serial": "string"  },  "additional_info": [    {      "name": "string",      "value": "string"    }  ],  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z"}