Skip to content

Sandbox and demo issuer

Every Flashpi account gets a sandbox once its owner verifies their email: it can create test keys (fp_test_...) and issue test documents right away with a shared demo issuer, without registering a RUC or uploading a signing certificate.

Test keys send documents to the SRI’s test environment (ambiente de pruebas). It is the SRI’s real test service, not a simulation run by Flashpi:

  • The SRI validates every document like a production one, and authorizes or rejects it with the same rules.
  • Test documents have no tax effect. Their RIDE prints “Documento emitido en el ambiente de pruebas del SRI: no tiene validez tributaria.”, their emails start the subject with [PRUEBAS] and carry a notice, and the SRI adds the warning test_environment to their sriMessages.
  • The test environment is sometimes slower or unavailable. Documents then wait in pending_sri while Flashpi retries; see Document lifecycle.

Test and live data never mix: a test key cannot read live documents, and the other way round.

  • It is Signia Digital S.A. (RUC 0993411372001), the company that operates Flashpi, enabled in the SRI test environment with its own test certificate.
  • It has establishment 001 and emission point 001.
  • Its ID is on the console’s Overview, next to a ready-to-run request and today’s quota, and under Issuers, where it is marked as the demo issuer and cannot be changed. GET /v1/issuers does not list it, because it does not belong to your account.
  • The documents you issue with it belong to your account: you read them, download their XML and RIDE, and get their webhooks like any other document.
  • Every sandbox account shares its numbering, so your documents get sequentials with gaps between them.
Rule What happens otherwise
Use a test key A live key gets 422 validation_failed with the field error demo_issuer_test_only on issuerId.
Use an account-scoped key An issuer-scoped key gets 403 key_scope_mismatch.
The account’s sandbox must be on (the owner verified their email) 403 sandbox_not_enabled
Do not send a sequential 422 validation_failed with the field error demo_issuer_sequential_not_allowed: the numbering is shared, so Flashpi always assigns it.
Up to 50 documents a day per account 429 demo_issuer_quota_exceeded, see below.
The demo issuer needs a usable test certificate While it has none, every request for it gets 503 demo_issuer_unavailable, before anything is created.

An account can issue 50 documents a day with the demo issuer. Days follow the calendar in Ecuador (UTC-5), so the quota starts again at midnight in Ecuador (05:00 UTC).

  • Every document created with the demo issuer counts, whatever the SRI answers later (an SRI rejection counts too).
  • A request that creates nothing does not count: a validation error, a retry answered from its Idempotency-Key, or a request refused by the quota itself.
  • The console’s Overview shows how many you used today and when the quota resets.

The 51st document of the day gets 429 with Retry-After (seconds until the reset), the limit and the resetsAt time:

{
"type": "https://flashpi.com.ec/docs/en/errors/demo_issuer_quota_exceeded",
"title": "Demo issuer quota exceeded",
"status": 429,
"detail": "Your account issued its 50 test documents of today with the demo issuer. The quota starts again at 2026-10-16T05:00:00.000Z; use your own issuer to issue more.",
"instance": "/v1/invoices",
"code": "demo_issuer_quota_exceeded",
"errors": [],
"requestId": "01a1416f-0b2c-7e13-9d55-6a1c3f0e8b27",
"limit": 50,
"resetsAt": "2026-10-16T05:00:00.000Z"
}

The quota only applies to the demo issuer. Once you create your own issuer from its certificate, test keys issue with your RUC without a daily document quota, exactly as live keys will later. The buyer email limits of test documents still apply (see RIDE and email).

  1. Create your issuer from its signing certificate .p12: Flashpi reads the RUC and the holder; review them and complete its tax profile. The issuer gets establishment 001 and emission point 001; add any others you have.
  2. Wait until its certificate is accepted. It serves test and live, so you can try your own data first and then issue with tax effect without uploading it again.
  3. An account owner creates a live key (fp_live_...) in the console, confirming with their authenticator code.
  4. Send the same requests with the live key and your issuerId.