Integração via webhook com a Perfect Pay
Nosso webhook é enviado assim que ocorre algum dos eventos escolhidos na hora de cadastro do Webhook.
Para criar esta integração, é necessário conhecimento em programação.
Formato de envio dos dados: JSON
Nome do parâmetro
|
Descrição
|
Formato e tamanho
|
token | Token para identificar o postback recebido pela PerfectPay | String(32) |
code | Código identificador da venda | String(255) |
sale_amount | Valor da venda ( valor do plano + frete) | Decimal(8,2) Ex: 226.9 |
currency_enum | Origem da moeda utilizada na compra |
Small Integer
Possíveis valores: 1 => BRL |
coupon_code | Identificador do cupom utilizado | String(255) |
installments | Número de parcelas | Integer(4) |
installment_amount | Valor da parcela | Decimal(8,2) |
shipping_type_enum | Status do frete |
Small Integer
Possíveis valores: 1 => frete grátis,
2 => frete fixo
|
shipping_amount | Valor do frete | Decimal(8,2) |
payment_method_enum | Método de pagamento | Número até 4 dígitos Possíveis valores: 0 => 'none', 1 => 'visa', 2 => 'bolbradesco', 3 => 'amex', 4 => 'elo', 5 => 'hipercard', 6 => 'master', 7 => 'melicard', 8 => 'free_price', |
payment_type_enum | Tipo de pagamento | Small integer Possíveis valores: 0 => 'none', 1 => 'credit_card', 2 => 'ticket', // boleto bancário 3 => 'paypal', 4 => 'credit_card_recurrent', 5 => 'free_price', 6 => 'credit_card_upsell', |
billet_url | URL do boleto | String(255) |
billet_number | Linha digitável do boleto | String(255) |
billet_expiration | Data de expiração do boleto | DateTime |
quantity | Quantidade produtos | Integer(4) |
sale_status_enum | Status da venda |
Small Integer 0 => 'none', 1 => 'pending', // boleto pendente 2 => 'approved', // venda aprovada boleto ou cartão 3 => 'in_process', // em revisão manual 4 => 'in_mediation', // em moderação 5 => 'rejected', // rejeitado 6 => 'cancelled', // cancelado do cartão 7 => 'refunded', // devolvido 8 => 'authorized', // autorizada 9 => 'charged_back', // solicitado charge back 10 => 'completed', // 30 dias após a venda aprovada 11 => 'checkout_error', // erro durante checkout 12 => 'precheckout', // abandono 13 => 'expired', // boleto expirado 16 => 'in_review', // em análise |
sale_status_detail | Detalhe do status da venda. | String(255) |
date_created | Data do pedido | DateTime Ex: 2019-04-10 18:50:56 |
date_approved | Data de aprovação | DateTime Ex: 2019-04-10 18:50:56 |
product |
Código identificador do produto | String(255) |
product ->name |
Nome do produto que foi adquirido | String(255) |
product ->external_reference |
Código externo do produto para uso em plataformas externas | String(255) |
product ->garantee |
Garantia do produto | Integer(4) |
plan ->code |
Código identificador do plano | String(255) |
plan ->name |
Nome do plano adquirido | String(50) |
plan ->quantity |
Quantidade adquirida | Integer(11) |
plan_itens | Quando possuem itens adicionais entregues ao produto | array() |
customer ->customer_type_enum |
Tipo pessoa física ou Jurídica |
Integer(4) 1 => 'physics', 2 => 'juridical', |
customer ->full_name |
Nome completo do comprador | String(255) |
customer |
E-mail do comprador | String(255) |
customer ->identification_type |
Tipo de documentom que varia de acordo com a nacionalidade e natureza jurídica do comprador | String(20) Ex: CPF ou CNPJ para compradores brasileiros. |
customer ->identification_number |
CPF ou CNPJ usado do comprador | String(45) |
customer ->birthday |
Data de Nascimento do comprador | Date |
customer ->phone_area_code |
Código área do telefone do comprador | String(15) |
customer ->phone_number |
Número telefone do comprador | String(15) |
customer ->country |
País do comprador | String(20) |
customer ->state |
Estado do comprador | String(45) |
customer ->city |
Cidade do comprador | String(255) |
customer ->zip_code |
Código Postal do comprador | String(50) |
customer ->street_name |
Endereço do comprador | String(255) |
customer ->street_number |
Número endereço do comprador | String(50) |
customer ->complement |
Complemento do endereço do comprador | String(100) |
customer ->district |
Cidade do comprador | String(100) |
metadata ->src |
Identificador customizado pelo usuário | String(100) |
metadata ->utm_source |
Identificador customizado pelo usuário | String(100) |
metadata ->utm_medium |
Identificador customizado pelo usuário | String(100) |
metadata ->utm_campaign |
Identificador customizado pelo usuário | String(10) |
metadata ->utm_term |
Identificador customizado pelo usuário | String(100) |
metadata ->utm_content |
Identificador customizado pelo usuário | String(100) |
metadata ->utm_perfect |
Identificador customizado pelo usuário | String(100) |
webhook_owner | Code do usuário que configurou para receber esse Webhook | String(100) |
commission | Podem existir n comissões para cada venda | array() |
commission ->affiliation_code |
Código do Afiliado | String(100) |
commission |
Tipo de afiliação |
Small Integer 0 => 'platform',//'Plataforma', 1 => 'producer',//'Produtor', 2 => 'co_producer',//'Co-Produtor', 3 => 'affiliate_management',//'Gerente de Afiliados', 4 => 'partner',//'Parceiro', 5 => 'affiliate',//'Afiliado', 6 => 'premium', // 'Prêmio' 7 => 'provider', // 'Fornecedor' |
commission ->name |
Nome do afiliado | String(255) |
commission |
E-mail do Afiliado | String(255) |
commission ->identification_number |
CPF ou CNPJ do afiliado | String(100) |
commission ->commission_amount |
Código do Afiliado | String(100) |
marketplaces | Podem existir n marketplaces para cada venda | array() |
marketplaces ->{code} ->name |
{code} - código referente ao marketplace atrelado |
String(100) |
marketplaces ->{code} ->itens |
Valor total cobrado referente a quantidade de itens vendidos Ex. Venda de encapsulados, tem um valor específico para cada pote vendido, esse valor já vem calculado quantidade de itens no plano vendido x valor por item cobrado pelo marketplace. |
double(8,2) |
marketplaces ->{code} ->sale |
Valor total cobrado referente ao pedido Ex. Venda de encapsulados, tem um valor específico para cada pedido. Se for configurado R$25 por pedido para custo de envio, será cobrado R$25 por pedido. |
double(8,2) |
{
"token" : "7378fa24f96b38a3b1805d7a6887bc82",
"code" : "PPCPMTB58MNF4E",
"sale_amount" : 385,
"currency_enum" : 1,
"coupon_code" : null,
"installments" : 12,
"installment_amount" : null,
"shipping_type_enum" : 1,
"shipping_amount" : null,
"payment_method_enum" : 4,
"payment_type_enum" : 1,
"billet_url" : "",
"billet_number" : null,
"billet_expiration" : null,
"quantity" : 5,
"sale_status_enum" : 0,
"sale_status_detail" : "checkout_saved",
"date_created" : "2019-03-09 08:24:02",
"date_approved" : null,
"product" : {
"code" : "PPPB3A07",
"name" : "Herus Caps",
"external_reference": "42433",
"guarantee" : 30
},
"plan" : {
"code" : "PPLQQ9Q9R",
"name" : "Herus Caps | 3 potes + 2 potes gratis",
"quantity": 5
},
"plan_itens" : [],
"customer" : {
"customer_type_enum" : 1,
"full_name" : "USER EXAMPLE",
"email" : "user_example2019@hotmail89254",
"identification_type" : "CPF",
"identification_number": "57856874587",
"birthday" : "2020-08-28",
"phone_area_code" : "47",
"phone_number" : "9965568558",
"street_name" : "Rua Example Street",
"street_number" : "54",
"district" : "Example",
"complement" : "",
"zip_code" : "65875-564",
"city" : "Example City",
"state" : "RJ",
"country" : "BR"
},
"metadata" : {
"src" : null,
"utm_source" : null,
"utm_medium" : null,
"utm_campaign": null,
"utm_term" : null,
"utm_content" : "Example+User-seq1-ba",
"utm_perfect" : null
},
"webhook_owner" : "PPAKIOL",
"commission" : [
{
"affiliation_code" : "PPAJFTR",
"affiliation_type_enum": 5,
"name" : "USER EXAMPLE NAME",
"email" : "[email protected]",
"identification_number": "07958658745",
"commission_amount" : 0
},
{
"affiliation_code" : "PPAGSDE",
"affiliation_type_enum": 1,
"name" : "User Affiliation Example",
"email" : "[email protected]",
"identification_number": "08745785448",
"commission_amount" : 440.28
},
{
"name" : "PerfectPay",
"commission_amount" : 53.72,
"affiliation_type_enum": 0
}
],
"marketplaces":{
"PPMPCJI1G1":{
"name":"HubSmart",
"itens":-9.5,
"sale":-26
}
}
}