// checkout.provider_metadata is spread into Polar's CheckoutCreate
await paykit.checkouts.create({
customer: { email: 'user@example.com' },
item_id: 'product_abc123',
session_type: 'one_time',
quantity: 1,
success_url: 'https://example.com/success',
cancel_url: 'https://example.com/cancel',
provider_metadata: {
allowDiscountCodes: true,
discountId: 'discount_xyz',
},
});
// customer.provider_metadata is spread into Polar's CustomerCreate / CustomerUpdate
await paykit.customers.create({
email: 'user@example.com',
provider_metadata: {
externalId: 'usr_123',
},
});
// updateSubscription.provider_metadata is REQUIRED and must be one of these shapes:
await paykit.subscriptions.update('sub_123', {
provider_metadata: { productId: 'product_456' }, // change product
});
await paykit.subscriptions.update('sub_123', {
provider_metadata: { discountId: 'discount_789' }, // apply discount
});
await paykit.subscriptions.update('sub_123', {
provider_metadata: { trialEnd: new Date('2025-12-31') }, // extend trial
});
// refund.provider_metadata is spread into Polar's refund create
await paykit.refunds.create({
payment_id: 'order_abc123',
amount: 1000,
reason: 'customer_request',
});