Issue purchase settlement
A purchase settlement ("liquidación de compra") is issued by the buyer when the seller can't invoice, such as a person without a RUC. Give the supplier, the lines (IVA is the only tax it takes) and the payments. Renta and IVA withheld from such a purchase go on a withholding receipt.
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/purchase-settlements/preview, which spends no number, and pass its preview_id to issue exactly what was previewed. Send an Idempotency-Key to retry without duplicating.
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
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.
0 <= value <= 25The preview_id of POST /v1/ec/purchase-settlements/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.
^[0-9a-f]{64}$Header Parameters
1 <= length <= 255Request 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.
1 <= items1 <= itemsExpense reimbursement (annex 5): the documents being reimbursed. We compute their totals.
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.
The fiscal machine the document is issued from (annex 13). Only when one issues it.
[]The establishment whose series numbers it, such as 001. Without it, the first active series of the document type.
^\d{3}$The emission point of that establishment, such as 001. Without it, the first active one.
^\d{3}$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/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://example.com/v1/ec/purchase-settlements" \ -H "Content-Type: application/json" \ -d '{ "supplier": { "identification_type": "ruc", "identification": "string", "name": "string", "email": "user@example.com" }, "lines": [ { "code": "string", "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": "purchase_settlement", "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", "issue_date": "string", "supplier": { "identification_type": "ruc", "identification": "string", "name": "string", "address": "string", "email": "string" }, "payments": [ { "method": "sin_sistema_financiero", "amount": "string", "term": { "length": 0, "unit": "days" } } ], "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" } ] } ] }, "negotiable": { "notification_email": "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"}Record the annulment of purchase settlement POST
Only records an annulment you already made in the SRI's online portal; it does not request it from the SRI. The document goes to `annulled`, keeps its files, leaves your customer's portal and `<object>.annulled` is sent to your webhooks. Only for an `authorized` one, and never for one issued to a `consumidor_final` buyer, which the SRI does not annul.
List purchase settlements GET
From newest to oldest, in your key's environment.