# Fluxo de captura do pedido de compra nos documentos fiscais

## Endpoints Essenciais 💡

* [**Criar Pedido de Compra**](/invoisys/endpoints/pedidos-e-transporte/pedido-de-compra/criar-pedido-de-compra.md)
* [**Editar Pedido de Compra**](/invoisys/endpoints/pedidos-e-transporte/pedido-de-compra/editar-pedido-de-compra.md)
* [**Consultar Pedido de Compra**](/invoisys/endpoints/pedidos-e-transporte/pedido-de-compra/consultar-pedido-de-compra.md)
* [**Atualizar dados do Pedido de Compra vinculado**](/invoisys/endpoints/pedidos-e-transporte/pedido-de-compra/atualizar-dados-do-pedido-de-compra-vinculado.md)

## Etapas e seus endpoints

Para detalharmos melhor a operação, separamos em tópicos:

### 1) Consultas periódicas dos documentos fiscais

Após o cadastro da empresa no Portal invoiSys e a configuração do certificado digital, ela estará apta a consultar e receber documentos fiscais diretamente em nossa plataforma, incluindo NF-e, CT-e, NFS-e e Faturas.

Ao receber documentos fiscais via webservice, e-mail ou importação de arquivos XML, a invoiSys verifica os delimitadores personalizados definidos para captura dos pedidos de compra da empresa.

Nos tópicos seguintes, explicaremos o funcionamento da captura por delimitadores customizados e, opcionalmente, por meio da tag oficial `xPed` na NF-e, para identificar os pedidos de compra de forma eficiente e precisa.

### 2) Captura por delimitadores customizados

A invoiSys permite a criação flexível de delimitadores personalizados para capturar pedidos de compra dos vários fornecedores de uma empresa. Reconhecemos a dificuldade de padronizar um único delimitador com fornecedores e seus sistemas distintos; por isso, aceitamos as variações necessárias para adaptar-se à operação do contratante.

Com os delimitadores configurados, o sistema consulta as tags de texto dos documentos fiscais para identificar o pedido de compra inserido pelo fornecedor. As tags analisadas são:

* **NF-e - `infCpl`**: Tag de informações complementares, que permite texto livre.
* **CT-e - `xObs`**: Tag de observações, também usada para texto livre.
* **NFS-e - `discriminacao`**: A análise é feita tanto via webservice quanto por OCR, considerando as variações entre municípios.
* **Fatura - Pedido de Compra**: No layout de e-mail aceito, o campo "Pedido de Compra" é explícito. Quando o fornecedor envia outros dados ou delimitadores, o sistema abstrai as informações necessárias.

Por exemplo, ao configurar um delimitador como "PEDIDOZ", caso o fornecedor envie o pedido com essa referência na tag `infCpl` da NF-e, a invoiSys identificará e exibirá o número capturado diretamente no Portal.

<figure><img src="/files/XpsA3oTegnYTYuHKYgOz" alt="XML da NF-e com a informação do pedido de compra"><figcaption><p>XML da NF-e com um pedido de compra informado</p></figcaption></figure>

<figure><img src="/files/BrLDmGhMuofbF8vErgsn" alt=""><figcaption><p>invoiSys capturá o pedido por meio de um delimitador e disponibiliza a informação</p></figcaption></figure>

Após a captura, o sistema buscará automaticamente o Pedido de Compra correspondente na base da invoiSys, caso já tenha enviado o pedido previamente via integração. A explicação detalhada sobre a consulta e vinculação será abordada no [Tópico 4.](#id-4-consultando-o-pedido-de-compra-vinculado-ao-documento-fiscal)

### 3) Captura pela tag xPed da NF-e

Simplificadamente, e seguindo o layout padrão da SEFAZ, a invoiSys pode capturar o pedido de compra na NF-e por meio da tag oficial `xPed`. O conceito é o mesmo descrito anteriormente: caso o pedido seja enviado diretamente nessa tag, ele será capturado e disponibilizado na nossa base.

<figure><img src="/files/WRQhYAw3QGiCRqcPYLtC" alt=""><figcaption><p>Grupo <code>compra</code>, com o pedido de compra informado na tag xPed</p></figcaption></figure>

Na NF-e, é possível configurar uma hierarquia de captura para o pedido de compra, especificando se o sistema deve primeiro buscar o pedido na tag `xPed` ou diretamente pelo delimitador configurado em `infCpl`, ou vice-versa.

### 4) Consultando o Pedido de Compra vinculado ao documento fiscal

Após a captura do pedido de compra no documento fiscal, ele é inserido em uma fila para que o sistema busque o Pedido de Compra correspondente enviado à base da invoiSys via integração. Esse processo ocorre continuamente, independentemente de o Pedido de Compra ser enviado após a recepção do documento fiscal na base da invoiSys. Dessa forma, asseguramos a vinculação correta entre o pedido de compra e o(s) documento(s) fiscal(is) associado(s).

Portanto, caso opte por utilizar a integração para ter o controle integral, após a [criação do Pedido de Compra](/invoisys/endpoints/pedidos-e-transporte/pedido-de-compra/criar-pedido-de-compra.md), basta [consultá-lo](/invoisys/endpoints/pedidos-e-transporte/pedido-de-compra/consultar-pedido-de-compra.md) regularmente para identificar se houve vinculação, como no caso abaixo:

{% tabs %}
{% tab title="Consulta do Pedido de Compra" %}

```csharp
{
  "docData": {
    "numPedidoCompra": "HI32054",
    "dataEmissao": "2024-06-07T14:21:45.034Z",
    "dataVencimento": "0001-01-01T00:00:00Z",
    "codCondPag": "",
    "descrCondPag": "",
    "centroCusto": "",
    "obs": "",
    "valorTotal": 4070.08,
    "fornecedor": {
      "cnpj": "17921427000125",
      "inscricaoEstadual": "",
      "inscricaoMunicipal": "",
      "razaoSocial": "TRANSPORTADORA TESTE",
      "nomeFantasia": "",
      "logradouro": "AVENIDA DEZ",
      "complLogradouro": null,
      "bairro": "",
      "cidade": "FRONTEIRA",
      "uf": "MG",
      "cep": "38230000",
      "pais": null,
      "responsavel": {
        "nome": "",
        "telefone": "",
        "email": "",
        "contato": null
      }
    },
    "contratante": {
      "cnpj": "17921427000125",
      "inscricaoEstadual": "",
      "inscricaoMunicipal": "",
      "razaoSocial": "CONTRATANTE TESTE",
      "nomeFantasia": "",
      "logradouro": "CONTRATANTE TESTE",
      "complLogradouro": null,
      "bairro": "",
      "cidade": "RESENDE",
      "uf": "RJ",
      "cep": "27534010",
      "pais": null,
      "responsavel": {
        "nome": "",
        "telefone": "",
        "email": "",
        "contato": null
      }
    }
  },
  "docStatus": {
    "status": "VD",
    "statusVinculoItem": null
  },
  "docControl": {
    "origem": "",
    "canal": "",
    "documentosVinculados": [
      {
        "obsPag": null,
        "tipoDocOrigem": "nfe",
        "idDocOrigem": "1111111111111",
        "valor": 3226,
        "numero": "421690",
        "statusVinculoItem": null,
        "dataVinculo": "2024-06-12T18:22:31.132Z",
        "dataEmissao": "2024-05-24T17:42:44Z",
        "validacoes": {
          "CnpjEmitente": "0",
          "CnpjDestinatario": "1",
          "Saldo": "0"
        },
        "statusVinculo": "Dados Divergentes",
        "statusCompra": null,
        "dataProcessamento": "0001-01-01T00:00:00Z",
        "dataPagamentoPrevisto": "0001-01-01T00:00:00Z",
        "dataPagamentoRealizado": "0001-01-01T00:00:00Z"
      },
      {
        "obsPag": null,
        "tipoDocOrigem": "nfse",
        "idDocOrigem": "22222222222222222",
        "valor": 1370,
        "numero": "13068",
        "statusVinculoItem": null,
        "dataVinculo": "2024-06-12T18:26:29.951Z",
        "dataEmissao": "2024-01-30T20:30:24Z",
        "validacoes": {
          "CnpjEmitente": "1",
          "CnpjDestinatario": "0",
          "Saldo": "0"
        },
        "statusVinculo": "Dados Divergentes",
        "statusCompra": null,
        "dataProcessamento": "0001-01-01T00:00:00Z",
        "dataPagamentoPrevisto": "0001-01-01T00:00:00Z",
        "dataPagamentoRealizado": "0001-01-01T00:00:00Z"
      }
    ],
    "items": [
      {
        "nItem": "1.000",
        "descricao": "FRETE 12% ICMS",
        "codigo": "61578",
        "gtin": 0,
        "quantidade": 4070.08,
        "unidadeMedida": "UN",
        "precoUnitario": 1,
        "desconto": 0,
        "total": 4070.08,
        "observacao": null
      }
    ]
  }
}
```

{% endtab %}

{% tab title="Lista de documentos vinculados" %}

```csharp
"documentosVinculados": [
      {
        "obsPag": null,
        "tipoDocOrigem": "nfe",
        "idDocOrigem": "1111111111111",
        "valor": 3226,
        "numero": "421690",
        "statusVinculoItem": null,
        "dataVinculo": "2024-06-12T18:22:31.132Z",
        "dataEmissao": "2024-05-24T17:42:44Z",
        "validacoes": {
          "CnpjEmitente": "0",
          "CnpjDestinatario": "1",
          "Saldo": "0"
        },
        "statusVinculo": "Dados Divergentes",
        "statusCompra": null,
        "dataProcessamento": "0001-01-01T00:00:00Z",
        "dataPagamentoPrevisto": "0001-01-01T00:00:00Z",
        "dataPagamentoRealizado": "0001-01-01T00:00:00Z"
      },
      {
        "obsPag": null,
        "tipoDocOrigem": "nfse",
        "idDocOrigem": "22222222222222222",
        "valor": 1370,
        "numero": "13068",
        "statusVinculoItem": null,
        "dataVinculo": "2024-06-12T18:26:29.951Z",
        "dataEmissao": "2024-01-30T20:30:24Z",
        "validacoes": {
          "CnpjEmitente": "1",
          "CnpjDestinatario": "0",
          "Saldo": "0"
        },
        "statusVinculo": "Dados Divergentes",
        "statusCompra": null,
        "dataProcessamento": "0001-01-01T00:00:00Z",
        "dataPagamentoPrevisto": "0001-01-01T00:00:00Z",
        "dataPagamentoRealizado": "0001-01-01T00:00:00Z"
      }
    ],
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://integracao.gitbook.io/invoisys/getting-started/documentos-fiscais/recebimento/captura-de-pedido-de-compra/fluxo-de-captura-do-pedido-de-compra-nos-documentos-fiscais.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
