Visão Geral

Introdução

Esta documentação apresenta a API da plataforma e permite a interação entre a plataforma e sistemas externos.
 
Informações adicionais

Para utilizar a API, necessita-se de um TOKEN.
O mesmo é gerado dentro da plataforma, em: Configurações >> API Integração
É importante salientar que esta opção não está disponível para todos os planos.
Além disso, por questões de segurança, somente serão aceitas requisições através de HTTPS.

URL base para trabalhar com a API da plataforma segue as seguintes características:

Exemplo de URL, você pode ver a url disponível em: Configurações >> API Integração
https://xxxxxxxxx/api/v1/

Limite de requisições

A API possui um limite de 10 (dez) requisições por minuto;

Padrão de requisições (request) e respostas (response)

Ao fazer uma operação GET/POST, o Content-Type da requisição deve seguir sempre o formato application/xml, e com o conteúdo no formato XML, caso a requisição não esteja nesse formato um erro será retornado.
 
Tipos de Retorno 

A API do UniversoCommerce permite dois tipos de retorno: XML e JSON
Por padrão, o retorno será em XML. Caso queira em JSON, apenas especifique isto no final da sua URL de chamada.
 
Tipo de retorno em XML
https://xxxxxxxxx/api/v1/pedidos

Tipo de retorno em JSON
https://xxxxxxxxx/api/v1/pedidos?json=true
 
Paginação

Todas as requisições GET são limitadas por página com no máximo 100 registros cada e seu retorno sempre é informado valores com o status do recurso, o total de registros, total de páginas e a página atual. Isso é feito para facilitar o processo de paginação dos dados.
 
Exemplo de retorno dos registros com os dados para paginação:
<Produtos xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <retorno>
    <Produto>

    </Produto>
  </retorno>
  <status_api>OK</status_api>
  <total_registros>98</total_registros>
  <total_paginas>1</total_paginas>
  <pagina_atual>1</pagina_atual>
</Produtos>
 
Autenticação

Para consumir os recursos da API, é necessário utilizar o método Basic Auth do HTTP, onde é necessário o envio do TOKEN gerado pela plataforma.
 
Exemplo em PHP utilizando cURL, consumindo um recurso da API utilizando o método Basic Auth do HTTP:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://xxxxxx/api/v1/pedidos");
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "87a0-4se9-bt1a-6c1d9fe4ce2e");
$result = curl_exec ($ch);
curl_close ($ch);

Exemplo em C# utilizando HttpWebRequest, consumindo um recurso da API utilizando o método Basic Auth do HTTP:
private string ConectAPI(string postxml)
{
 try
 {
   HttpWebRequest wq = (HttpWebRequest)WebRequest.Create("https://xxxxxx/api/v1/pedidos");
   wq.ContentType = "application/xml";
   string auth = Convert.ToBase64String(Encoding.UTF8.GetBytes("87a0-4se9-bt1a-6c1d9fe4ce2e"));
   wq.Headers[HttpRequestHeader.Authorization] = "Basic " + auth;
   if (postxml.Length > 0)
   {
       byte[] data = Encoding.UTF8.GetBytes(postxml);
       wq.ContentLength = data.Length;
       Stream POSTstream = wq.GetRequestStream();
       POSTstream.Write(data, 0, data.Length);
   }
   HttpWebResponse wp = (HttpWebResponse)wq.GetResponse();
   StreamReader rd = new StreamReader(wp.GetResponseStream(), Encoding.UTF8);
   return rd.ReadToEnd().ToString();
 }
 catch (Exception ex) { return ex.Message; }
}

Em caso de erro na autenticação (Basic Auth), será apresentada a estrutura a seguir.
<Retorno xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <erros>
    <codigo>11</codigo>
    <msg>API token invalido.</msg>
  </erros>
  <status>Erro</status>
</Retorno>

Respostas de sucesso/erro

CódigoMensagem
10IP não liberado para acesso API.
11API TOKEN inválido.
12Os dados de autenticação a API devem ser informados usando a autenticação Auth Basic.
13(XML INVALIDO) - Verifique os campos obrigatórios e sua formatação. Api aceita no máximo 20 produtos por alteração.
14O campo enviado não é numérico.
15O campo enviado não é válido.
16O campo enviado ultrapassa o limite de ({valor}) caracteres.
17O campo enviado não é válido.
18O campo enviado não é válido, use o formato DDMMYYYY-DDMMYYYY.
20Ocorreu um erro ao atualizar os campos, verifique o formato dos campos.
21O campo 'id_sku' não foi encontrado.
401Basic Authorization Requerida.
405Método não permitido. Métodos aceitos GET/POST
411Envio do XML Obrigatório.
500Verifique se o ContentType está no formato ( application/xml ) e o xml está sendo envido com os campos obrigatórios.
501SSL Requerido.
502API Indisponível.