Fac-360
Summaries

Validate and durably create a daily summary (RC)

A daily summary (RC) reports the boletas issued on one day and the notes that affect them, and it is the only way to annul a boleta: a line with statusCode 3, never a void communication. Creation is capability-gated per tenant and does not contact SUNAT. A line naming a comprobante this API holds is checked against it: the comprobante must have been accepted or observed by SUNAT, and must not already be withdrawn or carried by another live communication. A line naming a comprobante this API does not hold is accepted and recorded as unlinked — see `references` — because an emitter may have issued it through another provider, on paper, or before integrating; SUNAT's own ERROR 2105 and 2323 police that case.

POST
/api/v2/summaries

A daily summary (RC) reports the boletas issued on one day and the notes that affect them, and it is the only way to annul a boleta: a line with statusCode 3, never a void communication. Creation is capability-gated per tenant and does not contact SUNAT. A line naming a comprobante this API holds is checked against it: the comprobante must have been accepted or observed by SUNAT, and must not already be withdrawn or carried by another live communication. A line naming a comprobante this API does not hold is accepted and recorded as unlinked — see references — because an emitter may have issued it through another provider, on paper, or before integrating; SUNAT's own ERROR 2105 and 2323 police that case.

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

Header Parameters

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

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

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/summaries" \  -H "Idempotency-Key: b6a2f0e4-1c3d-4a5b-8e7f-9d0c1b2a3e4f" \  -H "Authorization: Bearer apf_v2_tu_credencial" \  -H "Content-Type: application/json" \  -d '{    "schemaVersion": "1.0",    "documentType": "RC",    "issueDate": "2026-08-12",    "referenceDate": "2026-08-12",    "correlative": "1",    "supplier": {      "documentType": "6",      "documentNumber": "20601030405",      "legalName": "MI EMPRESA EMISORA S.A.C."    },    "lines": [      {        "documentType": "03",        "series": "B002",        "number": "1",        "statusCode": "1",        "currency": "PEN",        "totalAmount": "59.00",        "payments": {          "taxable": "50.00"        },        "taxes": {          "igv": "9.00"        }      },      {        "documentType": "03",        "series": "B002",        "number": "2",        "statusCode": "1",        "currency": "PEN",        "customer": {          "documentType": "1",          "documentNumber": "45678912"        },        "totalAmount": "826.00",        "payments": {          "taxable": "700.00"        },        "taxes": {          "igv": "126.00"        }      }    ]  }'
{  "schemaVersion": "2.0",  "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6",  "operationId": "3051932a-fdd2-48fa-b330-7e7d41535969",  "resourceId": "026d60bb-63a8-407e-bf67-01dcfc6022e6",  "summaryType": "RC",  "documentName": "string",  "state": "VALIDATED",  "replay": true,  "deadline": {    "status": "WITHIN_DEADLINE",    "elapsedDays": 0,    "limitDays": 0  }}