@timbro/payments 0.2.0-next.1 → 0.2.0-next.2
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/README.md +101 -33
- package/dist/generated/openapi.d.ts +0 -336
- package/dist/generated/openapi.d.ts.map +1 -1
- package/dist/payments-client.d.ts +6 -1
- package/dist/payments-client.d.ts.map +1 -1
- package/dist/payments-client.js +4 -0
- package/dist/payments-client.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,92 +1,160 @@
|
|
|
1
1
|
# `@timbro/payments`
|
|
2
2
|
|
|
3
|
-
Create a payment on your server and send the customer to Checkout.
|
|
3
|
+
Create a payment on your server and send the customer to Checkout. Retrieve the Payment to confirm collection; signed webhooks notify you when it changes. Use `@timbro/invoices` to issue and deliver invoices. Payments and Refunds coordinate with invoices through the canonical `invoiceId`.
|
|
4
4
|
|
|
5
|
-
Requires Node.js 24.19 or later and ESM.
|
|
5
|
+
Requires Node.js 24.19 or later and ESM. These examples use the prerelease API:
|
|
6
6
|
|
|
7
7
|
```sh
|
|
8
|
-
npm install @timbro/payments
|
|
8
|
+
npm install @timbro/payments@0.2.0-next.2
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
The stable `0.1.0` package uses the earlier fiscal coordination interface. Do not mix its methods with these examples. Check [capabilities and enablement](https://timbro.do/en/docs/produccion/capacidades/) before using a function for a merchant or environment.
|
|
12
|
+
|
|
13
|
+
## Create and confirm a payment
|
|
14
|
+
|
|
15
|
+
Keep the merchant API key on your server. Its capabilities determine which tasks it can perform. For an amount-only payment, configure a tax default or send `tax.includedAmount`; Timbro does not infer the tax rate.
|
|
12
16
|
|
|
13
17
|
```ts
|
|
14
18
|
import { createTimbroPayments } from "@timbro/payments";
|
|
15
19
|
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
});
|
|
20
|
+
const apiKey = process.env.TIMBRO_PAYMENTS_SECRET_KEY;
|
|
21
|
+
if (!apiKey) throw new Error("TIMBRO_PAYMENTS_SECRET_KEY is required");
|
|
22
|
+
const timbro = createTimbroPayments({ apiKey });
|
|
19
23
|
|
|
20
24
|
export async function POST(): Promise<Response> {
|
|
21
25
|
const payment = await timbro.payments.create({
|
|
22
26
|
paymentReference: "order-123-payment-1",
|
|
23
27
|
amount: { currency: "DOP", value: "1250.00" },
|
|
24
28
|
description: "Service",
|
|
29
|
+
tax: { includedAmount: "190.68" },
|
|
25
30
|
returnUrl: "https://shop.example.com/orders/123",
|
|
26
31
|
});
|
|
27
|
-
|
|
28
32
|
return Response.redirect(payment.checkout.url);
|
|
29
33
|
}
|
|
30
34
|
```
|
|
31
35
|
|
|
32
|
-
|
|
36
|
+
Persist a unique `paymentReference` and the request before sending it. Reuse both after a timeout to recover the same Payment; changing its intent conflicts. The customer's return to `returnUrl` does not confirm payment.
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
const payment = await timbro.payments.retrieve("payment_123456789abcdefghjkmnpqr");
|
|
40
|
+
if (payment.status === "succeeded") {
|
|
41
|
+
// Apply the matching reference, currency, and amount to your order once.
|
|
42
|
+
}
|
|
43
|
+
```
|
|
33
44
|
|
|
34
|
-
##
|
|
45
|
+
## Collect and issue an invoice
|
|
35
46
|
|
|
36
|
-
|
|
47
|
+
Automatic and merchant invoicing require itemized DOP sales. Supply each item's fiscal unit and kind. An amount-only Payment cannot be changed into an invoice-capable sale through `updateInvoiceChoice`.
|
|
37
48
|
|
|
38
49
|
```ts
|
|
39
|
-
const
|
|
50
|
+
const invoicePayment = await timbro.payments.create({
|
|
51
|
+
paymentReference: "order-124-payment-1",
|
|
52
|
+
currency: "DOP",
|
|
53
|
+
items: [{
|
|
54
|
+
description: "Service",
|
|
55
|
+
quantity: "1",
|
|
56
|
+
unit: "unit",
|
|
57
|
+
kind: "service",
|
|
58
|
+
unitPrice: "1250.00",
|
|
59
|
+
tax: { kind: "itbis_18", included: true },
|
|
60
|
+
}],
|
|
61
|
+
invoicing: { mode: "automatic", type: "E32" },
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
await timbro.payments.updateInvoiceChoice({
|
|
65
|
+
paymentId: invoicePayment.id,
|
|
66
|
+
idempotencyKey: "order-124-buyer-1",
|
|
67
|
+
type: "E31",
|
|
68
|
+
buyer: { kind: "domestic", taxId: "130123456" },
|
|
69
|
+
});
|
|
40
70
|
```
|
|
41
71
|
|
|
42
|
-
|
|
72
|
+
Choose the Invoice type and buyer before submission, using the buyer's real tax identity. Locked choices and changes after submission or split creation are refused. Where permitted, `buyer: { kind: "anonymous" }` clears an earlier recipient. A captured Payment's `invoiceId` identifies its invoice; retrieve it through Invoices to confirm acceptance and file readiness.
|
|
73
|
+
|
|
74
|
+
For merchant-issued or existing invoices and independent installations, follow [collect and issue an e-CF](https://timbro.do/en/docs/comprobantes/emitir-ecf/). An independent installation supplies restricted receipt access; Payments never needs its Source key.
|
|
75
|
+
|
|
76
|
+
## Cancel or refund
|
|
77
|
+
|
|
78
|
+
Cancel an unpaid Payment only while cancellation is permitted:
|
|
43
79
|
|
|
44
80
|
```ts
|
|
45
|
-
await timbro.payments.cancel({ paymentId: "
|
|
81
|
+
await timbro.payments.cancel({ paymentId: "payment_123456789abcdefghjkmnpqr" });
|
|
46
82
|
```
|
|
47
83
|
|
|
48
|
-
Refund
|
|
84
|
+
Refund after capture. Omitting `amount` reserves the remaining refundable balance once. For a partial refund, `amount` is the total returned money and `voluntaryTipAmount` is the portion returning a voluntary tip. Omitting the tip portion declares zero; returning the entire remaining balance includes the remaining tip.
|
|
49
85
|
|
|
50
86
|
```ts
|
|
51
87
|
const refund = await timbro.refunds.create({
|
|
52
|
-
paymentId: "
|
|
88
|
+
paymentId: "payment_123456789abcdefghjkmnpqr",
|
|
53
89
|
refundReference: "order-123-refund-1",
|
|
90
|
+
amount: { currency: "DOP", value: "135.00" },
|
|
91
|
+
voluntaryTipAmount: { currency: "DOP", value: "10.00" },
|
|
54
92
|
});
|
|
55
93
|
```
|
|
56
94
|
|
|
57
|
-
|
|
95
|
+
Reuse `refundReference` and the request for retries. Automatic provider refunds currently cover full, unsplit DOP card payments in TEST with Azul. CardNet refund and inquiry qualification remain pending. Partial, split, LIVE, wallet, and sandbox paths require an operator and return `operator_required` before remote money movement.
|
|
96
|
+
|
|
97
|
+
## Associate the credit note separately
|
|
98
|
+
|
|
99
|
+
A provider refund does not create an E34 credit note. In this example, RD$125.00 is the commercial portion and RD$10.00 is the voluntary tip, which is excluded from the credit-note amount. Replace `originalInvoiceId` with the accepted invoice for this payment and use its actual fiscal facts. Install the fiscal SDK before this step:
|
|
100
|
+
|
|
101
|
+
```sh
|
|
102
|
+
npm install @timbro/invoices@0.9.0-next.1
|
|
103
|
+
```
|
|
58
104
|
|
|
59
105
|
```ts
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
106
|
+
import { createTimbroInvoices } from "@timbro/invoices";
|
|
107
|
+
|
|
108
|
+
const invoiceApiKey = process.env.TIMBRO_INVOICES_API_KEY;
|
|
109
|
+
if (!invoiceApiKey) throw new Error("TIMBRO_INVOICES_API_KEY is required");
|
|
110
|
+
const invoices = createTimbroInvoices({
|
|
111
|
+
apiKey: invoiceApiKey,
|
|
112
|
+
baseUrl: process.env.TIMBRO_INVOICES_ORIGIN,
|
|
113
|
+
});
|
|
114
|
+
const creditNote = await invoices.invoices.create({
|
|
115
|
+
invoiceReference: "order-123-credit-note-1",
|
|
116
|
+
type: "E34",
|
|
117
|
+
originalInvoiceId: "f35b7ae4-c484-4c63-981e-4f0f15e913b5",
|
|
118
|
+
modificationCode: "3",
|
|
119
|
+
reason: "Partial return",
|
|
120
|
+
currency: "DOP",
|
|
121
|
+
incomeType: "01",
|
|
122
|
+
paymentTerms: { type: "immediate" },
|
|
123
|
+
items: [{
|
|
124
|
+
description: "Returned service",
|
|
125
|
+
quantity: "1",
|
|
126
|
+
unit: "unit",
|
|
127
|
+
kind: "service",
|
|
128
|
+
unitPrice: "125.00",
|
|
129
|
+
tax: { kind: "itbis_18", included: true },
|
|
130
|
+
}],
|
|
65
131
|
});
|
|
66
132
|
```
|
|
67
133
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
For a partial refund, pass exact `amount` and, when returning a voluntary tip, `voluntaryTipAmount`, each as `{ currency, value }`. Omitting the tip portion declares zero; refunding the entire remaining balance includes its remaining tip. `Refund.voluntaryTipAmount` records the reserved portion. Issue the credit note through the Invoices API for the commercial portion, then associate it separately:
|
|
134
|
+
For an independent installation, set `TIMBRO_INVOICES_ORIGIN` to its trusted origin and use its own key. Omit the origin for the hosted Gateway. Once the credit note is accepted, associate it with the Refund. For an Invoice from an independent installation, obtain its restricted receipt there and keep the token on your server:
|
|
71
135
|
|
|
72
136
|
```ts
|
|
137
|
+
const currentCreditNote = await invoices.invoices.retrieve(creditNote.id);
|
|
138
|
+
if (
|
|
139
|
+
currentCreditNote?.status !== "accepted" &&
|
|
140
|
+
currentCreditNote?.status !== "acceptedWithObservations"
|
|
141
|
+
) throw new Error("The credit note is not accepted yet");
|
|
142
|
+
const receipt = await invoices.invoices.shareReceipt(creditNote.id);
|
|
73
143
|
await timbro.refunds.attachInvoice({
|
|
74
144
|
refundId: refund.id,
|
|
75
145
|
invoiceId: creditNote.id,
|
|
76
|
-
idempotencyKey: "order-123-credit-note",
|
|
77
146
|
receipt: { id: receipt.id, accessToken: receipt.accessToken },
|
|
147
|
+
idempotencyKey: "order-123-credit-note-association",
|
|
78
148
|
});
|
|
79
149
|
```
|
|
80
150
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
Reuse a `refundReference` for retries. Automatic refunds currently cover full, unsplit DOP card payments in TEST with Azul. CardNet refund qualification remains open in [issue #587](https://github.com/indexa-labs/checkout/issues/587); partial, split, LIVE, wallet, and sandbox refunds require an operator and return `operator_required`. See [refunds](https://timbro.do/en/docs/cobros/reembolsos/).
|
|
151
|
+
For an Invoice in the same hosted business, omit `receipt`. The Gateway verifies the original Invoice, issuer, environment, currency, acceptance, and amount before setting `Refund.invoiceId`. This association does not change the provider outcome.
|
|
84
152
|
|
|
85
153
|
## Guides and API reference
|
|
86
154
|
|
|
87
155
|
- [Retrieve payments](https://timbro.do/en/docs/cobros/consultar-pagos/) and [payment states](https://timbro.do/en/docs/cobros/estados-del-pago/)
|
|
88
|
-
- [Taxes and sale items](https://timbro.do/en/docs/cobros/impuestos-y-articulos/) and [
|
|
89
|
-
- [
|
|
90
|
-
- [
|
|
156
|
+
- [Taxes and sale items](https://timbro.do/en/docs/cobros/impuestos-y-articulos/) and [signed webhooks](https://timbro.do/en/docs/cobros/webhooks/)
|
|
157
|
+
- [Refunds](https://timbro.do/en/docs/cobros/reembolsos/) and [credit or debit notes](https://timbro.do/en/docs/comprobantes/corregir-ecf/)
|
|
158
|
+
- [REST reference](https://timbro.do/en/docs/reference/payments/) and [error handling](https://timbro.do/en/docs/produccion/errores/)
|
|
91
159
|
|
|
92
|
-
|
|
160
|
+
`PaymentsError` exposes the error code, HTTP status, request ID, field problems, retry timing, and cause. Check the operation's recovery rules before retrying. The generated transport and internal coordination modules are not public entrypoints.
|
|
@@ -1760,118 +1760,6 @@ export interface components {
|
|
|
1760
1760
|
version: string;
|
|
1761
1761
|
};
|
|
1762
1762
|
saleReference?: string;
|
|
1763
|
-
/**
|
|
1764
|
-
* Invoicing
|
|
1765
|
-
* @description Fiscal intent is separate from the sale snapshot. Existing mode associates an already accepted Invoice; a restricted receipt capability is required for an Invoice owned by an independent Source.
|
|
1766
|
-
*/
|
|
1767
|
-
invoicing?: {
|
|
1768
|
-
/** @enum {string} */
|
|
1769
|
-
type: "E31" | "E32" | "E45";
|
|
1770
|
-
/** PaymentInvoiceBuyerInput */
|
|
1771
|
-
buyer?: {
|
|
1772
|
-
/** @constant */
|
|
1773
|
-
kind: "anonymous";
|
|
1774
|
-
} | {
|
|
1775
|
-
/** @constant */
|
|
1776
|
-
kind: "domestic";
|
|
1777
|
-
taxId: string;
|
|
1778
|
-
} | {
|
|
1779
|
-
foreignId: string;
|
|
1780
|
-
legalName: string;
|
|
1781
|
-
address?: string;
|
|
1782
|
-
contactName?: string;
|
|
1783
|
-
/** Format: email */
|
|
1784
|
-
email?: string;
|
|
1785
|
-
/** @constant */
|
|
1786
|
-
kind: "foreign";
|
|
1787
|
-
};
|
|
1788
|
-
/** Format: email */
|
|
1789
|
-
deliveryEmail?: string;
|
|
1790
|
-
allowedTypes?: ("E31" | "E32" | "E45")[];
|
|
1791
|
-
isTypeLocked?: boolean;
|
|
1792
|
-
isBuyerLocked?: boolean;
|
|
1793
|
-
/** FiscalGovernmentEligibility */
|
|
1794
|
-
governmentEligibility?: {
|
|
1795
|
-
/** @constant */
|
|
1796
|
-
entityKind: "central_government";
|
|
1797
|
-
authorityReference: string;
|
|
1798
|
-
} | {
|
|
1799
|
-
/** @constant */
|
|
1800
|
-
entityKind: "decentralized_or_autonomous";
|
|
1801
|
-
authorityReference: string;
|
|
1802
|
-
} | {
|
|
1803
|
-
/** @constant */
|
|
1804
|
-
entityKind: "social_security";
|
|
1805
|
-
authorityReference: string;
|
|
1806
|
-
} | {
|
|
1807
|
-
/** @constant */
|
|
1808
|
-
entityKind: "other_noncommercial_government";
|
|
1809
|
-
authorityReference: string;
|
|
1810
|
-
};
|
|
1811
|
-
/** @constant */
|
|
1812
|
-
mode: "automatic";
|
|
1813
|
-
invoiceReference?: string;
|
|
1814
|
-
} | {
|
|
1815
|
-
/** @enum {string} */
|
|
1816
|
-
type: "E31" | "E32" | "E45";
|
|
1817
|
-
/** PaymentInvoiceBuyerInput */
|
|
1818
|
-
buyer?: {
|
|
1819
|
-
/** @constant */
|
|
1820
|
-
kind: "anonymous";
|
|
1821
|
-
} | {
|
|
1822
|
-
/** @constant */
|
|
1823
|
-
kind: "domestic";
|
|
1824
|
-
taxId: string;
|
|
1825
|
-
} | {
|
|
1826
|
-
foreignId: string;
|
|
1827
|
-
legalName: string;
|
|
1828
|
-
address?: string;
|
|
1829
|
-
contactName?: string;
|
|
1830
|
-
/** Format: email */
|
|
1831
|
-
email?: string;
|
|
1832
|
-
/** @constant */
|
|
1833
|
-
kind: "foreign";
|
|
1834
|
-
};
|
|
1835
|
-
/** Format: email */
|
|
1836
|
-
deliveryEmail?: string;
|
|
1837
|
-
allowedTypes?: ("E31" | "E32" | "E45")[];
|
|
1838
|
-
isTypeLocked?: boolean;
|
|
1839
|
-
isBuyerLocked?: boolean;
|
|
1840
|
-
/** FiscalGovernmentEligibility */
|
|
1841
|
-
governmentEligibility?: {
|
|
1842
|
-
/** @constant */
|
|
1843
|
-
entityKind: "central_government";
|
|
1844
|
-
authorityReference: string;
|
|
1845
|
-
} | {
|
|
1846
|
-
/** @constant */
|
|
1847
|
-
entityKind: "decentralized_or_autonomous";
|
|
1848
|
-
authorityReference: string;
|
|
1849
|
-
} | {
|
|
1850
|
-
/** @constant */
|
|
1851
|
-
entityKind: "social_security";
|
|
1852
|
-
authorityReference: string;
|
|
1853
|
-
} | {
|
|
1854
|
-
/** @constant */
|
|
1855
|
-
entityKind: "other_noncommercial_government";
|
|
1856
|
-
authorityReference: string;
|
|
1857
|
-
};
|
|
1858
|
-
/** @constant */
|
|
1859
|
-
mode: "merchant";
|
|
1860
|
-
} | {
|
|
1861
|
-
/** @constant */
|
|
1862
|
-
mode: "existing";
|
|
1863
|
-
/** Format: uuid */
|
|
1864
|
-
invoiceId: string;
|
|
1865
|
-
/**
|
|
1866
|
-
* InvoiceReceiptCredential
|
|
1867
|
-
* @description Restricted receipt access for an Invoice owned by an independent Source. Keep the token private.
|
|
1868
|
-
*/
|
|
1869
|
-
receipt?: {
|
|
1870
|
-
/** Format: uuid */
|
|
1871
|
-
id: string;
|
|
1872
|
-
accessToken: string;
|
|
1873
|
-
};
|
|
1874
|
-
};
|
|
1875
1763
|
/**
|
|
1876
1764
|
* Money
|
|
1877
1765
|
* @description An exact decimal monetary amount.
|
|
@@ -2128,118 +2016,6 @@ export interface components {
|
|
|
2128
2016
|
version: string;
|
|
2129
2017
|
};
|
|
2130
2018
|
saleReference?: string;
|
|
2131
|
-
/**
|
|
2132
|
-
* Invoicing
|
|
2133
|
-
* @description Fiscal intent is separate from the sale snapshot. Existing mode associates an already accepted Invoice; a restricted receipt capability is required for an Invoice owned by an independent Source.
|
|
2134
|
-
*/
|
|
2135
|
-
invoicing?: {
|
|
2136
|
-
/** @enum {string} */
|
|
2137
|
-
type: "E31" | "E32" | "E45";
|
|
2138
|
-
/** PaymentInvoiceBuyerInput */
|
|
2139
|
-
buyer?: {
|
|
2140
|
-
/** @constant */
|
|
2141
|
-
kind: "anonymous";
|
|
2142
|
-
} | {
|
|
2143
|
-
/** @constant */
|
|
2144
|
-
kind: "domestic";
|
|
2145
|
-
taxId: string;
|
|
2146
|
-
} | {
|
|
2147
|
-
foreignId: string;
|
|
2148
|
-
legalName: string;
|
|
2149
|
-
address?: string;
|
|
2150
|
-
contactName?: string;
|
|
2151
|
-
/** Format: email */
|
|
2152
|
-
email?: string;
|
|
2153
|
-
/** @constant */
|
|
2154
|
-
kind: "foreign";
|
|
2155
|
-
};
|
|
2156
|
-
/** Format: email */
|
|
2157
|
-
deliveryEmail?: string;
|
|
2158
|
-
allowedTypes?: ("E31" | "E32" | "E45")[];
|
|
2159
|
-
isTypeLocked?: boolean;
|
|
2160
|
-
isBuyerLocked?: boolean;
|
|
2161
|
-
/** FiscalGovernmentEligibility */
|
|
2162
|
-
governmentEligibility?: {
|
|
2163
|
-
/** @constant */
|
|
2164
|
-
entityKind: "central_government";
|
|
2165
|
-
authorityReference: string;
|
|
2166
|
-
} | {
|
|
2167
|
-
/** @constant */
|
|
2168
|
-
entityKind: "decentralized_or_autonomous";
|
|
2169
|
-
authorityReference: string;
|
|
2170
|
-
} | {
|
|
2171
|
-
/** @constant */
|
|
2172
|
-
entityKind: "social_security";
|
|
2173
|
-
authorityReference: string;
|
|
2174
|
-
} | {
|
|
2175
|
-
/** @constant */
|
|
2176
|
-
entityKind: "other_noncommercial_government";
|
|
2177
|
-
authorityReference: string;
|
|
2178
|
-
};
|
|
2179
|
-
/** @constant */
|
|
2180
|
-
mode: "automatic";
|
|
2181
|
-
invoiceReference?: string;
|
|
2182
|
-
} | {
|
|
2183
|
-
/** @enum {string} */
|
|
2184
|
-
type: "E31" | "E32" | "E45";
|
|
2185
|
-
/** PaymentInvoiceBuyerInput */
|
|
2186
|
-
buyer?: {
|
|
2187
|
-
/** @constant */
|
|
2188
|
-
kind: "anonymous";
|
|
2189
|
-
} | {
|
|
2190
|
-
/** @constant */
|
|
2191
|
-
kind: "domestic";
|
|
2192
|
-
taxId: string;
|
|
2193
|
-
} | {
|
|
2194
|
-
foreignId: string;
|
|
2195
|
-
legalName: string;
|
|
2196
|
-
address?: string;
|
|
2197
|
-
contactName?: string;
|
|
2198
|
-
/** Format: email */
|
|
2199
|
-
email?: string;
|
|
2200
|
-
/** @constant */
|
|
2201
|
-
kind: "foreign";
|
|
2202
|
-
};
|
|
2203
|
-
/** Format: email */
|
|
2204
|
-
deliveryEmail?: string;
|
|
2205
|
-
allowedTypes?: ("E31" | "E32" | "E45")[];
|
|
2206
|
-
isTypeLocked?: boolean;
|
|
2207
|
-
isBuyerLocked?: boolean;
|
|
2208
|
-
/** FiscalGovernmentEligibility */
|
|
2209
|
-
governmentEligibility?: {
|
|
2210
|
-
/** @constant */
|
|
2211
|
-
entityKind: "central_government";
|
|
2212
|
-
authorityReference: string;
|
|
2213
|
-
} | {
|
|
2214
|
-
/** @constant */
|
|
2215
|
-
entityKind: "decentralized_or_autonomous";
|
|
2216
|
-
authorityReference: string;
|
|
2217
|
-
} | {
|
|
2218
|
-
/** @constant */
|
|
2219
|
-
entityKind: "social_security";
|
|
2220
|
-
authorityReference: string;
|
|
2221
|
-
} | {
|
|
2222
|
-
/** @constant */
|
|
2223
|
-
entityKind: "other_noncommercial_government";
|
|
2224
|
-
authorityReference: string;
|
|
2225
|
-
};
|
|
2226
|
-
/** @constant */
|
|
2227
|
-
mode: "merchant";
|
|
2228
|
-
} | {
|
|
2229
|
-
/** @constant */
|
|
2230
|
-
mode: "existing";
|
|
2231
|
-
/** Format: uuid */
|
|
2232
|
-
invoiceId: string;
|
|
2233
|
-
/**
|
|
2234
|
-
* InvoiceReceiptCredential
|
|
2235
|
-
* @description Restricted receipt access for an Invoice owned by an independent Source. Keep the token private.
|
|
2236
|
-
*/
|
|
2237
|
-
receipt?: {
|
|
2238
|
-
/** Format: uuid */
|
|
2239
|
-
id: string;
|
|
2240
|
-
accessToken: string;
|
|
2241
|
-
};
|
|
2242
|
-
};
|
|
2243
2019
|
/**
|
|
2244
2020
|
* Money
|
|
2245
2021
|
* @description An exact decimal monetary amount.
|
|
@@ -17578,118 +17354,6 @@ export interface operations {
|
|
|
17578
17354
|
version: string;
|
|
17579
17355
|
};
|
|
17580
17356
|
saleReference?: string;
|
|
17581
|
-
/**
|
|
17582
|
-
* Invoicing
|
|
17583
|
-
* @description Fiscal intent is separate from the sale snapshot. Existing mode associates an already accepted Invoice; a restricted receipt capability is required for an Invoice owned by an independent Source.
|
|
17584
|
-
*/
|
|
17585
|
-
invoicing?: {
|
|
17586
|
-
/** @enum {string} */
|
|
17587
|
-
type: "E31" | "E32" | "E45";
|
|
17588
|
-
/** PaymentInvoiceBuyerInput */
|
|
17589
|
-
buyer?: {
|
|
17590
|
-
/** @constant */
|
|
17591
|
-
kind: "anonymous";
|
|
17592
|
-
} | {
|
|
17593
|
-
/** @constant */
|
|
17594
|
-
kind: "domestic";
|
|
17595
|
-
taxId: string;
|
|
17596
|
-
} | {
|
|
17597
|
-
foreignId: string;
|
|
17598
|
-
legalName: string;
|
|
17599
|
-
address?: string;
|
|
17600
|
-
contactName?: string;
|
|
17601
|
-
/** Format: email */
|
|
17602
|
-
email?: string;
|
|
17603
|
-
/** @constant */
|
|
17604
|
-
kind: "foreign";
|
|
17605
|
-
};
|
|
17606
|
-
/** Format: email */
|
|
17607
|
-
deliveryEmail?: string;
|
|
17608
|
-
allowedTypes?: ("E31" | "E32" | "E45")[];
|
|
17609
|
-
isTypeLocked?: boolean;
|
|
17610
|
-
isBuyerLocked?: boolean;
|
|
17611
|
-
/** FiscalGovernmentEligibility */
|
|
17612
|
-
governmentEligibility?: {
|
|
17613
|
-
/** @constant */
|
|
17614
|
-
entityKind: "central_government";
|
|
17615
|
-
authorityReference: string;
|
|
17616
|
-
} | {
|
|
17617
|
-
/** @constant */
|
|
17618
|
-
entityKind: "decentralized_or_autonomous";
|
|
17619
|
-
authorityReference: string;
|
|
17620
|
-
} | {
|
|
17621
|
-
/** @constant */
|
|
17622
|
-
entityKind: "social_security";
|
|
17623
|
-
authorityReference: string;
|
|
17624
|
-
} | {
|
|
17625
|
-
/** @constant */
|
|
17626
|
-
entityKind: "other_noncommercial_government";
|
|
17627
|
-
authorityReference: string;
|
|
17628
|
-
};
|
|
17629
|
-
/** @constant */
|
|
17630
|
-
mode: "automatic";
|
|
17631
|
-
invoiceReference?: string;
|
|
17632
|
-
} | {
|
|
17633
|
-
/** @enum {string} */
|
|
17634
|
-
type: "E31" | "E32" | "E45";
|
|
17635
|
-
/** PaymentInvoiceBuyerInput */
|
|
17636
|
-
buyer?: {
|
|
17637
|
-
/** @constant */
|
|
17638
|
-
kind: "anonymous";
|
|
17639
|
-
} | {
|
|
17640
|
-
/** @constant */
|
|
17641
|
-
kind: "domestic";
|
|
17642
|
-
taxId: string;
|
|
17643
|
-
} | {
|
|
17644
|
-
foreignId: string;
|
|
17645
|
-
legalName: string;
|
|
17646
|
-
address?: string;
|
|
17647
|
-
contactName?: string;
|
|
17648
|
-
/** Format: email */
|
|
17649
|
-
email?: string;
|
|
17650
|
-
/** @constant */
|
|
17651
|
-
kind: "foreign";
|
|
17652
|
-
};
|
|
17653
|
-
/** Format: email */
|
|
17654
|
-
deliveryEmail?: string;
|
|
17655
|
-
allowedTypes?: ("E31" | "E32" | "E45")[];
|
|
17656
|
-
isTypeLocked?: boolean;
|
|
17657
|
-
isBuyerLocked?: boolean;
|
|
17658
|
-
/** FiscalGovernmentEligibility */
|
|
17659
|
-
governmentEligibility?: {
|
|
17660
|
-
/** @constant */
|
|
17661
|
-
entityKind: "central_government";
|
|
17662
|
-
authorityReference: string;
|
|
17663
|
-
} | {
|
|
17664
|
-
/** @constant */
|
|
17665
|
-
entityKind: "decentralized_or_autonomous";
|
|
17666
|
-
authorityReference: string;
|
|
17667
|
-
} | {
|
|
17668
|
-
/** @constant */
|
|
17669
|
-
entityKind: "social_security";
|
|
17670
|
-
authorityReference: string;
|
|
17671
|
-
} | {
|
|
17672
|
-
/** @constant */
|
|
17673
|
-
entityKind: "other_noncommercial_government";
|
|
17674
|
-
authorityReference: string;
|
|
17675
|
-
};
|
|
17676
|
-
/** @constant */
|
|
17677
|
-
mode: "merchant";
|
|
17678
|
-
} | {
|
|
17679
|
-
/** @constant */
|
|
17680
|
-
mode: "existing";
|
|
17681
|
-
/** Format: uuid */
|
|
17682
|
-
invoiceId: string;
|
|
17683
|
-
/**
|
|
17684
|
-
* InvoiceReceiptCredential
|
|
17685
|
-
* @description Restricted receipt access for an Invoice owned by an independent Source. Keep the token private.
|
|
17686
|
-
*/
|
|
17687
|
-
receipt?: {
|
|
17688
|
-
/** Format: uuid */
|
|
17689
|
-
id: string;
|
|
17690
|
-
accessToken: string;
|
|
17691
|
-
};
|
|
17692
|
-
};
|
|
17693
17357
|
/**
|
|
17694
17358
|
* Money
|
|
17695
17359
|
* @description An exact decimal monetary amount.
|