Connect your payment provider to Boei so a successful payment marks the matching contact as a customer and moves open deals to Won.
Payment integrations are available during the trial and on the Growth plan and above.
How to get there: Open Website settings → Integrations → Payments. Each integration belongs to one website and one deals pipeline. You can create multiple integrations per website.
Repeated provider events are safe. Boei deduplicates provider event IDs. Mollie payment callbacks are checked again because the same payment ID can move from pending to paid.
Create the integration in Boei first, then copy its unique endpoint URL into your payment provider.
invoice.paid, checkout.session.completed, or checkout.session.async_payment_succeededwhsec_...)For Checkout, ensure the session contains customer_email or customer_details.email. Stripe invoices should contain customer_email.
paid.Boei first looks for an email in the payment's billing address or metadata. If needed, it retrieves the linked Mollie customer.
transaction.completedBoei verifies the Paddle-Signature. If the event contains a customer ID but no email, Boei uses the API key to retrieve the customer.
payment_succeededConfigure the same username and password on the Chargebee webhook. Boei reads the customer email from the event's customer object.
orders/paidBoei verifies the X-Shopify-Hmac-SHA256 signature and reads the email from the paid order or its customer.
Use Custom JSON for your own billing system, an automation tool, or a provider that is not listed. Send the secret as a bearer token:
Authorization: Bearer YOUR_SECRET
Content-Type: application/json
Use this canonical shape when you control the sender:
{
"id": "event-123",
"type": "payment.succeeded",
"occurred_at": "2026-10-06T12:30:00Z",
"customer": {
"id": "customer-456",
"email": "customer@example.com",
"name": "Jane Doe"
},
"payment": {
"id": "payment-789",
"amount": "49.95",
"currency": "EUR"
},
"deal": {
"id": "BOEI_DEAL_UUID"
}
}
Required fields:
id: a unique event ID used for deduplication.type: payment.succeeded, customer.paid, or invoice.paid.customer.email.Recommended fields:
customer.id: the customer ID in the sending system.payment.id: the payment or transaction ID in the sending system.payment.amount and payment.currency: the amount in major currency units, such as 49.95 and EUR.deal.id: the Boei deal UUID or numeric ID when the payment belongs to a known deal.occurred_at: an ISO 8601 timestamp.For flexible integrations, Boei also accepts event or event_type instead of type, top-level payment fields, and customer data under data.customer. If no known email field is present, Boei checks every string field whose complete value is an email address and uses it when exactly one unique address is found. It does not extract addresses from sentences or other text. Repeating the same address is fine. If multiple different addresses are found, the delivery is marked Needs attention instead of guessing.
When deal.id is absent, Boei moves a deal to Won only if exactly one open deal matches. Multiple open deals are marked Needs attention so Boei never closes the wrong deal.
Provider credentials and stored webhook payloads are encrypted. They are never returned by the settings API. Delivery payloads and their event records are automatically deleted after 90 days. Unfinished setup drafts without credentials or deliveries are removed after 24 hours.