Skip to content

SingleCheckout

Public inline one-time checkout requiring no catalog; amount is native bigint minor units.

const SingleCheckout: Schema.Struct<{
provider: Schema.brand<Schema.String, "ProviderKey">;
customer: Schema.Struct<{
externalId: Schema.brand<Schema.String, "ExternalCustomerId">;
email: Schema.brand<Schema.String, "EmailAddress">;
name: Schema.NonEmptyString;
}>;
successUrl: Schema.brand<Schema.String, "CheckoutUrl">;
cancelUrl: Schema.brand<Schema.String, "CheckoutUrl">;
clientIp: Schema.NullOr<Schema.brand<Schema.String, "ClientIp">>;
idempotencyKey: Schema.brand<Schema.String, "IdempotencyKey">;
beneficiary: Schema.optionalKey<Schema.toTaggedUnion<"type", readonly [Schema.Struct<{
type: Schema.Literal<"customer">;
}>, Schema.Struct<{
type: Schema.Literal<"merchant_subject">;
subjectId: Schema.brand<Schema.String, "MerchantSubjectId">;
}>]>>;
type: Schema.Literal<"single">;
item: Schema.Struct<{
name: Schema.NonEmptyString;
amount: Schema.brand<Schema.BigInt, "MinorCurrencyUnits">;
currency: Schema.brand<Schema.String, "Currency">;
fulfillment: Schema.toTaggedUnion<"type", readonly [Schema.Struct<{
type: Schema.Literal<"billing_only">;
}>, Schema.Struct<{
type: Schema.Literal<"managed">;
entitlements: Schema.OptionFromOptionalKey<Schema.UniqueArray<...>>;
licensing: Schema.OptionFromOptionalKey<Schema.Struct<...>>;
}>]>;
}>;
}>;