diff --git a/src/contracts/checkout.ts b/src/contracts/checkout.ts index c1c2804..4d3a0a2 100644 --- a/src/contracts/checkout.ts +++ b/src/contracts/checkout.ts @@ -113,6 +113,17 @@ export const GetCheckoutInputSchema = z.object({ }); export type GetCheckoutInput = z.infer; +export const RedeemL402InputSchema = z.object({ + paymentHash: z.string().describe("The payment hash from the L402 credential"), +}); +export type RedeemL402Input = z.infer; + +export const RedeemL402OutputSchema = z.object({ + redeemed: z.boolean(), + reason: z.string().optional(), +}); +export type RedeemL402Output = z.infer; + export type CreateCheckout = z.infer; export type ConfirmCheckout = z.infer; export type RegisterInvoice = z.infer; @@ -190,12 +201,17 @@ export const getCheckoutDetailContract = oc .input(GetCheckoutInputSchema) .output(CheckoutDetailSchema); +export const redeemL402Contract = oc + .input(RedeemL402InputSchema) + .output(RedeemL402OutputSchema); + export const checkout = { get: getCheckoutContract, create: createCheckoutContract, confirm: confirmCheckoutContract, registerInvoice: registerInvoiceContract, paymentReceived: paymentReceivedContract, + redeemL402: redeemL402Contract, list: listCheckoutsContract, listPaginated: listCheckoutsPaginatedContract, // Original names preserved diff --git a/src/index.ts b/src/index.ts index 800563e..3e94227 100644 --- a/src/index.ts +++ b/src/index.ts @@ -19,6 +19,8 @@ export type { CreateCheckout, PaymentReceived, RegisterInvoice, + RedeemL402Input, + RedeemL402Output, } from "./contracts/checkout"; export { CheckoutStatusSchema, @@ -182,6 +184,7 @@ export const sdkContract = { confirm: checkout.confirm, registerInvoice: checkout.registerInvoice, paymentReceived: checkout.paymentReceived, + redeemL402: checkout.redeemL402, }, onboarding, products: {