Correct and resubmit invoice
Only for a returned or not_authorized document. The SRI receives the correction with the same number and the same access key: the document keeps both, gains a revision and goes back to pending.
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
Path Parameters
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
The corrected document. Its number, access key and issue date do not change.
1 <= items1 <= itemsVehicle plate (placa): of the commercial transport service (tabla 33) or the vehicle fuel was dispatched to (tabla 29). No spaces.
^[A-Z0-9-]{1,20}$Tip (propina), up to 10 % of the subtotal before taxes. It adds to the total.
^\d+(\.\d{1,2})?$Number of the delivery note that accompanies the goods (guiaRemision).
^\d{3}-\d{3}-\d{9}$Export invoice (annex 4). The buyer needs an address.
Expense reimbursement (annex 5): the documents being reimbursed. We compute their totals.
Withholdings the invoice itself declares (retenciones, tablas 22 and 23): fuel marketers and press.
Invoice that replaces a delivery note (annex 9): the transfer of the goods it sells.
Other third-party items (annex 8): amounts you collect on behalf of third parties. They aren't part of the invoice's total.
Negotiable commercial document (annex 11): requires the counterparty's address and a term on each payment.
Additional discount on the IVA base of a rate (descuentoAdicional), applied after the lines: the IVA of that rate is computed on the base minus the discount.
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.
The fiscal machine the document is issued from (annex 13). Only when one issues it.
[]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).
{}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/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://example.com/v1/ec/invoices/497f6eca-6276-4993-bfeb-53cbbbba6f08/resubmit" \ -H "Content-Type: application/json" \ -d '{ "buyer": { "identification_type": "consumidor_final" }, "lines": [ { "description": "string", "quantity": "string", "unit_price": "string", "taxes": [ { "type": "iva", "rate": "iva_15" } ] } ], "payments": [ { "method": "sin_sistema_financiero" } ] }'{ "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"}Retrieve invoice GET
The document with its current status and its access key, as Fiscalbase knows it. It only reads: it does not ask the SRI at that moment; for that there is `POST /v1/ec/documents/{id}/refresh-status`. Send `wait` to answer once the SRI decides on a `pending` or `submitted` one.
Renumber invoice POST
Only for a `returned` document with error 45, SECUENCIAL REGISTRADO: another document of the RUC already has that number at the SRI. It takes the next number in its series with a new access key, keeps its content and its issue date, gains a revision and goes back to `pending`. In `sandbox` and `test` this happens on its own; in `live` never, because that number belongs to an authorized document that Fiscalbase does not know about.