Fac-360
Documents

Durably request document submission

Creates an idempotent operation and outbox event. Factura, boleta and the restricted 07 and 08 note profiles are admitted only when their independent tenant capabilities are enabled: the capabilities are evaluated when the request arrives, and a request that does not meet them is REFUSED with 409 TENANT_CAPABILITY_DISABLED naming the exact capability column, never accepted and held. A 202 therefore means the submission is queued for the private SUNAT Workflow and will reach a terminal state; it never means the request is waiting for a capability to be turned on. A note profile is pinned per type and not per reason, so a 07 that voids its factura and a 07 that credits part of it are dispatched on identical terms. Successful admission does not imply SUNAT acceptance. An accepted or observed submission of any of these document types produces signed XML, submission ZIP, CDR, QR PNG and the A4 and ticket representations; a note prints its own series-number and amounts and names the document it modifies with its catalog 09/10 reason.

POST
/api/v2/documents/{id}/submissions

Creates an idempotent operation and outbox event. Factura, boleta and the restricted 07 and 08 note profiles are admitted only when their independent tenant capabilities are enabled: the capabilities are evaluated when the request arrives, and a request that does not meet them is REFUSED with 409 TENANT_CAPABILITY_DISABLED naming the exact capability column, never accepted and held. A 202 therefore means the submission is queued for the private SUNAT Workflow and will reach a terminal state; it never means the request is waiting for a capability to be turned on. A note profile is pinned per type and not per reason, so a 07 that voids its factura and a 07 that credits part of it are dispatched on identical terms. Successful admission does not imply SUNAT acceptance. An accepted or observed submission of any of these document types produces signed XML, submission ZIP, CDR, QR PNG and the A4 and ticket representations; a note prints its own series-number and amounts and names the document it modifies with its catalog 09/10 reason.

Authorization

bearerAuth
AuthorizationBearer <token>

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

id*string
Formatuuid

Header Parameters

Idempotency-Key*string
Length1 <= length <= 200

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/v2/documents/497f6eca-6276-4993-bfeb-53cbbbba6f08/submissions" \  -H "Idempotency-Key: b6a2f0e4-1c3d-4a5b-8e7f-9d0c1b2a3e4f" \  -H "Authorization: Bearer apf_v2_tu_credencial"
{  "schemaVersion": "2.0",  "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6",  "operationId": "3051932a-fdd2-48fa-b330-7e7d41535969",  "resourceId": "026d60bb-63a8-407e-bf67-01dcfc6022e6",  "state": "RECEIVED",  "replay": true}