Accept the proposal and generate the registry
THE IRREVERSIBLE HALF. It accepts the proposal and registers the preliminary, which is a tax act on this taxpayer's period. There is no inverse operation, exactly as there is none for promoting a company to production. WHAT HAPPENS WHEN IT CANNOT BE ESTABLISHED WHETHER SUNAT APPLIED IT. The period lands AMBIGUOUS and stops. That is not a failure to retry past: retrying could generate the registry twice, and this API has no route that withdraws one. A subsequent call answers 409 SIRE_PERIOD_AMBIGUOUS and a person decides. A refusal WITH a SUNAT code is different — that is SUNAT saying no, the period lands FAILED with the code kept, and the next call may try again. NO Idempotency-Key, and it is not needed: the durable instance is keyed on the period's own operation id, so two callers asking to generate the same period get one run. SIRE HAS NO TEST ENVIRONMENT. There is no beta in which to rehearse this call. The first time it runs, it runs against a real taxpayer's real month.
THE IRREVERSIBLE HALF. It accepts the proposal and registers the preliminary, which is a tax act on this taxpayer's period. There is no inverse operation, exactly as there is none for promoting a company to production.
WHAT HAPPENS WHEN IT CANNOT BE ESTABLISHED WHETHER SUNAT APPLIED IT. The period lands AMBIGUOUS and stops. That is not a failure to retry past: retrying could generate the registry twice, and this API has no route that withdraws one. A subsequent call answers 409 SIRE_PERIOD_AMBIGUOUS and a person decides. A refusal WITH a SUNAT code is different — that is SUNAT saying no, the period lands FAILED with the code kept, and the next call may try again.
NO Idempotency-Key, and it is not needed: the durable instance is keyed on the period's own operation id, so two callers asking to generate the same period get one run.
SIRE HAS NO TEST ENVIRONMENT. There is no beta in which to rehearse this call. The first time it runs, it runs against a real taxpayer's real month.
Authorization
bearerAuth Tenant-bound, scoped and expiring Apifact credential. Migrated legacy credentials are accepted only on deprecated v1 writes and tenant-scoped v2 read, poll and download routes. Each operation names the single scope it requires in x-required-scope; the scope array of the security requirement itself is empty because OpenAPI 3.0 requires it to be for a non-oauth2 scheme.
In: header
Path Parameters
Value in
- "rvie"
- "rce"
^[0-9]{4}(0[1-9]|1[0-2])$Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/api/v2/sire/periods/rvie/string/generation" \ -H "Authorization: Bearer apf_v2_tu_credencial"{ "schemaVersion": "2.0", "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6", "book": "rvie", "period": "string", "status": "RUNNING", "statusPath": "string"}Download what SUNAT proposes for the period, and stop POST POST
The read half of the cycle, and a SEPARATE ROUTE from the write half rather than a flag on one route. SUNAT builds the proposal from what other people issued against this RUC — for RVIE, what this taxpayer issued — and downloading it changes nothing: it is harmless against a real RUC, which is why sire:read admits it. The difference between looking and committing must not live in a JSON field. The day somebody leaves that field set, a period is closed and there is no inverse operation. Same argument that made POST /api/v2/documents/validations a route and not a dry-run flag. Answers 202: a SUNAT round trip can take longer than a request, so the work is handed to a durable Workflow and the period is polled at statusPath.
Durably request immutable PDF representations POST POST
Pins canonical and signed-XML sources plus explicit template/renderer versions. Generation is asynchronous and never changes fiscal document state. Admission is limited to factura 01 and boleta 03; a 07 or 08 note obtains its QR and representations from its own accepted or observed submission.