Info
Welcome to the generated API reference. Get Postman Collection
Autenticação
Token de acesso
Todas as requisições para a API devem ser feitas passando o Token de acesso no header da requisição. Para obter o mesmo é necessário realizar um request com os parâmetros solicitados abaixo.
Tipos de autorizações(grant_type)
Atualmente são permitidos os seguintes grant_types
client_credentials: Somente para integrações onde não é necessário o login do usuário.
password: Nessa autorização o usuário precisa informar os campos 'username' e 'password', pois será realizado um login, onde os endpoints retornarão os dados referentes ao usuário logado.
Example request:
curl -X POST \
"localhost/oauth/token" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"grant_type":"password","client_id":"1","client_secret":"******","username":"manoeldasilva@email.com","password":"******"}'
const url = new URL(
"localhost/oauth/token"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"grant_type": "password",
"client_id": "1",
"client_secret": "******",
"username": "manoeldasilva@email.com",
"password": "******"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'localhost/oauth/token',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'grant_type' => 'password',
'client_id' => '1',
'client_secret' => '******',
'username' => 'manoeldasilva@email.com',
'password' => '******',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
HTTP Request
POST /oauth/token
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
grant_type |
text | optional | Tipo de autorização(password/client_credentials) |
client_id |
Integer | required | Client id |
client_secret |
text | required | Senha do cliente |
username |
text | optional | Usuário de login da plataforma |
password |
text | optional | Senha do usuário |
Banners
Buscar Banners disponíveis
Método utilizado para buscar os banners disponíveis na empresa.
Example request:
curl -X GET \
-G "localhost/api/v1/banners" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/banners"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'localhost/api/v1/banners',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": [
{
"id_banner": 1,
"id_empresa": 1,
"descricao": "TESTE",
"tipo": "TESTE",
"imagem": "TESTE",
"link": "TESTE",
"inicio_vigencia": "2020-03-31 00:00:00",
"fim_vigencia": "2025-03-31 22:00:00",
"ativo": 1
}
]
}
HTTP Request
GET /api/v1/banners
Clientes
Cadastrar um cliente
Utilize este método sempre que desejar cadastrar um cliente.
Example request:
curl -X POST \
"localhost/api/v1/cliente" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"usuario":"manoeldasilva@email.com","senha":"******","entidade":{"nome":"Manoel da Silva","apelido":"Manoel","inscricao_federal":"99999999999","genero":"MASCULINO","dt_nascimento":"1995-01-01","logradouro":"Rua x","numero":"45X","cep":"14500000","complemento":"Teste","bairro":"Bairro teste","cidade":"Cidade do manoel","estado":"SP","telefone":"99999999999","celular":"99999999999"}}'
const url = new URL(
"localhost/api/v1/cliente"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"usuario": "manoeldasilva@email.com",
"senha": "******",
"entidade": {
"nome": "Manoel da Silva",
"apelido": "Manoel",
"inscricao_federal": "99999999999",
"genero": "MASCULINO",
"dt_nascimento": "1995-01-01",
"logradouro": "Rua x",
"numero": "45X",
"cep": "14500000",
"complemento": "Teste",
"bairro": "Bairro teste",
"cidade": "Cidade do manoel",
"estado": "SP",
"telefone": "99999999999",
"celular": "99999999999"
}
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'localhost/api/v1/cliente',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'usuario' => 'manoeldasilva@email.com',
'senha' => '******',
'entidade' => [
'nome' => 'Manoel da Silva',
'apelido' => 'Manoel',
'inscricao_federal' => '99999999999',
'genero' => 'MASCULINO',
'dt_nascimento' => '1995-01-01',
'logradouro' => 'Rua x',
'numero' => '45X',
'cep' => '14500000',
'complemento' => 'Teste',
'bairro' => 'Bairro teste',
'cidade' => 'Cidade do manoel',
'estado' => 'SP',
'telefone' => '99999999999',
'celular' => '99999999999',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (201):
{
"success": true,
"data": {
"usuario": "manoeldasilva@email.com",
"ativo": 1,
"id_cliente": 11,
"entidade": {
"nome": "Manoel da Silva",
"apelido": "Manu",
"inscricao_federal": "99999999999",
"tipo_pessoa": null,
"genero": "MASCULINO",
"dt_nascimento": "1995-01-01",
"logradouro": "Rua x",
"numero": "45X",
"cep": "14500000",
"complemento": "Teste",
"bairro": "Bairro teste",
"cidade": "Cidade do Manoel",
"estado": "SP",
"telefone": "17996612958",
"celular": null,
"email": null,
"dt_cadastro": "2020-03-31 12:53:16",
"dt_alteracao": "2020-03-31 12:53:16",
"ativo": 1,
"foto": null
}
}
}
Example response (406):
{
"success": false,
"errors": {
"entidade.nome": [
"Campo entidade.nome não informado"
],
"entidade.apelido": [
"Campo entidade.apelido não informado"
],
"entidade.inscricao_federal": [
"Campo entidade.inscricao federal não informado"
]
},
"code": 406
}
HTTP Request
POST /api/v1/cliente
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
usuario |
text | required | E-mail do cliente |
senha |
text | required | Senha do cliente |
entidade.nome |
text | required | Nome do cliente |
entidade.apelido |
text | required | Apelido do cliente |
entidade.inscricao_federal |
text | required | CPF |
entidade.genero |
text | optional | Genero do cliente (MASCULINO,FEMININO,OUTROS) |
entidade.dt_nascimento |
date | optional | Data de nascimento |
entidade.logradouro |
text | optional | Logradouro |
entidade.numero |
text | optional | Número da residência |
entidade.cep |
text | optional | Zip code |
entidade.complemento |
text | optional | Complemento |
entidade.bairro |
text | optional | Bairro |
entidade.cidade |
text | optional | Cidade |
entidade.estado |
text | optional | Estado (Formato UF) |
entidade.telefone |
text | optional | Telefone |
entidade.celular |
text | optional | Celular |
Adicionar um endereço para o cliente
Utilize este método para adicionar um endereço para o cliente logado.
Example request:
curl -X POST \
"localhost/api/v1/cliente/endereco" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"descricao":"Endere\u00e7o de teste","logradouro":"Rua J de Martins","numero":"636","cep":"14150000","complemento":"Casa 2","referencia":"Perto da farm\u00e1cia","bairro":"Centro","cidade":"Serrana","estado":"S\u00e3o Paulo","padrao":"true","latitude":-21.1997509,"longitude":-47.8096209}'
const url = new URL(
"localhost/api/v1/cliente/endereco"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"descricao": "Endere\u00e7o de teste",
"logradouro": "Rua J de Martins",
"numero": "636",
"cep": "14150000",
"complemento": "Casa 2",
"referencia": "Perto da farm\u00e1cia",
"bairro": "Centro",
"cidade": "Serrana",
"estado": "S\u00e3o Paulo",
"padrao": "true",
"latitude": -21.1997509,
"longitude": -47.8096209
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'localhost/api/v1/cliente/endereco',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'descricao' => 'Endereço de teste',
'logradouro' => 'Rua J de Martins',
'numero' => '636',
'cep' => '14150000',
'complemento' => 'Casa 2',
'referencia' => 'Perto da farmácia',
'bairro' => 'Centro',
'cidade' => 'Serrana',
'estado' => 'São Paulo',
'padrao' => 'true',
'latitude' => -21.1997509,
'longitude' => -47.8096209,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": {
"descricao": "Endereço de teste",
"logradouro": "Rua J de Martins",
"numero": "636",
"cep": "14150000",
"bairro": "Centro",
"cidade": "Serrana",
"estado": "São Paulo",
"longitude": -1000,
"latitude": 1000,
"padrao": true,
"dt_cadastro": {
"date": "2021-01-05 18:07:19.450024",
"timezone_type": 3,
"timezone": "America\/Sao_Paulo"
},
"id_endereco": 1
}
}
Example response (406):
{
"success": false,
"error": {
"descricao": [
"Campo descricao não informado"
],
"logradouro": [
"Campo logradouro não informado"
],
"numero": [
"Campo numero não informado"
],
"cep": [
"Campo cep não informado"
],
"bairro": [
"Campo bairro não informado"
],
"cidade": [
"Campo cidade não informado"
],
"longitude": [
"Campo longitude não informado"
],
"latitude": [
"Campo latitude não informado"
],
"padrao": [
"Campo padrao não informado"
]
},
"code": 406
}
HTTP Request
POST /api/v1/cliente/endereco
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
descricao |
text | required | Descrição do endereço |
logradouro |
text | required | Endereço do cliente |
numero |
text | required | Número do endereço |
cep |
text or integer | required | CEP do endereço |
complemento |
text | optional | Complemento do endereço |
referencia |
text | optional | Referência do endereço |
bairro |
text | required | Bairro do endereço |
cidade |
text | required | Cidade do endereço |
estado |
text | optional | Estado do endereço |
padrao |
boolean | required | Definir endereço padrão |
latitude |
float or text | required | Latitude do endereço |
longitude |
float or text | required | Longitude do endereço |
Remover endereço do cliente
Utilize este método para remover o endereço do cliente logado.
Example request:
curl -X DELETE \
"localhost/api/v1/cliente/1/endereco" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/cliente/1/endereco"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "DELETE",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'localhost/api/v1/cliente/1/endereco',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": {
"id_endereco": 5,
"descricao": "Endereço de teste",
"logradouro": "Rua J de Martins",
"numero": "636",
"cep": "14150000",
"complemento": null,
"referencia": null,
"bairro": "Centro",
"cidade": "Serrana",
"estado": null,
"latitude": "1000",
"longitude": "-1000",
"padrao": 0,
"dt_cadastro": "2021-01-29 13:22:02"
}
}
Example response (404):
{
"success": false,
"error": "Endereço não encontrado.",
"code": 404
}
HTTP Request
DELETE /api/v1/cliente/{idEndereco}/endereco
Buscar endereços do cliente
Utilize este método para buscar os endereços do cliente logado.
"taxa_entrega": taxa calculada entre a distância da empresa e o endereço (será 0 caso esteja fora de alcance).
"alcance_empresa": true caso o endereço esteja dentro do alcance do raio da empresa, false caso o contrário.
Example request:
curl -X GET \
-G "localhost/api/v1/cliente/enderecos" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/cliente/enderecos"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'localhost/api/v1/cliente/enderecos',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": [
{
"id_endereco": 1,
"descricao": "Endereço de teste",
"logradouro": "Rua J de Martins",
"numero": "636",
"cep": "14150000",
"complemento": null,
"referencia": null,
"bairro": "Centro",
"cidade": "Serrana",
"estado": null,
"latitude": "1000",
"longitude": "-1000",
"padrao": 1,
"dt_cadastro": "2021-01-05 18:07:19",
"taxa": 0,
"alcance_empresa": false
}
]
}
Example response (404):
{
"success": false,
"error": "Nenhum endereço encontrado.",
"code": 404
}
HTTP Request
GET /api/v1/cliente/enderecos
Alterar um cliente
Utilize este método sempre que desejar alterar um cliente.
Example request:
curl -X PUT \
"localhost/api/v1/cliente" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"senha":"******","entidade":{"nome":"Manoel da Silva","apelido":"Manoel","inscricao_federal":"99999999999","genero":"MASCULINO","dt_nascimento":"1995-01-01","logradouro":"Rua x","numero":"45X","cep":"14500000","complemento":"Teste","bairro":"Bairro teste","cidade":"Cidade do manoel","estado":"SP","telefone":"99999999999","celular":"99999999999"}}'
const url = new URL(
"localhost/api/v1/cliente"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"senha": "******",
"entidade": {
"nome": "Manoel da Silva",
"apelido": "Manoel",
"inscricao_federal": "99999999999",
"genero": "MASCULINO",
"dt_nascimento": "1995-01-01",
"logradouro": "Rua x",
"numero": "45X",
"cep": "14500000",
"complemento": "Teste",
"bairro": "Bairro teste",
"cidade": "Cidade do manoel",
"estado": "SP",
"telefone": "99999999999",
"celular": "99999999999"
}
}
fetch(url, {
method: "PUT",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->put(
'localhost/api/v1/cliente',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'senha' => '******',
'entidade' => [
'nome' => 'Manoel da Silva',
'apelido' => 'Manoel',
'inscricao_federal' => '99999999999',
'genero' => 'MASCULINO',
'dt_nascimento' => '1995-01-01',
'logradouro' => 'Rua x',
'numero' => '45X',
'cep' => '14500000',
'complemento' => 'Teste',
'bairro' => 'Bairro teste',
'cidade' => 'Cidade do manoel',
'estado' => 'SP',
'telefone' => '99999999999',
'celular' => '99999999999',
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": {
"usuario": "manoeldasilva@email.com",
"ativo": 1,
"id_cliente": 11,
"entidade": {
"nome": "Manoel da Silva",
"apelido": "Manu",
"inscricao_federal": "99999999999",
"tipo_pessoa": null,
"genero": "MASCULINO",
"dt_nascimento": "1995-01-01",
"logradouro": "Rua x",
"numero": "45X",
"cep": "14500000",
"complemento": "Teste",
"bairro": "Bairro teste",
"cidade": "Cidade do Manoel",
"estado": "SP",
"telefone": "17996612958",
"celular": null,
"email": null,
"dt_cadastro": "2020-03-31 12:53:16",
"dt_alteracao": "2020-03-31 12:53:16",
"ativo": 1,
"foto": null
}
}
}
Example response (406):
{
"success": false,
"errors": {
"entidade.nome": [
"Campo entidade.nome não informado"
],
"entidade.apelido": [
"Campo entidade.apelido não informado"
],
"entidade.inscricao_federal": [
"Campo entidade.inscricao federal não informado"
]
},
"code": 406
}
HTTP Request
PUT /api/v1/cliente
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
senha |
text | required | Senha do cliente |
entidade.nome |
text | required | Nome do cliente |
entidade.apelido |
text | required | Apelido do cliente |
entidade.inscricao_federal |
text | required | CPF |
entidade.genero |
text | optional | Genero do cliente (MASCULINO,FEMININO,OUTROS) |
entidade.dt_nascimento |
date | optional | Data de nascimento |
entidade.logradouro |
text | optional | Logradouro |
entidade.numero |
text | optional | Número da residência |
entidade.cep |
text | optional | Zip code |
entidade.complemento |
text | optional | Complemento |
entidade.bairro |
text | optional | Bairro |
entidade.cidade |
text | optional | Cidade |
entidade.estado |
text | optional | Estado (Formato UF) |
entidade.telefone |
text | optional | Telefone |
entidade.celular |
text | optional | Celular |
Buscar dados do cliente
Utilize este método sempre que desejar buscar os dados do cliente logado.
Example request:
curl -X GET \
-G "localhost/api/v1/cliente" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/cliente"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'localhost/api/v1/cliente',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": {
"id_cliente": 0,
"id_entidade": 0,
"id_empresa": 0,
"dt_ultimo_acesso": "2020-10-07 15:05:24",
"ativo": 1,
"tipo_login": null,
"usuario": "manoel@email.com",
"entidade": {
"nome": "Manoel da Silva",
"apelido": "Manoel",
"inscricao_federal": "47044488862",
"tipo_pessoa": null,
"genero": "MASCULINO",
"dt_nascimento": "2004-12-31",
"logradouro": "Avenida do Manoel",
"numero": "5",
"cep": "14076400",
"complemento": "lado par",
"bairro": "Bairro",
"cidade": "Cidade",
"estado": "SP",
"telefone": "49555585588",
"celular": "49555585588",
"email": null,
"dt_cadastro": "2020-04-24 14:23:35",
"dt_alteracao": "2020-04-24 14:23:35",
"ativo": 1,
"foto": null
},
"empresa": {
"codigo": 0,
"id_grupo": 0,
"perfil_facebook": null,
"perfil_instagram": null,
"site": null,
"desc_maximo": "50.00",
"sobre": null,
"latitude": null,
"longitude": null,
"pedido_minimo": "0.00",
"limite_itens": 0,
"responsavel": null,
"versao_app": "1.0.3",
"ativo": 1,
"entidade": {
"nome": "Usuário demo",
"apelido": "Usuário demo",
"inscricao_federal": "11111111111111",
"tipo_pessoa": "",
"genero": "MASCULINO",
"dt_nascimento": "2020-05-22",
"logradouro": null,
"numero": null,
"cep": null,
"complemento": null,
"bairro": null,
"cidade": null,
"estado": null,
"telefone": "(17) 3122-8600",
"celular": "1731228600",
"email": "sifat@appclubmais.com.br",
"dt_cadastro": "2020-06-24 17:57:09",
"dt_alteracao": "2020-06-24 17:57:09",
"ativo": 1,
"foto": "img\/user-default.png"
}
}
}
}
HTTP Request
GET /api/v1/cliente
Buscar dados do cliente por filtro
Método utilizado para realizar busca dos dados do cliente por id, e-mail ou cpf, apenas para autorizações do tipo CLIENT_CREDENTIALS.
Example request:
curl -X GET \
-G "localhost/api/v1/cliente/nobis" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/cliente/nobis"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'localhost/api/v1/cliente/nobis',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": {
"usuario": "manoeldasilva@email.com",
"ativo": 1,
"id_cliente": 11,
"entidade": {
"nome": "Manoel da Silva",
"apelido": "Manu",
"inscricao_federal": "99999999999",
"tipo_pessoa": null,
"genero": "MASCULINO",
"dt_nascimento": "1995-01-01",
"logradouro": "Rua x",
"numero": "45X",
"cep": "14500000",
"complemento": "Teste",
"bairro": "Bairro teste",
"cidade": "Cidade do Manoel",
"estado": "SP",
"telefone": "17996612958",
"celular": null,
"email": null,
"dt_cadastro": "2020-03-31 12:53:16",
"dt_alteracao": "2020-03-31 12:53:16",
"ativo": 1,
"foto": null
}
}
}
Example response (404):
{
"success": false,
"error": "Cliente não encontrado.",
"code": 404
}
HTTP Request
GET /api/v1/cliente/{filtro}
URL Parameters
Parameter | Status | Description |
---|---|---|
filtro |
required | id ou e-mail do cliente. |
Registrar empresa logada
Utilize este método registrar a empresa selecionada pelo usuário, ela será responsável por buscar os seus respectivos itens (cupons, banners, produtos, etc.), apenas para autorizações do tipo PASSWORD.
Example request:
curl -X PUT \
"localhost/api/v1/cliente/empresa/quas" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/cliente/empresa/quas"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "PUT",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->put(
'localhost/api/v1/cliente/empresa/quas',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": {
"empresa_logada": "Supermercado Manoel da Silva",
"usuario": "manoel@email.com"
}
}
Example response (406):
{
"success": false,
"error": {
"empresa": [
"Empresa não existente."
],
"cliente": [
"O cliente logado não possui vínculo com a empresa informada."
]
},
"code": 406
}
HTTP Request
PUT /api/v1/cliente/empresa/{idEmpresa}
URL Parameters
Parameter | Status | Description |
---|---|---|
idEmpresa |
required | id da empresa que deseja logar. |
Compras
Buscar Compras do cliente
Método utilizado para buscar as compras realizadas do cliente.
Example request:
curl -X GET \
-G "localhost/api/v1/compras" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/compras"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'localhost/api/v1/compras',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": [
{
"dt_emissao": "2020-04-01 15:54:00",
"vr_total": "150.000",
"movimentacoes": [
{
"dt_compra": "2020-02-12 00:00:00",
"quantidade": "1.000",
"valor_total": "10.000",
"valor_desconto": "0.000"
},
{
"dt_compra": "2020-02-12 00:00:00",
"quantidade": "1.000",
"valor_total": "10.000",
"valor_desconto": "0.000"
},
{
"dt_compra": "2020-03-12 00:00:00",
"quantidade": "1.000",
"valor_total": "10.000",
"valor_desconto": "0.000"
}
],
"empresa": {
"perfil_facebook": "TESTE",
"perfil_instagram": "TESTE",
"site": "TESTE",
"ativo": 1,
"entidade": {
"nome": "TESTE",
"apelido": "TESTE",
"inscricao_federal": "00689700000135",
"tipo_pessoa": "TESTE",
"genero": "TESTE",
"dt_nascimento": "2020-02-03",
"logradouro": "TESTE",
"numero": "TESTE",
"cep": "14150000",
"complemento": null,
"bairro": "TESTE",
"cidade": "TESTE",
"estado": "SP",
"telefone": "16992338091",
"celular": "16992338091",
"email": "TESTE@TESTE.COM",
"dt_cadastro": "2020-02-03 00:00:00",
"dt_alteracao": "2020-02-03 00:00:00",
"ativo": 1,
"foto": null
}
}
}
]
}
HTTP Request
GET /api/v1/compras
Registrar uma compra
Utilize este método para registrar uma compra, deve se informar o valor total da venda e uma lista das vantagens utilizadas.
Também é possivel realizar as requisições via parâmetros de consulta ex:
Example request:
curl -X POST \
"localhost/api/v1/compras/1" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"valor_total":"150.00","vantagens":[{"id_vantagem":"1","quantidade":"1","valor_total":"1","valor_desconto":"1"}]}'
const url = new URL(
"localhost/api/v1/compras/1"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"valor_total": "150.00",
"vantagens": [
{
"id_vantagem": "1",
"quantidade": "1",
"valor_total": "1",
"valor_desconto": "1"
}
]
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'localhost/api/v1/compras/1',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'valor_total' => '150.00',
'vantagens' => [
[
'id_vantagem' => '1',
'quantidade' => '1',
'valor_total' => '1',
'valor_desconto' => '1',
],
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (201):
{
"success": true,
"data": {
"valor_total": 150,
"dt_emissao": {
"date": "2020-04-01 22:49:40.770027",
"timezone_type": 3,
"timezone": "America\/Sao_Paulo"
},
"movimentacoes": [
{
"id_vantagem": 1,
"dt_compra": "2020-04-01 22:49:40",
"quantidade": "2.000",
"valor_total": "30.000",
"valor_desconto": "5.000"
},
{
"id_vantagem": 1,
"dt_compra": "2020-04-01 22:49:40",
"quantidade": "2.000",
"valor_total": "30.000",
"valor_desconto": "5.000"
}
]
}
}
Example response (406):
{
"success": false,
"error": {
"valor_total": [
"Campo valor total não informado"
],
"vantagens": [
"Campo vantagens não informado"
]
},
"code": 406
}
Example response (406):
{
"success": false,
"error": "Quantidade excede o permitido vantagem: 6",
"code": 406
}
HTTP Request
POST /api/v1/compras/{cliente}
URL Parameters
Parameter | Status | Description |
---|---|---|
idCliente |
required | id do cliente. |
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
valor_total |
decimal(10,2) | required | Valor total da compra |
vantagens.*.id_vantagem |
integer | required | Id da vantagem |
vantagens.*.quantidade |
decimal | required | quantidade comprada |
vantagens.*.valor_total |
decimal | required | valor total |
vantagens.*.valor_desconto |
decimal | required | valor do desconto |
Cupons
Buscar cupons disponíveis
Método utilizado para buscar os cupons disponíveis na empresa que o usuário está logado.
Example request:
curl -X GET \
-G "localhost/api/v1/cupons" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/cupons"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'localhost/api/v1/cupons',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": [
{
"categoria": "Salgados",
"cupons": [
{
"id_cupom": 10,
"codigo": "123",
"codigo_integracao": "1234",
"descricao": "Salgadinhos em geral",
"tipo_promocional": "1",
"inicio_vigencia": "2020-04-09 00:00:00",
"fim_vigencia": "2020-04-24 00:00:00",
"qtd_limite": 30,
"ativo": 1,
"dt_cadastro": "2020-04-17 14:42:53",
"perc_desconto": "17.000",
"imagem": "http:\/\/plataforma.appclubmais.com.br\/img\/cupons\/cupom_Cerveja_Bohemia.png"
}
]
},
{
"categoria": "Bebidas",
"cupons": [
{
"id_cupom": 9,
"codigo": "11234",
"codigo_integracao": "1",
"descricao": "COCA COLA PET 2L",
"tipo_promocional": "CATEGORIA",
"inicio_vigencia": "2020-04-09 00:00:00",
"fim_vigencia": "2020-04-24 00:00:00",
"qtd_limite": 10,
"ativo": 1,
"dt_cadastro": "2020-04-17 14:42:53",
"perc_desconto": "25",
"imagem": "http:\/\/plataforma.appclubmais.com.br\/img\/cupons\/cupom_teste.png"
}
]
}
]
}
HTTP Request
GET /api/v1/cupons
Buscar cupons disponíveis
Método utilizado para buscar os cupons disponíveis na empresa que o usuário está logado.
Example request:
curl -X GET \
-G "localhost/api/v2/cupons" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v2/cupons"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'localhost/api/v2/cupons',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": [
{
"categoria": "Super ofertas da semana!",
"cupons": [
{
"id_cupom": 80,
"codigo": "APP01",
"codigo_integracao": "34",
"descricao": "ÓLEO COCAMAR (TESTE)",
"tipo_promocional": "PRODUTO",
"inicio_vigencia": "2020-06-09 03:00:00",
"fim_vigencia": "2021-09-13 00:00:00",
"qtd_limite": 5,
"ativo": 1,
"dt_cadastro": "0000-00-00 00:00:00",
"perc_desconto": "10.00",
"imagem": "http:\/\/plataforma.appclubmais.com.br\/\/img\/cupons\/cupom_ÓLEO_COCAMAR_(TESTE).png",
"esgotado": false,
"ativado": false
},
{
"id_cupom": 94,
"codigo": "1",
"codigo_integracao": "22970",
"descricao": "Barril Heineken",
"tipo_promocional": "PRODUTO",
"inicio_vigencia": "2020-06-22 00:00:00",
"fim_vigencia": "2021-09-13 00:00:00",
"qtd_limite": 10,
"ativo": 1,
"dt_cadastro": "0000-00-00 00:00:00",
"perc_desconto": "5.00",
"imagem": "http:\/\/plataforma.appclubmais.com.br\/\/img\/cupons\/cupom_Barril_Heineken.png",
"esgotado": true,
"ativado": false
}
]
},
{
"categoria": "Terça Suína",
"cupons": [
{
"id_cupom": 95,
"codigo": "2",
"codigo_integracao": "7896866800013",
"descricao": "ARROZ PATINI",
"tipo_promocional": "PRODUTO",
"inicio_vigencia": "2020-06-16 03:00:00",
"fim_vigencia": "2021-09-13 00:00:00",
"qtd_limite": 100,
"ativo": 1,
"dt_cadastro": "0000-00-00 00:00:00",
"perc_desconto": "10.00",
"imagem": "http:\/\/plataforma.appclubmais.com.br\/\/img\/cupons\/cupom_ARROZ_PATINI_SERIE_OURO_T-1_5.png",
"esgotado": true,
"ativado": false
}
]
},
{
"categoria": "Refrigerante",
"cupons": [
{
"id_cupom": 165,
"codigo": "3",
"codigo_integracao": "10",
"descricao": "Coca-cola",
"tipo_promocional": "PRODUTO",
"inicio_vigencia": "2020-08-20 00:00:00",
"fim_vigencia": "2021-09-13 00:00:00",
"qtd_limite": 1,
"ativo": 1,
"dt_cadastro": "2020-09-09 08:59:15",
"perc_desconto": "10.00",
"imagem": "http:\/\/plataforma.appclubmais.com.br\/\/img\/cupons\/cupom_Coca-cola.png",
"esgotado": false,
"ativado": false
}
]
},
{
"categoria": "teste",
"cupons": []
}
]
}
HTTP Request
GET /api/v2/cupons
Empresa
Buscar dados da empresa
Método utilizado para buscar os dados de sua empresa.
Example request:
curl -X GET \
-G "localhost/api/v1/empresa" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/empresa"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'localhost/api/v1/empresa',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": [
{
"id_banner": 1,
"id_empresa": 1,
"descricao": "TESTE",
"tipo": "TESTE",
"imagem": "TESTE",
"link": "TESTE",
"inicio_vigencia": "2020-03-31 00:00:00",
"fim_vigencia": "2025-03-31 22:00:00",
"ativo": 1
}
]
}
HTTP Request
GET /api/v1/empresa
Buscar formas de pagamento
Método utilizado para buscar as formas de pagamento da empresa.
Example request:
curl -X GET \
-G "localhost/api/v1/empresa/metodos-pagamento" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/empresa/metodos-pagamento"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'localhost/api/v1/empresa/metodos-pagamento',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": [
{
"id_metodo_pagamento": 8,
"id_empresa": 2,
"tipo": "CREDITO",
"ativo": 1,
"bandeiras": [
{
"id_bandeira": 16,
"id_metodo_pagamento": 8,
"descricao": "VISA",
"ativo": 1
},
{
"id_bandeira": 17,
"id_metodo_pagamento": 8,
"descricao": "MASTERCARD",
"ativo": 1
}
]
},
{
"id_metodo_pagamento": 12,
"id_empresa": 2,
"tipo": "DEBITO",
"ativo": 1,
"bandeiras": []
}
]
}
Example response (404):
{
"success": false,
"error": "Nenhum método de pagamento encontrado",
"code": 404
}
HTTP Request
GET /api/v1/empresa/metodos-pagamento
Grupos Econômicos
Buscar empresas vínculadas ao grupo.
Método utilizado para buscar as empresas vínculadas do grupo econômico em ordem de distância a partir da localização enviada na rota, apenas para autorizações do tipo PASSWORD.
Example request:
curl -X POST \
"localhost/api/v1/grupo-economico/empresas" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"latitude":-21.1997509,"longitude":-47.8096209}'
const url = new URL(
"localhost/api/v1/grupo-economico/empresas"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"latitude": -21.1997509,
"longitude": -47.8096209
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'localhost/api/v1/grupo-economico/empresas',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'latitude' => -21.1997509,
'longitude' => -47.8096209,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": [
{
"codigo": 1,
"id_grupo": 2,
"perfil_facebook": "teste",
"perfil_instagram": "teste",
"site": "manoeldasilva.com.br",
"desc_maximo": "99.00",
"sobre": "teste",
"latitude": "-22.1997509",
"longitude": "-47.8096209",
"pedido_minimo": "0.00",
"limite_itens": 10,
"responsavel": "teste",
"versao_app": "1.0",
"ativo": 1,
"distancia": 10,
"entidade": {
"nome": "Empresa Manoel da Silva",
"apelido": "Empresa Manu",
"inscricao_federal": "99999999999",
"tipo_pessoa": null,
"genero": "MASCULINO",
"dt_nascimento": "1995-01-01",
"logradouro": "Rua x",
"numero": "45X",
"cep": "14500000",
"complemento": "Teste",
"bairro": "Bairro teste",
"cidade": "Cidade do Manoel",
"estado": "SP",
"telefone": "17996612958",
"celular": null,
"email": null,
"dt_cadastro": "2020-03-31 12:53:16",
"dt_alteracao": "2020-03-31 12:53:16",
"ativo": 1,
"foto": null
},
"funcionamento": []
},
{
"codigo": 2,
"id_grupo": 3,
"perfil_facebook": "teste 2",
"perfil_instagram": "teste 2",
"site": "manoeldasilva.com.br",
"desc_maximo": "99.00",
"sobre": "teste 2",
"latitude": "-22.1997509",
"longitude": "-47.8096209",
"pedido_minimo": "0.00",
"limite_itens": 10,
"responsavel": "teste",
"versao_app": "1.0",
"ativo": 1,
"distancia": 10,
"entidade": {
"nome": "Empresa Manoel da Silva",
"apelido": "Empresa Manu",
"inscricao_federal": "99999999999",
"tipo_pessoa": null,
"genero": "MASCULINO",
"dt_nascimento": "1995-01-01",
"logradouro": "Rua x",
"numero": "45X",
"cep": "14500000",
"complemento": "Teste 2",
"bairro": "Bairro teste",
"cidade": "Cidade do Manoel",
"estado": "SP",
"telefone": "17996612958",
"celular": null,
"email": null,
"dt_cadastro": "2020-03-31 12:53:16",
"dt_alteracao": "2020-03-31 12:53:16",
"ativo": 1,
"foto": null
},
"funcionamento": [
{
"id_funcionamento": 29,
"dia_semana": "SEGUNDA",
"horario_abertura": "00:00:00",
"horario_fechamento": "23:59:00",
"fechado": 1
},
{
"id_funcionamento": 30,
"dia_semana": "TERÇA",
"horario_abertura": "08:30:00",
"horario_fechamento": "09:00:00",
"fechado": 0
},
{
"id_funcionamento": 31,
"dia_semana": "QUINTA",
"horario_abertura": "01:10:00",
"horario_fechamento": "02:00:00",
"fechado": 0
}
]
}
]
}
Example response (404):
{
"success": false,
"error": "Nenhuma empresa encontrada.",
"code": 404
}
HTTP Request
POST /api/v1/grupo-economico/empresas
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
latitude |
float or text | required | Latitude para ordenar as empresas |
longitude |
float or text | required | Longitude para ordenar as empresas |
Notificações
Buscar notificações
Método dedicado à listagem de notificações para o cliente
Example request:
curl -x GET \
"localhost/api/v1/notificacao" \
-H "Content-type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
const url = new URL(
"localhost/api/v1/notificacao
");
let headers = {
"Content-type: application/json",
"Accept: application/json",
"Authorization: Bearer {token}"
};
fetch(url, {
method: "GET",
headers: headers
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'localhost/api/v1/notificacao',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": {
"id_notificacao": 1,
"tipo_notificacao": 1,
"codigo": 238,
"id_empresa": 1,
"descricao": "Seu pedido, número 226 foi aceito pelo estabelecimento.",
"confirmado": 0,
"dt_cadastro": "2022-03-22 16:55:39",
"dt_alteracao": "2022-03-22 16:55:39"
}
}
Example response (404):
{
"success": false,
"error": "Nenhuma notificação foi encontrada.",
"code": 404
}
HTTP Request
GET /api/v1/notificacao
Marcar notificação como lida
Utilize este método para confirmar que uma notificação foi enviada para um dispositivo móvel
Example request:
curl -X PUT \
"localhost/api/v1/notificacao/1/lida" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/notificacao/1/lida"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "PUT",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->put(
'localhost/api/v1/notificacao/1/lida',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": {
"id_notificacao": 1,
"tipo_notificacao": 1,
"codigo": 238,
"id_empresa": 1,
"descricao": "Seu pedido, número 226 foi aceito pelo estabelecimento.",
"confirmado": 1,
"dt_cadastro": "2022-03-22 16:55:39",
"dt_alteracao": "2022-03-22 17:05:23"
}
}
Example response (404):
{
"success": false,
"error": "Notificação não encontrada.",
"code": 404
}
HTTP Request
PUT /api/v1/notificacao/{idNotificacao}/lida
Pedidos
Buscar pedidos
Método dedicado à listagem de pedidos do cliente
Example request:
curl -X POST \
"localhost/api/v1/pedidos" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/pedidos"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "POST",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'localhost/api/v1/pedidos',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": [
{
"id_pedido": 1,
"id_empresa": 2,
"numero": "99231",
"status": "CONFIRMADO",
"dt_agendamento": "2020-12-29 15:38:35",
"id_cliente": 31,
"id_endereco_cliente": 1,
"tipo_entrega": "RETIRADA",
"id_metodo_pagamento": 1,
"troco": "1.25",
"total_desconto": "10.00",
"id_disponibilidade": 1,
"observacao": "Pedido teste",
"dt_pedido": "2020-12-29 14:26:38",
"dt_atualizacao": "2021-01-04 13:48:55",
"itens": [
{
"id_pedido": 1,
"item": 1,
"id_produto": 8,
"quantidade": "1.00",
"valor": "0.10",
"desconto": "0.05",
"acrescimo": "1.00",
"id_promocao": null,
"produto": {
"id_produto": 8,
"id_empresa": 2,
"codigo": 1,
"codigo_integracao": "21",
"id_categoria": 0,
"descricao": "teste 5",
"descricao_app": "teste app",
"unidade_integracao": "UN",
"porcao": "0.00",
"preco_venda": "0.00",
"imagem": "\/img\/default-image.png",
"dt_cadastro": "2020-11-13 09:10:19",
"dt_alteracao": "2020-11-25 16:17:22",
"ativo": 1,
"disponivel_compra": 0
}
},
{
"id_pedido": 1,
"item": 2,
"id_produto": 9,
"quantidade": "2.00",
"valor": "10.00",
"desconto": "5.00",
"acrescimo": "0.00",
"id_promocao": null,
"produto": {
"id_produto": 9,
"id_empresa": 2,
"codigo": 2,
"codigo_integracao": "teste",
"id_categoria": 97,
"descricao": "teste 6",
"descricao_app": "teste",
"unidade_integracao": "UN",
"porcao": "0.00",
"preco_venda": "0.00",
"imagem": "img\/produtos\/empresa_2\/imagem\/produto_teste_1606481376.png",
"dt_cadastro": "2020-11-13 09:10:50",
"dt_alteracao": "2020-11-27 09:49:37",
"ativo": 1,
"disponivel_compra": 0
}
}
],
"historico": [
{
"id_status": 1,
"id_pedido": 1,
"codigo": "CANCELADO",
"dt_status": "2020-12-30 17:38:16"
},
{
"id_status": 2,
"id_pedido": 1,
"codigo": "CONFIRMADO",
"dt_status": "2020-12-30 17:46:46"
},
{
"id_status": 3,
"id_pedido": 1,
"codigo": "CONCLUIDO",
"dt_status": "2020-12-30 17:47:22"
},
{
"id_status": 4,
"id_pedido": 1,
"codigo": "CONFIRMADO",
"dt_status": "2021-01-04 13:48:13"
},
{
"id_status": 5,
"id_pedido": 1,
"codigo": "CANCELADO",
"dt_status": "2021-01-04 13:48:55"
}
],
"metodos_pagamento": {
"id_metodo_pagamento": 1,
"id_empresa": 3,
"tipo": "DINHEIRO",
"ativo": 1,
"bandeiras": null
}
}
]
}
Example response (404):
{
"success": false,
"error": "Nenhum pedido encontrado.",
"code": 404
}
HTTP Request
POST /api/v1/pedidos
Inserir um pedido para o cliente
Utilize este método para inserir um pedido para o cliente logado.
Example request:
curl -X POST \
"localhost/api/v1/pedidos/inserir" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"numero":"123","id_endereco_cliente":"1","tipo_entrega":"RETIRADA ou ENTREGA","id_metodo_pagamento":"1","troco":"0.00","taxa_entrega":"0.00","id_disponibilidade":"1","id_cartao":"1","metodo_pagamento":"DEBITO","bandeira_cartao":"VISA","observacao":"Exemplo de observa\u00e7\u00e3o","produtos":{"item":"1","id_produto":"1","quantidade":"5.00","valor":"5.00","desconto":"5.00","acrescimo":"5.00"},"opcao_falta_estoque":"Entre em contato comigo"}'
const url = new URL(
"localhost/api/v1/pedidos/inserir"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"numero": "123",
"id_endereco_cliente": "1",
"tipo_entrega": "RETIRADA ou ENTREGA",
"id_metodo_pagamento": "1",
"troco": "0.00",
"taxa_entrega": "0.00",
"id_disponibilidade": "1",
"id_cartao": "1",
"metodo_pagamento": "DEBITO",
"bandeira_cartao": "VISA",
"observacao": "Exemplo de observa\u00e7\u00e3o",
"produtos": {
"item": "1",
"id_produto": "1",
"quantidade": "5.00",
"valor": "5.00",
"desconto": "5.00",
"acrescimo": "5.00"
},
"opcao_falta_estoque":"Entre em contato comigo"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'localhost/api/v1/pedidos/inserir',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'numero' => '123',
'id_endereco_cliente' => '1',
'tipo_entrega' => 'RETIRADA ou ENTREGA',
'id_metodo_pagamento' => '1',
'troco' => '0.00',
'taxa_entrega' => '0.00',
'id_disponibilidade' => '1',
'id_cartao' => '1',
'metodo_pagamento' => 'DEBITO',
'bandeira_cartao' => 'VISA',
'observacao' => 'Exemplo de observação',
'produtos' => [
'item' => '1',
'id_produto' => '1',
'quantidade' => '5.00',
'valor' => '5.00',
'desconto' => '5.00',
'acrescimo' => '5.00',
],
'opcao_falta_estoque' => 'Entre em contato comigo'
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": {
"numero": 1001,
"dt_agendamento": "2000-12-12 00:00:00",
"id_endereco_cliente": 1,
"tipo_entrega": "RETIRADA",
"id_metodo_pagamento": 1,
"id_disponibilidade": 1,
"troco": 10,
"total_desconto": 10,
"observacao": "teste",
"id_cliente": 31,
"id_empresa": 2,
"status": "PENDENTE",
"dt_atualizacao": "2021-01-08 16:19:42",
"dt_pedido": "2021-01-08 16:19:42",
"id_pedido": 63
}
}
Example response (406):
{
"success": false,
"error": {
"numero": [
"Campo numero não informado"
],
"dt_agendamento": [
"Campo dt agendamento não informado"
],
"id_endereco_cliente": [
"Campo id endereco cliente não informado"
],
"tipo_entrega": [
"Campo tipo entrega não informado"
],
"id_metodo_pagamento": [
"Campo id metodo pagamento não informado"
],
"id_disponibilidade": [
"Campo id disponibilidade não informado"
]
},
"code": 406
}
HTTP Request
POST /api/v1/pedidos/inserir
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
numero |
integer | required | Número do pedido |
id_endereco_cliente |
integer | required | ID do endereco para qual o pedido será entrega |
tipo_entrega |
text | required | Tipo de entrega do pedido |
id_metodo_pagamento |
integer | required | ID do método de pagamento selecionado |
troco |
decimal(10,2) | optional | Troco do pedido |
taxa_entrega |
decimal(10,2) | optional | Taxa de entrega do pedido |
id_disponibilidade |
integer | required | ID do horário de disponibilidade da empresa |
id_cartao |
integer | required | ID do cartão utilizado na transação |
metodo_pagamento |
text | required | Metodo de pagamento |
bandeira_cartao |
text | required | Bandeira do metodo (se for dinheiro mandar null) |
observacao |
text | optional | Observação do pedido |
produtos |
array of objects | required | Produtos a serem inseridos no pedido |
produtos.item |
integer | required | Número da ordem dos itens |
produtos.id_produto |
integer | required | ID do produto |
produtos.quantidade |
decimal(10,2) | required | Quantidade de produtos nesse item |
produtos.valor |
decimal(10,2) | required | Valor unitário do produto nesse item |
produtos.desconto |
decimal(10,2) | required | Desconto unitário do produto nesse item |
produtos.acrescimo |
decimal(10,2) | required | Acréscimo unitário do produto nesse item |
Calcular taxa de entrega - frete
Método voltado para calcular o frete da entrega em relação ao endereço enviado e a localização da empresa
Example request:
curl -X GET \
-G "localhost/api/v1/pedidos/frete/esse" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/pedidos/frete/esse"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'localhost/api/v1/pedidos/frete/esse',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": {
"id_taxa": 2,
"raio": "15.55",
"valor": "1.23"
}
}
Example response (404):
{
"success": false,
"error": [
"O endereço selecionado está fora do alcance de entrega.",
"Endereço não encontrado."
],
"code": 404
}
HTTP Request
GET /api/v1/pedidos/frete/{idEndereco}
URL Parameters
Parameter | Status | Description |
---|---|---|
idEndereco |
required | id do endereço do cliente. |
Cancelar pedidos em andamento
Método utilizado para cancelar um pedido ainda pendente.
Example request:
curl -X PUT \
"localhost/api/v1/pedidos/1/cancelar" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/pedidos/1/cancelar"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "PUT",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->put(
'localhost/api/v1/pedidos/1/cancelar',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": {
"id_pedido": 60,
"id_empresa": 2,
"numero": "1002",
"status": "CANCELADO",
"dt_agendamento": "2000-12-12 00:00:00",
"id_cliente": 31,
"id_endereco_cliente": 1,
"tipo_entrega": "RETIRADA",
"id_metodo_pagamento": 1,
"troco": "10.00",
"id_disponibilidade": 1,
"observacao": "teste",
"dt_pedido": "2021-01-08 15:52:21",
"dt_atualizacao": "2021-01-08 16:50:46"
}
}
Example response (404):
{
"success": false,
"error": "O pedido enviado não pode ser cancelado, verifique se ele está pendente.",
"code": 404
}
HTTP Request
PUT /api/v1/pedidos/{idPedido}/cancelar
Buscar os horários de disponibilidade da empresa
Método utilizado para buscar os horários disponíveis para a entrega de pedidos.
Example request:
curl -X POST \
"localhost/api/v1/pedidos/horarios" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/pedidos/horarios"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "POST",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'localhost/api/v1/pedidos/horarios',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": [
{
"data": "2021-01-21",
"dia_semana": "QUINTA",
"horarios": [
{
"id_disponibilidade": 1,
"horario_inicio": "09:00:00",
"horario_fim": "09:30:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": false,
"qtd_pedidos": 5,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "09:30:00",
"horario_fim": "10:00:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": false,
"qtd_pedidos": 1,
"limite_excedido": false
}
]
},
{
"data": "2021-01-22",
"dia_semana": "SEXTA",
"horarios": [
{
"id_disponibilidade": 1,
"horario_inicio": "02:00:00",
"horario_fim": "02:30:00",
"fator_taxa": "1.00",
"tipo": "Retirada",
"limite": 10,
"data_disponivel": false,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "02:30:00",
"horario_fim": "03:00:00",
"fator_taxa": "1.00",
"tipo": "Retirada",
"limite": 10,
"data_disponivel": false,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "03:00:00",
"horario_fim": "03:30:00",
"fator_taxa": "1.00",
"tipo": "Retirada",
"limite": 10,
"data_disponivel": false,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "03:30:00",
"horario_fim": "04:00:00",
"fator_taxa": "1.00",
"tipo": "Retirada",
"limite": 10,
"data_disponivel": false,
"qtd_pedidos": 0,
"limite_excedido": false
}
]
},
{
"data": "2021-01-23",
"dia_semana": "SABADO",
"horarios": [
{
"id_disponibilidade": 1,
"horario_inicio": "10:00:00",
"horario_fim": "10:30:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": false,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "10:30:00",
"horario_fim": "11:00:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": false,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "11:00:00",
"horario_fim": "11:30:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": false,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "11:30:00",
"horario_fim": "12:00:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": false,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "12:00:00",
"horario_fim": "12:30:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": false,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "12:30:00",
"horario_fim": "13:00:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": false,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "13:00:00",
"horario_fim": "13:30:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": false,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "13:30:00",
"horario_fim": "14:00:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": false,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "14:00:00",
"horario_fim": "14:30:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": true,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "14:30:00",
"horario_fim": "15:00:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": true,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "15:00:00",
"horario_fim": "15:30:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": true,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "15:30:00",
"horario_fim": "16:00:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": true,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "16:00:00",
"horario_fim": "16:30:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": true,
"qtd_pedidos": 0,
"limite_excedido": false
}
]
},
{
"data": "2021-01-24",
"dia_semana": "DOMINGO",
"horarios": [
{
"id_disponibilidade": 1,
"horario_inicio": "20:00:00",
"horario_fim": "21:00:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": true,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "21:00:00",
"horario_fim": "22:00:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": true,
"qtd_pedidos": 0,
"limite_excedido": false
}
]
},
{
"data": "2021-01-25",
"dia_semana": "SEGUNDA",
"horarios": [
{
"id_disponibilidade": 1,
"horario_inicio": "10:00:00",
"horario_fim": "11:00:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 2,
"data_disponivel": false,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "11:00:00",
"horario_fim": "12:00:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": false,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "12:00:00",
"horario_fim": "13:00:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": false,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "13:00:00",
"horario_fim": "14:00:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": false,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "14:00:00",
"horario_fim": "15:00:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": true,
"qtd_pedidos": 0,
"limite_excedido": false
},
{
"id_disponibilidade": 1,
"horario_inicio": "15:00:00",
"horario_fim": "16:00:00",
"fator_taxa": "1.00",
"tipo": "Entrega",
"limite": 10,
"data_disponivel": true,
"qtd_pedidos": 0,
"limite_excedido": false
}
]
}
]
}
Example response (404):
{
"success": false,
"error": "Nenhum horário encontrado.",
"code": 404
}
HTTP Request
POST /api/v1/pedidos/horarios
URL Parameters
Parameter | Status | Description |
---|---|---|
tipo |
optional | opitional tipo de entrega. |
Buscar pedidos para o integrador
Método utilizado para buscar os pedidos para o integrador.
Example request:
curl -X GET \
-G "localhost/api/v1/pedidos/integrados" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/pedidos/integrados"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'localhost/api/v1/pedidos/integrados',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": [
{
"id_pedido": 66,
"id_empresa": 2,
"numero": "99233",
"status": "CONFIRMADO",
"dt_agendamento": "2021-01-21",
"horario_inicio": "09:09:02",
"horario_fim": "11:10:05",
"id_cliente": 31,
"id_endereco_cliente": 1,
"tipo_entrega": "RETIRADA",
"id_metodo_pagamento": 1,
"endereco_entrega": null,
"troco": "10.00",
"taxa_entrega": "10.00",
"observacao": "teste",
"dt_pedido": "2021-01-13 13:46:16",
"id_transacao": null,
"dt_atualizacao": "2021-01-29 10:53:31",
"logradouro_entrega": "R. Cap. Jarbas Viêira de Souza",
"numero_entrega": "45",
"cep_entrega": "14150000",
"complemento_entrega": "NULL",
"referencia_entrega": "NULL",
"bairro_entrega": "Subsetor Sul - 2 (S-2)",
"cidade_entrega": "Ribeirão Preto",
"estado_entrega": "SP",
"itens": [
{
"id_pedido": 66,
"item": 1,
"id_produto": 1,
"quantidade": "1.00",
"valor": "1.00",
"desconto": "1.00",
"acrescimo": "1.00",
"id_promocao": null,
"produto": {
"id_produto": 1,
"id_empresa": 2,
"codigo": 1,
"codigo_integracao": "123",
"id_categoria": 99,
"descricao": "Arroz Integral",
"descricao_app": "Arroz Integral",
"unidade_integracao": "G",
"unidade_agrupada": 0,
"porcao": "10.00",
"preco_venda": "12.00",
"imagem": "",
"dt_cadastro": "2020-10-28 11:31:53",
"dt_alteracao": "2020-10-28 11:31:53",
"ativo": 1,
"disponivel_compra": 0
}
},
{
"id_pedido": 66,
"item": 2,
"id_produto": 1,
"quantidade": "1.00",
"valor": "1.00",
"desconto": "1.00",
"acrescimo": "1.00",
"id_promocao": null,
"produto": {
"id_produto": 1,
"id_empresa": 2,
"codigo": 1,
"codigo_integracao": "123",
"id_categoria": 99,
"descricao": "Arroz Integral",
"descricao_app": "Arroz Integral",
"unidade_integracao": "G",
"unidade_agrupada": 0,
"porcao": "10.00",
"preco_venda": "12.00",
"imagem": "",
"dt_cadastro": "2020-10-28 11:31:53",
"dt_alteracao": "2020-10-28 11:31:53",
"ativo": 1,
"disponivel_compra": 0
}
},
{
"id_pedido": 66,
"item": 3,
"id_produto": 1,
"quantidade": "1.00",
"valor": "1.00",
"desconto": "1.00",
"acrescimo": "1.00",
"id_promocao": null,
"produto": {
"id_produto": 1,
"id_empresa": 2,
"codigo": 1,
"codigo_integracao": "123",
"id_categoria": 99,
"descricao": "Arroz Integral",
"descricao_app": "Arroz Integral",
"unidade_integracao": "G",
"unidade_agrupada": 0,
"porcao": "10.00",
"preco_venda": "12.00",
"imagem": "",
"dt_cadastro": "2020-10-28 11:31:53",
"dt_alteracao": "2020-10-28 11:31:53",
"ativo": 1,
"disponivel_compra": 0
}
}
],
"historico": [
{
"id_status": 12,
"id_pedido": 66,
"codigo": "PENDENTE",
"dt_status": "2021-01-13 13:46:16"
},
{
"id_status": 27,
"id_pedido": 66,
"codigo": "CONFIRMADO",
"dt_status": "2021-01-29 10:53:31"
}
]
},
{
"id_pedido": 70,
"id_empresa": 2,
"numero": "2",
"status": "CONFIRMADO",
"dt_agendamento": "1969-12-31",
"horario_inicio": "10:00:00",
"horario_fim": "11:00:00",
"id_cliente": 31,
"id_endereco_cliente": 1,
"tipo_entrega": "ENTREGA",
"id_metodo_pagamento": 1,
"endereco_entrega": null,
"troco": "10.00",
"taxa_entrega": "10.00",
"observacao": "teste",
"dt_pedido": "2021-01-28 14:28:12",
"id_transacao": null,
"dt_atualizacao": "2021-02-03 16:20:11",
"logradouro_entrega": "R. Cap. Jarbas Viêira de Souza",
"numero_entrega": "45",
"cep_entrega": "14150000",
"complemento_entrega": "NULL",
"referencia_entrega": "NULL",
"bairro_entrega": "Subsetor Sul - 2 (S-2)",
"cidade_entrega": "Ribeirão Preto",
"estado_entrega": "SP",
"itens": [
{
"id_pedido": 70,
"item": 1,
"id_produto": 1,
"quantidade": "1.00",
"valor": "1.00",
"desconto": "1.00",
"acrescimo": "1.00",
"id_promocao": null,
"produto": {
"id_produto": 1,
"id_empresa": 2,
"codigo": 1,
"codigo_integracao": "123",
"id_categoria": 99,
"descricao": "Arroz Integral",
"descricao_app": "Arroz Integral",
"unidade_integracao": "G",
"unidade_agrupada": 0,
"porcao": "10.00",
"preco_venda": "12.00",
"imagem": "",
"dt_cadastro": "2020-10-28 11:31:53",
"dt_alteracao": "2020-10-28 11:31:53",
"ativo": 1,
"disponivel_compra": 0
}
},
{
"id_pedido": 70,
"item": 2,
"id_produto": 1,
"quantidade": "1.00",
"valor": "1.00",
"desconto": "1.00",
"acrescimo": "1.00",
"id_promocao": null,
"produto": {
"id_produto": 1,
"id_empresa": 2,
"codigo": 1,
"codigo_integracao": "123",
"id_categoria": 99,
"descricao": "Arroz Integral",
"descricao_app": "Arroz Integral",
"unidade_integracao": "G",
"unidade_agrupada": 0,
"porcao": "10.00",
"preco_venda": "12.00",
"imagem": "",
"dt_cadastro": "2020-10-28 11:31:53",
"dt_alteracao": "2020-10-28 11:31:53",
"ativo": 1,
"disponivel_compra": 0
}
},
{
"id_pedido": 70,
"item": 3,
"id_produto": 1,
"quantidade": "1.00",
"valor": "1.00",
"desconto": "1.00",
"acrescimo": "1.00",
"id_promocao": null,
"produto": {
"id_produto": 1,
"id_empresa": 2,
"codigo": 1,
"codigo_integracao": "123",
"id_categoria": 99,
"descricao": "Arroz Integral",
"descricao_app": "Arroz Integral",
"unidade_integracao": "G",
"unidade_agrupada": 0,
"porcao": "10.00",
"preco_venda": "12.00",
"imagem": "",
"dt_cadastro": "2020-10-28 11:31:53",
"dt_alteracao": "2020-10-28 11:31:53",
"ativo": 1,
"disponivel_compra": 0
}
}
],
"historico": [
{
"id_status": 19,
"id_pedido": 70,
"codigo": "PENDENTE",
"dt_status": "2021-01-28 14:28:12"
},
{
"id_status": 34,
"id_pedido": 70,
"codigo": "CONFIRMADO",
"dt_status": "2021-02-03 16:20:11"
}
]
}
]
}
Example response (404):
{
"success": false,
"error": "Nenhum pedido encontrado.",
"code": 404
}
HTTP Request
GET /api/v1/pedidos/integrados
Buscar eventos dos pedidos para o integrador
Método utilizado para buscar eventos dos pedidos para o integrador.
Example request:
curl -X GET \
-G "localhost/api/v1/pedidos/eventos/integrados" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/pedidos/eventos/integrados"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'localhost/api/v1/pedidos/eventos/integrados',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": [
{
"id_status": 18,
"id_pedido": 69,
"codigo": "PENDENTE",
"dt_status": "2021-01-28 14:24:08"
},
{
"id_status": 19,
"id_pedido": 70,
"codigo": "PENDENTE",
"dt_status": "2021-01-28 14:28:12"
},
{
"id_status": 20,
"id_pedido": 71,
"codigo": "PENDENTE",
"dt_status": "2021-01-28 14:44:13"
},
{
"id_status": 31,
"id_pedido": 71,
"codigo": "CONFIRMADO",
"dt_status": "2021-02-03 16:06:42"
},
{
"id_status": 32,
"id_pedido": 71,
"codigo": "ENVIADO",
"dt_status": "2021-02-03 16:06:44"
},
{
"id_status": 33,
"id_pedido": 71,
"codigo": "ENTREGUE",
"dt_status": "2021-02-03 16:06:48"
},
{
"id_status": 34,
"id_pedido": 70,
"codigo": "CONFIRMADO",
"dt_status": "2021-02-03 16:20:11"
},
{
"id_status": 35,
"id_pedido": 69,
"codigo": "CANCELADO",
"dt_status": "2021-02-03 16:23:50"
}
]
}
Example response (404):
{
"success": false,
"error": "Nenhum pedido encontrado.",
"code": 404
}
HTTP Request
GET /api/v1/pedidos/eventos/integrados
Alterar status de eventos dos pedidos
Método utilizado para buscar eventos dos pedidos para o integrador.
Example request:
curl -X PUT \
"localhost/api/v1/pedidos/1/eventos/integrados/1" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/pedidos/1/eventos/integrados/1"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "PUT",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->put(
'localhost/api/v1/pedidos/1/eventos/integrados/1',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": "CONFIRMADO"
}
Example response (404):
{
"success": false,
"error": "O status é inválido.",
"code": 406
}
HTTP Request
PUT /api/v1/pedidos/{idPedido}/eventos/integrados/{status}
Produtos
Buscar os produtos por por filtro ou categoria
Método utilizado para buscar os produtos através de um filtro ou categoria.
Example request:
curl -X POST \
"localhost/api/v1/produtos" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/produtos"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "POST",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'localhost/api/v1/produtos',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": [
{
"id_produto": 1,
"id_empresa": 2,
"codigo": 7,
"codigo_integracao": "321",
"id_categoria": 87,
"descricao": "teste 1",
"descricao_app": "teste 1",
"unidade_integracao": "UN",
"porcao": "0.00",
"preco_venda": "0.21",
"imagem": "\/img\/default-image.png",
"dt_cadastro": "2020-11-27 11:43:39",
"dt_alteracao": "2020-11-27 11:43:39",
"ativo": 0,
"disponivel_compra": 1,
"promocoes": [],
"observacoes": []
},
{
"id_produto": 2,
"id_empresa": 2,
"codigo": 8,
"codigo_integracao": "123",
"id_categoria": 86,
"descricao": "teste 2",
"descricao_app": "teste 2",
"unidade_integracao": "KG",
"porcao": "123.00",
"preco_venda": "1.23",
"imagem": "\/img\/default-image.png",
"dt_cadastro": "2020-11-27 13:08:25",
"dt_alteracao": "2020-11-27 13:08:25",
"ativo": 1,
"disponivel_compra": 0,
"promocoes": [],
"observacoes": [
{
"id_observacao": 10,
"id_produto": 52,
"dt_cadastro": "2021-03-30 17:55:29",
"dt_alteracao": "2021-03-30 17:55:29",
"dados_observacao": {
"id_observacao": 10,
"id_observacao_pai": null,
"id_grupo_economico": 1,
"observacao": "teste",
"dt_cadastro": "2021-03-30 17:04:26",
"dt_alteracao": "2021-03-30 17:06:20",
"children": [
{
"id_observacao": 14,
"id_observacao_pai": 10,
"id_grupo_economico": 1,
"observacao": "teste",
"dt_cadastro": "2021-03-30 17:06:16",
"dt_alteracao": "2021-03-30 17:06:16"
}
]
}
}
]
},
{
"id_produto": 5,
"id_empresa": 1,
"codigo": 4,
"codigo_integracao": "1243535",
"id_categoria": 15,
"descricao": "Agua Aguada Sem Gás 500ml",
"descricao_app": "Agua Aguada Sem Gás Teste nome 500ml",
"unidade_integracao": "UN",
"unidade_agrupada": 0,
"porcao": "0.00",
"preco_venda": "2.00",
"imagem": "img\/produtos\/empresa_1\/imagem\/produto_Agua_Aguada_Sem_Gás_500ml_1610716713.png",
"dt_cadastro": "2021-01-04 16:27:11",
"dt_alteracao": "2021-01-18 13:36:51",
"ativo": 1,
"disponivel_compra": 1,
"promocoes": [
{
"id_promocao_produto": 39,
"id_promocao": 4,
"id_produto": 5,
"id_empresa": 1,
"vr_promocional": null,
"qtd_compre": null,
"qtd_pague": null,
"dt_cadastro": "2021-03-11 15:46:25",
"dt_alteracao": "2021-03-11 15:46:25",
"tipo_promocao": "PRECO_FIXO"
},
{
"id_promocao_produto": 40,
"id_promocao": 8,
"id_produto": 5,
"id_empresa": 1,
"vr_promocional": null,
"qtd_compre": 4,
"qtd_pague": 2,
"dt_cadastro": "2021-03-11 17:05:35",
"dt_alteracao": "2021-03-11 17:05:35",
"tipo_promocao": "COMPRE_PAGUE"
}
],
"observacoes": []
}
]
}
HTTP Request
POST /api/v1/produtos
URL Parameters
Parameter | Status | Description |
---|---|---|
filtro |
optional | Nome/descrição ou código dos produtos. |
id_categoria |
optional | id da categoria. |
Buscar as categorias
Método utilizado para buscar as categorias da empresa logada.
Example request:
curl -X GET \
-G "localhost/api/v1/produtos/categorias" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/produtos/categorias"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'localhost/api/v1/produtos/categorias',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": [
{
"id_categoria": 86,
"id_categoria_pai": null,
"descricao": "teste",
"imagem": "img\/categorias_produto\/64c25db824bca287582828f414b11db0.png",
"dt_cadastro": "2020-11-12 15:34:26",
"dt_alteracao": "2020-11-12 16:18:52",
"ativo": 1,
"subcategorias": [
{
"id_categoria": 103,
"id_categoria_pai": 86,
"descricao": "teste",
"imagem": null,
"dt_cadastro": "2020-11-12 16:38:40",
"dt_alteracao": "2020-11-12 16:38:40",
"ativo": 1,
"qtd_produtos": 0
},
{
"id_categoria": 105,
"id_categoria_pai": 86,
"descricao": "teste",
"imagem": null,
"dt_cadastro": "2020-11-12 16:38:42",
"dt_alteracao": "2020-11-12 16:38:42",
"ativo": 1,
"qtd_produtos": 0
},
{
"id_categoria": 111,
"id_categoria_pai": 86,
"descricao": "teste",
"imagem": "\/img\/default-image.png",
"dt_cadastro": "2020-11-12 16:42:54",
"dt_alteracao": "2020-11-12 16:42:54",
"ativo": 0,
"qtd_produtos": 0
}
]
},
{
"id_categoria": 87,
"id_categoria_pai": null,
"descricao": "teste",
"imagem": "img\/categorias_produto\/2497d7e4f18377b2ef511c1f9f2fe284.png",
"dt_cadastro": "2020-11-12 15:34:36",
"dt_alteracao": "2020-11-12 15:34:36",
"ativo": 1,
"subcategorias": [
{
"id_categoria": 93,
"id_categoria_pai": 87,
"descricao": "teste",
"imagem": "\/img\/default-image.png",
"dt_cadastro": "2020-11-12 16:19:00",
"dt_alteracao": "2020-11-12 16:19:00",
"ativo": 1,
"qtd_produtos": 4
},
{
"id_categoria": 94,
"id_categoria_pai": 87,
"descricao": "teste",
"imagem": "\/img\/default-image.png",
"dt_cadastro": "2020-11-12 16:19:06",
"dt_alteracao": "2020-11-12 16:19:06",
"ativo": 1,
"qtd_produtos": 2
}
]
},
{
"id_categoria": 118,
"id_categoria_pai": null,
"descricao": "teste",
"imagem": "\/img\/default-image.png",
"dt_cadastro": "2020-11-25 09:27:43",
"dt_alteracao": "2020-11-25 09:27:43",
"ativo": 1,
"subcategorias": []
}
]
}
HTTP Request
GET /api/v1/produtos/categorias
Transações
Salvar dados do cartão de crédito
Método utilizado para salvar os dados do cartão para o cliente logado.
Example request:
curl -X POST \
"localhost/api/v1/transacoes/cartao" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"numero":"12345..16","cvv":"123","mes_expiracao":"12","ano_expiracao":"2021","nome_cartao":"Manoel da Silva"}'
const url = new URL(
"localhost/api/v1/transacoes/cartao"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"numero": "12345..16",
"cvv": "123",
"mes_expiracao": "12",
"ano_expiracao": "2021",
"nome_cartao": "Manoel da Silva"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'localhost/api/v1/transacoes/cartao',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'numero' => '12345..16',
'cvv' => '123',
'mes_expiracao' => '12',
'ano_expiracao' => '2021',
'nome_cartao' => 'Manoel da Silva',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": {
"retorno": "Cartão salvo com sucesso."
}
}
HTTP Request
POST /api/v1/transacoes/cartao
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
numero |
integer | required | Número do cartão |
cvv |
integer | required | Código de verificação do cartão (cvv) |
mes_expiracao |
integer | required | Mês de expiração no cartão |
ano_expiracao |
integer | required | Ano de expiração no cartão |
nome_cartao |
text | required | Nome no cartão |
Remover cartão do cliente
Método excluir para cartão do cliente logado
Example request:
curl -X DELETE \
"localhost/api/v1/transacoes/eaque/cartao" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/transacoes/eaque/cartao"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "DELETE",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'localhost/api/v1/transacoes/eaque/cartao',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": {
"id_cartao": 3,
"id_cliente": 31,
"mes_expiracao": "eyJpdiI6IllFOUs2ZWwwSGdDYT...",
"ano_expiracao": "eyJpdiI6ImZtQ1YrQVA3dnVuNl...",
"nome_cartao": "eyJpdiI6InBjTElYdWlHZGdcL3V0...",
"numero": "eyJpdiI6IjNsa0tZdlwvMkMxVHEwREJOS...",
"dt_cadastro": "2021-01-29 11:53:38",
"dt_alteracao": "2021-01-29 11:53:38"
}
}
Example response (404):
{
"success": false,
"error": "Cartão não encontrado.",
"code": 404
}
HTTP Request
DELETE /api/v1/transacoes/{idCartao}/cartao
URL Parameters
Parameter | Status | Description |
---|---|---|
idCartao |
required | id do cartão do cliente. |
Buscar cartões salvos
Método utilizado para buscar os cartões cadastrados do cliente logado.
Example request:
curl -X GET \
-G "localhost/api/v1/transacoes/cartoes" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/transacoes/cartoes"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'localhost/api/v1/transacoes/cartoes',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": [
{
"id_cartao": 1,
"id_cliente": 31,
"mes_expiracao": "12",
"ano_expiracao": "2020",
"nome_cartao": "Peterson Silva",
"numero": "**** **** **** **** 4562",
"dt_cadastro": "2021-02-09 09:27:26",
"dt_alteracao": "2021-02-09 09:27:26",
"bandeira": "outras"
},
{
"id_cartao": 2,
"id_cliente": 31,
"mes_expiracao": "12",
"ano_expiracao": "2020",
"nome_cartao": "Peterson Silva",
"numero": "**** **** **** **** 4560",
"dt_cadastro": "2021-02-09 09:27:34",
"dt_alteracao": "2021-02-09 09:27:34",
"bandeira": "outras"
},
{
"id_cartao": 3,
"id_cliente": 31,
"mes_expiracao": "12",
"ano_expiracao": "2020",
"nome_cartao": "Peterson Silva",
"numero": "**** **** **** **** 4560",
"dt_cadastro": "2021-02-09 09:29:02",
"dt_alteracao": "2021-02-09 09:29:02",
"bandeira": "visa"
},
{
"id_cartao": 4,
"id_cliente": 31,
"mes_expiracao": "12",
"ano_expiracao": "2020",
"nome_cartao": "Peterson Silva",
"numero": "**** **** **** **** 4560",
"dt_cadastro": "2021-02-09 09:29:11",
"dt_alteracao": "2021-02-09 09:29:11",
"bandeira": "mastercard"
},
{
"id_cartao": 5,
"id_cliente": 31,
"mes_expiracao": "12",
"ano_expiracao": "2020",
"nome_cartao": "Peterson Silva",
"numero": "**** **** **** **** 4560",
"dt_cadastro": "2021-02-09 09:29:20",
"dt_alteracao": "2021-02-09 09:29:20",
"bandeira": "outras"
},
{
"id_cartao": 6,
"id_cliente": 31,
"mes_expiracao": "12",
"ano_expiracao": "2020",
"nome_cartao": "Peterson Silva",
"numero": "**** **** **** **** 4560",
"dt_cadastro": "2021-02-09 09:30:04",
"dt_alteracao": "2021-02-09 09:30:04",
"bandeira": "discover"
},
{
"id_cartao": 7,
"id_cliente": 31,
"mes_expiracao": "12",
"ano_expiracao": "2020",
"nome_cartao": "Peterson Silva",
"numero": "**** **** **** **** 4560",
"dt_cadastro": "2021-02-09 09:30:25",
"dt_alteracao": "2021-02-09 09:30:25",
"bandeira": "mastercard"
}
]
}
Example response (404):
{
"success": false,
"error": "Nenhum cartão encontrado",
"code": 404
}
HTTP Request
GET /api/v1/transacoes/cartoes
Vantagens
Buscar vantagem do cliente logado
Método utilizado para buscar as vantagens que o cliente ativou no aplicativo.
Example request:
curl -X GET \
-G "localhost/api/v1/vantagens" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/vantagens"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'localhost/api/v1/vantagens',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": [
{
"dt_ativacao": "2020-02-02 00:00:00",
"status": "",
"qtd_utilizada": "1.000",
"cupom": {
"id_cupom": 6,
"id_empresa": 1,
"codigo": "1",
"codigo_integracao": "1",
"descricao": "TESTE 1",
"tipo_promocional": "TESTE",
"qtd_limite": 1,
"inicio_vigencia": "2020-03-20 00:00:00",
"fim_vigencia": "2021-03-15 00:00:00",
"limite_ativacoes": 10,
"imagem": "1",
"ativo": 1,
"dt_cadastro": "2020-03-15 00:00:00",
"perc_desconto": "10.000",
"categoria": {
"descricao": "salgados"
}
}
}
]
}
HTTP Request
GET /api/v1/vantagens
Buscar vantagens por CPF
Método utilizado para buscar as vantagens que o cliente ativou no aplicativo filtrado por cpf.
OBS: Salve o id do cliente para realizar o cadastro da compra posteriormente
Example request:
curl -X GET \
-G "localhost/api/v1/vantagens/architecto" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/vantagens/architecto"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'localhost/api/v1/vantagens/architecto',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": {
"id_cliente": 9,
"ativo": 1,
"inscricao_federal": "43279782805",
"vantagens": [
{
"dt_ativacao": "2020-02-02 00:00:00",
"status": "",
"id_vantagem": 6,
"qtd_utilizada": "2.000",
"qtd_disponivel": "1.000",
"cupom": {
"id_cupom": 6,
"id_empresa": 1,
"codigo": "1",
"codigo_integracao": "1",
"descricao": "TESTE 1",
"tipo_promocional": "TESTE",
"qtd_limite": 3,
"inicio_vigencia": "2020-03-20 00:00:00",
"fim_vigencia": "2021-03-15 00:00:00",
"limite_ativacoes": 10,
"imagem": "1",
"ativo": 1,
"dt_cadastro": "2020-03-15 00:00:00",
"perc_desconto": "10.000",
"categoria": {
"descricao": "salgados"
}
}
}
]
}
}
Example response (404):
{
"success": false,
"error": "Cliente não encontrado.",
"code": 404
}
HTTP Request
GET /api/v1/vantagens/{cpf}
URL Parameters
Parameter | Status | Description |
---|---|---|
cpf |
required | cpf informado na compra. |
Ativar uma vantagem
Utilize este método para ativar a vantagem do cupom escolhido.
Example request:
curl -X POST \
"localhost/api/v1/vantagens/cupom/doloremque" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/vantagens/cupom/doloremque"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "POST",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'localhost/api/v1/vantagens/cupom/doloremque',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (201):
{
"success": false,
"error": "Cliente não encontrado.",
"code": 404
}
Example response (404):
{
"success": true,
"data": {
"dt_ativacao": {
"date": "2020-04-03 10:32:07.732579",
"timezone_type": 3,
"timezone": "America\/Sao_Paulo"
},
"status": "ATIVADO",
"id_vantagem": 99
}
}
Example response (409):
{
"success": false,
"error": "Cupom já ativado.",
"code": 409
}
HTTP Request
POST /api/v1/vantagens/cupom/{idCupom}
URL Parameters
Parameter | Status | Description |
---|---|---|
idCupom |
required | id do cupom. |
Lista Compra
Buscar Listas de compras
Método utilizado para buscar as listas de compras que o cliente cadastrou no aplicativo.
Example request:
curl -X GET \
-G "localhost/api/v1/lista-compra/consulta/{id_cliente}/{id_empresa}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/lista-compra/consulta/{id_cliente}/{id_empresa}"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'localhost/api/v1/lista-compra/consulta/{id_cliente}/{id_empresa}',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": [
{
"id_lista": 8,
"id_cliente": 60,
"id_empresa": 1,
"data_cadastro": "2022-11-03 14:59:37",
"nome_lista": "lista Um",
"itens": [
{
"id_lista": 8,
"id_produto": 1,
"quantidade": "6.00"
},
{
"id_lista": 8,
"id_produto": 2,
"quantidade": "12.00"
}
]
}
]
}
HTTP Request
GET /api/v1/lista-compra/consulta/{id_cliente}/{id_empresa}
Parameter | Type | Status | Description |
---|---|---|---|
id_cliente |
int | required | Id do cliente |
id_empresa |
int | required | Id da empresa |
Inserir lista de compra
Utilize este método para inserir uma lista de compra.
Example request:
curl -X POST \
"localhost/api/v1/lista-compra/inserir" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/lista-compra/inserir"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"nome_lista": String,
"itens":
[
{
"qtde":decimal,
"id_produto":int
}
]
}
};
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'localhost/api/v1/lista-compra/inserir',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'nome_lista' => String,
'itens' => [{
'qtde' => Decimal,
'id_produto' => Int,
}],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data":[]
}
HTTP Request
POST /api/v1/lista-compra/inserir
Body Parameters
Parameter | type | Status | Description |
---|---|---|---|
nome_lista |
String | required | Nome da lista de compra |
itens |
Array of objects | optional | Itens da lista de compra |
Alterar lista de compra
Utilize este método sempre que desejar alterar uma lista de compra. Este método permite adicionar novos itens a lista de compra
Example request:
curl -X PUT \
"localhost/api/v1/lista-compra/atualizar" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"id_lista":int,"itens":[{"qtde":decimal, "id_produto":int}]}'
const url = new URL(
"localhost/api/v1/lista-compra/atualizar"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
let body = {
"id_lista": Int,
"nome_lista": String,
"itens":
[
{
"qtde":decimal,
"id_produto":int
}
]
}
}
fetch(url, {
method: "PUT",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->put(
'localhost/api/v1/lista-compra/atualizar',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
'json' => [
'id_lista' => 'String',
'nome_lista' => 'String',
'itens' => [{
'qtde' => 'Decimal,
'id_produto' => 'Int',
}],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": []
}
}
HTTP Request
PUT /api/v1/lista-compra/atualizar
Body Parameters
Parameter | Type | Status | Description |
---|---|---|---|
id_lista |
int | required | Id da lista de compra |
nome_lista |
String | optional | Nome da lista de compra |
itens |
Array of objects | optional | Itens da lista de compra |
Remover lista de compra
Utilize este método para remover uma lista de compra.
Example request:
curl -X DELETE \
"localhost/api/v1/lista-compra/delete-lista/{id_lista}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/lista-compra/delete-lista/{id_lista}"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "DELETE",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'localhost/api/v1/lista-compra/delete-lista/{id_lista}',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": []
}
HTTP Request
DELETE /api/v1/lista-compra/delete-lista/{id_lista}
Request Parameters
Parameter | Type | Status | Description |
---|---|---|---|
id_lista |
int | required | Id da lista de compra |
Remover item da lista de compra
Utilize este método para remover um item da lista de compra.
Example request:
curl -X DELETE \
"localhost/api/v1/lista-compra/delete-itens/{id_lista}/{id_produto}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
const url = new URL(
"localhost/api/v1/lista-compra/delete-itens/{id_lista}/{id_produto}"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "DELETE",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->delete(
'localhost/api/v1/lista-compra/delete-itens/{id_lista}/{id_produto}',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"success": true,
"data": []
}
HTTP Request
DELETE /api/v1/lista-compra/delete-itens/{id_lista}/{id_produto}
Request Parameters
Parameter | Type | Status | Description |
---|---|---|---|
id_lista |
int | required | Id da lista de compra |
id_produto |
int | required | Id do produto |