Lemon Squeezy Adapter
Lemon Squeezy-compatible webhook payloads for Yolfi events
Overview
The Lemon Squeezy adapter sends a JSON:API-style body with meta.event_name, meta.custom_data, data.type, data.id, and data.attributes.
Yolfi webhooks are still authenticated with X-Yolfi-Signature. The adapter does not emulate Lemon Squeezy signatures.
Event Mapping
| Yolfi event | Lemon Squeezy-compatible events |
|---|---|
invoice.created | order_created with pending status |
payment.confirmed one-time | order_created with paid status |
payment.confirmed recurring | subscription_payment_success |
invoice.overdue | order_created with expired status |
subscription.overdue | subscription_payment_failed, subscription_expired |
subscription.cancelled | subscription_cancelled |
Field Mapping
| Yolfi field | Lemon Squeezy field |
|---|---|
amountUsd | subtotal, total, subtotal_usd, total_usd in cents |
symbol | currency; stablecoins map to USD |
customer.email | user_email |
customer.name | user_name |
invoiceId | data.id, identifier, order_number, or subscription invoice ID |
subscriptionId | subscription_id or subscription data.id |
customer.clientReferenceId | meta.custom_data.client_reference_id |
metadata | meta.custom_data |
Yolfi-specific blockchain fields are stored in meta.custom_data: chain_id, network, token, and symbol.
Example: order_created
{
"meta": {
"event_name": "order_created",
"custom_data": {
"yolfi_invoice_id": "invoice-001",
"yolfi_paylink_id": "paylink-001",
"yolfi_org_id": "org-001",
"client_reference_id": "merchant-customer-001",
"chain_id": 42161,
"network": "ARB",
"token": "0xaf88",
"symbol": "USDC"
}
},
"data": {
"id": "invoice-001",
"type": "orders",
"attributes": {
"identifier": "invoice-001",
"order_number": "invoice-001",
"user_name": "Customer One",
"user_email": "customer@example.com",
"currency": "USD",
"subtotal": 1234,
"tax": 0,
"total": 1234,
"status": "paid",
"status_formatted": "Paid"
}
}
}Example: subscription_payment_success
{
"meta": {
"event_name": "subscription_payment_success",
"custom_data": {
"yolfi_subscription_id": "subscription-001",
"yolfi_invoice_id": "invoice-001"
}
},
"data": {
"id": "invoice-001",
"type": "subscription-invoices",
"attributes": {
"subscription_id": "subscription-001",
"billing_reason": "renewal",
"currency": "USD",
"status": "paid",
"subtotal": 1234,
"tax": 0,
"total": 1234
}
}
}