Os gatilhos de recorrência são todos os gatilhos de Assinatura, Parcelamento inteligente e Parcelamento por boleto e pix. Listados em uma categoria especial no piloto automático chamada "Recorrências".
As variáveis dos gatilhos de recorrência são diferentes das demais categorias, como "Pagamentos" e "Engajamentos" observadas aqui, dessa forma, tanto o payload utilizado na requisição via webhook, como as variáveis utilizadas no conteúdo de email, são diferentes.
Variáveis do tipo "recurrency"
Variáveis com prefixo "recurrency" são as variáveis que trazem informações a respeito da recorrência adquirida pelo comprador.
Exemplo: é um parcelamento inteligente, assinatura, parcelamento por boleto ou pix? A variável {{recurrencyType}} vai trazer essa informação.
{{recurrencyId}} | Identificador único da recorrência |
{{recurrencyStatus}} | Status atual da recorrência |
{{recurrencyCanceledBy}} | Identificação de quem cancelou a recorrência |
{{recurrencyAmount}} | Valor total bruto do pagamento da recorrência |
{{recurrencyPeriod}} | Período da recorrência |
{{recurrencyNextInvoiceAt}} | Data da próxima fatura |
{{recurrencyCreatedAt}} | Data de criação da recorrência |
{{recurrencyTotalCollected}} | Total bruto coletado até o momento |
{{recurrencyExpirationAt}} | Data de expiração da recorrência |
{{recurrencyExpired}} | Indicador se a recorrência expirou (true/false) |
{{recurrencyMaxCycles}} | Limite de frequência para a recorrência |
{{recurrencyCycleRestriction}} | Tipo de frequência da recorrência (limited ou unlimited) |
{{recurrencyPaidInstallments}} | Quantidade de parcelas pagas |
{{recurrencyAllowOverdueAccess}} | Indicação se o acesso é permitido em caso de pagamento atrasado |
{{recurrencyType}} | Tipo de recorrência |
{{recurrencyCancellationReason}} | Motivo do cancelamento da recorrência |
{{recurrencyCanceledAt}} | Data do cancelamento da recorrência |
{{recurrencyOverdueCount}} |
Contagem de pagamentos com status overdue ou refused |
Variáveis do tipo "Buyer"
Variáveis com prefixo "buyer" são as variáveis que trazem informações a respeito do comprador.
Exemplo: Como vou identificar o meu aluno? As variáveis {{buyerEmail} ou {{buyerStudentUid}} vão te ajudar a conseguir essa informação.
{{buyerId}} | Identificador único do comprador |
{{buyerEmail}} | Endereço de email do comprador |
{{buyerStudentUid}} | Identificador único universal do aluno |
{{buyerAddressNumber}} | Número do endereço do comprador |
{{buyerStreetAddress}} | Rua do endereço do comprador |
{{buyerCity}} | Cidade do comprador |
{{buyerComplement}} | Complemento do endereço |
{{buyerDDI}} | Código DDI do telefone |
{{buyerDistrict}} | Bairro do comprador |
{{buyerDocumentType}} | Tipo de documento (CPF/CNPJ) |
{{buyerFullName}} | Nome completo do comprador |
{{buyerPhone}} | Número de telefone do comprador |
{{buyerPhoneRaw}} | Número de telefone do comprador sem formatação |
{{buyerState}} | Estado do comprador |
{{buyerZipCode}} | Código postal do comprador |
{{buyerCreatedAt}} | Data de criação do registro do comprador |
{{buyerDocumentNumber}} | Identificador do documento do comprador |
Variáveis do tipo "Offer"
Variáveis com prefixo "offer" são as variáveis que trazem informações a respeito da oferta adquiria pelo comprador.
Exemplo: Como vou identificar a oferta adquira? A variável {{offerTitle}} vai ter ajudar a conseguir essa informação.
{{offerId}} | Identificador único e imutável da oferta |
{{offerTitle}} | Título da oferta |
{{offerPaymentMethods}} | Métodos de pagamento aceitos para a oferta |
{{offerPrice}} | Preço da oferta |
{{offerPeriod}} | Se a oferta é unitária ou assinatura |
{{offerWithDiscount}} | Valor da oferta subtraído do desconto via cupom (se houver cupom) |
Variáveis do tipo "Cart"
Variáveis com prefixo "cart" são as variáveis que trazem informações a respeito do carrinho de compra.
Exemplo: Como posso fornecer o link de acesso do meu comprador por WhatsApp? A variável {{invitationUrl}} vai ter ajudar a conseguir essa informação.
{{cartId}} | Identificador único do carrinho |
{{cartSrc}} | Fonte do carrinho |
{{cartMulticard}} | Boolean para carrinho com múltiplos cartões |
{{cartKind}} | Tipo de carrinho |
{{cartPublicId}} | ID publico do carrinho |
{{invitationUrl}} | URL de convite |
Variáveis do tipo "Product"
Variáveis com prefixo "product" são as variáveis que trazem informações a respeito do produto adquirido pelo comprador.
Exemplo: Como posso identificar o produto adquirido pelo comprador? A variável {{productName}} vai ter ajudar a conseguir essa informação.
{{productId}} | Identificador único do produto |
{{productName}} | Nome do produto |
{{productUid}} | Identificador único universal do produto |
{{productIsPrincipal}} | Booleano que identifica se o produto é o principal no carrinho |
Variáveis do tipo "Coupon"
Variáveis com prefixo "Coupon" são as variáveis que trazem informações de cupom quando utilizado pelo comprador.
Atenção: ofertas de assinatura não possuem cupom, somente unitárias (parcelamento inteligente e parcelamento por boleto e pix são ofertas unitárias)
Exemplo: Como posso identificar a porcentagem de desconto do cupom utilizado pelo comprador? A variável {{couponPercentageValue}} vai ter ajudar a conseguir essa informação.
{{couponId}} | Identificador único do cupom |
{{couponAvailableUntil}} | Data de validade do cupom |
{{couponCode}} | Código do cupom |
{{couponConsumed}} | Quantidade de cupons consumidos |
{{couponPercentageValue}} | Valor percentual de desconto do cupom |
{{couponQuantity}} | Quantidade total de cupons criados |
{{couponCreatedAt}} | Data de criação do cupom |
{{couponProductId}} | Identificador do produto associado ao cupom |
Variáveis do tipo "Purchase"
Variáveis com prefixo "Purchase" são as variáveis que trazem detalhes a respeito da compra feita pelo comprador.
Exemplo: Como identificar se minha estratégia de orderbump esta funcionando? A variável {{purchaseBumpUsed}} vai ter ajudar a conseguir essa informação.
{{purchaseBumpUsed}} | Indica se houve pagamento de produtos order bumps |
{{purchaseIsUpsell}} | Indica se essa é uma compra de upsell |
Variável "bump"
A variável {{bump}} vai trazer as informações a respeito de todos os produtos orderbump adquiridos pelo comprador na compra. Basta você a variável {{bump}} no body que as seguintes informações serão retornadas:
bumps[].offerId | Identificador único da oferta |
bumps[].offerPrice | Preço da oferta |
bumps[].offerTitle | Título da oferta |
bumps[].productUid | Identificador único universal do produto |
bumps[].productName | Nome do produto |
bumps[].productIsPrincipal | Booleano que identifica se o produto é o principal no carrinho |
Atenção: ofertas de assinatura não possuem orderbump, somente unitárias (parcelamento inteligente e parcelamento por boleto e pix são ofertas unitárias)
Variável "allPayments"
A variável {{allPayments}} vai trazer as informações a respeito de todos os pagamentos gerados por essa recorrência. Basta inserir a variável {{allPayments}} no body que as seguintes informações serão retornadas:
allPayments[].id | Identificador único do pagamento |
allPayments[].buyerId | Identificador do comprador associado |
allPayments[].cartId | Identificador do carrinho associado |
allPayments[].couponId | Identificador do cupom usado (se houver) |
allPayments[].anchorPrice | Preço âncora do pagamento |
allPayments[].bankSlipBarcode | Código de barras do boleto bancário |
allPayments[].bankSlipExpirationDate | Data de vencimento do boleto bancário |
allPayments[].bankSlipFileUrl | URL do arquivo do boleto bancário |
allPayments[].cardHolderName | Nome do titular do cartão de crédito |
allPayments[].paidAt | Data do pagamento |
allPayments[].totalAmount | Valor total do pagamento |
allPayments[].totalDue | Valor total a ser pago |
allPayments[].fixedFee | Taxa fixa do pagamento |
allPayments[].installments | Número de parcelas |
allPayments[].status | Status do pagamento |
allPayments[].installmentsFee | Valor da taxa de parcelamento |
allPayments[].totalFees | Total de taxas do pagamento |
allPayments[].transactionFee | Taxa de transação do pagamento |
allPayments[].dueAt | Data de vencimento do pagamento |
allPayments[].errorMessage | Mensagem de erro do pagamento |
allPayments[].errorCode | Código de erro do pagamento |
allPayments[].pixExpiration | Data de expiração do pagamento via PIX |
allPayments[].pixQrCode | Código QR do pagamento via PIX |
allPayments[].pixUrl | URL do pagamento via PIX |
allPayments[].createdAt | Data de criação do pagamento |
allPayments[].updatedAt | Data da última atualização do pagamento |
allPayments[].refundRequestedAt | Data de solicitação de reembolso do pagamento |
allPayments[].purchaseId | ID da compra |
allPayments[].netValue | Valor líquido do pagamento |
allPayments[].method | Método de pagamento |
allPayments[].refundedAt | Data de reembolso do pagamento (se aplicável) |
Além de todas as variáveis citadas, temos as variáveis que enviam a data de envio do webhook e identificador da plataforma
{{executionAt}} | Data de execução do evento |
{{platformUid}} | Identificador único universal da plataforma |
Payload com todas as variáveis
Ao criar uma automação do tipo webhook com os gatilhos de recorrência, um payload exemplo com todas as variáveis já vem preenchido. Podendo customizar com as variáveis que deseja manter ou não na requisição.
Ao utilizar o payload com todas as variáveis, algumas delas terão valor nulo caso não tenham referência (ex.: código do PIX em um pagamento de cartão de crédito). Lembre-se que você pode editar livremente de acordo com sua necessidade.
{
"execution_at": "{{executionAt}}",
"platform_uid": "{{platformUid}}",
"recurrency": {
"id": "{{recurrencyId}}",
"status": "{{recurrencyStatus}}",
"canceled_by": "{{recurrencyCanceledBy}}",
"amount": "{{recurrencyAmount}}",
"period": "{{recurrencyPeriod}}",
"next_invoice_at": "{{recurrencyNextInvoiceAt}}",
"created_at": "{{recurrencyCreatedAt}}",
"total_collected": "{{recurrencyTotalCollected}}",
"expiration_at": "{{recurrencyExpirationAt}}",
"expired": "{{recurrencyExpired}}",
"max_cycles": "{{recurrencyMaxCycles}}",
"cycle_restriction": "{{recurrencyCycleRestriction}}",
"paid_installments": "{{recurrencyPaidInstallments}}",
"allow_overdue_access": "{{recurrencyAllowOverdueAccess}}",
"type": "{{recurrencyType}}",
"cancellation_reason": "{{recurrencyCancellationReason}}",
"canceled_at": "{{recurrencyCanceledAt}}"
"overdue_count":"{{recurrencyOverdueCount}}"
},
"purchase": {
"id": "{{purchaseId}}",
"bump_used": "{{purchaseBumpUsed}}",
"is_upsell": "{{purchaseIsUpsell}}"
},
"buyer": {
"id": "{{buyerId}}",
"email": "{{buyerEmail}}",
"student_uid": "{{buyerStudentUid}}",
"address_number": "{{buyerAddressNumber}}",
"street_address": "{{buyerStreetAddress}}",
"city": "{{buyerCity}}",
"complement": "{{buyerComplement}}",
"ddi": "{{buyerDDI}}",
"district": "{{buyerDistrict}}",
"document_type": "{{buyerDocumentType}}",
"full_name": "{{buyerFullName}}",
"phone": "{{buyerPhone}}",
"phone_raw": "{{buyerPhoneRaw}}",
"state": "{{buyerState}}",
"zip_code": "{{buyerZipCode}}",
"created_at": "{{buyerCreatedAt}}",
"document_number": "{{buyerDocumentNumber}}"
},
"offer": {
"id": "{{offerId}}",
"title": "{{offerTitle}}",
"payment_methods": "{{offerPaymentMethods}}",
"price": "{{offerPrice}}",
"period": "{{offerPeriod}}"
"offer_discount": "{{offerWithDiscount}}"
},
"cart": {
"id": "{{cartId}}",
"src": "{{cartSrc}}",
"multicard": "{{cartMulticard}}",
"kind": "{{cartKind}}"
"public_id": "{{cartPublicId}}"
"invitation_url": "{{invitationUrl}}"
},
"product": {
"id": "{{productId}}",
"name": "{{productName}}",
"product_uid": "{{productUid}}",
"is_principal": "{{productIsPrincipal}}"
},
"coupon": {
"id": "{{couponId}}",
"available_until": "{{couponAvailableUntil}}",
"code": "{{couponCode}}",
"consumed": "{{couponConsumed}}",
"fixed_amount": "{{couponFixedAmount}}",
"percentage_value": "{{couponPercentageValue}}",
"quantity": "{{couponQuantity}}",
"created_at": "{{couponCreatedAt}}",
"product_id": "{{couponProductId}}"
},
"bumps": "{{bumps}}",
"payments": "{{allPayments}}"
}
Exemplo de payload recebido
{
"execution_at": "2023-06-20T14:28:32Z",
"platform_uid": "123",
"recurrency": {
"id": 1,
"status": "active",
"canceled_by": null,
"amount": 5000.00,
"period": "monthly",
"next_invoice_at": "2023-07-20T00:00:00Z",
"created_at": "2022-06-20T00:00:00Z",
"total_collected": 60000.00,
"expiration_at": "2024-06-20T00:00:00Z",
"expired": false,
"max_cycles": 24,
"cycle_restriction": "limited",
"paid_installments": 12,
"allow_overdue_access": true,
"type": "recurrency",
"cancellation_reason": null,
"canceled_at": null
},
"purchase": {
"id": 1,
"bump_used": false,
"is_upsell": true
},
"buyer": {
"id": 1,
"email": "buyer@example.com",
"student_uid": "1",
"address_number": "123",
"street_address": "Main Street",
"city": "Example City",
"complement": "Apt 4",
"ddi": "+55",
"district": "Central",
"document_type": "CPF",
"full_name": "John Doe",
"phone": "(11) 9 9999-9999",
"phone_raw": "1199999999",
"state": "SP",
"zip_code": "01000-000",
"created_at": "2022-01-01T00:00:00Z",
"document_number": "123.456.789-00"
},
"offer": {
"id": 1,
"title": "Special Offer",
"payment_methods": ["credit_card", "bank_slip"],
"price": 5000.00,
"period": "monthly"
"offer_discount": "4500.00",
},
"cart": {
"id": 1,
"src": "online",
"multicard": false,
"kind": "recurrency"
"public_id": "123456"
"invitation_url": "https://urldaescola.com/users/invitation/accept?invitation_token=QzrHxdmJSVskBghjogKo"
},
"product": {
"id": 1,
"title": "Online Course",
"product_uid": "1",
"is_principal": true
},
"coupon": {
"id": 1,
"available_until": "2023-12-31T23:59:59Z",
"code": "DISCOUNT50",
"consumed": 10,
"percentage_value": 10.00,
"quantity": 100,
"created_at": "2023-01-01T00:00:00Z",
"product_id": 1
},
"payments": {
"id": 1,
"buyerId": 1,
"cartId": 1,
"couponId": 1,
"anchorPrice": 5000.00,
"bankSlipBarcode": "12345678901234567890",
"bankSlipExpirationDate": "2023-07-20T00:00:00Z",
"bankSlipFileUrl": "https://example.com/bank_slip.pdf",
"cardHolderName": "John Doe",
"paidAt": "2023-06-20T14:28:32Z",
"totalAmount": 5000.00,
"totalDue": 0.00,
"fixedFee": 0.00,
"installments": 1,
"installmentsFee": 0.0,
"status": "paid",
"totalFees": 4.56,
"transactionFee": 3.56,
"dueAt": "2023-06-20T14:28:32Z",
"errorMessage": null,
"errorCode": null,
"pixExpiration": "2023-07-20T00:00:00Z",
"pixQrCode": "qr_code_data",
"pixUrl": "https://example.com/pix",
"createdAt": "2023-06-20T14:28:32Z",
"updatedAt": "2023-06-20T14:28:32Z",
"refundRequestedAt": null,
"purchaseId": "1",
"nnetValue": 5000.00,
"method": "credit_card",
"refundedAt": null
},
"bumps": [
{
"offerId": 1,
"offerPrice": 1000.00,
"offerTitle": "Bump Offer",
"productUid": "2",
"productName": "Additional Course",
"productIsPrincipal": false
}
}