InvoiCy OCR Internacional
O InvoiCy OCR Internacional é uma solução de inteligência artificial desenvolvida para empresas que precisam processar, traduzir e extrair dados estruturados de faturas e documentos fiscais emitidos em qualquer país ou idioma.
Ao receber um arquivo (PDF ou imagem) contendo uma fatura internacional, o produto aplica tecnologia OCR combinada a modelos de linguagem avançados para interpretar o conteúdo do documento e devolver um JSON estruturado com todos os dados principais da nota — independentemente do idioma original, do formato visual ou do país de origem.
O resultado é a eliminação de retrabalho manual na conferência e digitação de dados de importação, acelerando o processo de registro e conciliação de documentos internacionais nos sistemas de gestão do cliente.
Casos de Uso
O InvoiCy OCR Internacional é especialmente indicado para empresas que:
- Importam produtos ou serviços e recebem faturas em idiomas estrangeiros (japonês, árabe, alemão, mandarim, entre outros) que precisam ser registradas em sistemas locais.
- Operam em múltiplos países e necessitam padronizar o formato de faturas de diferentes origens em um único schema de dados.
- Automatizam processos de contas a pagar e precisam eliminar a digitação manual de dados de notas recebidas.
- Realizam auditorias fiscais e precisam de rastreabilidade e extração confiável de informações de documentos internacionais.
Exemplo prático: Uma empresa no Uruguai recebe regularmente faturas de fornecedores japoneses, escritas em japonês. Com o InvoiCy OCR Internacional, ela envia o arquivo da fatura para a API e recebe de volta um JSON estruturado com todos os dados — número da nota, valor, itens, datas, dados do emissor e do destinatário — traduzidos e organizados, prontos para importação no seu sistema de gestão.
Como Funciona
O fluxo de processamento do InvoiCy OCR Internacional segue quatro etapas principais:
1. Registro da empresa
Antes de enviar documentos para processamento, é necessário registrar a empresa importadora na plataforma InvoiCy OCR. Este registro retorna um identificador único (EmpAK) que será utilizado em todas as requisições subsequentes.
2. Envio do documento Com a empresa registrada, o cliente envia o arquivo da fatura (em Base64) para o endpoint de importação de documentos. É possível escolher o processador de IA mais adequado para o tipo de documento.
3. Processamento assíncrono
A API processa o documento em background, aplicando OCR e modelos de linguagem para interpretar, traduzir e estruturar as informações contidas na fatura. A resposta imediata do envio é um protocolo de rastreamento.
4. Consulta do resultado
Utilizando o protocolo recebido, o cliente consulta a API para obter o JSON estruturado com todos os dados extraídos do documento.
Pré-requisitos
O InvoiCy OCR Internacional é um produto de acesso controlado. Para utilizar a solução, é obrigatório que o modelo comercial e a negociação estejam previamente formalizados com a equipe da Migrate. Após a contratação, a equipe comercial fornecerá as credenciais e as chaves de autenticação necessárias para o acesso à API. Para iniciar uma negociação, entre em contato com o time comercial da Migrate.
Requisitos técnicos:
- Credenciais de acesso fornecidas após a negociação comercial.
- Capacidade de realizar chamadas HTTP REST na sua aplicação.
- Capacidade de converter arquivos (PDF ou imagens) para o formato Base64.
- A integração técnica é de responsabilidade do cliente, que conectará diretamente com a API do produto
Ambientes Disponíveis
O produto dispõe de dois ambientes distintos para integração. Recomendamos o uso extensivo do ambiente de homologação antes de habilitar as operações em produção.
Homologação
Ambiente destinado a testes e validações técnicas. As requisições realizadas neste endpoint não afetam dados reais ou oficiais.
- URL Base:
https://apibrhomolog.invoicy.com.br/ocrdocuments/api/v1/
Produção
Ambiente oficial para operações reais. Este endpoint deve ser utilizado apenas após a conclusão e validação de todos os testes no ambiente anterior.
- URL Base:
https://apibr.invoicy.com.br/ocrdocuments/api/v1/
A URL base (BASE_URL) deve ser substituída pela URL correspondente ao ambiente desejado. Por exemplo:
https://apibr.invoicy.com.br/ocrdocuments/api/v1/Company
Autenticação
Todas as requisições à API do InvoiCy OCR Internacional utilizam um mecanismo de autenticação baseado em hash MD5, enviado via header.
Geração do hash no registro de empresa
Para o registro de empresa, o hash MD5 é gerado a partir da concatenação da chave do parceiro com o JSON do corpo da requisição:
MD5(chave_do_parceiro + json_do_corpo)
Geração do hash nas demais requisições
Para as requisições de importação e consulta de documentos, o hash MD5 é gerado a partir da concatenação do EmpAK (retornado no registro de empresa) com um timestamp Unix em UTC:
MD5(empAK + timestamp_unix_utc)
Exemplo de string antes da geração: x99Xxxxxx+XX9/xxXXxX9xXXXXXx+9xx1740080360
Importante: O hash MD5 possui validade de 5 minutos a partir da sua geração. Requisições enviadas com hash expirado serão rejeitadas com o código de erro 403 Forbidden.
Headers obrigatórios
Todas as requisições devem incluir os seguintes headers:
X-Client-MD5-Hash: [MD5 gerado]
Content-Type: application/json; api-version=1.0
Guia de Integração
Esta seção descreve o passo a passo para integrar com o InvoiCy OCR Internacional.
Passo 1 — Consulta de Países (opcional)
Antes de registrar uma empresa, pode ser necessário obter o countryId correspondente ao país de operação. Utilize o endpoint de consulta de países passando o nome do país.
Exemplo: GET BASE_URL/Country?Nome=Uruguai
O campo id retornado na resposta deve ser utilizado no campo countryId do cadastro da empresa.
Passo 2 — Registro da Empresa
Realize o registro da empresa na plataforma InvoiCy OCR. Este passo é feito uma única vez por empresa.
- Gere o hash MD5 conforme descrito na seção de autenticação.
- Envie a requisição
POSTparaBASE_URL/Companycom o JSON de cadastro. - Armazene com segurança o
EmpAKretornado. Ele será utilizado em todas as requisições futuras.
Exemplo de estrutura JSON para registro de empresa:
{
"name": "Nome da Empresa S.A.",
"cnpj": "00.000.000/0001-00",
"partnerId": "{{ partnerId }}",
"email": "contato@empresa.com.br",
"phone": "(11) 3333-4444",
"address": {
"street": "Rua Exemplo",
"number": "100",
"city": "São Paulo",
"state": "SP",
"zipCode": "01310-100",
"countryId": "{{ countryId }}"
}
}
Passo 3 — Importação do Documento
Com a empresa registrada, envie o arquivo da fatura para processamento.
- Converta o arquivo (PDF ou imagem) para Base64.
- Gere o hash MD5 utilizando o
EmpAKe o timestamp Unix atual. - Envie a requisição
POSTparaBASE_URL/DocumentHandler/AddDocument. - Armazene o
protocoloretornado na resposta.
Importante: A data e hora retornadas na resposta são fornecidas em formato UTC.
Exemplo de estrutura JSON para envio de documento:
{
"companyId": 1,
"fileBase64": "Base64_Document",
"mimeType": "application/pdf",
"processor": 8,
"targetLanguage": "pt-BR"
}
Passo 4 — Consulta do Resultado
Utilize o protocolo obtido no passo anterior para consultar o resultado do processamento.
- Envie a requisição
GETparaBASE_URL/DocumentHandler/SearchDocument?companyId={id}&protocol={protocolo}. - O retorno será o JSON estruturado com todos os dados extraídos da fatura.
Referência de Endpoints
Para exemplos interativos, payloads completos e testes, acesse a documentação completa no Postman.
Consulta de Países
Retorna o identificador (id) de um país pelo nome. O valor retornado é utilizado no campo countryId durante o registro da empresa. O nome do país deve ser informado como parâmetro ao final da URL.
GET BASE_URL/Country?Nome={nome_do_pais}
Registro de Empresa
Registra uma empresa na plataforma InvoiCy OCR, habilitando-a para processar documentos. O retorno contém o EmpAK, que deve ser armazenado de forma segura pelo cliente e utilizado em todas as requisições posteriores.
POST BASE_URL/Company
Importação de Documento
Recebe o arquivo de fatura em formato Base64 e inicia o processamento via OCR e IA. O retorno contém um protocolo para rastreamento do processamento assíncrono.
POST BASE_URL/DocumentHandler/AddDocument
Campos do corpo da requisição:
| Campo | Tipo | Descrição |
|---|---|---|
companyid |
string | ID da empresa retornado no registro. |
fileBase64 |
string | Conteúdo do arquivo em Base64 (PDF ou imagem). |
mimeType |
string | Tipo MIME do arquivo enviado. Ver formatos suportados. |
processor |
integer | Identificador do processador de IA. Ver processadores disponíveis. |
Consulta de Documento
Consulta o resultado do processamento de um documento previamente importado. Retorna o JSON estruturado com todos os dados extraídos da fatura.
GET BASE_URL/DocumentHandler/SearchDocument?companyId={id}&protocol={protocolo}
Parâmetros de consulta:
| Parâmetro | Descrição |
|---|---|
companyId |
ID da empresa retornado no registro. |
protocol |
Protocolo retornado no momento da importação do documento. |
Estrutura de Retorno: Detalhamento dos Campos
O JSON de retorno da consulta de documento contém os seguintes campos:
Dados do Emissor
| ID | Campo | Descrição | Tipo | Tam. Máx. |
|---|---|---|---|---|
| A01 | documentType |
Tipo de documento. | int | — |
| A02 | issuerDocument |
Número do documento fiscal do emissor. | string | 50 |
| A03 | nameFantasy |
Nome fantasia da empresa emissora. | string | 100 |
| A04 | corporateName |
Razão social da empresa emissora. | string | 150 |
| A05 | address |
Endereço da empresa emissora. | string | 200 |
| A06 | postalCode |
Código postal do endereço da emissora. | string | 20 |
| A07 | city |
Cidade da empresa emissora. | string | 100 |
| A08 | state |
Estado/Província da empresa emissora. | string | 50 |
| A09 | country |
País da empresa emissora. | string | 50 |
| A36 | taxID |
Identificação fiscal do emissor (ex: RUT, CNPJ, CPF). | string | 50 |
Dados da Fatura
| ID | Campo | Descrição | Tipo | Tam. Máx. |
|---|---|---|---|---|
| A10 | invoiceNumber |
Número da fatura. | string | 50 |
| A11 | invoiceSeries |
Série da fatura. | string | 20 |
| A12 | purchaseOrder |
Número da ordem de compra (OC). | string | — |
| A13 | documentLetter |
Letra do documento. | string | — |
| A14 | issueDate |
Data de emissão da fatura. | DateTime | — |
| A15 | dueDate |
Data de vencimento da fatura. | DateTime | — |
| A16 | caeDueDate |
Data de vencimento do CAE. | DateTime | — |
| A17 | inclusionDate |
Data e hora de inclusão do documento no sistema. | DateTime | — |
| A23 | caeNumber |
Número do CAE. | string | — |
| A34 | referenceNumber |
Número de referência adicional. | string | 50 |
Valores e Condições Comerciais
| ID | Campo | Descrição | Tipo | Tam. Máx. |
|---|---|---|---|---|
| A18 | netAmount |
Subtotal (valor líquido). | decimal | — |
| A19 | totalAmount |
Valor total da fatura. | decimal | — |
| A20 | ivaPercentage |
Percentual de IVA/imposto. | decimal | — |
| A21 | exchangeRate |
Taxa de câmbio. | decimal | — |
| A24 | currency |
Moeda da fatura. | string | 10 |
| A25 | paymentMethod |
Método de pagamento. | string | 50 |
| A26 | taxCondition |
Condição frente ao IVA. | string | — |
| A35 | paymentDetails |
Detalhes sobre o pagamento da fatura. | string | 200 |
| A58 | incoterm |
Incoterm aplicável à transação. | string | 20 |
| A22 | observation |
Observações adicionais sobre a fatura. | string | 500 |
Dados do Destinatário
| ID | Campo | Descrição | Tipo | Tam. Máx. |
|---|---|---|---|---|
| A27 | clientName |
Nome do cliente destinatário. | string | 100 |
| A28 | clientAddress |
Endereço do cliente destinatário. | string | 200 |
| A29 | clientPostalCode |
Código postal do cliente. | string | 20 |
| A30 | clientCity |
Cidade do cliente. | string | 100 |
| A31 | clientState |
Estado/Província do cliente. | string | 50 |
| A32 | clientCountry |
País do cliente. | string | 50 |
| A33 | clientDocumentNumber |
Número do documento do cliente (ex: RUT, CPF, CNPJ). | string | 50 |
| A58 | unit |
Unidade do cliente identificada na fatura (ex: loja, unidade locada ou unidade faturável). | string | 100 |
Itens da Fatura (lista — campo items)
| ID | Campo | Descrição | Tipo | Tam. Máx. |
|---|---|---|---|---|
| A38 | itemCode |
Código do artigo na fatura. | string | 50 |
| A39 | quantity |
Quantidade do artigo. | decimal | - |
| A40 | dispatchDate |
Data de despacho do artigo. | DateTime | - |
| A41 | unitOfMeasure |
Unidade de medida (ex: KG). | string | 20 |
| A42 | iclPricePerLiter |
ICL por litro. | decimal | - |
| A43 | unitPrice |
Preço unitário do artigo. | decimal | - |
| A44 | itemDiscount |
Desconto aplicado ao artigo. | decimal | - |
| A45 | itemDiscountPercentage |
Percentual de desconto aplicado. | decimal | - |
| A46 | totalPrice |
Preço total do artigo após descontos. | decimal | - |
| A47 | itemName |
Nome/descrição do artigo. | string | 100 |
| A48 | eanOrDun |
Código EAN ou código de barras. | string | 50 |
| A49 | referenceNumberItem |
Número de referência do artigo. | string | 50 |
| A50 | origin |
Origem do artigo. | string | 50 |
| A51 | ncmOrHts |
Código NCM (mercadoria) ou HTS (tarifa aduaneira). | string | 50 |
| A52 | stockID |
Identificação do estoque do artigo. | string | 50 |
| A53 | packingUnit |
Unidade de embalagem. | string | 20 |
| A54 | packingQuantity |
Quantidade de artigos por embalagem. | decimal | - |
Encargos Adicionais (lista — campo additionalCharges)
| ID | Campo | Descrição | Tipo | Tam. Máx. |
|---|---|---|---|---|
| A56 | additionalChargeDescription |
Descrição do encargo adicional. | string | 200 |
| A57 | additionalChargeValue |
Valor do encargo adicional. | decimal | - |
Formatos de Arquivo Suportados
O campo mimeType da requisição de importação aceita os seguintes valores:
| Valor | Formato |
|---|---|
application/pdf |
Documento PDF |
image/png |
Imagem PNG |
image/jpeg |
Imagem JPEG |
image/jpg |
Imagem JPG |
image/bmp |
Imagem BMP |
image/pjpeg |
Imagem PJPEG |
image/x-png |
Imagem X-PNG |
Processadores Disponíveis
O campo processor define qual motor de inteligência artificial será utilizado no processamento do documento. A escolha do processador pode impactar a precisão e o tempo de processamento.
| Valor | Processador |
|---|---|
1 |
DocumentAI |
6 |
Gemini 3.0 Flash |
8 |
Gemini 3.1 Pro Preview |
9 |
DocumentAI + Gemini 3.0 Flash |
11 |
DocumentAI + Gemini 3.1 Pro Preview |
12 |
Gemini 3.5 Flash |
13 |
Gemini 3.1 Flash Lite |
14 |
DocumentAI + Gemini 3.5 Flash |
15 |
DocumentAI + Gemini 3.1 Flash Lite |
16 |
Gemini 3.8 Flash |
17 |
Gemini 3.5 Flash Lite |
18 |
DocumentAI + Gemini 3.8 Flash |
19 |
DocumentAI + Gemini 3.5 Flash Lite |
Boas Práticas e Limitações
- Um documento por arquivo: Não é recomendado importar mais de uma fatura em um mesmo arquivo PDF. Documentos com múltiplas faturas podem reduzir a precisão do processamento.
- Qualidade do arquivo: Documentos com boa resolução e contraste tendem a gerar resultados mais precisos na extração de dados.
- Validade do hash: O hash MD5 de autenticação expira em 5 minutos. Certifique-se de gerar um novo hash a cada requisição.
- Processamento assíncrono: O processamento dos documentos não é instantâneo. Implemente uma lógica de polling (consultas periódicas) para verificar o resultado da extração.
- Armazenamento do EmpAK: O
EmpAKretornado no registro de empresa deve ser armazenado de forma persistente e segura, pois é necessário para todas as operações subsequentes.