FactuSync API Documentation

REST API to emit electronic vouchers authorized by Ecuador's SRI. XAdES-BES signature, retry queue, RIDE PDF and webhooks included.

Authentication

All requests must include the header X-API-Key: <API_KEY>.

API Keys are managed from the FactuSync dashboard.

  • documents:write — Create documents
  • documents:emit — Emit to SRI
  • documents:read — Query documents and RIDE
  • documents:ride — Download RIDE PDF
  • cancellations:write — Request cancellations
  • cancellations:approve — Approve cancellations
  • validation:read — Validate RUC
  • queue:read — Query emission queue
  • queue:retry — Retry failed queue jobs
  • webhooks:manage — Manage webhooks
  • signature:manage — Manage the electronic signature (.p12): upload, rotate, and check certificate status

Environments

API keys use two prefixes:

  • fsk_live_...Production — Emits real documents to SRI
  • fsk_test_...Sandbox — SRI certification environment

Base URL

https://api.factusync.jipsoft.com/

Emission flow

1 POST /documents → create electronic document in DRAFT
2 POST /documents/:id/emit (DRAFT only) → queues XAdES-BES signing + SRI submission
3 Polling GET /documents/:id or webhook → AUTHORIZED or REJECTED; if REJECTED, POST /documents/:id/retry then poll again AUTHORIZED / REJECTED
4 GET /documents/:id/ride → download RIDE PDF

Document lifecycle

The states a document moves through from creation to SRI authorization.

StateMeaning
DRAFTCreated, not yet sent to SRI. The payload can be edited.
PROCESSINGThe emission job is running (XML build and signing).
VALIDATEDThe payload passed schema validation.
SIGNEDThe XAdES-BES signature was applied.
SENT_TO_SRISubmitted to the SRI web service, awaiting response.
AUTHORIZEDSRI authorized the document. The access key is final.
REJECTEDSRI rejected the document. It can be retried after fixing the payload.
CANCELLEDThe document annulment was confirmed by SRI.

Signature management flow (.p12)

1 Create an API Key with the scope signature:manage
2 Upload or rotate the .p12 certificate by sending multipart/form-data (fields file and p12Password) to POST /integration/signature
3 Check the current status (subject, serial, expiry, and days remaining) with GET /integration/signature
4 Rotate the .p12 before it expires by repeating the upload; deactivation is not available via API, only from the panel.