Documentação Carrinho de Compras Provedor - Manual API Checkout

Esse documento explica com exemplos de uso de nossa API REST a criação e finalização de carrinho de compras.

Requisições POST devem ter o header Content-Type com o valor application/vnd.api+jsonpara evitar erros na criação de itens

  • Pré-checagem

    • Pegar informações de um endereço pelo CEP

    • Checagem inicial de cobertura na cidade do cliente

    • Checagem financeira

  • KMZ

    • Pegar coordenadas de um endereço

    • Pegar endereço pelas coordenadas

    • Verificar cobertura de um endereço

  • Checkout

    • Pegar ID do Revendedor

    • Salvar endereço do cliente

    • Criação de carrinho

    • Pegar contratos disponíveis

    • Pegar os planos disponíveis

    • Adição de produto no carrinho

    • Pegar os adicionais de um produto

    • Remoção de um produto do carrinho

    • Pegar carrinho

    • Aplicar cupom

    • Remover cupom

    • Pegar dados do "Como você chegou até nós?"

    • Pegar bancos

    • Pegar datas de vencimento de uma cidade

    • Pegar termos de um carrinho

    • Pegar documentos necessários

    • Atualizar o carrinho

  • Conversão em pedido

 


Pré-checagem:

Pegar informações de um endereço pelo CEP:

Possibilita pegar informações como rua, bairro, cidade e outras informações a partir do CEP.

Endpoint: GET /api/address/{CEP}/postal_code/

Parâmetros:

CEP

CEP que deseja buscar as informações

String

Exemplo de resposta:

{ "data": { "type": "Address", "id": null, "attributes": { "nickname": "", "first_name": "", "last_name": "", "company_name": "", "number": "", "street_address_1": "Avenida José Antônio Lorenzetti", "street_address_2": "", "street_address_3": "Jardim São João", "city": "Lençóis Paulista", "state": "SP", "postal_code": "18680-410", "country": null, "country_area": "", "phone": "", "is_default": false, "type": null, "latitude": "", "longitude": "" } } }

 

Checagem inicial de cobertura na cidade do cliente:

Permite fazer uma verificação se existe cobertura em uma cidade, pelo CEP.

Endpoint: GET /api/provider/city/{CEP}/postal_code/

Parâmetros:

CEP

CEP que deseja verificar

String

Exemplo de resposta:

Caso exista cobertura, retornará as informações do CEP, com o status 200:

{ "data": { "type": "City", "id": "11", "attributes": { "neighborhood": "Jardim São João", "state": "SP", "postal_code": "18680-410", "street": "Avenida José Antônio Lorenzetti", "created": "2021-08-19T19:37:43.708091-03:00", "updated": "2022-02-16T17:31:40.001758-02:00", "name": "Lençóis Paulista", "short_name": "Lençóis Paulista", "code": "lencoisPaulista", "lat": "-22.6036000", "long": "-48.7975000", "redirect_url": null, "due_date": null, "is_neighborhood": false, "neighborhood_name": null }, "relationships": { "postal_codes": { "meta": { "count": 0 }, "data": [], "links": { "self": "http://devisp.datacake.com.br/api/provider/city/11/relationships/postal_codes/", "related": "http://devisp.datacake.com.br/api/provider/city/11/postal_codes/" } }, "streets": { "meta": { "count": 0 }, "data": [], "links": { "self": "http://devisp.datacake.com.br/api/provider/city/11/relationships/streets/", "related": "http://devisp.datacake.com.br/api/provider/city/11/streets/" } }, "due_dates": { "meta": { "count": 9 }, "data": [ { "type": "DueDate", "id": "6" }, { "type": "DueDate", "id": "5" }, { "type": "DueDate", "id": "4" }, { "type": "DueDate", "id": "3" }, { "type": "DueDate", "id": "2" }, { "type": "DueDate", "id": "1" }, { "type": "DueDate", "id": "8" }, { "type": "DueDate", "id": "7" }, { "type": "DueDate", "id": "9" } ], "links": { "self": "http://devisp.datacake.com.br/api/provider/city/11/relationships/due_dates/", "related": "http://devisp.datacake.com.br/api/provider/city/11/due_dates/" } }, "products": { "meta": { "count": 3 }, "data": [ { "type": "Product", "id": "51" }, { "type": "Product", "id": "50" }, { "type": "Product", "id": "42" } ], "links": { "self": "http://devisp.datacake.com.br/api/provider/city/11/relationships/products/", "related": "http://devisp.datacake.com.br/api/provider/city/11/products/" } }, "integration": { "links": { "self": "http://devisp.datacake.com.br/api/provider/city/11/relationships/integration/", "related": "http://devisp.datacake.com.br/api/provider/city/11/integration/" }, "data": { "type": "Integration", "id": "9" } } } } }

Caso não exista cobertura no CEP informado, retornara uma mensagem de erro, com o status 404:

{ "errors": [ { "detail": "Desculpe, infelizmente não temos cobertura na cidade Manaus CEP:69015-754", "status": "404", "source": { "pointer": "/data" }, "code": "not_found" } ] }

 

Checagem financeira

Permite verificar se o usuário possui restriçoes, não é ativado em todos os nossos clientes, então deve ser uma configuração “Liga/Desliga” na hora de vocês implementarem.

Endpoint: POST /api/store/cart/pre_check/

Atributos:

taxvat

CPF

String

token

Token do carrinho

String

stop_invalid_taxvat

Parar se o CPF for invalido

Boolean

Exemplo:

Body:

 


KMZ:

Pegar coordenadas de um endereço:

Possibilita pegar as coordenas de um local pelo endereço.

Endpoint: POST /api/provider/coverage/geocode/

Atributos:

street_address_1

Rua

String

street_address_3

Bairro

String

address_number

Número

String

postal_code

CEP

String

state

Estado (sigla)

String

city

Cidade

String

Exemplo:

Body:

Resposta:

 

Pegar endereço pelas coordenadas:

Permite pegas as informações de um endereço através de coordenadas

Endpoint: POST /api/provider/coverage/address/

Atributos:

latitude

 

Number

longitude

 

Number

Exemplo:

Body:

Resposta:

 

Verificar cobertura de um endereço:

Permite verificar se existe cobertura em um endereço

Endpoint: POST /api/provider/coverage/check_coverage/

Atributos:

street_address_1

Rua

String

street_address_3

Bairro

String

address_number

Número

String

postal_code

CEP

String

state

Estado (sigla)

String

city

Cidade

String

latitude

Latitude

Number

longitude

Longitude

Number

Exemplo:

Body:

Caso tenha cobertura retornara o status 200:

Caso não tenha cobertura retornará uma mensagem de erro, e o status 400:

 


Checkout:

Salvar endereço do cliente:

Permite salvar um endereço

Endpoint: POST /api/address/

Atributos:

first_name

Nome

String

last_name

Sobrenome

String

city

Cidade

String

number

Número

String

street_address_1

Rua

String

street_address_2

Complemento

String

street_address_3

Bairro

String

state

Estado (sigla)

String

postal_code

CEP

String

country

Pais (sigla)

String

country_area

Pais (sigla)

String

Exemplo:

Body:

Resposta:

 

Pegar ID do Revendedor:

Permite encontrar o ID do Revendedor buscando por CPF/CNPJ

Endpoint: GET /api/provider/reseller/{cpf}/by_taxvat/

Resposta:

 

Criação de carrinho:

Permite criar o carrinho, para iniciar o processo de compra.

Endpoint: POST /api/store/cart/?include=billing_address,shipping_address

Atributos:

extra_data

 

JSON

email

E-mail

String

Atributos do “extra_data”:

resseller_id

ID do Revendedor

String

mobile

Número de telefone

String

paymentType

Tipo de pagamento

String

current_step

Etapa atual do checkout

String

current_wizard_step

Subetapa atual do checkout

String

condo

Condominio

String

condo_number

Número do condominio

String

plan_type_id

ID do tipo de plano

String

customer_type

Tipo de usuario (novo ou velho)

String

city_id

ID da cidade

String

is_migration

É migração

Boolean

city_has_radio

Cidade tem radio

Boolean

city_has_fiber

Cidade tem fibra

Boolean

city_has_phone

Cidade tem telefone

Boolean

city_has_tv

Cidade tem tv

Boolean

cpf

CPF

String

migration_type

Tipo de migração (apenas se for migração)

String

has_hidden_product

Existe produto oculto

Boolean

Atributos do “relationships”:

billing_address

ID do endereço do cliente criado anteriormente

shipping_address

ID do endereço do cliente criado anteriormente

Exemplo de uso:

Body:

Resposta:

 

Pegar contratos disponíveis:

Permite obter os contratos disponíveis.

Endpoint: GET /api/store/cart-contract-period/get_cart_contract_period/

Exemplo de resposta:

 

Pegar os planos disponíveis:

Possibilita pegar os planos disponíveis na cidade

Endpoint: GET /api/store/product/?page[number]={page_number}&page[size]={page_size}&include=product_type&city__id={city__id}&restricted_customers={restricted_customers}

Parâmetros:

page[size]

Quantidades de itens por página

Number

page[number]

Qual página deseja pegas as informações

Number

city__id

ID da cidade que desaja pegar os planos

Number

restricted_customers

TRUE se o usuario tiver restrição

Boolean

Exemplo:

Resposta:

 

Adição de produto no carrinho:

Possibilita adicionar produto ao carrinho.

Endpoint: POST /api/store/cart-item/?include=product%2Ccart%2Ccart.items%2Ccart.items.product

Atributos:

quantity

Quantidade do produto

Number

Headers:

x-cart-token

Token do carrinho

String

Atributos do “relationships“:

product

ID do produto que deseja colocar no carrinho

cart

ID do carrinho

Exemplo de uso:

Body:

Resposta:

 

Pegar os adicionais de um produto:

Permite pegar os adicionais de um produto

Endpoint: GET /api/store/product/{product_id}/addons/?include=product_type%2Ccategories

Parâmetros:

product_id

ID do produto que deseja pegar os adicionais

Exemplo de resposta:

 

Remoção de um produto do carrinho:

Permite remover produto do carrinho.

Endpoint: DELETE /api/store/cart-item/{cart_item_id}/

Parâmetros:

cart_item_id

ID do “CartItem”

Headers:

x-cart-token

Token do carrinho

String

Exemplo de resposta:

Status Code 204 No Content

 

Pegar carrinho:

Possibilita pegar o carrinho.

Endpoint: GET /api/store/cart/{cart_id}/?include=billing_address%2Cshipping_address%2Cshipping_method%2Ccontract_period%2Corigin%2Citems.product%2Citems.product.categories%2Citems.product.product_type%2Cuser%2Cbilling_address%2Cshipping_address

Parâmetros:

cart_id

ID do carrinho que deseja

Exemplo de resposta:

 

Aplicar cupom:

Permite aplicar cupom de desconto. Ele adiciona o cupom atualizando o carrinho.

Endpoint: PATCH /api/store/cart/{cart_id}/

Parâmetros:

cart_id

ID do carrinho

Atributos:

id

ID do carrinho

String

voucher_code

CUPOM

String

Exemplo:

Body:

Resposta Cupom valido (retorna o carrinho):

Resposta Cupom invalido:

 

Remover Cupom:

Permite remover cupom de desconto. Ele remove o cupom atualizando o carrinho.

Endpoint: PATCH /api/store/cart/{cart_id}/

Parâmetros:

cart_id

ID do carrinho

Atributos:

id

ID do carrinho

String

voucher_code

CUPOM

String

Exemplo:

Body:

Resposta (retorna o carrinho):

 

Pegar dados do "Como você chegou até nós?":

Pega as informações do "Como você chegou até nós?".

Endpoint: GET /api/store/origin/?filter[is_active]={is_active}&page[size]={page_size}&page[number]={page_number}

Parâmetros:

is_active

Filtra se quer apenas ativo ou apenas desativado

Boolean

page[size]

Quantidades de itens por página

Number

page[number]

Qual página deseja pegas as informações

Number

Exemplo de resposta:

 

Pegar bancos:

Endpoint: /api/store/bank/?page[size]={page_size}&page[number]={page_number}

Parâmetros:

page[size]

Quantidades de itens por página

Number

page[number]

Qual página deseja pegas as informações

Number

Exemplo de resposta:

 

Pegar datas de vencimento de uma cidade:

Permite pegar as datas de vencimento de fatura de uma cidade.

Endpoint: GET /api/provider/city/{{city_id}}/?fields=due_dates&include=due_dates

Parâmetros:

city_id

ID da cidade

Exemplo de resposta:

 

Pegar termos de um carrinho:

Possibilita pegar os termos dos produtos de um carrinho.

Endpoint: GET /api/store/cart-term/?carts={{cart_id}}&fields=id,content

Parâmetros:

cart_id

ID do carrinho

Exemplo de resposta:

 

Pegar documentos necessários:

Permite pegar a lista de documentos necessários para realizar o pedido.

Endpoint: GET /api/provider/document/

Exemplo de resposta:

 

Conversão em pedido:

Permite finalizar o pedido

Endpoint GET /api/store/cart/{cart_id}/complete_order/

Parâmetros:

cart_id

ID do carrinho que deseja finalizar o pedido

Exemplo de resposta:

 

Atualizar o carrinho

Permite atualizar o carrinho, para adicionar os documentos, adicionar dados faltando, alterar passo e outras alterações.

Endpoint: PATCH /api/store/cart/{cart_id}/?include=billing_address,shipping_address,shipping_method,contract_period,origin,items.product,items.product.categories

Parâmetros:

cart_id

ID do carrinho

Exemplo:

body:

Resposta:

 


Postman: https://go.postman.co/workspace/Cake~f129d332-c9f4-47cd-be15-5dfbb09ac95c/collection/13764961-4e3c95b5-a142-4fb0-ac64-9d23fb3cdffc