NFS-e
Manifest on received NFS-e
Registers the official confirmation or rejection manifestation on a received NFS-e; asynchronous, 200 with an acceptance receipt.
/openapi/v2/empresas/{empresaId}/nfse/recebidas/{chaveAcesso}/manifestartoken, timestamp and sign signature headers, see Authentication.This company acts as recipient or intermediary and formally manifests on a received NFS-e: tipo picks between Confirmacao and Rejeicao, and on a rejection the body also carries the official reason code. Acceptance is asynchronous, and the outcome arrives through the nfse.inbound.manifested / nfse.inbound.manifest_failed webhooks, which require an explicit subscription, or is read from the manifestacao block of the received NFS-e detail. Each party manifests at most once per invoice: a call after a confirmation, rejection or tacit confirmation returns 10018042.
Path parameters
empresaId* | string | Company identifier |
chaveAcesso* | string | Access key |
* Required field
Request body
tipo* | string | Manifestation type |
codigoMotivo*required when rejecting | string | Rejection reason code |
motivo | string | Rejection description |
* Required field
nfse.inbound.manifested / nfse.inbound.manifest_failed, or in the manifestacao block of the received NFS-e detail.nfseTaskId | int | Platform task id |
status | int | Task status |
reused | bool | Task reused |
createTime | string | Acceptance time |
The platform picks the event code from this company role on the invoice, the caller sends no code at all: a recipient confirms with 203202 and rejects with 203206; an intermediary confirms with 204203 and rejects with 204207. The event is registered with the national issuer and flows back to every party on the invoice through the national distribution.
Confirm
tipo alone. Sending codigoMotivo or motivo along is refused with 10018001.
{ "tipo": "Confirmacao" }
tipo* | string | Manifestation type |
* Required field
Reject
tipo plus the official reason code; the description is optional.
{"tipo": "Rejeicao","codigoMotivo": "3","motivo": "Servico nao prestado ao tomador"}
tipo* | string | Manifestation type |
codigoMotivo* | string | Reason code |
motivo | string | Description |
* Required field
The HTTP 200 is only the acceptance receipt; submitting the same invoice again while the original task is in flight returns reused=true. The outcome arrives through the nfse.inbound.manifested / nfse.inbound.manifest_failed webhooks, which require an explicit subscription in Register webhook, or is read from the manifestacao block of the received NFS-e detail. The failure matters: without a manifestation within the deadline the municipality registers a tacit confirmation, so repeat the manifestation before the deadline.
Registered: nfse.inbound.manifested
Event envelope; data shown below. Confirmation and rejection arrive through the same event, told apart by tipo.
{"version": "1.0","event_id": "1950000000000004","event_type": "nfse.inbound.manifested","occurred_at": "2026-09-21T14:00:05Z","data": {"inbound_id": "1950000000000777","chave": "35503082406730610001340000000000000000000000000077","tipo": "Rejeicao","evento": "203206","codigo_motivo": "3","motivo": "Servico nao prestado ao tomador","protocolo": "3550308000000000000000000000000000000000000000000001"}}
inbound_id* | string | Platform id of the received invoice |
chave* | string | Access key |
tipo* | string | Type of the registered manifestation |
evento* | string | Official code of the registered event |
codigo_motivo | string | Reason code |
motivo | string | Reason description |
protocolo* | string | Authority protocol |
* Required field
Failed: nfse.inbound.manifest_failed
The authority refused the event or the message failed the official format validation (10018064). The manifestacao block stays null; repeat the manifestation before the deadline.
{"version": "1.0","event_id": "1950000000000006","event_type": "nfse.inbound.manifest_failed","occurred_at": "2026-09-21T14:00:05Z","data": {"chave": "35503082406730610001340000000000000000000000000077","tipo": "Rejeicao","codigo": "E0231","motivo": "Evento nao permitido para o tipo de autor"}}
chave* | string | Access key |
tipo* | string | Type of the attempted manifestation |
codigo | string | Failure code |
motivo* | string | Failure reason |
* Required field
The manifestacao block in the detail
Same shape in the detail and in list items; null until manifested.
{"manifestacao": {"status": "Confirmada","codigoEvento": "203202","codigoMotivo": null,"motivo": null,"protocolo": "3550308000000000000000000000000000000000000000000001","data": "2026-09-21T14:00:00-03:00","linkXml": "https://api.v2.tffiscal.com/openapi/files/xml/9102?token=..."}}
status* | string | Manifestation state |
codigoEvento | string | Official event code |
codigoMotivo | string | Rejection reason code |
motivo | string | Reason description |
protocolo | string | Authority protocol |
data | string | Registration time |
linkXml | string | Event message link |
* Required field
The received invoice status stays Autorizada / Cancelada / Substituida; this company manifestation is kept separately in the manifestacao block, and each party manifests only once per invoice. The municipality tacit confirmation 205204 and rejection annulment 205208 arrive through the national distribution and update the block the same way. A São Paulo company can also manifest on national-standard invoices: the manifestation goes through the national issuer, independently of the company own issuing channel.
Pendente ──┬──► Confirmada│├──► Rejeitada ──► RejeicaoAnulada│└──► ConfirmacaoTacita
tipoManifestation type
| Values | Meaning |
|---|---|
| Confirmacao | Confirms the invoice; event 203202 (recipient) or 204203 (intermediary) |
| Rejeicao | Rejects the invoice with a reason code; event 203206 (recipient) or 204207 (intermediary) |
codigoMotivoRejection reason code
Required with tipo=Rejeicao; must not be sent with tipo=Confirmacao.
| Values | Meaning |
|---|---|
| 1 | Duplicate invoice |
| 2 | The recipient already issued the invoice itself |
| 3 | The taxable event did not occur, the service was not provided |
| 4 | Wrong responsible party |
| 5 | Wrong amount or data |
| 9 | Other; explain in motivo |
statusTask status
| Values | Meaning |
|---|---|
| 0 | Pending, waiting to be processed |
| 1 | Processing |
| 2 | Success |
| 3 | Failed |
manifestacao.statusManifestation state
null in the field means not manifested; in the list filter that case is Pendente.
| Values | Meaning |
|---|---|
| Confirmada | Confirmed by this company (203202 / 204203); terminal |
| Rejeitada | Rejected by this company (203206 / 204207); the municipality may still annul it |
| ConfirmacaoTacita | Tacit confirmation by the municipality for lack of manifestation within the deadline (205204); terminal |
| RejeicaoAnulada | The municipality annulled this company rejection (205208); terminal |
manifestacao.codigoEventoManifestation event code
| Values | Meaning |
|---|---|
| 203202 | Confirmation by the recipient |
| 204203 | Confirmation by the intermediary |
| 203206 | Rejection by the recipient |
| 204207 | Rejection by the intermediary |
| 205204 | Tacit confirmation by the municipality |
| 205208 | Rejection annulled by the municipality |
| Code | HTTP | |
|---|---|---|
| 10018001 | 400 | Parameters refused at acceptance: tipo outside Confirmacao / Rejeicao, codigoMotivo missing or outside the enumeration on a rejection, codigoMotivo / motivo sent with a confirmation, or motivo outside 15 to 255 characters. The message states the exact reason. |
| 10018003 | 404 | Document not found: the access key is not among this company received invoices. Check chaveAcesso against empresaId. |
| 10018042 | 400 | The manifestation is not allowed in the current status: the invoice is cancelled or replaced, this company already manifested (confirmed, rejected or tacitly confirmed), or this company is neither the recipient nor the intermediary of the invoice. |
