Stripe
A Stripe é uma plataforma abrangente de infraestrutura financeira que permite que empresas aceitem pagamentos, gerenciem operações de receita e facilitem o comércio global por meio de um conjunto de APIs e serviços integrados.
Ao integrar a Braze e a Stripe, você pode:
- Atualizar perfis de usuários na Braze com dados de pagamento e faturamento em tempo real da Stripe.
- Disparar envio de mensagens na Braze com base em eventos da Stripe, como início de teste, inscrição ativada, cancelamento de inscrição e mais.
- Personalizar mensagens da Braze com base no histórico de pagamentos ou status de faturamento de um usuário recebido usando webhooks da Stripe.
Pré-requisitos
| Requisito | Descrição |
|---|---|
| Conta Stripe | É necessária uma conta Stripe com acesso a webhooks para aproveitar esta parceria. |
| Transformação de Dados Braze | Uma URL de Transformação de Dados é necessária para receber dados da Stripe. |
Integração
Etapa 1: Configurar a Transformação de Dados da Braze para aceitar os webhooks do Stripe
No dashboard da Braze, acesse Configurações de dados > Transformação de dados.
Selecione Criar Transformação para nomear sua transformação e, em seguida, escolha sua experiência de edição.

Selecione Usar um modelo para navegar por uma biblioteca de modelos, incluindo casos de uso de Transformação de dados. Ou selecione Começar do zero para carregar um modelo de código padrão.
Se você está começando do zero, escolha um destino para sua transformação. Você ainda pode inserir um modelo de código da biblioteca de modelos.
Mais sobre destinos
- POST: Rastrear usuários: Transforma webhooks de uma plataforma de origem em atualizações de perfil de usuário, como atributos, eventos ou compras.
- PUT: Atualizar vários itens do catálogo: Transforma webhooks de uma plataforma de origem em atualizações de itens do catálogo.
- DELETE: Excluir vários itens do catálogo: Transforma webhooks de uma plataforma de origem em exclusões de itens do catálogo.
- PATCH: Editar vários itens do catálogo: Transforma webhooks de uma plataforma de origem em edições de itens do catálogo.
- POST: Enviar mensagens imediatamente via API Only: Transforma webhooks de uma plataforma de origem para enviar mensagens imediatas a usuários designados.

Após criar sua transformação, você verá a visão detalhada da transformação. Aqui, você pode visualizar o webhook mais recente recebido para esta transformação em Detalhes do webhook e um espaço para escrever seu código de transformação em Código de transformação.
Capture sua URL do webhook para uso na próxima etapa.
Etapa 2: Configurar webhooks do Stripe
Siga as etapas na documentação de webhooks do Stripe para configurar um webhook.
Adicione a URL do webhook da sua Transformação de Dados como a URL de Destino e selecione os tipos de evento que deseja enviar para a Braze. Consulte a documentação do Stripe para uma lista completa dos tipos de evento.

Em seguida, envie um evento de teste para a sua Transformação de Dados.
Etapa 3: Escrever o código de transformação para aceitar os eventos do Stripe escolhidos
Em seguida, você transformará a carga útil do webhook que será enviada pelo Stripe em um valor de retorno de objeto JavaScript.
- Atualize a sua Transformação de Dados e verifique se consegue visualizar a carga útil de teste do Stripe na seção Detalhes do webhook.
- Atualize o código da sua Transformação de Dados para suportar os eventos do Stripe escolhidos.
- Selecione Validar para retornar uma prévia da saída do seu código e verificar se é uma solicitação
/users/trackválida. - Salve e ative a sua Transformação de Dados.

Formato do corpo da solicitação
Esse valor de retorno deve seguir o formato do corpo de solicitação do endpoint /users/track:
- O código de transformação é aceito na linguagem de programação JavaScript. Qualquer fluxo de controle JavaScript padrão, como lógica if/else, é suportado.
- O código de transformação acessa o corpo da solicitação do webhook usando a variável payload. Essa variável é um objeto preenchido pela análise do JSON do corpo da solicitação.
- Qualquer recurso suportado no nosso endpoint
/users/tracké suportado, incluindo:- Objetos de atributos de usuário, objetos de evento e objetos de compra
- Atributos aninhados e propriedades de eventos personalizados aninhadas
- Atualizações de grupo de inscrições
- Endereço de e-mail como identificador
Etapa 4: Publicar o webhook do Stripe
Após escrever a sua Transformação de Dados, selecione Validar para garantir que o código da Transformação de Dados está formatado corretamente e funcionará como esperado. Em seguida, salve e ative a sua Transformação de Dados. Após a ativação, os dados de eventos personalizados serão registrados no perfil do usuário quando ele concluir o evento.

Exemplo de carga útil do webhook da Stripe
{
"headers": {
"Version": "HTTP/1.1",
"X-Datadog-Trace-Id": "9124157397962821303",
"X-Datadog-Parent-Id": "9124157397962821303",
"X-Datadog-Sampling-Priority": "2",
"Host": "xxx",
"X-Request-Id": "xxx",
"X-Real-Ip": "165.159.72.690",
"X-Forwarded-For": "161.123.56.890",
"X-Forwarded-Host": "xxx",
"X-Forwarded-Port": "443",
"X-Forwarded-Proto": "https",
"X-Forwarded-Scheme": "https",
"X-Scheme": "https",
"X-Original-Forwarded-For": "12.345.678.123",
"Cf-Ray": "9470a06172f8816e-IAD",
"Cache-Control": "no-cache",
"User-Agent": "Stripe/1.0 (+https://stripe.com/docs/webhooks)",
"Accept-Encoding": "gzip",
"Cf-Connecting-Ip": "12.123.456.789",
"Cf-Visitor": "{\"scheme\":\"https\"}",
"X-Worker-Executions": "1",
"Cf-Worker": "xxx",
"X-Fastly-Geoloc-Countrycode": "US",
"Stripe-Signature": "t=xxx,v1=xxxx,v0=xxxx",
"Cf-Ew-Via": "15",
"Cdn-Loop": "cloudflare; loops=1; subreqs=1",
"Accept": "*/*; q=0.5, application/xml"
},
"payload": {
"id": "evt_3RTqw0RMEOaIvYpU1k2TFajH",
"object": "event",
"api_version": "2025-04-30.basil",
"created": 1748465448,
"data": {
"object": {
"id": "ch_3RTqw0RMEOaIvYpU1M9ZYtjP",
"object": "charge",
"amount": 100,
"amount_captured": 100,
"amount_refunded": 0,
"application": null,
"application_fee": null,
"application_fee_amount": null,
"balance_transaction": null,
"billing_details": {
"address": {
"city": null,
"country": null,
"line1": null,
"line2": null,
"postal_code": null,
"state": null
},
"email": null,
"name": null,
"phone": null,
"tax_id": null
},
"calculated_statement_descriptor": "Stripe",
"captured": true,
"created": 1748465448,
"currency": "usd",
"customer": "cus_SOeDf39aosGb97",
"description": "(created by Stripe CLI)",
"destination": null,
"dispute": null,
"disputed": false,
"failure_balance_transaction": null,
"failure_code": null,
"failure_message": null,
"fraud_details": {},
"livemode": false,
"metadata": {},
"on_behalf_of": null,
"order": null,
"outcome": {
"advice_code": null,
"network_advice_code": null,
"network_decline_code": null,
"network_status": "approved_by_network",
"reason": null,
"risk_level": "normal",
"risk_score": 9,
"seller_message": "Payment complete.",
"type": "authorized"
},
"paid": true,
"payment_intent": "pi_3RTqw0RMEOaIvYpU1pQl3Lmp",
"payment_method": "pm_1RTqw0RMEOaIvYpU5VE8HFlp",
"payment_method_details": {
"card": {
"amount_authorized": 100,
"authorization_code": null,
"brand": "visa",
"checks": {
"address_line1_check": null,
"address_postal_code_check": null,
"cvc_check": "pass"
},
"country": "US",
"exp_month": 5,
"exp_year": 2026,
"extended_authorization": {
"status": "disabled"
},
"fingerprint": "HAKdyqJ9xh2YhbzT",
"funding": "credit",
"incremental_authorization": {
"status": "unavailable"
},
"installments": null,
"last4": "4242",
"mandate": null,
"multicapture": {
"status": "unavailable"
},
"network": "visa",
"network_token": {
"used": false
},
"network_transaction_id": "726575100121113",
"overcapture": {
"maximum_amount_capturable": 100,
"status": "unavailable"
},
"regulated_status": "unregulated",
"three_d_secure": null,
"wallet": null
},
"type": "card"
},
"radar_options": {},
"receipt_email": null,
"receipt_number": null,
"receipt_url": "https://pay.stripe.com/receipts/payment/xxx",
"refunded": false,
"review": null,
"shipping": null,
"source": null,
"source_transfer": null,
"statement_descriptor": null,
"statement_descriptor_suffix": null,
"status": "succeeded",
"transfer_data": null,
"transfer_group": null
}
},
"livemode": false,
"pending_webhooks": 3,
"request": {
"id": "req_jqtL1Q6CPaNx8x",
"idempotency_key": "f0f9aee4-a889-4fcc-bc2e-fa41fa426f05"
},
"type": "charge.succeeded"
}
}
Casos de uso de Data Transformation
A seguir estão modelos de exemplo criados usando nossa carga útil de webhook de exemplo do Stripe. Esses modelos podem ser usados como ponto de partida. Você pode criar um novo modelo ou excluir componentes específicos conforme necessário.
Neste modelo de exemplo, estamos registrando um evento personalizado no perfil da Braze. O tipo de evento será enviado como o nome do evento personalizado, e o objeto de dados será passado como propriedades do evento.
Caso de uso: customer como identificador
Neste modelo de exemplo, estamos usando o campo customer como identificador.
/* This template is based on the source platform's documentation here: https://stripe.com/docs/webhooks
/* Braze's /users/track endpoint expects timestamps in an ISO 8601 format. To use the Unix timestamp within Stripe's charge succeeded event payload as the event timestamp in Braze must first be converted to ISO 8601. This can be done with the following code:
let unixTimestamp = payload.data.object.created;
let dateObj = new Date(unixTimestamp * 1000);
let isoString = dateObj.toISOString();
/* defines a variable 'brazecall' that will hold the request payload for the /users/track request
let brazecall;
/* if the type is charge.succeeded and customer field is not null, build the /users/track request to log an event to the user profile
if (payload.type == "charge.succeeded" && payload.data.object.customer) {
brazecall = {
"events": [
{
"external_id": payload.data.object.customer,
"name": "Charge Succeeded",
"time": isoString,
"properties": {
"amount": payload.data.object.amount,
"paid": payload.data.object.paid,
"status": payload.data.object.status
}
}
]
};
}
/* After the /users/track request is assigned to brazecall, you will want to explicitly return brazecall to create an output
return brazecall;
{
"events": [
{
"external_id": "[email protected]",
"name": "Charge Succeeded",
"time": "2025-05-28T18:21:39.527Z",
"properties": {
"amount": 100,
"paid":true,
"Status":"succeeded"
}
}
]
}
Monitoramento e solução de problemas
Consulte Monitorando sua transformação para saber mais sobre como monitorar e solucionar problemas na sua transformação.