Pedidos


Através da rota /pedidos, você poderá listar, consultar, criar e atualizar pedidos..

Listando Pedidos

O endereço abaixo pode ser utilizado para listar todos os pedidos com paginação, retornando até 500 pedidos por requisição.

GET


/pedidos
{
  "total": 1,
  "per_page": 500,
  "current_page": 1,
  "last_page": 1,
  "next_page_url": null,
  "prev_page_url": null,
  "from": 1,
  "to": 1,
  "last_page_url": "https://ev.kapsula.com.br/api/v1/pedidos?page=1",
  "first_page_url": "https://ev.kapsula.com.br/api/v1/pedidos?page=1",
  "path": "https://ev.kapsula.com.br/api/v1/pedidos",
  "data": [
    {
      "id": 9127462,
      "referencia_externa": null,
      "qtd_itens": 1,
      "frete": 2000,
      "tipo_frete": "PAC",
      "created_at": "2017-07-29 12:02:49",
      "updated_at": "2017-07-29 12:34:49",
      "status_code_id": 7,
      "status": "Enviado",
      "id_monetizze": "xxxxxxxxxx",
      "codigo_rastreio": "xxxxxxxxxxxxx",
      "motivo_parado_id": null,
      "itens": [
        {
          "id": 3456,
          "quantidade": 1,
          "valor_unitario": 25700,
          "subtotal": 25700,
          "pacote_id": 234,
          "codigo_plataforma": null,
          "descricao": "1 Pote",
          "created_at": "2017-07-29 12:34:49",
          "updated_at": "2017-07-29 12:34:49"
        }
      ],
      "notasFiscais": [],
      "cliente": {
        "id": 32434244,
        "pais": "Brasil",
        "nome": "xxxx xxxxxxxxxx xxxxxxx",
        "sexo": null,
        "cpf": "xxxxxxxxxxx",
        "data_nascimento": null,
        "email": "xxxx@xxxxxx.com",
        "endereco": "xxxx xxxxxx xxx xxxxxx",
        "numero": "xxx",
        "complemento": "apto 401",
        "bairro": "xxxxxxx xxxxxxx",
        "cidade": "Vila Velha",
        "estado": "ES",
        "cep": "xxxxxxxxx",
        "telefone": "xx xxxxxxxxx",
        "celular": "",
        "referencia_externa": null,
        "created_at": "2017-07-29 12:34:49",
        "updated_at": "2017-07-29 12:34:49"
      }
    }
  ]
}


Pedidos por Status

Caso queria obter os pedidos de um determinado status, a requisição deve ser a mesma utilizada ao listar todos os pedidos, apenas acrescente o parâmetro status na requisição GET.

GET

/pedidos?status=x

Observação: O código do status desejado pode ser conferido acessando Possíveis Status dos Pedidos, código e descrição 


Pedidos de um Cliente

Caso queria obter os pedidos de um determinado cliente, a requisição deve ser a mesma utilizada ao listar todos os pedidos, apenas acrescente os parâmetros cpf ou email na requisição GET.

GET

/pedidos?cpf=xxxxxxxxxxx&email=xxxx@xxxxxx.com

Observações: Você pode ordenar o resultado das consultas de acordo com a data de criação dos pedidos, enviando o parâmetro order nas requisições com um dos valores possíveis:

  • asc para ordem crescente.
  • desc para ordenação decrescente.

Por padrão os pedidos retornados estão em ordem crescente.

Obtendo um Pedido

Para obter informações de um determinado pedido, basta realizar uma requisição do tipo GET na rota /pedidos/ID com o ID ou ID Monetizze do pedido.


GET


/pedidos/ID
{
  "code": 200,
  "pedido": {
    "id": 9127462,
    "referencia_externa": null,
    "qnt_itens": 1,
    "frete": 0,
    "tipo_frete": "PAC",
    "created_at": "2017-08-21 16:00:20",
    "updated_at": "2018-07-10 15:42:11",
    "status_code_id": 7,
    "status": "Enviado",
    "id_monetizze": "xxxxxxxxxx",
    "codigo_rastreio": "xxxxxxxxxxxxx",
    "motivo_parado_id": null,
    "transportadora": "CORREIO",
    "data_entrega": null,
    "itens": [
      {
        "id": 3456,
        "quantidade": 1,
        "valor_unitario": 25700,
        "subtotal": 25700,
        "pacote_id": 234,
        "codigo_plataforma": null,
        "descricao": "1 Pote",
        "created_at": "2017-07-29 12:34:49",
        "updated_at": "2017-07-29 12:34:49"
      }
    ],
    "notasFiscais": [],
    "cliente": {
      "id": 32434244,
      "pais": "Brasil",
      "nome": "xxxx xxxxxxxxxx xxxxxxx",
      "sexo": null,
      "cpf": "xxxxxxxxxxx",
      "data_nascimento": null,
      "email": "xxxx@xxxxxx.com",
      "endereco": "xxxx xxxxxx xxx xxxxxx",
      "numero": "xxx",
      "complemento": "apto 401",
      "bairro": "xxxxxxx xxxxxxx",
      "cidade": "Vila Velha",
      "estado": "ES",
      "cep": "xxxxxxxxx",
      "telefone": "xx xxxxxxxxx",
      "celular": "",
      "referencia_externa": null,
      "created_at": "2017-07-29 12:34:49",
      "updated_at": "2017-07-29 12:34:49"
    }
  }
}


Registrando Pedidos

Para criar pedidos, a rota utilizada é /pedidos com o método POST. Abaixo segue um exemplo dos campos e dados a serem enviados.

POST

/pedidos
{
 "cliente_id": 5637321,
 "pacote_id": 2344,
 "tipo_frete": 0,
 "valor_venda": "", // Opcional: em centavos se informado (ex 372.00 * 100 = 37200)
 "notafiscal": {   // Opcional
    "chave" : "3476345634838532753278435934834",
    "numero" : "1111",
    "valor" : "1111",
    "imposto" : "22",
    "link_pdf" : "https://link_do_pdf",
    "link_xml" : "https://link_do_xml" // Opcional
 },
 "referencia_externa" : "", // Opcional, pode ser usado para integração
 "info_extra_notafiscal": {  // Opcional, usado para adicionar informações extras na NotaFiscal
    "descricao": "Referente ao contrato: 0ddf57cb-6d98-4a98-865a-1d3f10032e57", // Informações que irão na parte de descrição da nota fiscal
    "duplicatas": [ // Campo referente as informações de código, data de vencimento e valor das duplicatas
        {
            "codigo": "45678",
            "data_vencimento": "2021-10-10",
            "valor": "2500" // Em centavos se informado (ex 372.00 * 100 = 37200)
        }
    ]
 }
}

Se tudo estiver correto, o retorno será uma mensagem de sucesso com o ID do novo pedido. 


{
  "code": 200,
  "message": "Pedido Criado com Sucesso",
  "pedido": 34254
}

Observações:

  • O tipo de frete pode variar entre os tipos PAC => 0 e SEDEX => 1.
  • Se uma Nota Fiscal for enviada, ela será registrada com status de Autorizada e o pedido será Faturado.
  • Os valores monetários da Nota Fiscal e das Informações extras devem ser informados em centavos (ex.: 11,11 x 100 => 1111 )
  • As propriedades do campo opcional info_extra_notafiscal são informações que a API utilizará para montar os dados extras que serão enviados para o serviço gerador de nota fiscal. Todas as propriedades do campo se tornam obrigatórias se enviadas.

Atualizar Pedidos

Até o presente momento as únicas atualizações que podem ser realizadas sobre o pedido é em relação ao seu status e o item a ser enviado.

Os status permitidos para atualização são: FATURADO => 3, ESTORNADO => 6 e CANCELADO => 9

Para realizar a troca do item, o pedido deve estar na seguinte situação:

  • Não ter Baixa no Estoque
  • Não possuir Nota Fiscal Emitida
  • Estar dentre os status:
CódigoDescrição
1PENDENTE
8PARADO
10FATURAMENTO AGENDADO
11CORREÇÃO
13FALHA FATURAMENTO

Para realizar tal procedimento, envie uma requisição PUT na rota /pedidos/ID conforme o exemplo:

PUT

/pedidos/ID
{
  "status": 3, // Opcional
  "pacote_id": 2353, // Opcional
  "valor_venda": 39400 // Opcional (em centavos), campo considerado somente se pacote_id for informado
}

Observação: Embora todos os campos sejam opcionais, ao menos um deles deve ser informado na requisição

Caso a atualização seja concluída, será retornada uma mensagem e o pedido atualizado.


{
  "code": 200,
  "message": "Pedido entrou na rotina de faturamento",
  "pedidos": {
    "id": 9127462,
    "referencia_externa": null,
    "qnt_itens": 1,
    "frete": 0,
    "tipo_frete": "PAC",
    "created_at": "2017-08-21 16:00:20",
    "updated_at": "2018-07-10 15:42:11",
    "status_code_id": 7,
    "status": "Faturamento Agendado",
    "id_monetizze": "xxxxxxxxxx",
    "codigo_rastreio": "xxxxxxxxxxxxx",
    "motivo_parado_id": null,
    "transportadora": "CORREIO",
    "data_entrega": null,
    "itens": [
      {
        "id": 3456,
        "quantidade": 1,
        "valor_unitario": 25700,
        "subtotal": 25700,
        "pacote_id": 234,
        "codigo_plataforma": null,
        "descricao": "1 Pote",
        "created_at": "2017-07-29 12:34:49",
        "updated_at": "2017-07-29 12:34:49"
      }
    ],
    "notasFiscais": [],
    "cliente": {
      "id": 32434244,
      "pais": "Brasil",
      "nome": "xxxx xxxxxxxxxx xxxxxxx",
      "sexo": null,
      "cpf": "xxxxxxxxxxx",
      "data_nascimento": null,
      "email": "xxxx@xxxxxx.com",
      "endereco": "xxxx xxxxxx xxx xxxxxx",
      "numero": "xxx",
      "complemento": "apto 401",
      "bairro": "xxxxxxx xxxxxxx",
      "cidade": "Vila Velha",
      "estado": "ES",
      "cep": "xxxxxxxxx",
      "telefone": "xx xxxxxxxxx",
      "celular": "",
      "referencia_externa": null,
      "created_at": "2017-07-29 12:34:49",
      "updated_at": "2017-07-29 12:34:49"
    }
  }
}


Em caso de falha, será retornada uma mensagem com infomações a respeito do erro seguindo o padrão: 


{
  "code": "", // algum codigo do padrão http [200, 202, 400, 401]
  "message": "mensagem de erro"
}


Pedidos com Carrinho

É possível fazer o registro de pedidos na forma de carrinho com vários itens. Para isso, utilize o método POST no enpoint /pedidos/shopping-cart enviando os seguintes campos.

Importante: A quantidade máxima de itens alocada por pedido é de 200, sendo assim a cada 200 itens enviados será criado um novo pedido e retornado sua referência.

POST

/pedidos/shopping-cart


{
  "cliente_id": 5637321,
  "tipo_frete": 0, // 0 => PAC; 1 => SEDEX
  "frete_fixo": 0, // 0 => Frete Variável; 1 => Frete Fixo
  "valor_venda": 37200, // Em centavos (372.00 * 100 = 37200)
  "itens": [
    {
      "produto": 1, // código do produto registrado no sistema
      "quantidade": 10 // quantidade total do produto no pedido
    },
    {
      "produto": 2,
      "quantidade": 40
    },
    {
      "produto": 3,
      "quantidade": 50
    }
  ]
}

Observações:

  • A quantidade máxima total de itens no pedido é de 100 unidades.
  • O valor do frete fixo será R$ 30,00. Frete fixo só é possível se e o pacote tiver menos que 2kg e todos os produtos nele tiverem logística descentralizada.

Caso tudo ocorra corretamente o retorno será:

{
  "code": 200,
  "message": "Pedido(s) Registrado(s) com Sucesso!",
  "pedidos": [12321, 12322]
}