Nossas APIs foram desenvolvidas no protocolo de comunicação SOAP e toda solicitação deve ser realizada pelo método POST.

Os serviços disponíveis estão organizados por módulos como segue:

Geral – Cadastro comuns para todos os módulos;

CRM – Contas + Contatos + Oportunidades para fechar mais negócios e vender mais;

Finanças – Extrato multi-contas + Contas a Receber + Contas a Pagar + Fluxo de Caixa;

Compras, Estoque e Produção – Gerencie suas compras, estoque e ordens de produção;

Vendas e NF-e – Processo de Venda e Faturamento, emissão de NF-e, Cupons Fiscais, etc;

Serviços e NFS-e – Processo de emissão de Ordens de Serviço, Contratos e NFS-e;

Painel do Contador – Consulta de documentos fiscais.

Para cada módulo, há uma lista de serviços disponíveis:

Por exemplo, para acessar a API de clientes, deve-se utilizar a URL “https://app.omie.com.br/api/v1/” seguida do módulo “Geral” e depois pelo “Serviço”, como segue:

https://app.omie.com.br/api/v1/geral/clientes/

SOAP - Para realizar um consumo pelo protocolo de comunicação SOAP você precisará indicar / verificar as seguintes informações:

Content-Type: text/xml;charset=UTF-8

 

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:wsdl="http://app.omie.com.br/api/v1/geral/clientes/?WSDL" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">

  <soapenv:Header>

    <app_key>999999999999</app_key>

    <app_secret>a1b2c3d4e5a1b2c3d4e5a1b2c3d4e5a1b2c3d4e5</app_secret>

  </soapenv:Header>

   <soapenv:Body>

      ... (Body da requisição em formato XML)

   </soapenv:Body>

</soapenv:Envelope>

RESTFUL - Existe a possibilidade de fazer um consumo pelo protocolo de comunicação RESTFUL?

  • Não, mas estamos trabalhando numa nova plataforma que utilizará a protocolo REST e documentação Swagger.

JSON - Existe a possibilidade de enviar um JSON ao invés de XML?

  • Sim, para isso você deve observar o seguinte formato:

Content-type: application/json

{

    "app_key": "999999999999",

    "app_secret": "a1b2c3d4e5a1b2c3d4e5a1b2c3d4e5a1b2c3d4e5",

    "call": "ListarClientes",

    "param": [

        {

            ... (Body da requisição em formato JSON)

        }

    ]

}

CORS policy 1 – Como corrigir o seguinte erro:

Access to XMLHttpRequest at ‘https://app.omie.com.br/api/v1/geral/clientes/’ from origin ‘https://www.seusite.com.br’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

Neste caso, há uma tentativa de realizar o consumo diretamente pelo navegador, o que expõe as credenciais do usuário. A solução é criar uma API e consumi-la a partir do server.

CORS policy 2 – Como corrigir o seguinte erro:

Access to fetch at 'https://app.omie.com.br/api/v1/geral/clientes/' from origin 'https://localhost:8082/' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Neste caso, há uma tentativa de realizar o consumo pelo localhost, o que não é permitido. A solução é alterar o local de origem para um IP público e tentar novamente.

Rate limit – Estamos estudando alguns modelos para aplicar um rate limit em nossas APIs e assim, garantir maior disponibilidade e performance. Até essa definição, recomendamos, por boa prática, observar as seguintes situações:

Assim, no momento, por boa prática, recomendamos verificar as seguintes condições:

- Limite de até 120 requisições por minuto.

- Limite de até 4 requisições simultâneas por segundo para consultas.

- Sem suporte de requisições simultâneas para inclusão/alteração de dados.

- Requisições redundantes liberadas a cada 60 segundos (*). 

 

(*) - É permitido consultar tantos registros diferentes quantos forem necessários. No entanto: Se tentar consultar o mesmo id 2 ou mais vezes seguidas, em até 60 segundos, apenas a primeira requisição retornará os dados. As demais retornarão uma mensagem indicando que aquela solicitação já foi realizada anteriormente. Passados os 60 segundos, a consulta será liberada novamente. A Implementação de um cache do lado da aplicação integrada evita que essa situação ocorra.

C# - Valores não são enviados para o Omie:

Consumo via GET – Indisponível. Requisições com GET não são seguras, pois expõe os seus dados tornando sua aplicação vulnerável a ataques ou mesmo sequestro de dados. Caso você execute, a consulta abaixo diretamente pelo seu navegador, receberá a seguinte mensagem:

 

Requisição:

https://app.omie.com.br/api/v1/servicos/os/?JSON={"call":"ListarOS","app_key":" 38333295000","app_secret":" 4cea520a0e2a2ecdc267b75d3424a0ed","param":[{"pagina":1,"registros_por_pagina":50,"apenas_importado_api":"N"}]}

Resposta:

{"status":"400","message":"Consumo indevido [GET]. Consulte nosso time de suporte através do chat disponível em nosso site."}

Solução: Altere o método de consumo para POST e envie os dados no BODY da sua requisição.

Encontrou sua resposta?