Você está na página 1de 12

Pitzi API Docs

Todas as chamadas são autenticadas via HTTP Basic. Cada parceiro recebe um usuário e senha em
forma de chaves longas formadas por letras e números. Todo o tráfego de dados utiliza o formato
JSON(com exceção das chamadas para PDF).

Em ambiente de produção, toda a comunicação deve ser feita exclusivamente sobre SSL (protocolo
https).

URL base
● Ambiente de testes: https://homolog.pitzi.com.br/api
● Ambiente de produção: https://api.pitzi.com.br/api

Registro de assinatura já paga na loja


End-point

POST /orders - registro de nova assinatura

Exemplo de JSON que deve ser enviado:

{
"order":{
"name":"Jose da Silva",
"phonenumber":"11999991010",
"email":"dev@pitzi.com.br",
"model":"iPhone 5 16 GB",
"imei":"1234567890123",
"plan":1,
"planprice":300.50,
"coo":"030662",
"date":"2013-11-21",
"payment_method":"upfront",
"installments":1,
"external_id":"12020",
"store_external_id":"1100",
"fiscal_document_number":"000928",
"seller_identifier":"22233344400",
"customer_document_number":"12345678908",
"customer_birthdate":"1987-09-27",
"invoice_number":"48502",
"invoice_date":"01-06-2017",
"customer_address_street":"Rua Marte",
"customer_address_state":"MG",
"customer_address_city":"Poços de Caldas",
"customer_address_complement":"casa 2",
"customer_address_number":"71",
"customer_address_zipcode":"37713172",
"customer_address_neighborhood":"Centro",
"device_value_paid":1390.90
}
}

Significado dos atributos


● name: nome do cliente; [String]
● phonenumber: telefone do cliente [mandatório]; [String]
● email: e-mail do cliente [mandatório]; [String]
● model: modelo do celular [mandatório]; [String]
● imei: IMEI ou serial (tablet) do dispositivo [mandatório]; [String]
● plan: ID do plano. Consultar a Pitzi; [mandatório] [Integer]
● planprice: preço pago pelo plano de proteção [mandatório]; [Float]
● coo: Contador de Ordem de Operação; [String]
● date: data da venda (formato: aaaa-mm-dd); [mandatório] [String]
● payment_method: método de pagamento [mandatório] [upfront: débito/dinheiro | financed:
crédito]; [String]
● installments: número de parcelas [mandatório] [1 para pagamento à vista]; [Integer] [de 1 a 12]
● external_id: número do pedido na loja (ver nota N1 abaixo); [String]
● store_external_id: número de identificação da Loja (ver nota N2 abaixo); [String]
● fiscal_document_number: número do cupom fiscal ou nota fiscal; [String]
● seller_identifier: CPF do vendedor; [String]
● customer_document_number: CPF do cliente. N3 [String]
● customer_birthdate: Data de nascimento do cliente N3 [String][aaaa-mm-dd]
● invoice_number: Número da Nota Fiscal de da compra do aparelho N3 [String]
● invoice_date: Data da Nota Fiscal de da compra do aparelho N3 [String][aaaa-mm-dd]
● device_value_paid: Valor pago no aparelho(sem subsídios da loja/operadora) N3 [Float]
● customer_address_street: Rua N3 [String]
● customer_address_state: Estado N3 [String]
● customer_address_city: Cidade N3 [String]
● customer_address_complement: Complemento do endereço N3 [String]
● customer_address_number: Número do endereço N3 [String]
● customer_address_zipcode: CEP do endereço N3 [String]
● customer_address_neighborhood: Bairro N3 [String]

N1: Se especificado, o campo external_id deverá ser único inclusive considerando as filiais. Ex: Se a
matriz é responsável por enviar as vendas de todas as filiais, poderia acontecer de existir duas ou
mais vendas com o mesmo número de pedido. Neste caso, uma alternativa seria concatenar o ID
da filial ao número do pedido para assim tornar o campo único.

N2: O campo store_external_id deverá ser enviado somente se desejar atrelar a respectiva venda
com uma Loja(filial) em particular. Caso contrário, a venda será vinculada com a Loja já atrelada na
credencial de acesso utilizada na chamada da API.

N3: Campos obrigatórios quando o plano for de Roubo e Furto


Resposta

Em caso de sucesso, o sistema responde com HTTP status 201 e o seguinte JSON:

{
"order":{
"id":96984,
"email":"dev@pitzi.com.br",
"payment_method":"financed"
}
}

Em caso de falha, o sistema responde com HTTP status 400 e o seguinte JSON:

{
"status": "Ocorreu um problema"
}

Para obter os termos de uso em PDF, faça a seguinte chamada


End-point

GET service_terms/:order_id

Resposta

Em caso de sucesso, o sistema responde com HTTP status 200 e o PDF com os termos de uso.

Em caso de falha (pedido não existente), o sistema responde com HTTP status 404 e o seguinte
JSON:

{
"status": "Ocorreu um problema"
}

Registro de assinatura para pagamento no site da Pitzi


End-point

POST /representant_orders - registro de nova assinatura

Exemplo de JSON que deve ser enviado:

{
"representant_order":{
"model":"Apple iPhone 4 32GB",
"phonenumber":"11999991010",
"email":"cliente@email.com.br",
"imei":"457384958710298",
"seller_identifier":"22233344400",
"price":300.50,
"external_id":"12020",
"installments":6,
"customer_document_number":"1234567890",
"plan":1
}
}

Significado dos atributos:


● model: nome completo do modelo do dispositivo; [String]
● phonenumber: telefone do cliente [mandatório]; [String]- email: e-mail do cliente [mandatório];
[String]
● imei: IMEI ou serial (tablet) do dispositivo [mandatório]; [String]
● seller_identifier: identificação do vendedor; [String]
● price: preço total da venda [mandatório]; [Float]
● external_id: número do pedido na loja; [String]
● installments: quantidade de parcelas da venda; [Integer] [de 1 a 12]
● customer_document_number: CPF do cliente. [String]
● plan: ID do plano. Plano padrão informar: 1; [Integer]

Resposta:

Em caso de sucesso, o sistema responde com HTTP status 201 e o seguinte JSON:

{
"payment_url":
"https://pitzi.com.br/representante/assinatura/6575/autenticar?auth_token=6f59e6284
5c14cd48dcd04a45c54e708"
}

Significado dos atributos


● payment_url: URL que deverá ser utilizada para completar o pagamento da assinatura
previamente criada. O parâmetro auth_token será utilizado para realizar a autenticação.

Em caso de falha, o sistema responde com HTTP status 400 e o seguinte JSON:

{
"status": "Ocorreu um problema",
"message": "Verifique os dados postados"
}
Cancelamento de assinatura
End-point

DELETE /orders/:order_id

Resposta

Sucesso

Em caso de sucesso, o sistema responde com HTTP status 200 e o seguinte JSON:

{
"status": "canceled"
}

Falha

Quando o prazo de cancelamento(7 dias corridos a partir da data da venda) já foi excedido, o
sistema responde com HTTP status 409 e o seguinte JSON:

{
"status": "not canceled",
"message": "can't be canceled after cancellation deadline"
}

Termo de Cancelamento de assinatura


End-point

Utilizando o header content-type como application/pdf

GET /cancellation_term/:order_id

Exemplo de chamada

GET https://api.pitzi.com.br/api/cancellation_term/350890.pdf

Resposta

Sucesso

Em caso de sucesso, o sistema responde com HTTP status 200 e o PDF com o termo de
cancelamento.

Falha
Caso a assinatura não seja encontrada ou não esteja cancelada de fato, o sistema responde com
HTTP status 404.

Consulta de assinaturas
Consulta de uma assinatura por IMEI

End-point

GET /orders/search/?imei=xxx

Exemplo de chamada

GET https://api.pitzi.com.br/api/orders/search?imei=3534900568901

Consulta de uma assinatura por ID

End-point

GET /orders/:order_id

Exemplo de chamada

GET https://api.pitzi.com.br/api/orders/485215

Resposta

Em caso de sucesso, o sistema responde com HTTP status 200 e o seguinte JSON:

{
order: {
id: 485215,
subscribed_at: "21-06-2017",
active: true,
payment_confirmed: true,
device_verification_status: "confirmed",
imei: "354015085563476",
plan_id: 40,
plan_name: "SEGURADORA",
store_external_id: "",
seller_code: "126",
seller_document_number: "91358148633",
payment_method: "upfront",
installments: 1,
device_value_paid: 899,
plan_price: 461.67,
invoice_number: "024092",
invoice_date: "21-06-2017",
customer_document_number: "11993457682",
customer_name: "João Silvas",
customer_email: "joao@hotmail.com",
customer_phonenumber: "(31) 993472695",
customer_birthdate: "1994-10-09",
customer_address_street: "Rua José de Castro",
customer_address_state: "MG",
customer_address_city: "Belo Horizonte",
customer_address_complement: "apto 804",
customer_address_number: "135",
customer_address_zipcode: "31530190",
customer_address_neighborhood: "Santo Clara",
product_model: "Samsung Galaxy J7 prime SM-G610M 32GB DUAL",
product_eans: [
"7892509093071",
"7892509091244",
"7899403632764"
],
product_tim_codes: [
"4011891",
"4011895",
]
}
}

Significado dos atributos

● subscribed_at: data da assinatura


● active: indica se a assinatura está ativa na Pitzi
● payment_confirmed: indica se o pagamento foi confirmado(inclusive para boletos)
● device_verification_status: indica o status da validação do aparelho. [pending, in_analysis,
confirmed, rejected]
● imei: imei do aparelho
● plan_id: id do plano da assinatura
● plan_name: nome do plano assinatura
● store_external_id: id ou código único da assinatura do parceiro
● seller_code: código do vendedor
● seller_document_number: cpf do vendedor
● payment_method: método de pagamento
● installments: número de parcelas
● device_value_paid: valor pago no aparelho do cliente
● plan_price: valor pago na assinatura
● invoice_number: número da nota fiscal
● invoice_date: data da nota fiscal
● customer_document_number: cpf do cliente
● customer_name: nome do cliente
● customer_email: e-mail do cliente
● customer_phonenumber: celular do cliente
● customer_birthdate: data de nascimento do cliente
● customer_address_street: rua
● customer_address_state: estado
● customer_address_city: cidade
● customer_address_complement: complemento
● customer_address_number: número
● customer_address_zipcode: cep
● customer_address_neighborhood: bairro
● product_model: descrição do aparelho
● product_eans: lista de eans vinculados ao aparelho
● product_tim_codes: lista de tim codes vinculados ao aparelho

Se o produto não for encontrado. o sistema responde com HTTP status 404 e o seguinte JSON:

{
"status": "Not found"
}

Busca de modelos cobertos e preço do plano


Busca do produto por código EAN:

End-point

GET /products/ean/:valor_ean

Exemplo de chamada

GET https://api.pitzi.com.br/api/products/ean/7892509075701

Resposta

Em caso de sucesso, o sistema responde com HTTP status 200 e o seguinte JSON:

{
"product": {
"id": 553,
"name": "Samsung Galaxy S5 SM-G900",
"price": 35.0
}
}

Significado dos atributos

● id: código do produto no sistema da Pitzi;


● name: nome completo do modelo;
● price: valor da mensalidade do plano (para planos anuais, multiplicar por 12).
Se o produto não for encontrado. o sistema responde com HTTP status 404 e o seguinte JSON:

{
"status": "Not found"
}

Busca do produto por nome do modelo

End-point

GET /products/search - busca de produto por nome

Exemplo de chamadas

GET https://api.pitzi.com.br/api/products/search?q=Samsung Galaxy S5 G900

Dica: quanto mais completo o parâmetro enviado, melhor é a precisão da busca (sempre que
possível incluir nome do fabricante, número do modelo etc)

Resposta

Em caso de sucesso, o sistema responde com HTTP status 200 e o seguinte JSON:

{
"product": {
"id": 553,
"name": "Samsung Galaxy S5 SM-G900",
"price": 35.0
}
}

Significado dos atributos

● id: código do produto no sistema da Pitzi;


● name: nome completo do modelo;
● price: valor da mensalidade do plano (para planos anuais, multiplicar por 12).

Se o produto não for encontrado. o sistema responde com HTTP status 404 e o seguinte JSON:

{
"status": "Not found"
}

Busca do produto por código TIMCODE(TM) ou EAN:

End-point
GET /products/tim_code_search

Exemplo de chamada

GET
https://api.pitzi.com.br/api/products/tim_code_search?tim_code=89456?ean=7892509075
701&plan=25

Significado dos parâmetros

● tim_code [opcional]: Código TIM referente ao produto


● ean [opcional]: EAN do produto que deseja buscar. Será usado somente se o produto não for
encontrado com o TM
● plan [opcional]: ID do plano que pretende consultar os preços. Se não informado, será usado o
plano padrão configurado na loja do parceiro.

Resposta

Em caso de sucesso, o sistema responde com HTTP status 200 e o seguinte JSON:

{
"product": {
"id": 553,
"name": "Samsung Galaxy S5 SM-G900",
"price": 35.0,
"product_fee": 75.0
}
}

Significado dos atributos

● id: código do produto no sistema da Pitzi;


● name: nome completo do modelo;
● price: valor da mensalidade do plano (para planos anuais, multiplicar por 12).
● product_fee: valor da taxa de serviço

Se o produto não for encontrado. o sistema responde com HTTP status 404 e o seguinte JSON:

{
"status": "Not found"
}

Registro de leads
End-point

POST /leads - registro de novo lead


Exemplo de JSON que deve ser enviado:

{
"lead":{
"type":"new_phone",
"phonenumber":"11999991010",
"email":"dev@pitzi.com.br",
"model":"iPhone 5 16 GB",
"brand":"Apple",
"name": "Dev Pitzi",
"document_number": "11111111111",
"address":"Rua Pitzi, 0 Centro",
"city":"São Paulo",
"state":"SP",
"new_phone": {
"purchased_at": "2015-08-25",
"price": 150.5,
"payment_method": "upfront"
}
}
}

Significado dos atributos


● type: nome do lead [mandatório] [new_phone: compra de aparelho | broken_phone: reparo de
aparelho]; [String]
● email: e-mail do lead [mandatório]; [String]
● model: modelo do celular; [String]
● brand: marca do celular; [String]
● name: nome do lead; [String]
● phonenumber: telefone do lead; [String]
● document_number: CPF do lead. [String]
● address: endereço do lead; [String]
● city: cidade do lead; [String]
● state: estado do lead; [String]
● new_phone: informações adicionais para o tipo new_phone; [Hash]
❍ purchased_at: data da venda (formato: aaaa-mm-dd); [String]
❍ price: preço da venda; [Float]
❍ payment_method: método de pagamento [upfront: débito/dinheiro | financed: crédito]; [String]

Resposta

Em caso de sucesso, o sistema responde com HTTP status 201 e o seguinte JSON:

{
"lead":{
"id":17853,
"email":"dev@pitzi.com.br",
"active":true
}
}

Em caso de falha, o sistema responde com HTTP status 400 e o seguinte JSON:

{
"status": "Ocorreu um problema"
}

Envio de Fotos e Dados do aparelho para verificação


End-point

POST /orders/:order_id/device_verification

Exemplo de JSON que deve ser enviado:

{
"device_diagnostics":
{"VOLUME_DOWN":0,"VOLUME_UP":0,"KEYCODE_BACK":0,"HEADSET_PLUGGED":0,"USB_CHARGE":0,
"AC_CHARGE":1},
"device_metadata":
[{"BOARD":"universal7870","BOOTLOADERTLOADER":"G610MUBU1AQB3","CPU_ABI":"armeabi-v7
a","CPU_ABI2":"armeabi","DEVICE":"on7xelte","DISPLAY":"MMB29K.G610MUBU1AQB3","FINGE
RPRINT":"samsung/on7xelteub/on7xelte:6.0.1/MMB29K/G610MUBU1AQB3:user/release-keys",
"HARDWARE":"samsungexynos7870","HOST":"SWHC3813","ID":"MMB29K","MANUFACTURER":"sams
ung","MODEL":"SM-G610M","PRODUCT":"on7xelteub","SERIAL":"330022c36d17b303","USER":"
dpi"},{"DEVICE_ID":"354015085193761","PHONE_NUMBER":"+5519588976764","SOFTWARE_VERS
ION":"01","OPERATOR_NAME":"Oi","SIM_COUNTRY_CODE":"br","SIM_OPERATOR":"Oi","SIM_SER
IAL_NO":"8955311929925234487","SUBSCRIBER_ID":"724311927467187","NETWORK_TYPE":"UMT
S","PHONE_TYPE":"GSM"},{"HEALTH":2,"ICON_SMALL":17303454,"LEVEL":88,"PLUGGED":0,"PR
ESENT":true,"SCALE":100,"STATUS":3,"TECHNOLOGY":"Li-ion","TEMPERATURE":234,"VOLTAGE"
:4192}],
"device_picture_urls": [ "https://s3.amazonaws.com/foo/bar1.jpg",
"https://s3.amazonaws.com/foo/bar2.jpg" ],
"device_params": {"product_name": "Samsung SM-G610M", "imei": "353490005916877" }
}

Resposta

Em caso de sucesso, o sistema responde com HTTP status 201.

Em caso de falha, o sistema responde com HTTP status 400 e o seguinte JSON:

{
"status": "Ocorreu um problema"
}

Você também pode gostar