Back to top

00K - API v2.0

logo 00K

Primeiros Passos

O primeiro passo para utilização de nossa API é a abertura de um chamado junto ao seu gestor de contas, solicitando o acesso à nossa API e indicando a necessidade de provisionamento de requisições.

A 00K possui capacidade de processamento de informações em alto volume, contudo temos o objetivo de otimizar ao máximo os recursos financeiros de nossos clientes, não somente na operação administrativa com o uso de nossa plataforma gráfica, mas também pelo dimensionamento de recursos e escala de processamento e armazenamento de dados no back end da aplicação.

Diante de tal preocupação, todos os nossos clientes iniciam com um limite de chamadas em nossa API, que é provisionada no momento que o cliente solicita acesso, contudo não é um fator limitante de operação, uma vez que podemos alterar os limites em momentos de alto volume de requisições, onde tal provisionamento tem o objetivo de aumentar a segurança da operação e evitar que possíveis falhas no desenvolvimento de integradores iniciem um loop infinito e prejudiquem outras operações.

Pensando ainda na otimização de recursos, performance e assertividade em nossa operação, trabalhamos de forma bem intensa com notificações.

A grande vantagem de trabalharmos com notificações é o consumo de recurso específico em uma operação, o que nos faz consumir menos para um processamento tornando a infra mais rápida e ágil.

Trabalhamos com dois tipos de notificações, a PASSIVA e a ATIVA:

  • A PASSIVA consiste em recebermos a informação através de notificações executadas pelos sistemas clientes da plataforma;

  • A ATIVA consiste em buscarmos no sistema de nossos clientes uma lista da alterações que ocorreram para consumirmos o recurso.

Esperamos ter esclarecido um pouco da operação de nossa API e nos colocamos a disposição para dirimir quaisquer dúvidas através do email [email protected].

Nossos Agradecimentos,

00K IT Team

Fluxo de dados

Fluxo de Dados

Padrões

Esta sessão lista alguns padrões encontrados na API.

Formato JSON

JSON é um padrão aberto baseado em texto leve projetado para transferencia de dados. Nossa API recebe e retorna JSON por padrão.

Codificação de texto

Todos os recebimentos de dados / respostas são codificados no formato UTF-8.

É necessário que codifique o envio de suas strings para o patrão UTF-8, e esteja preparado para receber os dados e caracteres no mesmo formato.

Formato de Datas

Todas as datas deverão estar no formato ISO 8601. As datas contidas nas respostas da API também estão nesse formato.

URL Base

Todas as chamadas deste modulo devem partir da seguinte URL Base.

http://api.00k.srv.br/

Autenticação

Para acessar a API é necessário passar dois headers, são eles:

Authorization: {String}
Content-Type: application/json;charset=UTF-8

Observação

Cada loja possui sua própria chave de autenticação a ser utilizada no header HTTP Authorization, que deve ser solicitada ao seu gestor de contas na 00K.

Erros

Em estado de erro as respostas da API contém em seu corpo um objeto JSON com a seguinte estrutura:

{
  "code": "2.1",
  "httpCode": 400,
  "type": "Validation Error",
  "description": "Import data is invalid!",
  "errors": [
    {
      "itemIndex": 0,
      "sku": "99jjs8",
      "errors": [
        "Stock is required"
      ]
    }
  ]
}

O exemplo acima é um exemplo de resposta de [POST] /catalog/import/, onde o primeiro produto (itemIndex = 0) da Array enviada identificado pelo sku 99jjs8 não teve seu estoque informado.

A seguinte tabela lista os códigos de erro encontrados presentemente:

"code" "type" Descrição HTTP Status
1.2 Invalid authorization header O header de authenticação informado é inválido 400
1.3 The store is invalid A loja correspondente ao header de autenticação informado não existe 401
2.0 Item not Found Nenhum item atende aos filtros de busca informados 400
2.1 Validation Error Dados informados não passaram por validação 400
3.0 Data consistency error Dados internos apresentam inconsistência 500

Produtos

Produtos

Esta coleção de endpoints manipula Produtos e algumas entidades a ele relacionadas, ex.: Categorias, Marcas, Fabricantes, etc.

Listagem
GET/catalog/products/{type}/{?name,brand,sku,externalId,category_name,category_slug,url,collection_id,collection_name,price_lt,price_lte,price_gt,price_gte,orderBy}

Example URI

GET http://api.00k.srv.br/catalog/products/all/?name=Roda&brand=Marca&sku=SKU&externalId=Id externo do produto&category_name=Nome da Categoria&category_slug=nome-da-categoria&url=url-do-produto&collection_id=Id da coleção&collection_name=Nome da coleção&price_lt=10.1&price_lte=10.1&price_gt=10.1&price_gte=10.1&orderBy=price:desc
URI Parameters
HideShow
type
string (optional) Example: all

Retornar somente determinado tipo de produto

Choices: all simple group kit

name
string (optional) Example: Roda

Contido no nome do produto

brand
string (optional) Example: Marca

Contido no nome da categoria

sku
string (optional) Example: SKU
externalId
string (optional) Example: Id externo do produto
category_name
string (optional) Example: Nome da Categoria
category_slug
string (optional) Example: nome-da-categoria
url
string (optional) Example: url-do-produto
collection_id
integer (optional) Example: Id da coleção
collection_name
string (optional) Example: Nome da coleção
price_lt
number (optional) Example: 10.1

Preço menor que x

price_lte
number (optional) Example: 10.1

Preço menor ou igual a x

price_gt
number (optional) Example: 10.1

Preço maior que x

price_gte
number (optional) Example: 10.1

Preço maio ou igual a x

orderBy
string (optional) Example: price:desc

Ordenação de preço decrescente:

Choices: name price

Request
HideShow
Headers
Authorization: {String}
Content-Type: application/json;charset=UTF-8
Response  200
HideShow
Body
{
  "total": 1,
  "items": [
    {
      "id": 215,
      "sku": "99jjs8",
      "externalId": 12345,
      "type": "simple",
      "info": {
          "name": "Produto Teste - Favor não ofertar",
          "subtitle": "Produto Teste - Não oferte",
          "status": 1,
          "published": 0,
          "archived": 0,
          "updatedAt": "2015-06-02T20:33:02.000Z",
          "createdAt": "2015-06-02T20:33:02.000Z",
          "model": "3KFD9KK48DFK",
          "defaultView": 1,
          "installments": 0,
          "warranty": null,
          "itemFlag": null
      },
      "stock": [{
          "info": {
              "quantity": 15,
              "minimum": 15
          },
          "location": {
              "id": 2,
              "name": "Locality name"
          }
      }],
      "price": [{
          "list": 500,
          "value": 499.99,
          "expireDate": "2015-06-02T20:33:02:0000Z"
      }],
      "dimensions": {
          "height": 45,
          "width": 35,
          "length": 25,
          "weight": 500
      },
      "freight": {
          "free": 1,
          "fixed": 15.00,
          "additional": 45,
          "deadline": 25,
          "freeRange": {
              "start": "04688010",
              "end": "05872130"
          }
      },
      "categories": [{
          "id": 15,
          "name": "Product X Category",
          "description": "Category Description",
          "slug": "product-x-category",
          "metaKeywords": "meta, descriptions, whatever",
          "imageSource": "http://www.brightlinkprep.com/wp-content/uploads/2014/04/sample.jpg",
          "externalId": "450"
      }],
      "brand": {
          "info": {
              "id": 15,
              "name": "Brand Name",
              "imageSource": "http://www.brightlinkprep.com/wp-content/uploads/2014/04/sample.jpg",
              "externalId": "15"
          },
          "manufacturer": {
              "id": 15,
              "name": "Manufacturer Name",
              "imageSource": "http://www.brightlinkprep.com/wp-content/uploads/2014/04/sample.jpg",
              "externalId": "15"
          }
      },
      "descriptions": [{
          "id": 15,
          "title": "Description Title",
          "text": "Description Text"
      }],
      "partner": {
          "id": 15,
          "name": "Partner Name"
      },
      "documents": [{
          "id": 15,
          "title": "Instruction Guide",
          "src": "http://www.urartuuniversity.com/content_images/pdf-sample.pdf"
      }],
      "images": [{
          "source": "http://www.brightlinkprep.com/wp-content/uploads/2014/04/sample.jpg"
      }],
      "seo": {
          "url": "url-do-meu-produto",
          "title": "Title of my product",
          "metaDescription": "meta descriptions, separated by comma"
      },
      "gtins": {
          "mpn": "089776987887",
          "ean": "089776987887",
          "jan": "089776987887",
          "isbn": "089776987887"
      },
      "attributeGroups": [{
          "id": 16,
          "name": "Tamanho",
          "attribute": {
              "id": 25,
              "name": "P",
              "value": "P",
              "type": "width"
          }
      }],
      "related": [{
          "sku": "ASD123",
          "type": "simple"
      }],
      "kits": [{
          "sku": "ASD123",
          "type": "simple"
      }],
      "simple": [{
          "sku": "ASD123",
          "type": "simple"
      }]
  },
  ],
  "next": "http://api.00k.srv.br/catalog/products/all?page=1"
}

Atualização
PUT/catalog/import/{campo}/{id}

Atualiza os dados de determinado produto. O produto pode ser identificado pelo id interno da 00K, pelo sku ou pelo external_id (id externo informado pelo sistema do lojista no momento da criação do produto).

Os campos sku e externalId podem ser incluídos no payload para serem atualizados.

Example URI

PUT http://api.00k.srv.br/catalog/import/id/123
URI Parameters
HideShow
campo
string (required) Example: id

Indica em qual campo a busca pelo único produto deve ser realizado

Choices: id sku external_id

id
string (required) Example: 123

Chave do único produto (ver parametro campo)

Request
HideShow
Headers
Authorization: {String}
Content-Type: application/json;charset=UTF-8
Body
{
    "sku": "99jjs8",
    "externalId": 12345,
    "info": {
        "name": "Produto Teste - Favor não ofertar",
        "subtitle": "Produto Teste - Não oferte",
        "status": 1,
    },
    "price": [{
        "list": 500,
        "value": 499.99
    }],
    "dimensions": {
        "height": 45,
        "width": 35,
        "length": 25,
        "weight": 500
    },
    "categoriesId": 15,
    "brandId": 15
}
Response  200

Importação
POST/catalog/import/{?verify_categories,verify_brands}

A inserção de produtos é feita de maneira off-line, portanto uma resposta bem-sucedida contém o status HTTP 202 Accepted, acompanhado de um objeto contendo um id de processamento que poderá ser utilizado no endpoint em /catalog/products/process/{processId} para recuperar os dados dos produtos criados.

Schema

Este endpoint suporta o recebimento de um único produto ou uma Array com uma série de Produtos na mesma estrutura.

Os dados de entidades relacionadas são criadas juntamente com o Produto informado, porém caso o identificador presente nos dados da entidade relacionada (ex.: categories[].id, brand.externalId, etc.) refira-se a uma entidade já existente em nossa base, o restante dos dados não serão considerados e o Produto será vinculado às entidades existentes.

  • id: integer (optional) - Id interno da 00K, este campo ou sku devem estar presentes

  • sku: string (optional) - SKU do produto, este campo ou id devem estar presentes

  • externalId: string (optional) - Id externo da base do cliente, pode ser utilizado como identificador em outros endpoints para referencia a determinado produto.

  • type: string (required) - Tipo do produto, deve possuir um dos valores abaixo.

    • Members
      • "simple"
      • "group"
      • "kit"
  • info: Object (required) - Dados básicos do produto:

    • name: string (required) - Nome do produto
    • subtitle: string (required) - Descrição básica do produto, máximo de 140 caracteres.
    • status: (integer|string, required) - 1|"ativo" para produto ativo, 0|"inativo" para produto inativo
    • published (integer|string, optional) - 1|"publicado", 0|"não publicado"
    • model: string (required) - Modelo do produto
    • itemFlag: string (optional) - Flag do produto
  • stock: Array (required) - Lista de estoque, possibilidade futura para múltiplos warehouses, no momento é considerado somente o primeiro item.

    • info: Object (required) - Dados básicos do estoque em um warehouse
      • quantity: integer (required) - Quantidade disponível
      • minimum: integer (required) - Quantidade mínima a ser mantida
      • status: integer (optional) - Informa lógica especial para estoque, a inclusão deste campo faz o sistema ignorar os anteriores.
        • Members
          • 0 - Sem Estoque
          • 1 - Venda sem estoque
          • 2 - Pré venda
    • location Object (optional) - Dados de localização para multiplos warehouses, por enquanto ignorado
  • price: Array (required) - Lista de preços, suporte futuro a múltiplos preços, no momento é considerado somente o primeiro item.

    • list: number (required) - Preço de listagem
    • value: number (required) - Preço de venda
  • dimensions: Object (required) - Dimensões do produto

    • height: number (required) - Altura
    • width: number (required) - Largura
    • length: number (required) - Comprimento
    • weight: integer (required) - Peso em gramas
  • freight: Object (optional) - Dados de frete

    • free: integer (optional) - 1 para frete grátis
    • fixed: number (optional) - Valor fixo de frete
    • additional: number (optional) - Valor adicional de frete
    • deadline: integer (optional) - Prazo de entrega em quantidade de dias corridos.
    • freeRange: Object (optional) - Intervalo de CEPs com frete grátis
      • start: string (required) - Início do intervalo de CEPs
      • end: string (required) - Fim do intervalo de CEPs
  • categories: Array (required) - Categorias a serem criadas/vinculadas ao produto

  • images: Array (optional) - Imagens do produto

    • source: String (required) - URL de origem da imagem do produto. Essa URL será acessada por nosso servidor e seu conteúdo baixado.
  • brand: Object (required) - Marca e fabricante do produto

    • info: Object (required) - Dados básicos da marca
      • id: integer (optional) - Id interno da 00K, este campo ou externalId devem estar presentes
      • externalId: string (optional) Id da loja parceira, este campo ou id devem estar presentes
      • name: string (required) - Nome da marca
    • manufacturer: Object (required) - Dados do fabricante
      • id: integer (optional) - Id interno da 00K, este campo ou externalId devem estar presentes
      • externalId: string (optional) Id da loja parceira, este campo ou id devem estar presentes
      • name: string (required) - Nome do fabricante
  • descriptions Array (optional) - Descrições longas do produto, contém o conteúdo a ser exibido nos anúncios, pode incluir conteúdo em HTML

    • title string (required) - Chave da descrição
    • text string (required) - Conteúdo da descrição, texto longo
  • gtins: Object (optional) - Dados de identificadores internacionais

    • mpn: string (optional) - MPN
    • ean: string (optional) - EAN
    • jan: string (optional) - JAN
    • isbn: string (optional) - ISBN
  • seo: Object (optional) - Dados de seo do produto

    • url string (optional) - url do produto
    • title string (optional) - titulo do produto no seo
    • metaDescription string (optional) - meta description do produto

Example URI

POST http://api.00k.srv.br/catalog/import/?verify_categories=false&verify_brands=false
URI Parameters
HideShow
verify_categories
boolean (optional) Example: false

Flag indicando se dados de categoria incluidas no produto devem somente referenciar categorias existentes ou inserir novas categorias.

verify_brands
boolean (optional) Example: false

Flag indicando se dados de marcas incluidas no produto devem somente referenciar marcas existentes ou inserir novas marcas.

Request
HideShow
Headers
Authorization: {String}
Content-Type: application/json;charset=UTF-8
Body
[{
    "id": 215,
    "sku": "99jjs8",
    "externalId": 12345,
    "type": "simple",
    "info": {
        "name": "Produto Teste - Favor não ofertar",
        "subtitle": "Produto Teste - Não oferte",
        "status": 1,
        "published": 0,
        "model": "3KFD9KK48DFK",
        "itemFlag": 'Flag produto'
    },
    "stock": [{
        "info": {
            "quantity": 15,
            "minimum": 15
        },
        "location": {
            "id": 2,
            "name": "Locality name"
        }
    }],
    "price": [{
        "list": 500,
        "value": 499.99,
        "expireDate": "2015-06-02T20:33:02:0000Z"
    }],
    "dimensions": {
        "height": 45,
        "width": 35,
        "length": 25,
        "weight": 500
    },
    "freight": {
        "free": 1,
        "fixed": 15.00,
        "additional": 45,
        "deadline": 25,
        "freeRange": {
            "start": "04688010",
            "end": "05872130"
        }
    },
    "categories": [{
        "id": 15,
        "name": "Product X Category",
        "description": "Category Description",
        "slug": "product-x-category",
        "metaKeywords": "meta, descriptions, whatever",
        "externalId": "450"
    }],
    "images": [{
        "source": "http://www.brightlinkprep.com/wp-content/uploads/2014/04/sample.jpg"
    }],
    "brand": {
        "info": {
            "id": 15,
            "name": "Brand Name",
            "externalId": "15"
        },
        "manufacturer": {
            "id": 15,
            "name": "Manufacturer Name",
            "externalId": "15"
        }
    },
    "descriptions": [{
        "title": "Description Title",
        "text": "Description Text"
    }],
    "gtins": {
        "mpn": "089776987887",
        "ean": "089776987887",
        "jan": "089776987887",
        "isbn": "089776987887"
    },
    "seo": {
      "url": "produto-teste-favor-nao-ofertar",
      "title": "title, separated by comma",
      "metaDescription": "meta description, separated by comma"
    }
}]
Response  202
HideShow
Body
{
  "data": {
    "proccessId": "5f3c27ab-8a4b-4c6b-a8bd-be11847429b1"
  }
}

Remoção
DELETE/catalog/products/{type}/{id}

Example URI

DELETE http://api.00k.srv.br/catalog/products/string/string
URI Parameters
HideShow
type
string (required) Example: string

Tipo do produto a ser apagado. São suportados apenas kit, group e simple

id
string (required) Example: string

Id do produto a ser apagado.

Request
HideShow
Headers
Authorization: `string`
Content-Type: application/json;charset=UTF-8
Response  200
HideShow
Body
{
  "updated": {
    "type": "simple",
    "id": "1558"
  }
}

Atualização

Estoque de único produto

Estoque de único produto
PUT/catalog/products/stock/{campo}/{id}

Example URI

PUT http://api.00k.srv.br/catalog/products/stock/id/123
URI Parameters
HideShow
campo
string (required) Example: id

Indica em qual campo a busca pelo único produto deve ser realizado

Choices: id sku external_id

id
string (required) Example: 123

Chave do único produto (ver parametro campo)

Request
HideShow
Headers
Authorization: `string`
Content-Type: application/json;charset=UTF-8
Body
{
  "info": {
    "quantity": 15,
    "minimum": 15
  },
  "location": {
    "id": 2
  }
}
Response  200

Estoques em batch

Estoques em batch
PUT/catalog/products/stock

Este endpoint atualiza o estoque de vários produtos em uma única requisição.

Para cada produto com seu estoque a ser atualizado no request, deve ser informado um dos três campos a servir como chave:

  • id - Id interno da 00K

  • sku - SKU do produto

  • externalId - Id externo (ID interno de sua loja, caso cadastrado juntamente com a criação do produto)

Example URI

PUT http://api.00k.srv.br/catalog/products/stock
Request
HideShow
Headers
Authorization: `string`
Content-Type: application/json;charset=UTF-8
Body
[
  {
    "id": 215,
    "sku": "99jjs8",
    "externalId": 12345,
    "stock": [
      {
        "info": {
          "quantity": 15,
          "minimum": 15
        }
      }
    ]
  },
  {
    "id": 216,
    "sku": "99jjs8",
    "externalId": 12346,
    "stock": [
      {
        "info": {
          "quantity": 15,
          "minimum": 15
        },
        "location": {
          "id": 2
        }
      }
    ]
  }
]
Response  200

Preços em batch

Preços em batch
PUT/catalog/products/price

Este endpoint atualiza o valor de vários produtos em uma única requisição.

Para cada produto com seu valor a ser atualizado no request, deve ser informado um dos três campos a servir como chave:

  • id - Id interno da 00K

  • sku - SKU do produto

  • externalId - Id externo (ID interno de sua loja, caso cadastrado juntamente com a criação do produto)

Example URI

PUT http://api.00k.srv.br/catalog/products/price
Request
HideShow
Headers
Authorization: `string`
Content-Type: application/json;charset=UTF-8
Body
[
  {
    "id": 215,
    "price": [
      {
        "list": 500,
        "value": 499.99
      }
    ]
  },
  {
    "sku": "99jjs8",
    "price": [
      {
        "list": 500,
        "value": 499.99
      }
    ]
  }
]
Response  200

Processos

Recuperação de resultados de processos de importação de produtos.

Processos

Produtos de um processo
GET/catalog/products/process/{processId}

Example URI

GET http://api.00k.srv.br/catalog/products/process/de305d54-75b4-431b-adb2-eb6b9e546014
URI Parameters
HideShow
processId
string (required) Example: de305d54-75b4-431b-adb2-eb6b9e546014

Id do processo

Request
HideShow
Headers
Authorization: `string`
Content-Type: application/json;charset=UTF-8
Response  200
HideShow
Body
{
  "total": 1,
  "items": [
    {
      "id": 215,
      "sku": "99jjs8",
      "externalId": 12345,
      "type": "simple",
      "info": {
          "name": "Produto Teste - Favor não ofertar",
          "subtitle": "Produto Teste - Não oferte",
          "status": 1,
          "updatedAt": "2015-06-02T20:33:02.000Z",
          "createdAt": "2015-06-02T20:33:02.000Z",
          "model": "3KFD9KK48DFK"
      },
      "stock": [{
          "info": {
              "quantity": 15,
              "minimum": 15
          },
          "location": {
              "id": 2,
              "name": "Locality name"
          }
      }],
      "price": [{
          "list": 500,
          "value": 499.99,
          "expireDate": "2015-06-02T20:33:02:0000Z"
      }],
      "dimensions": {
          "height": 45,
          "width": 35,
          "length": 25,
          "weight": 500
      },
      "freight": {
          "free": 1,
          "fixed": 15.00,
          "additional": 45,
          "deadline": 25,
          "freeRange": {
              "start": "04688010",
              "end": "05872130"
          }
      },
      "categories": [{
          "id": 15,
          "name": "Product X Category",
          "description": "Category Description",
          "slug": "product-x-category",
          "metaKeywords": "meta, descriptions, whatever",
          "imageSource": "http://www.brightlinkprep.com/wp-content/uploads/2014/04/sample.jpg",
          "externalId": "450"
      }],
      "brand": {
          "info": {
              "id": 15,
              "name": "Brand Name",
              "imageSource": "http://www.brightlinkprep.com/wp-content/uploads/2014/04/sample.jpg",
              "externalId": "15"
          },
          "manufacturer": {
              "id": 15,
              "name": "Manufacturer Name",
              "imageSource": "http://www.brightlinkprep.com/wp-content/uploads/2014/04/sample.jpg",
              "externalId": "15"
          }
      },
      "descriptions": [{
          "id": 15,
          "title": "Description Title",
          "text": "Description Text"
      }],
      "partner": {
          "id": 15,
          "name": "Partner Name"
      },
      "documents": [{
          "id": 15,
          "title": "Instruction Guide",
          "src": "http://www.urartuuniversity.com/content_images/pdf-sample.pdf"
      }],
      "images": [{
          "source": "http://www.brightlinkprep.com/wp-content/uploads/2014/04/sample.jpg"
      }],
      "seo": {
          "url": "url-do-meu-produto",
          "title": "Title of my product",
          "metaDescription": "meta descriptions, separated by comma"
      },
      "gtins": {
          "mpn": "089776987887",
          "ean": "089776987887",
          "jan": "089776987887",
          "isbn": "089776987887"
      },
      "attributeGroups": [{
          "id": 16,
          "name": "Tamanho",
          "attribute": {
              "id": 25,
              "name": "P",
              "value": "P",
              "type": "width"
          }
      }],
      "related": [{
          "sku": "ASD123",
          "type": "simple"
      }],
      "kits": [{
          "sku": "ASD123",
          "type": "simple"
      }],
      "simple": [{
          "sku": "ASD123",
          "type": "simple"
      }]
  },
  ],
  "next": "http://api.00k.srv.br/catalog/products/all?page=1"
}

Categorias

Categorias

Listagem
GET/catalog/categories/{id}{?externalid,name}

Example URI

GET http://api.00k.srv.br/catalog/categories/1?externalid=123&name=Categoria
URI Parameters
HideShow
id
string (optional) Example: 1
externalid
string (optional) Example: 123

Id externo (ID interno de sua loja, caso cadastrado juntamente com a criação do produto)

name
string (optional) Example: Categoria

Conteúdo do nome da categoria

Request
HideShow
Headers
Content-Type: `application/json;charset=UTF-8`
Authorization: `{String}`
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "id": 123,
    "name": "Categoria Teste",
    "description": null,
    "parent": null,
    "url": "categoria-teste",
    "keywords": null,
    "externalId": "4321"
  }
]

Importação
POST/catalog/categories

Através do campo parent é possível criar imediatamente uma categoria pai à que está sendo informada, ou vincular numa categoria existente informando somente o id interno da categoria pai ou seu externalId, conforme exemplo em Request.

No momento este endpoint retorna somente os ids para categorias raíses criadas, porém esse retorno garante a criação com sucesso das categorias pais.

Example URI

POST http://api.00k.srv.br/catalog/categories
Request
HideShow
Headers
Content-Type: `application/json;charset=UTF-8`
Authorization: `{String}`
Body
[{
    "name": "Example Category",
    "description": "Category Description",
    "slug": "example-category",
    "metaKeywords": "meta, example",
    "externalId": 123,
    "parent": {
        "name": "Parent Category",
        "description": "Parent example",
        "slug": "example-category",
        "metaKeywords": "meta, example",
        "externalId": 125
    }
}, {
    "name": "Another Category",
    "description": "Category Example",
    "slug": "another-category",
    "metaKeywords": "meta, another, example",
    "externalId": 124,
    "parent": {
        "externalId": 127 // vincular com categoria existente
    }
}]
Response  201
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "id": 53
  },
  {
    "id": 54
  }
]

Marcas

Marcas

Listagem
GET/catalog/brands/{id}{?externalid,name}

Example URI

GET http://api.00k.srv.br/catalog/brands/1?externalid=123&name=Marca
URI Parameters
HideShow
id
string (optional) Example: 1
externalid
string (optional) Example: 123

Id externo (ID interno da marca em sua loja, caso cadastrado juntamente com a criação do produto)

name
string (optional) Example: Marca

Conteúdo do nome da marca

Request
HideShow
Headers
Content-Type: `application/json;charset=UTF-8`
Authorization: `{String}`
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "id": 1,
    "name": "Brand Name",
    "imageSource": "image.jpg",
    "externalId": "15"
  }
]

Importação
POST/catalog/brands

Example URI

POST http://api.00k.srv.br/catalog/brands
Request
HideShow
Headers
Content-Type: `application/json;charset=UTF-8`
Authorization: `{String}`
Body
{
  "info": {
    "name": "Brand Name",
    "externalId": "15"
  },
  "manufacturer": {
    "name": "Manufacturer Name",
    "externalId": "15"
  }
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "id": 1
}

Orders

Listagem

Listagem
GET/orders/{id}{?external_id,marketplace,start,end,page,trans_id,marketplace_id,status,with_pendency,erp_sent,erp_type,with_warnings}

Example URI

GET http://api.00k.srv.br/orders/1?external_id=123&marketplace=mercadolibre&start=2014-05-12&end=2014-05-13&page=1&trans_id=9098909809808&marketplace_id=9098909809808&status=awaiting_payment&with_pendency=true&erp_sent=true&erp_type=abacos&with_warnings=true
URI Parameters
HideShow
id
integer (optional) Example: 1

Id interno da 00k para a Order, busca por uma única Order

external_id
integer (optional) Example: 123

Id externo da Order

marketplace
string (optional) Example: mercadolibre

Nome do marketplace

start
Date (optional) Example: 2014-05-12

Data de início para filtragem

end
Date (optional) Example: 2014-05-13

Data de fim para filtragem. Caso ausente, considera-se a data atual

page
Date (optional) Example: 1

Paginamento do resultado. Cada página retorna um máximo de 30 registros.

trans_id
string (optional) Example: 9098909809808

Id da transação do pedido

marketplace_id
string (optional) Example: 9098909809808

Id do pedido no marketplace

status
string (optional) Example: awaiting_payment

Filtra por status do pedido

Choices: awaiting_payment: Aguardando Pagamento accepted_payment: Pagamento Aceito pick_and_pack: Pick and Pack shipped: Pedido enviado delivered: Pedido entregue

with_pendency
string (optional) Example: true

Filtra por pendencias no pedido

Choices: true false

with_warnings
string (optional) Example: true

Filtra por críticas no pedido

Choices: true false

erp_sent
string (optional) Example: true

Filtra se o pedido já foi enviado a algum erp

Choices: true false

erp_type
string (optional) Example: abacos

Filtra pedidos enviados a determinado erp

Choices: tiny bling informix sony abacos eccosys millenium softvar sap

order_origin
string (optional) Example: mercadolivre

Filtra pedidos por origem

Choices: ecommerce mercadolivre sistema b2w_shoptime b2w_submarino b2w_americanas cnova b2w_sou_barato wallmart cnova_extra cnova_casas_bahia cnova_ponto_frio cnova_cdiscount cnova_barateiro cnova_ehub b2w mercadoshops

Request
HideShow
Headers
Content-Type: `application/json;charset=UTF-8`
Authorization: `{String}`
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "total": 1,
  "items": [
    {
      "order": {
        "statusHistory": [
          {
            "new": {
              "substatus": "delivered",
              "status": "delivery"
            },
            "old": {
              "substatus": null,
              "status": "shipped"
            },
            "date": "2015-07-07T17:44:18.000Z"
          },
          {
            "new": {
              "substatus": null,
              "status": "shipped"
            },
            "old": {
              "substatus": "packaged",
              "status": "pickandpack"
            },
            "date": "2015-06-30T19:37:03.000Z"
          },
          {
            "new": {
              "substatus": "packaged",
              "status": "pickandpack"
            },
            "old": {
              "substatus": "billed",
              "status": "pickandpack"
            },
            "date": "2015-06-30T19:36:52.000Z"
          },
          {
            "new": {
              "substatus": "billed",
              "status": "pickandpack"
            },
            "old": {
              "substatus": "separated",
              "status": "pickandpack"
            },
            "date": "2015-06-30T19:36:49.000Z"
          },
          {
            "new": {
              "substatus": "separated",
              "status": "pickandpack"
            },
            "old": {
              "substatus": "paid",
              "status": "payment"
            },
            "date": "2015-06-27T09:00:04.000Z"
          },
          {
            "new": {
              "substatus": "paid",
              "status": "payment"
            },
            "old": {
              "substatus": "payment",
              "status": "pending"
            },
            "date": "2015-06-27T08:44:13.000Z"
          },
          {
            "new": {
              "substatus": "payment",
              "status": "pending"
            },
            "old": {
              "substatus": null,
              "status": null
            },
            "date": "2015-06-27T08:44:11.000Z"
          }
        ],
        "date": "2015-06-26T18:15:43.000Z",
        "externalId": 123456,
        "id": 123456,
        "marketPlace": "mercado-libre",
        "marketPlaceId": 1234567,
        "origin": 4,
        "status": "delivery",
        "substatus": "delivered",
        "token": "1234567890abcdef",
        "externalIdAlias": "00K12345",
        "total": 289.89,
        "discount": 0
      },
      "freight": {
        "isAR": false,
        "isVD": false,
        "isSigep": 0,
        "tracking": [
          "1123456-3"
        ],
        "name": "PAC sem contrato",
        "value": 0,
        "code": "12345",
        "deadline": 10
      },
      "pending": {
        "document": true,
        "payment": true,
        "token": "1234567890abcdef",
        "email": true,
        "address": false,
        "attribute": true
      },
      "shipping": {
        "shippedDate": null,
        "deliveredDate": "2015-08-19T21:00:19.000Z",
        "origin": 1,
        "handledDate": null,
        "handlingDate": null,
        "estimatedDate": "2015-08-19T21:01:12.000Z",
        "packages": null,
        "realValue": null
      },
      "invoice": {
        "serie": 3,
        "accessKey": "123456789000987654321",
        "number": 123456,
        "date": "2015-08-03T21:51:03.000Z"
      },
      "erp": [
        {
          "errorMessage": null,
          "sent": true,
          "error": false,
          "sentDate": "2015-06-26T18:15:43.000Z",
          "type": "erp"
        }
      ],
      "erpLength": 1,
      "operator": null,
      "customer": {
        "birthdate": "1980-01-01T00:00:00.000Z",
        "cnpj": null,
        "cpf": "1234567890",
        "email": "[email protected]",
        "id": 11680332,
        "ie": null,
        "gender": "male",
        "name": "Cliente da Silva",
        "nicknameML": "ClienteUser",
        "phone": [
          {
            "areaCode": "11",
            "countryCode": "55",
            "numberExtension": null,
            "number": "912345678",
            "type": "home"
          }
        ],
        "rg": null,
        "status": "inactive",
        "type": "individual"
      },
      "address": {
        "adjunct": null,
        "id": 4980,
        "city": "Pindamonhangaba",
        "country": "BR",
        "number": "80",
        "recipient": "Cliente da Silva",
        "region": "Região",
        "state": "SP",
        "street": "Rua Principal",
        "type": "home",
        "zip": "1234567"
      },
      "products": [
        {
          "erpId": null,
          "childsLength": 0,
          "cfop": null,
          "image": "http://a.com/1.jpg",
          "kitId": null,
          "sku": "95483870",
          "productId": "247",
          "groupId": null,
          "stockLocal": null,
          "name": "Produto",
          "value": 123.45,
          "childs": null,
          "quantity": 1,
          "attributes": null,
          "marketPlaceId": "ML123412341"
        }
      ],
      "productsLength": 1,
      "productsTotal": 123.45,
      "interactions": [
        {
          "description": "O operador trocou o status para Pedido entregue",
          "origin": "administration",
          "action": "Alteração de status",
          "date": "2015-07-07T17:44:18.000Z"
        },
        {
          "description": "O operador trocou o status para Pedido enviado e o codigo de rastreamento para 473278-3",
          "origin": "administration",
          "action": "Alteração de status",
          "date": "2015-06-30T19:37:03.000Z"
        },
        {
          "description": "O operador trocou o status para Pick and Pack e o estagio para EMBALADO",
          "origin": "administration",
          "action": "Alteração de estagio",
          "date": "2015-06-30T19:36:52.000Z"
        },
        {
          "description": "O operador trocou o status para Pick and Pack e o estagio para FATURADO",
          "origin": "administration",
          "action": "Alteração de estagio",
          "date": "2015-06-30T19:36:49.000Z"
        }
      ],
      "warnings": null,
      "mercadoLibre": {
        "shipping": {
          "substatus": null,
          "id": "21434399810",
          "dateFirstPrinted": null,
          "shipmentPickupId": null,
          "status": "not_verified",
          "pickingType": null,
          "totalTimesPrinted": null,
          "mode": "me1",
          "value": 33.22
        },
        "questions": null,
        "qualifications": [
          {
            "message": "Ótimo comprador. Esperamos fazer novos negócios.",
            "fromBuyer": false,
            "fulfilled": true,
            "reason": null,
            "createdAt": "2015-07-07T03:40:37.000Z",
            "reply": null,
            "rating": "positive"
          },
          {
            "message": "Ótimo vendedor, encomenda chegou rápido e antes do previsto!\r\nAtendimento para esclarecer dúvidas muito rápido. Resumindo Satisfeitíssimo!",
            "fromBuyer": true,
            "fulfilled": true,
            "reason": null,
            "createdAt": "2015-07-06T19:20:04.000Z",
            "reply": null,
            "rating": "positive"
          }
        ],
        "hasQualificationFromBuyer": true,
        "hasQualificationFromSeller": true
      },
      "payments": [
        {
          "transactionId": "asdflkj",
          "gateway": "mercadopago",
          "paidAt": "2015-06-27T08:43:59.000Z",
          "status": "paid",
          "gatewayTransactionId": "123",
          "origin": 4,
          "marketPlaceFee": null,
          "operator": null,
          "installments": 1,
          "creditCard": null,
          "id": 4938,
          "substatus": null,
          "createdAt": "2015-06-26T18:22:20.000Z",
          "value": 123.45,
          "bank": null,
          "method": "boleto"
        }
      ],
      "paymentsLength": 1,
      "paymentsTotal": 123.45
    }
  ],
  "next": "?page=2",
  "previous": "?page=0"
}

Atualização de Status

Atualização de Status
PUT/orders/{id}/status

Este endpoint destina-se a realizar a atualização de status de uma ou mais Orders.

SCHEMA

  • status: string (required) - Status para atualização da ordem, pode assumir os seguintes valores:

    • Members
      • pickandpack: Pick and Pack (requer substatus)
      • shipped: Pedido enviado
      • delivery: Entrega do Pedido (requer substatus)
      • cancelled: Pagamento Cancelado
  • substatus: string (optional) - Sub-status para atualização da ordem obrigatório quando status for pickandpack ou delivery, pode assumir os seguintes valores:

    • Members
      • pickandpack
        • outofstock: Sem estoque
        • separated: Separado
        • billed: Faturado
        • packaged: Embalado
      • delivery
        • notdelivered: Não entregue
        • delivered: Entregue

Example URI

PUT http://api.00k.srv.br/orders/1/status
URI Parameters
HideShow
id
integer (required) Example: 1

Id interno da 00K para a Order

Request
HideShow
Headers
Content-Type: `application/json;charset=UTF-8`
Authorization: `{String}`
Body
{
  "status": "pickandpack",
  "substatus": "billed"
}
Response  200

Atualização de SRO

Atualização de SRO
PUT/orders/{id}/tracking

Este endpoint destina-se a realizar a atualização de dados de SRO (Serviço de Rastreamento de Objeto). OBS: Apenas um dos campos é obrigatório

SCHEMA

  • trackings: Array (required) - identificadores SRO

Example URI

PUT http://api.00k.srv.br/orders/1/tracking
URI Parameters
HideShow
id
integer (required) Example: 1

Id interno da 00K para a Order

Request
HideShow
Headers
Content-Type: `application/json;charset=UTF-8`
Authorization: `{String}`
Body
{
  "trackings": [
    "XY123456789BR"
  ]
}
Response  200

Inserir nota fiscal

Inserir nota fiscal
PUT/orders/{id}/invoice

SCHEMA

  • serie: 1 string (required) - Indica o numero da serie da nota fiscal

  • acessKey: 36950810406261000129550020000349261000102001 string (required) - Indica a chave de acesso a esta nota fiscal

  • number: 34396 string (required) - Indica o número da nota fiscal a ser inserida

  • date: 2015-08-21T03:00:00.000Z date (required) - Indica a data da nota fiscal

  • value: 50.99 float (required) - Indica o valor total da nota

  • products: Array (required) - Lista de estoque, possibilidade futura para múltiplos warehouses, no momento é considerado somente o primeiro item.

      • type: string (required) - Tipo do produto. São suportados apenas kit e simple
      • sku: string (required) - Sku do produto a ser inserido seu devido CFOP
      • cfop: integer (required) - Informa o devido CFOP para o produto

Example URI

PUT http://api.00k.srv.br/orders/1/invoice
URI Parameters
HideShow
id
integer (required) Example: 1

Identificador da Ordem na 00K

Request
HideShow
Headers
Content-Type: `application/json;charset=UTF-8`
Authorization: `{String}`
Body
{
    "serie": 1,
    "accessKey": "35150810406561000149550010000349861000108001",
    "number": 34986,
    "date": "2015-08-21T03:00:00.000Z",
    "value": 20.58,
    "products": [
        {
            "type": 'kit',
            "sku": "2647",
            "cfop": 6108
        }
    ]
}
Response  204

Generated by aglio on 16 Dec 2015