Workcash

Webhooks

Documentação do Webhook Workcash

Esta documentação cobre os detalhes essenciais do payload do webhook. Certifique-se de que seu endpoint possa lidar com a estrutura fornecida e processar os dados conforme necessário.

Visão Geral

Este documento fornece uma descrição detalhada da estrutura do payload do webhook para eventos relacionados a vendas. O webhook envia informações sobre transações de vendas, incluindo detalhes sobre o produtor, afiliado (se aplicável), cliente, pagamento e produtos envolvidos.

Estrutura do Payload

O payload do webhook é um objeto JSON com a seguinte estrutura:

Objeto raiz

CampoTipoDescrição
producerAccountIdstringO ID da conta do produtor.
affiliateAccountIdstring (opcional)O ID da conta do afiliado, se aplicável.
customerIdstringO ID do cliente.
eventstringO tipo de evento que disparou o webhook.
saleIdstringO ID único da venda.
statusstringO status da venda.
createdAtstringA data e hora em que a venda foi criada (formato ISO 8601).
totalPricestringO preço total da venda.
totalAmountnumberA quantidade total da venda.
paymentMethodstringO método de pagamento utilizado.
paymentTypestringO tipo de pagamento (ex.: único, recorrente).
customerobjectInformações sobre o cliente.
paymentobjectInformações sobre os detalhes do pagamento.
productsarray of objectsLista de produtos envolvidos na venda.

Objeto Cliente

CampoTipoDescrição
namestringO nome do cliente.
emailstringO endereço de email do cliente.
phoneNumberstringO número de telefone do cliente.
phoneNumberCountryobjectInformações de pais de origem do numero inserido.

Objeto Pagamento

CampoTipoDescrição
methodstringO método de pagamento utilizado.
installmentsnumberO número de parcelas.
qrcodestringO QR code para o pagamento, se aplicável.
qrcode_imagestringA imagem do QR code, se aplicável.
boletoPdfstringO PDF do boleto, se aplicável.

Objeto Produtos

CampoTipoDescrição
idstringO ID único do produto.
namestringO nome do produto.
offerIdstringO ID da oferta.
typestringO tipo do produto.
offerNamestringO nome da oferta.
isOrderBumpbooleanIndica se o produto é um order bump.
pricestringO preço do produto.
amountnumberA quantidade do produto.
photostringA URL da foto do produto.

Exemplos de Payload

Exemplo 1: Venda Completada

{
  "producerAccountId": "66721add4842fa23b378f280",
  "affiliateAccountId": "66721add4842fa23b378f280",
  "customerId": "66722017b0ffbc43556e9f06",
  "event": "purchase-approved",
  "saleId": "66cf9b5fe3efcb991874bd35",
  "status": "paid",
  "createdAt": "2024-08-01T12:34:56Z",
  "totalPrice": "R$ 20,00",
  "totalAmount": 20,
  "paymentMethod": "credit_card",
  "paymentType": "one-time",
  "customer": {
    "name": "John Doe",
    "email": "[email protected]",
    "phoneNumber": "31984563240",
    "phoneNumberCountry": {
      "code": "55",
      "name": "Brazil"
    }
  },
  "payment": {
    "method": "credit_card",
    "installments": 1,
    "qrcode": "https://example.com/qrcode",
    "qrcode_image": "https://example.com/qrcode_image",
    "boletoPdf": "https://example.com/boleto.pdf"
  },
  "products": [
    {
      "id": "6673715ab0ffbc43556ee7f7",
      "name": "Produto exemplo",
      "offerId": "66cf9b5fe3efcb991874bd2e",
      "type": "infoproduct",
      "offerName": "Oferta exemplo",
      "isOrderBump": false,
      "price": "R$ 20,00",
      "amount": 20,
      "photo": "https://example.com/product1.jpg"
    }
  ],
  "trackingParameters": {
    "src": null,
    "sck": null
  }
}

Definições dos Campos

  • producerAccountId: O ID associado ao produtor do produto.
  • affiliateAccountId: O ID associado ao afiliado que promoveu o produto (opcional).
  • customerId: O identificador único para o cliente que realizou a compra.
  • event: O tipo de evento, representado por uma string (ex.: 'boleto-generated', 'pix-generated', 'purchase-declined', 'purchase-approved', 'refund', 'chargeback', 'subscription-renewed', 'subscription-cancelled', 'subscription-overdue').
  • saleId: Um identificador único para a transação de venda.
  • status: O status atual da venda, representado por uma string (ex.: 'created', 'cancelled', 'cancel-requested', 'refunded', 'refund-requested', 'in-protest', 'expired', 'chargeback', 'paid' ).
  • createdAt: A data e hora em que a venda foi criada, no formato ISO 8601.
  • totalPrice: O preço total da venda como uma string.
  • totalAmount: O número total de itens na venda.
  • paymentMethod: O método utilizado para o pagamento, representado por uma string (ex.: 'credit_card', 'boleto', 'pix').
  • paymentType: O tipo de pagamento (ex.: único, recorrente).
  • customer: Um objeto contendo informações sobre o cliente.
    • name: O nome do cliente.
    • email: O endereço de email do cliente.
    • phoneNumber: O número de telefone do cliente.
    • phoneNumberCountry:
      • code: Codigo do pais do cliente.
      • name: Nome do pais em ingles.
  • payment: Um objeto contendo detalhes sobre o pagamento, dependendo da forma de pagamento os campos qrcode, qrcode_image e boletoPdf não serão enviados.
    • method: O método de pagamento utilizado.
    • installments: O número de parcelas para o pagamento.
    • qrcode: A URL do QR code para o pagamento (opcional).
    • qrcode_image: A URL da imagem do QR code (opcional).
    • boletoPdf: A URL do PDF do boleto (opcional).
  • products: Um array de objetos, cada um representando um produto envolvido na venda.
    • id: O identificador único para o produto.
    • name: O nome do produto.
    • offerId: O identificador único para a oferta associada ao produto.
    • type: O tipo do produto (ex.: digital, físico).
    • offerName: O nome da oferta associada ao produto.
    • isOrderBump: Um booleano indicando se o produto é um order bump.
    • price: O preço do produto como uma string.
    • amount: A quantidade do produto.
    • photo: A URL da foto do produto.
  • trackingParameters: Um objeto destinado a trackeamento de vendas, o mesmo poderá ser omitido.
    • src: indentificação da campanha utilizada.
    • sck: indentificação da campanha utilizada.