List invoices
From newest to oldest, in your key's environment.
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
How many per page, from 1 to 100.
1 <= value <= 10020The next_cursor or prev_cursor of a previous response. Without a cursor, the first page.
length <= 200Only in these statuses; repeat it for several (status=returned&status=not_authorized).
Only those that arrived through these channels; repeat it for several.
The identification of the document's buyer or supplier; on a delivery note, that of the carrier or of any of its recipients.
Searches words in the number (001-001-000000123), the access key, the name of whoever appears on the document (ignoring case and accents) or the start of their identification. Each word must appear somewhere; it combines with the other filters.
1 <= length <= 100datedatedate-timedate-timeOnly the documents whose metadata has exactly these pairs, for example metadata[shopify_order_id]=5812345678901. Up to 20; all must match.
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X GET "https://example.com/v1/ec/invoices"{ "object": "list", "data": [ { "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": "invoice", "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" } ], "unsubsidized_price": "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", "subsidy": "string", "tip": "string", "issue_date": "string", "buyer": { "identification_type": "ruc", "identification": "string", "name": "string", "address": "string", "email": "string" }, "payments": [ { "method": "sin_sistema_financiero", "amount": "string", "term": { "length": 0, "unit": "days" } } ], "plate": "string", "delivery_note_number": "string", "export": { "incoterm": "string", "incoterm_place": "string", "origin_country": "string", "loading_port": "string", "destination_port": "string", "destination_country": "string", "acquisition_country": "string", "subtotal_incoterm": "string", "international_freight": "string", "international_insurance": "string", "customs_costs": "string", "other_transport_costs": "string" }, "reimbursement": { "document_type": "factura", "total": "string", "base": "string", "tax": "string", "documents": [ { "supplier": { "identification_type": "ruc", "identification": "string" }, "supplier_type": "persona_natural", "payment_country": "string", "document_type": "factura", "number": "string", "issue_date": "string", "authorization_number": "string", "taxes": [ { "type": "iva", "rate": "iva_15", "base": "string", "value": "string" } ], "compensations": [ { "code": "string", "rate": "string", "value": "string" } ] } ] }, "withholdings": [ { "type": "iva_100", "value": "string" } ], "withheld_iva": "string", "withheld_renta": "string", "substitute_delivery_note": { "origin_address": "string", "destination_address": "string", "transport_start": "string", "transport_end": "string", "carrier": { "identification_type": "ruc", "identification": "string", "name": "string" }, "plate": "string", "destinations": [ { "reason": "string", "customs_document": "string", "destination_establishment": "string", "route": "string" } ] }, "third_party_charges": [ { "concept": "string", "amount": "string" } ], "negotiable": { "notification_email": "string" }, "compensations": [ { "code": "string", "rate": "string", "value": "string" } ], "fiscal_machine": { "brand": "string", "model": "string", "serial": "string" }, "additional_info": [ { "name": "string", "value": "string" } ], "credit_balance": "string", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z" } ], "next_cursor": "string", "prev_cursor": "string", "total_count": 0, "offset": 0}Issue invoice POST
An invoice ("factura") records a sale. Its body needs the `buyer` (identified by `ruc`, `cedula`, `pasaporte` or `exterior`, or `consumidor_final` for a sale of at most USD 50), the `lines`, each with its taxes (one `iva`, and an `ice` or `irbpnr` where they apply), and the `payments`, which add up to the total (a single payment may leave out its amount). Fiscalbase computes every total from the lines. Look up codes with `GET /v1/ec/catalogs/{table}` (`payment_methods`, `iva_rates`, `ice`). To cancel or reduce an invoice later, issue a credit note; to add charges, a debit 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/invoices/preview`, which spends no number, and pass its `preview_id` to issue exactly what was previewed. Send an `Idempotency-Key` to retry without duplicating.
Preview invoice POST
Checks the body of `POST /v1/ec/invoices` and computes the document as it would be issued today, without numbering, storing or sending anything. What is wrong with the body is refused with `422`, as issuing would refuse it; what would stop issuing it right now (no plan, certificate or numbering, a business not live yet, the spending cap reached) comes back in `warnings`. Pass its `preview_id` to `POST /v1/ec/invoices?preview_id=…` to issue exactly this body.