@genesis-tech/genesispay-seller 0.13.2 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +196 -0
- package/README.md +670 -91
- package/dist/checkout-documents.d.ts +99 -0
- package/dist/checkout-documents.d.ts.map +1 -0
- package/dist/checkout-documents.js +155 -0
- package/dist/checkout-documents.js.map +1 -0
- package/dist/checkout-return.d.ts +5 -5
- package/dist/checkout-return.d.ts.map +1 -1
- package/dist/checkout-return.js +3 -2
- package/dist/checkout-return.js.map +1 -1
- package/dist/client.d.ts +42 -7
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +99 -10
- package/dist/client.js.map +1 -1
- package/dist/contract-mandates.d.ts +39 -0
- package/dist/contract-mandates.d.ts.map +1 -0
- package/dist/contract-mandates.js +98 -0
- package/dist/contract-mandates.js.map +1 -0
- package/dist/contract-usage.d.ts +29 -0
- package/dist/contract-usage.d.ts.map +1 -0
- package/dist/contract-usage.js +92 -0
- package/dist/contract-usage.js.map +1 -0
- package/dist/errors.d.ts +71 -5
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +124 -13
- package/dist/errors.js.map +1 -1
- package/dist/fulfillment-attempts.d.ts +29 -0
- package/dist/fulfillment-attempts.d.ts.map +1 -0
- package/dist/fulfillment-attempts.js +71 -0
- package/dist/fulfillment-attempts.js.map +1 -0
- package/dist/fulfillment.d.ts +152 -0
- package/dist/fulfillment.d.ts.map +1 -0
- package/dist/fulfillment.js +810 -0
- package/dist/fulfillment.js.map +1 -0
- package/dist/genesispay-settlement.d.ts +4 -2
- package/dist/genesispay-settlement.d.ts.map +1 -1
- package/dist/genesispay-settlement.js +412 -15
- package/dist/genesispay-settlement.js.map +1 -1
- package/dist/index.d.ts +11 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/invoices.d.ts +31 -0
- package/dist/invoices.d.ts.map +1 -1
- package/dist/invoices.js +61 -2
- package/dist/invoices.js.map +1 -1
- package/dist/item-tax.d.ts +15 -0
- package/dist/item-tax.d.ts.map +1 -0
- package/dist/item-tax.js +19 -0
- package/dist/item-tax.js.map +1 -0
- package/dist/mandate-gate.d.ts +6 -1
- package/dist/mandate-gate.d.ts.map +1 -1
- package/dist/mandate-gate.js +81 -7
- package/dist/mandate-gate.js.map +1 -1
- package/dist/mandates.d.ts +21 -4
- package/dist/mandates.d.ts.map +1 -1
- package/dist/mandates.js +24 -3
- package/dist/mandates.js.map +1 -1
- package/dist/networks.d.ts.map +1 -1
- package/dist/networks.js +5 -4
- package/dist/networks.js.map +1 -1
- package/dist/payment-gate.d.ts +32 -1
- package/dist/payment-gate.d.ts.map +1 -1
- package/dist/payment-gate.js +275 -11
- package/dist/payment-gate.js.map +1 -1
- package/dist/products.d.ts +40 -16
- package/dist/products.d.ts.map +1 -1
- package/dist/products.js +1078 -56
- package/dist/products.js.map +1 -1
- package/dist/strict-response.d.ts +21 -0
- package/dist/strict-response.d.ts.map +1 -0
- package/dist/strict-response.js +68 -0
- package/dist/strict-response.js.map +1 -0
- package/dist/webhooks.d.ts +77 -2
- package/dist/webhooks.d.ts.map +1 -1
- package/dist/webhooks.js +20 -0
- package/dist/webhooks.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { type ItemTax } from "./item-tax.js";
|
|
2
|
+
import { type GenesisPayRequest } from "./resource.js";
|
|
3
|
+
export type CheckoutDocumentKind = "invoice" | "enhanced_receipt";
|
|
4
|
+
/** The commercial snapshot frozen before the buyer signs the hosted checkout. */
|
|
5
|
+
export type CheckoutDocumentSnapshot = {
|
|
6
|
+
version: number;
|
|
7
|
+
seller: {
|
|
8
|
+
userId: string;
|
|
9
|
+
legalName: string;
|
|
10
|
+
email: string | null;
|
|
11
|
+
addressLine1: string | null;
|
|
12
|
+
addressLine2: string | null;
|
|
13
|
+
city: string | null;
|
|
14
|
+
postalCode: string | null;
|
|
15
|
+
countryCode: string | null;
|
|
16
|
+
taxId: string | null;
|
|
17
|
+
profileVersion?: number;
|
|
18
|
+
taxRegistration?: CheckoutTaxRegistration;
|
|
19
|
+
};
|
|
20
|
+
buyer: {
|
|
21
|
+
legalName: string;
|
|
22
|
+
companyName: string | null;
|
|
23
|
+
addressLine1: string;
|
|
24
|
+
addressLine2: string | null;
|
|
25
|
+
city: string;
|
|
26
|
+
region: string | null;
|
|
27
|
+
postalCode: string;
|
|
28
|
+
countryCode: string;
|
|
29
|
+
taxId: string | null;
|
|
30
|
+
email: string;
|
|
31
|
+
};
|
|
32
|
+
lineItem: {
|
|
33
|
+
description: string;
|
|
34
|
+
};
|
|
35
|
+
lines?: Array<{
|
|
36
|
+
description: string;
|
|
37
|
+
quantity: number;
|
|
38
|
+
unitAmountMinor: string;
|
|
39
|
+
subtotalMinor: string;
|
|
40
|
+
discountMinor: string;
|
|
41
|
+
taxMinor: string;
|
|
42
|
+
totalMinor: string;
|
|
43
|
+
taxConfig: ItemTax;
|
|
44
|
+
}>;
|
|
45
|
+
invoice: {
|
|
46
|
+
prefix: string;
|
|
47
|
+
pricesIncludeTax: true;
|
|
48
|
+
};
|
|
49
|
+
tax: {
|
|
50
|
+
source: "seller_configured" | null;
|
|
51
|
+
status: "receipt_required" | "calculated";
|
|
52
|
+
reason: string | null;
|
|
53
|
+
taxRateBps: number | null;
|
|
54
|
+
zeroTaxNote: string | null;
|
|
55
|
+
rounding: "half_up_asset_minor_unit" | null;
|
|
56
|
+
settingsUpdatedAt: string | null;
|
|
57
|
+
itemConfig?: ItemTax;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
export type CheckoutTaxRegistration = {
|
|
61
|
+
status: "not_registered";
|
|
62
|
+
reason: string;
|
|
63
|
+
} | {
|
|
64
|
+
status: "registered";
|
|
65
|
+
registrations: Array<{
|
|
66
|
+
type: "vat" | "gst" | "tax_id" | "business_number";
|
|
67
|
+
countryCode: string;
|
|
68
|
+
value: string;
|
|
69
|
+
}>;
|
|
70
|
+
};
|
|
71
|
+
/** A formal invoice or enhanced receipt issued for a hosted human checkout. */
|
|
72
|
+
export type CheckoutDocument = {
|
|
73
|
+
id: string;
|
|
74
|
+
publicId: string;
|
|
75
|
+
kind: CheckoutDocumentKind;
|
|
76
|
+
/** Present only when the seller's tax configuration supported a formal invoice. */
|
|
77
|
+
invoiceNumber: string | null;
|
|
78
|
+
asset: "USDC" | "EURC";
|
|
79
|
+
chainId: number;
|
|
80
|
+
subtotalMinor: string;
|
|
81
|
+
discountMinor: string;
|
|
82
|
+
taxMinor: string;
|
|
83
|
+
totalMinor: string;
|
|
84
|
+
txHash: string | null;
|
|
85
|
+
confirmedAt: string;
|
|
86
|
+
issuedAt: string;
|
|
87
|
+
retainUntil: string;
|
|
88
|
+
recipientEmail: string;
|
|
89
|
+
snapshot: CheckoutDocumentSnapshot;
|
|
90
|
+
};
|
|
91
|
+
export interface CheckoutDocumentsResource {
|
|
92
|
+
/** Lists the latest 100 immutable documents from hosted human checkout. */
|
|
93
|
+
list(): Promise<CheckoutDocument[]>;
|
|
94
|
+
/** Retrieves one seller-owned document by its public `doc_…` id. */
|
|
95
|
+
get(publicId: string): Promise<CheckoutDocument>;
|
|
96
|
+
}
|
|
97
|
+
export declare function createCheckoutDocumentsResource(request: GenesisPayRequest): CheckoutDocumentsResource;
|
|
98
|
+
export declare function toCheckoutDocument(raw: Record<string, unknown>): CheckoutDocument;
|
|
99
|
+
//# sourceMappingURL=checkout-documents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout-documents.d.ts","sourceRoot":"","sources":["../src/checkout-documents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
// `genesispay.checkoutDocuments.*` — documents created after hosted human checkout.
|
|
2
|
+
//
|
|
3
|
+
// These are intentionally read-only. They are not the seller-authored invoice
|
|
4
|
+
// lifecycle (`genesispay.invoices.*`): a hosted checkout document is produced
|
|
5
|
+
// only after a confirmed, non-simulated payment and is immutable thereafter.
|
|
6
|
+
import { GenesisPayConfigError } from "./errors.js";
|
|
7
|
+
import { parseItemTax } from "./item-tax.js";
|
|
8
|
+
import { asRecord, oneOf, optionalString, requiredString, toAmountString, toCount, } from "./resource.js";
|
|
9
|
+
export function createCheckoutDocumentsResource(request) {
|
|
10
|
+
return {
|
|
11
|
+
list: async () => {
|
|
12
|
+
const body = await request({
|
|
13
|
+
path: "/api/v1/checkout-documents",
|
|
14
|
+
operation: "GET /api/v1/checkout-documents",
|
|
15
|
+
action: "list hosted checkout documents",
|
|
16
|
+
});
|
|
17
|
+
const rows = asRecord(body)?.documents;
|
|
18
|
+
if (!Array.isArray(rows)) {
|
|
19
|
+
throw new GenesisPayConfigError(`GenesisPay GET /api/v1/checkout-documents returned no documents array: ${JSON.stringify(body)}`);
|
|
20
|
+
}
|
|
21
|
+
return rows
|
|
22
|
+
.map(asRecord)
|
|
23
|
+
.filter((row) => Boolean(row?.publicId))
|
|
24
|
+
.map(toCheckoutDocument);
|
|
25
|
+
},
|
|
26
|
+
get: async (publicId) => {
|
|
27
|
+
const body = await request({
|
|
28
|
+
path: `/api/v1/checkout-documents/${encodeURIComponent(publicId)}`,
|
|
29
|
+
operation: "GET /api/v1/checkout-documents/:publicId",
|
|
30
|
+
notFoundMessage: `Checkout document ${publicId} was not found.`,
|
|
31
|
+
action: "retrieve a hosted checkout document",
|
|
32
|
+
});
|
|
33
|
+
const row = asRecord(asRecord(body)?.document);
|
|
34
|
+
if (!row) {
|
|
35
|
+
throw new GenesisPayConfigError(`GenesisPay GET /api/v1/checkout-documents/:publicId returned no document: ${JSON.stringify(body)}`);
|
|
36
|
+
}
|
|
37
|
+
return toCheckoutDocument(row);
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export function toCheckoutDocument(raw) {
|
|
42
|
+
return {
|
|
43
|
+
id: requiredString(raw.id),
|
|
44
|
+
publicId: requiredString(raw.publicId),
|
|
45
|
+
kind: oneOf(raw.kind, ["invoice", "enhanced_receipt"], "enhanced_receipt"),
|
|
46
|
+
invoiceNumber: optionalString(raw.invoiceNumber),
|
|
47
|
+
asset: oneOf(raw.asset, ["USDC", "EURC"], "USDC"),
|
|
48
|
+
chainId: toCount(raw.chainId),
|
|
49
|
+
subtotalMinor: toAmountString(raw.subtotalMinor),
|
|
50
|
+
discountMinor: toAmountString(raw.discountMinor),
|
|
51
|
+
taxMinor: toAmountString(raw.taxMinor),
|
|
52
|
+
totalMinor: toAmountString(raw.totalMinor),
|
|
53
|
+
txHash: optionalString(raw.txHash),
|
|
54
|
+
confirmedAt: requiredString(raw.confirmedAt),
|
|
55
|
+
issuedAt: requiredString(raw.issuedAt),
|
|
56
|
+
retainUntil: requiredString(raw.retainUntil),
|
|
57
|
+
recipientEmail: requiredString(raw.recipientEmail),
|
|
58
|
+
snapshot: toCheckoutDocumentSnapshot(asRecord(raw.snapshot) ?? {}),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function toCheckoutDocumentSnapshot(raw) {
|
|
62
|
+
const seller = asRecord(raw.seller) ?? {};
|
|
63
|
+
const buyer = asRecord(raw.buyer) ?? {};
|
|
64
|
+
const lineItem = asRecord(raw.lineItem) ?? {};
|
|
65
|
+
const invoice = asRecord(raw.invoice) ?? {};
|
|
66
|
+
const tax = asRecord(raw.tax) ?? {};
|
|
67
|
+
const v2 = raw.version === 2;
|
|
68
|
+
return {
|
|
69
|
+
version: toCount(raw.version),
|
|
70
|
+
seller: {
|
|
71
|
+
userId: requiredString(seller.userId),
|
|
72
|
+
legalName: requiredString(seller.legalName),
|
|
73
|
+
email: optionalString(seller.email),
|
|
74
|
+
addressLine1: optionalString(seller.addressLine1),
|
|
75
|
+
addressLine2: optionalString(seller.addressLine2),
|
|
76
|
+
city: optionalString(seller.city),
|
|
77
|
+
postalCode: optionalString(seller.postalCode),
|
|
78
|
+
countryCode: optionalString(seller.countryCode),
|
|
79
|
+
taxId: optionalString(seller.taxId),
|
|
80
|
+
...(v2 ? { profileVersion: toCount(seller.profileVersion), taxRegistration: parseCheckoutTaxRegistration(seller.taxRegistration) } : {}),
|
|
81
|
+
},
|
|
82
|
+
buyer: {
|
|
83
|
+
legalName: requiredString(buyer.legalName),
|
|
84
|
+
companyName: optionalString(buyer.companyName),
|
|
85
|
+
addressLine1: requiredString(buyer.addressLine1),
|
|
86
|
+
addressLine2: optionalString(buyer.addressLine2),
|
|
87
|
+
city: requiredString(buyer.city),
|
|
88
|
+
region: optionalString(buyer.region),
|
|
89
|
+
postalCode: requiredString(buyer.postalCode),
|
|
90
|
+
countryCode: requiredString(buyer.countryCode),
|
|
91
|
+
taxId: optionalString(buyer.taxId),
|
|
92
|
+
email: requiredString(buyer.email),
|
|
93
|
+
},
|
|
94
|
+
lineItem: {
|
|
95
|
+
description: requiredString(lineItem.description),
|
|
96
|
+
},
|
|
97
|
+
...(v2 ? { lines: parseCheckoutLines(raw.lines) } : {}),
|
|
98
|
+
invoice: {
|
|
99
|
+
prefix: requiredString(invoice.prefix),
|
|
100
|
+
pricesIncludeTax: true,
|
|
101
|
+
},
|
|
102
|
+
tax: {
|
|
103
|
+
source: nullableOneOf(tax.source, ["seller_configured"]),
|
|
104
|
+
status: oneOf(tax.status, ["receipt_required", "calculated"], "receipt_required"),
|
|
105
|
+
reason: optionalString(tax.reason),
|
|
106
|
+
taxRateBps: optionalFiniteNumber(tax.taxRateBps),
|
|
107
|
+
zeroTaxNote: optionalString(tax.zeroTaxNote),
|
|
108
|
+
rounding: nullableOneOf(tax.rounding, ["half_up_asset_minor_unit"]),
|
|
109
|
+
settingsUpdatedAt: optionalString(tax.settingsUpdatedAt),
|
|
110
|
+
...(v2 ? { itemConfig: requiredItemTax(tax.itemConfig) } : {}),
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function requiredItemTax(raw) {
|
|
115
|
+
const tax = parseItemTax(raw);
|
|
116
|
+
if (!tax)
|
|
117
|
+
throw new GenesisPayConfigError("A v2 document requires explicit item tax.");
|
|
118
|
+
return tax;
|
|
119
|
+
}
|
|
120
|
+
function parseCheckoutLines(raw) {
|
|
121
|
+
if (!Array.isArray(raw) || raw.length === 0)
|
|
122
|
+
throw new GenesisPayConfigError("A v2 document requires line totals.");
|
|
123
|
+
return raw.map((value) => {
|
|
124
|
+
const line = asRecord(value) ?? {};
|
|
125
|
+
return { description: requiredString(line.description), quantity: toCount(line.quantity),
|
|
126
|
+
unitAmountMinor: toAmountString(line.unitAmountMinor), subtotalMinor: toAmountString(line.subtotalMinor),
|
|
127
|
+
discountMinor: toAmountString(line.discountMinor), taxMinor: toAmountString(line.taxMinor),
|
|
128
|
+
totalMinor: toAmountString(line.totalMinor), taxConfig: requiredItemTax(line.taxConfig) };
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
function parseCheckoutTaxRegistration(value) {
|
|
132
|
+
const tax = asRecord(value);
|
|
133
|
+
if (tax?.status === "not_registered" && typeof tax.reason === "string")
|
|
134
|
+
return { status: "not_registered", reason: tax.reason };
|
|
135
|
+
if (tax?.status !== "registered" || !Array.isArray(tax.registrations) || !tax.registrations.length)
|
|
136
|
+
throw new GenesisPayConfigError("A v2 document requires the issuer tax declaration.");
|
|
137
|
+
return { status: "registered", registrations: tax.registrations.map((value) => {
|
|
138
|
+
const entry = asRecord(value);
|
|
139
|
+
if (!entry || !["vat", "gst", "tax_id", "business_number"].includes(String(entry.type)) || typeof entry.countryCode !== "string" || typeof entry.value !== "string")
|
|
140
|
+
throw new GenesisPayConfigError("Invalid issuer tax declaration.");
|
|
141
|
+
return { type: entry.type, countryCode: entry.countryCode, value: entry.value };
|
|
142
|
+
}) };
|
|
143
|
+
}
|
|
144
|
+
function nullableOneOf(value, allowed) {
|
|
145
|
+
return typeof value === "string" && allowed.includes(value)
|
|
146
|
+
? value
|
|
147
|
+
: null;
|
|
148
|
+
}
|
|
149
|
+
function optionalFiniteNumber(value) {
|
|
150
|
+
if (value === null || value === undefined || value === "")
|
|
151
|
+
return null;
|
|
152
|
+
const parsed = typeof value === "number" ? value : Number(value);
|
|
153
|
+
return Number.isFinite(parsed) ? parsed : null;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=checkout-documents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout-documents.js","sourceRoot":"","sources":["../src/checkout-documents.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,8 @@ export declare const CHECKOUT_RETURN_STATUS_PARAM = "genesispay_status";
|
|
|
7
7
|
* read back by {@link parseCheckoutReturnHint}.
|
|
8
8
|
*
|
|
9
9
|
* **This is a UI hint, not proof of payment.** The values are unsigned and a
|
|
10
|
-
* payer can open that URL without paying.
|
|
11
|
-
* `
|
|
12
|
-
* on these fields.
|
|
10
|
+
* payer can open that URL without paying. Use the seller-authenticated strict
|
|
11
|
+
* `fulfillment.verify` authority path before fulfilment — never these fields.
|
|
13
12
|
*/
|
|
14
13
|
export type CheckoutReturnHint = {
|
|
15
14
|
/** The checkout link's `publicId` — the value in `genesispay_link_id`. */
|
|
@@ -26,8 +25,9 @@ export type CheckoutReturnHint = {
|
|
|
26
25
|
*
|
|
27
26
|
* Performs **no verification**: it does not check that the link exists, that it
|
|
28
27
|
* was paid, or that the parameters came from GenesisPay. Call
|
|
29
|
-
* `
|
|
30
|
-
* acting on it.
|
|
28
|
+
* `fulfillment.verify({ locator: { linkId: hint.linkId }, expected })`
|
|
29
|
+
* (authenticated with your seller key) before acting on it. A link locator is
|
|
30
|
+
* suitable only for a single-use link; reusable links require an attempt ID.
|
|
31
31
|
*/
|
|
32
32
|
export declare function parseCheckoutReturnHint(url: string | URL): CheckoutReturnHint | null;
|
|
33
33
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout-return.d.ts","sourceRoot":"","sources":["../src/checkout-return.ts"],"names":[],"mappings":"AAYA,+EAA+E;AAC/E,eAAO,MAAM,6BAA6B,uBAAuB,CAAC;AAElE,oEAAoE;AACpE,eAAO,MAAM,4BAA4B,sBAAsB,CAAC;AAQhE
|
|
1
|
+
{"version":3,"file":"checkout-return.d.ts","sourceRoot":"","sources":["../src/checkout-return.ts"],"names":[],"mappings":"AAYA,+EAA+E;AAC/E,eAAO,MAAM,6BAA6B,uBAAuB,CAAC;AAElE,oEAAoE;AACpE,eAAO,MAAM,4BAA4B,sBAAsB,CAAC;AAQhE;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,kBAAkB,GAAG,IAAI,CAgBpF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAa1D"}
|
package/dist/checkout-return.js
CHANGED
|
@@ -26,8 +26,9 @@ const LOCAL_REDIRECT_HOSTNAMES = new Set(["localhost", "127.0.0.1"]);
|
|
|
26
26
|
*
|
|
27
27
|
* Performs **no verification**: it does not check that the link exists, that it
|
|
28
28
|
* was paid, or that the parameters came from GenesisPay. Call
|
|
29
|
-
* `
|
|
30
|
-
* acting on it.
|
|
29
|
+
* `fulfillment.verify({ locator: { linkId: hint.linkId }, expected })`
|
|
30
|
+
* (authenticated with your seller key) before acting on it. A link locator is
|
|
31
|
+
* suitable only for a single-use link; reusable links require an attempt ID.
|
|
31
32
|
*/
|
|
32
33
|
export function parseCheckoutReturnHint(url) {
|
|
33
34
|
let parsed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout-return.js","sourceRoot":"","sources":["../src/checkout-return.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,0DAA0D;AAC1D,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,+DAA+D;AAE/D,+EAA+E;AAC/E,MAAM,CAAC,MAAM,6BAA6B,GAAG,oBAAoB,CAAC;AAElE,oEAAoE;AACpE,MAAM,CAAC,MAAM,4BAA4B,GAAG,mBAAmB,CAAC;AAEhE,kFAAkF;AAClF,MAAM,WAAW,GAAG,MAAM,CAAC;AAE3B,uEAAuE;AACvE,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"checkout-return.js","sourceRoot":"","sources":["../src/checkout-return.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,0DAA0D;AAC1D,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,+DAA+D;AAE/D,+EAA+E;AAC/E,MAAM,CAAC,MAAM,6BAA6B,GAAG,oBAAoB,CAAC;AAElE,oEAAoE;AACpE,MAAM,CAAC,MAAM,4BAA4B,GAAG,mBAAmB,CAAC;AAEhE,kFAAkF;AAClF,MAAM,WAAW,GAAG,MAAM,CAAC;AAE3B,uEAAuE;AACvE,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;AAiBrE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAiB;IACvD,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAErE,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACzC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtF,CAAC"}
|
package/dist/client.d.ts
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import type { MandatesResource } from "./mandates.js";
|
|
2
2
|
import type { CustomersResource } from "./customers.js";
|
|
3
3
|
import type { InvoicesResource } from "./invoices.js";
|
|
4
|
+
import { type ItemTax, type ItemTaxUpdate } from "./item-tax.js";
|
|
5
|
+
import type { CheckoutDocumentsResource } from "./checkout-documents.js";
|
|
4
6
|
import type { VerifySettlement } from "./payment-gate.js";
|
|
5
7
|
import type { PlansResource } from "./plans.js";
|
|
6
8
|
import type { ProductsResource } from "./products.js";
|
|
7
9
|
import type { EntitlementsResource } from "./entitlements.js";
|
|
8
10
|
import type { PaymentGateNetwork } from "./networks.js";
|
|
9
11
|
import type { ConstructEventOptions, GenesisPayEvent } from "./webhooks.js";
|
|
12
|
+
import { type FulfillmentResource } from "./fulfillment.js";
|
|
10
13
|
/**
|
|
11
|
-
* The
|
|
14
|
+
* The `GenesisPay` client — a Stripe-like entry point that owns the seller key and
|
|
12
15
|
* resolves everything else (payout wallet, network, base URL) from it. The key
|
|
13
16
|
* prefix decides the mode: `gp_sk_test_…` / legacy `gp_sk_…` → test,
|
|
14
17
|
* `gp_sk_live_…` → live. See docs/archive/SELLER_SDK_DX_SPEC.md.
|
|
@@ -23,7 +26,10 @@ export type GenesisPayClientOptions = {
|
|
|
23
26
|
fetchFn?: typeof fetch;
|
|
24
27
|
/** Seller-config cache TTL. Default 5 min. */
|
|
25
28
|
configTtlMs?: number;
|
|
26
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Optional local payout pin, including checkout retrieval and strict fulfillment
|
|
31
|
+
* verification. Historical reconciliation must use the original destination's pin.
|
|
32
|
+
*/
|
|
27
33
|
expectedPayTo?: string;
|
|
28
34
|
};
|
|
29
35
|
export type SellerConfig = {
|
|
@@ -67,9 +73,12 @@ export type CheckoutAmountInput = {
|
|
|
67
73
|
amountUsdc: string;
|
|
68
74
|
};
|
|
69
75
|
export type CheckoutCreateInput = CheckoutAmountInput & {
|
|
76
|
+
/** Omitted means unconfigured; human checkout requires explicit item tax. */
|
|
77
|
+
taxConfig?: ItemTax;
|
|
70
78
|
title: string;
|
|
71
79
|
description?: string;
|
|
72
|
-
|
|
80
|
+
/** Payment requests are single-use. Use products for repeat purchases. */
|
|
81
|
+
linkType?: "single";
|
|
73
82
|
destinationWallet?: string;
|
|
74
83
|
/**
|
|
75
84
|
* Hosted checkout links settle in USDC during the beta. Omit this field in
|
|
@@ -86,7 +95,12 @@ export type CheckoutCreateInput = CheckoutAmountInput & {
|
|
|
86
95
|
/** Where the payer returns when they cancel (https). */
|
|
87
96
|
cancelUrl?: string;
|
|
88
97
|
};
|
|
98
|
+
export type IdempotentCreationOptions = {
|
|
99
|
+
/** Seller-account-scoped retry identity; 1–255 characters without surrounding whitespace. */
|
|
100
|
+
idempotencyKey: string;
|
|
101
|
+
};
|
|
89
102
|
export type CheckoutLink = {
|
|
103
|
+
taxConfig: ItemTax | null;
|
|
90
104
|
publicId: string;
|
|
91
105
|
payUrl: string;
|
|
92
106
|
/** Decimal amount in `asset`, as the server normalized it (e.g. `"5.00"`). */
|
|
@@ -131,7 +145,9 @@ export type CheckoutAttempt = {
|
|
|
131
145
|
* `false` for a real settlement, including on testnet and in provider
|
|
132
146
|
* sandboxes: this is the fabricated-payment axis, not the environment axis.
|
|
133
147
|
*
|
|
134
|
-
* Defaults to `false`
|
|
148
|
+
* Defaults to `false` only on this legacy display/polling view when an older
|
|
149
|
+
* backend omits it. This value is never fulfillment evidence; use
|
|
150
|
+
* `fulfillment.verify()` for versioned real-payment authority.
|
|
135
151
|
*/
|
|
136
152
|
simulated: boolean;
|
|
137
153
|
};
|
|
@@ -186,7 +202,8 @@ export declare class GenesisPay {
|
|
|
186
202
|
readonly mode: GenesisPayKeyMode;
|
|
187
203
|
readonly baseUrl: string;
|
|
188
204
|
readonly checkout: {
|
|
189
|
-
create(input: CheckoutCreateInput): Promise<CheckoutLink>;
|
|
205
|
+
create(input: CheckoutCreateInput, options: IdempotentCreationOptions): Promise<CheckoutLink>;
|
|
206
|
+
updateTax(publicId: string, input: ItemTaxUpdate): Promise<CheckoutLink>;
|
|
190
207
|
retrieve(publicId: string): Promise<CheckoutSession>;
|
|
191
208
|
/**
|
|
192
209
|
* Test mode only: records a confirmed payment on one of your links without
|
|
@@ -210,6 +227,10 @@ export declare class GenesisPay {
|
|
|
210
227
|
readonly customers: CustomersResource;
|
|
211
228
|
/** Draft, finalize, deliver, and collect one-off invoices. */
|
|
212
229
|
readonly invoices: InvoicesResource;
|
|
230
|
+
/** Immutable documents generated after hosted human checkout completes. */
|
|
231
|
+
readonly checkoutDocuments: CheckoutDocumentsResource;
|
|
232
|
+
/** Strict seller-scoped payment authority. Tolerant checkout views are display-only. */
|
|
233
|
+
readonly fulfillment: FulfillmentResource;
|
|
213
234
|
/**
|
|
214
235
|
* Payment mandates: bounded, revocable spending approvals a payer signs once.
|
|
215
236
|
*
|
|
@@ -242,6 +263,7 @@ export declare class GenesisPay {
|
|
|
242
263
|
constructor(options: GenesisPayClientOptions);
|
|
243
264
|
/** Raw on purpose: product-gate negotiation must preserve 402 protocol headers. */
|
|
244
265
|
private performProductGateRequest;
|
|
266
|
+
private performStrictSellerRequest;
|
|
245
267
|
/**
|
|
246
268
|
* Resolve (and cache) the seller config from the key. Single-flight so a
|
|
247
269
|
* cold-start burst shares one request; failures are never cached (the memo is
|
|
@@ -254,8 +276,8 @@ export declare class GenesisPay {
|
|
|
254
276
|
private fetchSeller;
|
|
255
277
|
private assertSafe;
|
|
256
278
|
/**
|
|
257
|
-
* Applies the `expectedPayTo` pin to a
|
|
258
|
-
*
|
|
279
|
+
* Applies the `expectedPayTo` pin to a frozen or explicitly expected destination
|
|
280
|
+
* on creation and authenticated retrieval alike (MR-102/MR-202).
|
|
259
281
|
*
|
|
260
282
|
* Checking it in `assertSafe` alone was not enough: that only covers the
|
|
261
283
|
* `/api/v1/seller` config lookup, while a checkout link and a subscription
|
|
@@ -271,6 +293,19 @@ export declare class GenesisPay {
|
|
|
271
293
|
* map — it is always a config/connectivity problem.
|
|
272
294
|
*/
|
|
273
295
|
private performRequest;
|
|
296
|
+
/**
|
|
297
|
+
* Creates a payable checkout link — and refuses to hand one back unless the
|
|
298
|
+
* backend that created it answered in this SDK's API version.
|
|
299
|
+
*
|
|
300
|
+
* The version header alone is a request, not a negotiation: a backend that
|
|
301
|
+
* predates the strict surface (or one that was rolled back) ignores it, mints
|
|
302
|
+
* a legacy link, and returns a perfectly ordinary 201. That link is payable
|
|
303
|
+
* and its attempt carries no authority provenance, so strict fulfillment can
|
|
304
|
+
* never verify it — the payer's money would be stranded in an unfulfillable
|
|
305
|
+
* purchase. So the raw response is read here rather than through the tolerant
|
|
306
|
+
* shared seam, and the version + request ID are checked before the link
|
|
307
|
+
* becomes a payUrl anyone can hand to a payer.
|
|
308
|
+
*/
|
|
274
309
|
private createCheckout;
|
|
275
310
|
/**
|
|
276
311
|
* Fetch the current state of a checkout link. `paid` is the field to poll on;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAaxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|