@linqapp/sdk 0.28.2 → 0.29.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 +7 -0
- package/client.d.mts +117 -0
- package/client.d.mts.map +1 -1
- package/client.d.ts +117 -0
- package/client.d.ts.map +1 -1
- package/client.js +117 -0
- package/client.js.map +1 -1
- package/client.mjs +117 -0
- package/client.mjs.map +1 -1
- package/package.json +1 -1
- package/resources/attachments.d.mts +7 -1
- package/resources/attachments.d.mts.map +1 -1
- package/resources/attachments.d.ts +7 -1
- package/resources/attachments.d.ts.map +1 -1
- package/resources/available-number.d.mts +9 -6
- package/resources/available-number.d.mts.map +1 -1
- package/resources/available-number.d.ts +9 -6
- package/resources/available-number.d.ts.map +1 -1
- package/resources/available-number.js +8 -5
- package/resources/available-number.js.map +1 -1
- package/resources/available-number.mjs +8 -5
- package/resources/available-number.mjs.map +1 -1
- package/resources/chats/location.d.mts +52 -11
- package/resources/chats/location.d.mts.map +1 -1
- package/resources/chats/location.d.ts +52 -11
- package/resources/chats/location.d.ts.map +1 -1
- package/resources/chats/location.js +52 -11
- package/resources/chats/location.js.map +1 -1
- package/resources/chats/location.mjs +52 -11
- package/resources/chats/location.mjs.map +1 -1
- package/resources/chats/typing.d.mts +46 -10
- package/resources/chats/typing.d.mts.map +1 -1
- package/resources/chats/typing.d.ts +46 -10
- package/resources/chats/typing.d.ts.map +1 -1
- package/resources/chats/typing.js +46 -10
- package/resources/chats/typing.js.map +1 -1
- package/resources/chats/typing.mjs +46 -10
- package/resources/chats/typing.mjs.map +1 -1
- package/resources/index.d.mts +1 -0
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +1 -0
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js +3 -1
- package/resources/index.js.map +1 -1
- package/resources/index.mjs +1 -0
- package/resources/index.mjs.map +1 -1
- package/resources/messages.d.mts +8 -6
- package/resources/messages.d.mts.map +1 -1
- package/resources/messages.d.ts +8 -6
- package/resources/messages.d.ts.map +1 -1
- package/resources/messages.js +6 -4
- package/resources/messages.js.map +1 -1
- package/resources/messages.mjs +6 -4
- package/resources/messages.mjs.map +1 -1
- package/resources/payment-requests.d.mts +413 -0
- package/resources/payment-requests.d.mts.map +1 -0
- package/resources/payment-requests.d.ts +413 -0
- package/resources/payment-requests.d.ts.map +1 -0
- package/resources/payment-requests.js +203 -0
- package/resources/payment-requests.js.map +1 -0
- package/resources/payment-requests.mjs +199 -0
- package/resources/payment-requests.mjs.map +1 -0
- package/resources/phone-numbers.d.mts +5 -43
- package/resources/phone-numbers.d.mts.map +1 -1
- package/resources/phone-numbers.d.ts +5 -43
- package/resources/phone-numbers.d.ts.map +1 -1
- package/resources/webhook-events.d.mts +1 -1
- package/resources/webhook-events.d.mts.map +1 -1
- package/resources/webhook-events.d.ts +1 -1
- package/resources/webhook-events.d.ts.map +1 -1
- package/resources/webhooks.d.mts +1 -25
- package/resources/webhooks.d.mts.map +1 -1
- package/resources/webhooks.d.ts +1 -25
- package/resources/webhooks.d.ts.map +1 -1
- package/src/client.ts +131 -0
- package/src/resources/attachments.ts +7 -0
- package/src/resources/available-number.ts +9 -6
- package/src/resources/chats/location.ts +52 -11
- package/src/resources/chats/typing.ts +46 -10
- package/src/resources/index.ts +7 -0
- package/src/resources/messages.ts +8 -6
- package/src/resources/payment-requests.ts +487 -0
- package/src/resources/phone-numbers.ts +5 -46
- package/src/resources/webhook-events.ts +5 -1
- package/src/resources/webhooks.ts +5 -27
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
|
@@ -0,0 +1,413 @@
|
|
|
1
|
+
import { APIResource } from "../core/resource.js";
|
|
2
|
+
import { APIPromise } from "../core/api-promise.js";
|
|
3
|
+
import { RequestOptions } from "../internal/request-options.js";
|
|
4
|
+
/**
|
|
5
|
+
* Request a payment from a recipient over iMessage. You create a payment
|
|
6
|
+
* request, send its `checkout_url` to the recipient, and they pay with Apple
|
|
7
|
+
* Pay or card. Funds settle **directly to your own Stripe account** — Linq
|
|
8
|
+
* never holds the money.
|
|
9
|
+
*
|
|
10
|
+
* ## How it works
|
|
11
|
+
*
|
|
12
|
+
* 1. **Create** a payment request with an amount and currency. You get back a
|
|
13
|
+
* `checkout_url` and a `status` of `requested`.
|
|
14
|
+
* 2. **Send** the `checkout_url` to the recipient as a `link` message part so
|
|
15
|
+
* it arrives as a tappable card (see *Sending the link* below).
|
|
16
|
+
* 3. The recipient **pays** on the hosted checkout (Apple Pay App Clip on a
|
|
17
|
+
* supported iPhone, web checkout everywhere else).
|
|
18
|
+
* 4. You receive a **`payment.succeeded`** webhook and the request's `status`
|
|
19
|
+
* becomes `succeeded`. Requests you don't collect eventually `expire`.
|
|
20
|
+
*
|
|
21
|
+
* ## Connected accounts (Stripe Standard, direct charges)
|
|
22
|
+
*
|
|
23
|
+
* Agent Pay runs on **Stripe Connect Standard accounts** using **direct
|
|
24
|
+
* charges**: the charge is created on *your* connected account and **you are
|
|
25
|
+
* the merchant of record**. That means the money, the payout schedule, the
|
|
26
|
+
* customer relationship, and the compliance surface are all yours — Linq
|
|
27
|
+
* orchestrates the request and the checkout but is never in the funds flow.
|
|
28
|
+
*
|
|
29
|
+
* **Refunds, disputes, and chargebacks are handled by you, in your own Stripe
|
|
30
|
+
* Dashboard.** Because charges settle directly to your account, Linq has no
|
|
31
|
+
* custody of the funds and cannot issue refunds or contest disputes on your
|
|
32
|
+
* behalf — and there is no refund/dispute endpoint in this API by design. Use
|
|
33
|
+
* the Stripe Dashboard (or the Stripe API on your own account) for the money
|
|
34
|
+
* lifecycle after a payment succeeds.
|
|
35
|
+
*
|
|
36
|
+
* ## Getting set up
|
|
37
|
+
*
|
|
38
|
+
* Open **Agent Pay** in your Linq dashboard
|
|
39
|
+
* (`https://zero.linqapp.com/organization/payments`), click **Connect Stripe**,
|
|
40
|
+
* and complete Stripe's onboarding (business details + a bank account). When
|
|
41
|
+
* your account reaches `charges_enabled`, request creation unlocks; until you
|
|
42
|
+
* connect Stripe, `POST /v3/payment_requests` returns `403`. You can keep
|
|
43
|
+
* collecting even while Stripe finishes background verification.
|
|
44
|
+
*
|
|
45
|
+
* ## Subscriptions
|
|
46
|
+
*
|
|
47
|
+
* Set `mode: subscription` on `POST /v3/payment_requests` to start an
|
|
48
|
+
* **auto-renewing subscription** instead of a one-time charge. Instead of an
|
|
49
|
+
* amount, you pass a `price_id` — an active **recurring Price** on your
|
|
50
|
+
* connected Stripe account (create one in your Stripe Dashboard under
|
|
51
|
+
* Product catalog; if you sell through Stripe Payment Links today, reuse the
|
|
52
|
+
* price your link is built from). The recipient pays the first invoice at
|
|
53
|
+
* the same checkout, and their payment method is saved to the subscription
|
|
54
|
+
* for automatic renewals.
|
|
55
|
+
*
|
|
56
|
+
* The division of labor is deliberate: **Linq handles the first payment,
|
|
57
|
+
* your Stripe account handles the rest.** The request reaches `succeeded`
|
|
58
|
+
* when the first invoice is paid; from then on the subscription lives
|
|
59
|
+
* entirely on your connected account. The response's `stripe` object gives
|
|
60
|
+
* you the join keys — `customer_id` and `subscription_id` — so renewals,
|
|
61
|
+
* plan changes, dunning, and cancellation are managed with your own Stripe
|
|
62
|
+
* Dashboard/API and your own Stripe webhooks. Your `metadata` is stamped on
|
|
63
|
+
* the Customer and Subscription, so correlating in either direction is
|
|
64
|
+
* trivial. There are no renewal webhooks from Linq by design.
|
|
65
|
+
*
|
|
66
|
+
* ### Free trials
|
|
67
|
+
*
|
|
68
|
+
* Add `trial_period_days` (or a fixed `trial_end` timestamp) to start the
|
|
69
|
+
* subscription with a free trial. The checkout still collects the
|
|
70
|
+
* recipient's payment method — the pay sheet shows "$0 due today" with the
|
|
71
|
+
* first charge date — and saves it to the subscription; Stripe bills it
|
|
72
|
+
* automatically when the trial ends. The request reaches `succeeded` when
|
|
73
|
+
* the card is collected, and the response carries `trial_end`. If the trial
|
|
74
|
+
* would end without a payment method on file, the subscription cancels
|
|
75
|
+
* rather than generating unpayable invoices. Trial lifecycle after checkout
|
|
76
|
+
* (extending, ending early) is managed in your own Stripe account via
|
|
77
|
+
* `stripe.subscription_id`.
|
|
78
|
+
*
|
|
79
|
+
* A subscription request you cancel (or that expires unpaid) cancels the
|
|
80
|
+
* incomplete Stripe subscription — nothing lingers on your account.
|
|
81
|
+
*
|
|
82
|
+
* ## Pre-created customers
|
|
83
|
+
*
|
|
84
|
+
* By default each request stands alone: payment mode attaches no Customer,
|
|
85
|
+
* and subscription mode creates a fresh one. If you already manage
|
|
86
|
+
* Customers on your connected account, pass their id as `customer_id`
|
|
87
|
+
* (`cus_...`) on create — in payment mode the charge lands on that
|
|
88
|
+
* customer's payment history, and in subscription mode the subscription is
|
|
89
|
+
* created on them instead of on a new Customer. The id must reference an
|
|
90
|
+
* existing, non-deleted customer on your connected account or the request
|
|
91
|
+
* fails with `400`. We never modify a customer you pass — no metadata is
|
|
92
|
+
* stamped on it.
|
|
93
|
+
*
|
|
94
|
+
* ## Sending the link
|
|
95
|
+
*
|
|
96
|
+
* Deliver the `checkout_url` as a **`link` message part** via
|
|
97
|
+
* `POST /v3/chats/{chatId}/messages` — it renders as a rich card with your
|
|
98
|
+
* branding (title, amount, image) instead of a bare URL, which converts far
|
|
99
|
+
* better. A `link` part must be the only part in the message. See
|
|
100
|
+
* [Rich Link Previews](/guides/messaging/sending-messages).
|
|
101
|
+
*
|
|
102
|
+
* On a supported iPhone the link opens an **Apple Pay App Clip** — a native,
|
|
103
|
+
* no-install checkout sheet. Everywhere else (Android, desktop, iPhones
|
|
104
|
+
* without the App Clip yet) the same URL opens the web checkout, so the link
|
|
105
|
+
* always works. The App Clip experience for your payment links is registered
|
|
106
|
+
* automatically by Linq and refreshed whenever you update your Agent Pay
|
|
107
|
+
* branding; a newly registered experience can take up to ~24 hours to
|
|
108
|
+
* activate on Apple's side, during which links open the web checkout.
|
|
109
|
+
*
|
|
110
|
+
* ## Webhooks
|
|
111
|
+
*
|
|
112
|
+
* Subscribe to payment lifecycle events to reconcile server-side rather than
|
|
113
|
+
* polling: `payment.succeeded`, `payment.canceled`, and `payment.expired`.
|
|
114
|
+
* Each event carries the payment request id, amount, currency, and your
|
|
115
|
+
* `metadata`. See [Webhooks](/guides/webhooks).
|
|
116
|
+
*/
|
|
117
|
+
export declare class PaymentRequests extends APIResource {
|
|
118
|
+
/**
|
|
119
|
+
* Creates a payment request and returns a `checkout_url` the recipient opens to
|
|
120
|
+
* pay with Apple Pay or card. Funds settle directly to your connected Stripe
|
|
121
|
+
* account. A payment request is independent of any chat; to associate one with a
|
|
122
|
+
* chat for your records, store the chat id in `metadata`. Requires your connected
|
|
123
|
+
* account to be `charges_enabled` (returns `403` otherwise).
|
|
124
|
+
*
|
|
125
|
+
* Set `mode: subscription` with a recurring `price_id` from your connected Stripe
|
|
126
|
+
* account to start an **auto-renewing subscription** instead of a one-time charge
|
|
127
|
+
* — the recipient pays the first invoice at checkout and the response's `stripe`
|
|
128
|
+
* object carries the customer and subscription ids for the ongoing lifecycle in
|
|
129
|
+
* your own Stripe account. See the _Subscriptions_ section of the tag overview.
|
|
130
|
+
*
|
|
131
|
+
* In either mode, pass `customer_id` to attach the request to an **existing
|
|
132
|
+
* Customer** on your connected account instead of creating a new one — see
|
|
133
|
+
* _Pre-created customers_ in the tag overview.
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```ts
|
|
137
|
+
* const paymentRequest = await client.paymentRequests.create({
|
|
138
|
+
* amount: 497,
|
|
139
|
+
* currency: 'usd',
|
|
140
|
+
* description: 'Coffee with Ava',
|
|
141
|
+
* metadata: { order_id: 'order_8675309' },
|
|
142
|
+
* });
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
create(params: PaymentRequestCreateParams, options?: RequestOptions): APIPromise<PaymentRequest>;
|
|
146
|
+
/**
|
|
147
|
+
* Returns a payment request's status and details.
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```ts
|
|
151
|
+
* const paymentRequest =
|
|
152
|
+
* await client.paymentRequests.retrieve(
|
|
153
|
+
* '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
|
|
154
|
+
* );
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
retrieve(paymentRequestID: string, options?: RequestOptions): APIPromise<PaymentRequest>;
|
|
158
|
+
/**
|
|
159
|
+
* Lists your payment requests, newest first, for reconciliation. Paginate with
|
|
160
|
+
* `limit` + `offset`; `has_more` indicates whether another page exists.
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ```ts
|
|
164
|
+
* const paymentRequests = await client.paymentRequests.list();
|
|
165
|
+
* ```
|
|
166
|
+
*/
|
|
167
|
+
list(query?: PaymentRequestListParams | null | undefined, options?: RequestOptions): APIPromise<PaymentRequestListResponse>;
|
|
168
|
+
/**
|
|
169
|
+
* Cancels an unpaid payment request: the underlying payment intent is canceled and
|
|
170
|
+
* the request moves to `canceled`. A request that is already paid, canceled, or
|
|
171
|
+
* expired returns 409.
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```ts
|
|
175
|
+
* const paymentRequest = await client.paymentRequests.cancel(
|
|
176
|
+
* '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
|
|
177
|
+
* );
|
|
178
|
+
* ```
|
|
179
|
+
*/
|
|
180
|
+
cancel(paymentRequestID: string, options?: RequestOptions): APIPromise<PaymentRequest>;
|
|
181
|
+
}
|
|
182
|
+
export interface PaymentRequest {
|
|
183
|
+
/**
|
|
184
|
+
* Unique identifier of the payment request.
|
|
185
|
+
*/
|
|
186
|
+
id: string;
|
|
187
|
+
/**
|
|
188
|
+
* Amount in the currency's minor units. In `subscription` mode this is the
|
|
189
|
+
* recurring amount (price × quantity) the recipient pays per interval, starting at
|
|
190
|
+
* checkout.
|
|
191
|
+
*/
|
|
192
|
+
amount: number;
|
|
193
|
+
/**
|
|
194
|
+
* URL the recipient opens to pay:
|
|
195
|
+
* `https://zero.linqapp.com/pay/{slug}?session=...`, where `{slug}` is your
|
|
196
|
+
* partner checkout slug.
|
|
197
|
+
*/
|
|
198
|
+
checkout_url: string;
|
|
199
|
+
created_at: string;
|
|
200
|
+
currency: string;
|
|
201
|
+
/**
|
|
202
|
+
* Whether this request collects a one-time charge or starts a subscription.
|
|
203
|
+
*/
|
|
204
|
+
mode: 'payment' | 'subscription';
|
|
205
|
+
object: string;
|
|
206
|
+
/**
|
|
207
|
+
* Lifecycle status of the payment request.
|
|
208
|
+
*/
|
|
209
|
+
status: 'requested' | 'succeeded' | 'canceled' | 'expired';
|
|
210
|
+
description?: string;
|
|
211
|
+
/**
|
|
212
|
+
* When an unpaid request auto-expires.
|
|
213
|
+
*/
|
|
214
|
+
expires_at?: string;
|
|
215
|
+
/**
|
|
216
|
+
* Subscription mode — how often the subscription renews.
|
|
217
|
+
*/
|
|
218
|
+
interval?: 'day' | 'week' | 'month' | 'year';
|
|
219
|
+
/**
|
|
220
|
+
* Subscription mode — intervals per renewal (e.g. `3` + `month` = quarterly).
|
|
221
|
+
*/
|
|
222
|
+
interval_count?: number;
|
|
223
|
+
metadata?: {
|
|
224
|
+
[key: string]: string;
|
|
225
|
+
};
|
|
226
|
+
/**
|
|
227
|
+
* Natural-rail join keys, present when `rail: natural`.
|
|
228
|
+
*/
|
|
229
|
+
natural?: PaymentRequest.Natural;
|
|
230
|
+
/**
|
|
231
|
+
* When the request was paid. Absent until it succeeds.
|
|
232
|
+
*/
|
|
233
|
+
paid_at?: string;
|
|
234
|
+
/**
|
|
235
|
+
* Subscription mode — the recurring price this request subscribes to.
|
|
236
|
+
*/
|
|
237
|
+
price_id?: string;
|
|
238
|
+
/**
|
|
239
|
+
* Subscription mode — units of the price subscribed to.
|
|
240
|
+
*/
|
|
241
|
+
quantity?: number;
|
|
242
|
+
/**
|
|
243
|
+
* The rail this request settled on.
|
|
244
|
+
*/
|
|
245
|
+
rail?: 'stripe' | 'natural';
|
|
246
|
+
/**
|
|
247
|
+
* Ids of the Stripe objects created **on your connected account** — your join keys
|
|
248
|
+
* into your own Stripe Dashboard, webhooks, and API. After a subscription's first
|
|
249
|
+
* payment succeeds, its ongoing lifecycle (renewals, plan changes, cancellation)
|
|
250
|
+
* is managed in your Stripe account using `subscription_id`.
|
|
251
|
+
*/
|
|
252
|
+
stripe?: PaymentRequest.Stripe;
|
|
253
|
+
/**
|
|
254
|
+
* Subscription mode — when the free trial ends and the first charge happens.
|
|
255
|
+
* Present only on trial requests; `paid_at`/`succeeded` mean the payment method
|
|
256
|
+
* was collected (no funds move until this time).
|
|
257
|
+
*/
|
|
258
|
+
trial_end?: string;
|
|
259
|
+
updated_at?: string;
|
|
260
|
+
}
|
|
261
|
+
export declare namespace PaymentRequest {
|
|
262
|
+
/**
|
|
263
|
+
* Natural-rail join keys, present when `rail: natural`.
|
|
264
|
+
*/
|
|
265
|
+
interface Natural {
|
|
266
|
+
/**
|
|
267
|
+
* The Natural payment request (`prq_...`).
|
|
268
|
+
*/
|
|
269
|
+
payment_request_id?: string;
|
|
270
|
+
/**
|
|
271
|
+
* The settled transaction (`txn_...`).
|
|
272
|
+
*/
|
|
273
|
+
transaction_id?: string;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Ids of the Stripe objects created **on your connected account** — your join keys
|
|
277
|
+
* into your own Stripe Dashboard, webhooks, and API. After a subscription's first
|
|
278
|
+
* payment succeeds, its ongoing lifecycle (renewals, plan changes, cancellation)
|
|
279
|
+
* is managed in your Stripe account using `subscription_id`.
|
|
280
|
+
*/
|
|
281
|
+
interface Stripe {
|
|
282
|
+
/**
|
|
283
|
+
* The Customer this request is attached to (`cus_...`). Always set in subscription
|
|
284
|
+
* mode (created for you unless you passed `customer_id`); set in payment mode only
|
|
285
|
+
* when you passed one.
|
|
286
|
+
*/
|
|
287
|
+
customer_id?: string;
|
|
288
|
+
/**
|
|
289
|
+
* The PaymentIntent collected at checkout (`pi_...`).
|
|
290
|
+
*/
|
|
291
|
+
payment_intent_id?: string;
|
|
292
|
+
/**
|
|
293
|
+
* Subscription mode — the Subscription (`sub_...`).
|
|
294
|
+
*/
|
|
295
|
+
subscription_id?: string;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
export interface PaymentRequestListResponse {
|
|
299
|
+
data: Array<PaymentRequest>;
|
|
300
|
+
/**
|
|
301
|
+
* Whether more results exist beyond this page.
|
|
302
|
+
*/
|
|
303
|
+
has_more: boolean;
|
|
304
|
+
object: 'list';
|
|
305
|
+
}
|
|
306
|
+
export interface PaymentRequestCreateParams {
|
|
307
|
+
/**
|
|
308
|
+
* Body param: Amount to charge, in the currency's minor units (e.g. cents). Must
|
|
309
|
+
* be at least the payment provider's minimum (50 for `usd`). Required in `payment`
|
|
310
|
+
* mode; must be omitted in `subscription` mode (the amount comes from the price).
|
|
311
|
+
*/
|
|
312
|
+
amount?: number;
|
|
313
|
+
/**
|
|
314
|
+
* Body param: Three-letter ISO 4217 currency code. Only `usd` is currently
|
|
315
|
+
* supported. Required in `payment` mode; must be omitted in `subscription` mode
|
|
316
|
+
* (the currency comes from the price).
|
|
317
|
+
*/
|
|
318
|
+
currency?: string;
|
|
319
|
+
/**
|
|
320
|
+
* Body param: Optional id of an **existing Customer** on your connected Stripe
|
|
321
|
+
* account (`cus_...`) to attach this request to, instead of a new Customer being
|
|
322
|
+
* created. In `payment` mode the charge lands on that customer's payment history;
|
|
323
|
+
* in `subscription` mode the subscription is created on them. The customer must
|
|
324
|
+
* exist (and not be deleted) on your connected account.
|
|
325
|
+
*/
|
|
326
|
+
customer_id?: string;
|
|
327
|
+
/**
|
|
328
|
+
* Body param: Optional description shown to the recipient at checkout.
|
|
329
|
+
*/
|
|
330
|
+
description?: string;
|
|
331
|
+
/**
|
|
332
|
+
* Body param: Required for `rail: natural`. The line the request is sent from, in
|
|
333
|
+
* E.164 format. Must be a phone number your organization owns.
|
|
334
|
+
*/
|
|
335
|
+
from?: string;
|
|
336
|
+
/**
|
|
337
|
+
* Body param: Optional key/value metadata (up to 49 keys) echoed back on retrieval
|
|
338
|
+
* and on `payment.*` webhooks, and stamped on the Stripe objects we create on your
|
|
339
|
+
* connected account (the PaymentIntent, and in subscription mode the Subscription
|
|
340
|
+
* and any Customer created for you — a customer you pass via `customer_id` is
|
|
341
|
+
* never modified) — use it to correlate a request with your own records (e.g. a
|
|
342
|
+
* chat id). Keys starting with `linq_` are reserved.
|
|
343
|
+
*/
|
|
344
|
+
metadata?: {
|
|
345
|
+
[key: string]: string;
|
|
346
|
+
};
|
|
347
|
+
/**
|
|
348
|
+
* Body param: `payment` (default) collects a one-time charge for `amount` +
|
|
349
|
+
* `currency`. `subscription` starts an auto-renewing subscription from a recurring
|
|
350
|
+
* `price_id` on your connected Stripe account: the recipient pays the first
|
|
351
|
+
* invoice at checkout and Stripe renews it automatically from then on.
|
|
352
|
+
*/
|
|
353
|
+
mode?: 'payment' | 'subscription';
|
|
354
|
+
/**
|
|
355
|
+
* Body param: Required for `rail: natural`. The payer to bill, in E.164 format.
|
|
356
|
+
*/
|
|
357
|
+
payer_handle?: string;
|
|
358
|
+
/**
|
|
359
|
+
* Body param: Subscription mode only (required there): id of an **active recurring
|
|
360
|
+
* Price** on your connected Stripe account (`price_...`). If you sell through
|
|
361
|
+
* Stripe Payment Links today, pass the same price the link was built from to get
|
|
362
|
+
* the native iMessage checkout for it.
|
|
363
|
+
*/
|
|
364
|
+
price_id?: string;
|
|
365
|
+
/**
|
|
366
|
+
* Body param: Subscription mode only — units of the price to subscribe to.
|
|
367
|
+
*/
|
|
368
|
+
quantity?: number;
|
|
369
|
+
/**
|
|
370
|
+
* Body param: Payment rail. `stripe` (default) is the direct-charge flow that
|
|
371
|
+
* settles to your connected Stripe account. `natural` collects through the Natural
|
|
372
|
+
* custodial wallet; it requires `from` + `payer_handle` and that your organization
|
|
373
|
+
* has completed Natural merchant onboarding.
|
|
374
|
+
*/
|
|
375
|
+
rail?: 'stripe' | 'natural';
|
|
376
|
+
/**
|
|
377
|
+
* Body param: Subscription mode only — end the free trial at a fixed timestamp
|
|
378
|
+
* (must be in the future) instead of a day count. Mutually exclusive with
|
|
379
|
+
* `trial_period_days`.
|
|
380
|
+
*/
|
|
381
|
+
trial_end?: string;
|
|
382
|
+
/**
|
|
383
|
+
* Body param: Subscription mode only — start with a free trial of this many days.
|
|
384
|
+
* The recipient's card is still collected at checkout (Apple Pay or card), saved
|
|
385
|
+
* to the subscription, and first charged when the trial ends. Mutually exclusive
|
|
386
|
+
* with `trial_end`.
|
|
387
|
+
*/
|
|
388
|
+
trial_period_days?: number;
|
|
389
|
+
/**
|
|
390
|
+
* Header param: Optional idempotency key (max 200 characters). Reuse the same key
|
|
391
|
+
* to safely retry without creating a second payment request. Reusing a key with
|
|
392
|
+
* different request parameters returns 409.
|
|
393
|
+
*/
|
|
394
|
+
'Idempotency-Key'?: string;
|
|
395
|
+
}
|
|
396
|
+
export interface PaymentRequestListParams {
|
|
397
|
+
/**
|
|
398
|
+
* Max results to return (default 20, max 100).
|
|
399
|
+
*/
|
|
400
|
+
limit?: number;
|
|
401
|
+
/**
|
|
402
|
+
* Number of results to skip.
|
|
403
|
+
*/
|
|
404
|
+
offset?: number;
|
|
405
|
+
/**
|
|
406
|
+
* Filter by lifecycle status.
|
|
407
|
+
*/
|
|
408
|
+
status?: 'requested' | 'succeeded' | 'canceled' | 'expired';
|
|
409
|
+
}
|
|
410
|
+
export declare namespace PaymentRequests {
|
|
411
|
+
export { type PaymentRequest as PaymentRequest, type PaymentRequestListResponse as PaymentRequestListResponse, type PaymentRequestCreateParams as PaymentRequestCreateParams, type PaymentRequestListParams as PaymentRequestListParams, };
|
|
412
|
+
}
|
|
413
|
+
//# sourceMappingURL=payment-requests.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-requests.d.ts","sourceRoot":"","sources":["../src/resources/payment-requests.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.PaymentRequests = void 0;
|
|
5
|
+
const resource_1 = require("../core/resource.js");
|
|
6
|
+
const headers_1 = require("../internal/headers.js");
|
|
7
|
+
const path_1 = require("../internal/utils/path.js");
|
|
8
|
+
/**
|
|
9
|
+
* Request a payment from a recipient over iMessage. You create a payment
|
|
10
|
+
* request, send its `checkout_url` to the recipient, and they pay with Apple
|
|
11
|
+
* Pay or card. Funds settle **directly to your own Stripe account** — Linq
|
|
12
|
+
* never holds the money.
|
|
13
|
+
*
|
|
14
|
+
* ## How it works
|
|
15
|
+
*
|
|
16
|
+
* 1. **Create** a payment request with an amount and currency. You get back a
|
|
17
|
+
* `checkout_url` and a `status` of `requested`.
|
|
18
|
+
* 2. **Send** the `checkout_url` to the recipient as a `link` message part so
|
|
19
|
+
* it arrives as a tappable card (see *Sending the link* below).
|
|
20
|
+
* 3. The recipient **pays** on the hosted checkout (Apple Pay App Clip on a
|
|
21
|
+
* supported iPhone, web checkout everywhere else).
|
|
22
|
+
* 4. You receive a **`payment.succeeded`** webhook and the request's `status`
|
|
23
|
+
* becomes `succeeded`. Requests you don't collect eventually `expire`.
|
|
24
|
+
*
|
|
25
|
+
* ## Connected accounts (Stripe Standard, direct charges)
|
|
26
|
+
*
|
|
27
|
+
* Agent Pay runs on **Stripe Connect Standard accounts** using **direct
|
|
28
|
+
* charges**: the charge is created on *your* connected account and **you are
|
|
29
|
+
* the merchant of record**. That means the money, the payout schedule, the
|
|
30
|
+
* customer relationship, and the compliance surface are all yours — Linq
|
|
31
|
+
* orchestrates the request and the checkout but is never in the funds flow.
|
|
32
|
+
*
|
|
33
|
+
* **Refunds, disputes, and chargebacks are handled by you, in your own Stripe
|
|
34
|
+
* Dashboard.** Because charges settle directly to your account, Linq has no
|
|
35
|
+
* custody of the funds and cannot issue refunds or contest disputes on your
|
|
36
|
+
* behalf — and there is no refund/dispute endpoint in this API by design. Use
|
|
37
|
+
* the Stripe Dashboard (or the Stripe API on your own account) for the money
|
|
38
|
+
* lifecycle after a payment succeeds.
|
|
39
|
+
*
|
|
40
|
+
* ## Getting set up
|
|
41
|
+
*
|
|
42
|
+
* Open **Agent Pay** in your Linq dashboard
|
|
43
|
+
* (`https://zero.linqapp.com/organization/payments`), click **Connect Stripe**,
|
|
44
|
+
* and complete Stripe's onboarding (business details + a bank account). When
|
|
45
|
+
* your account reaches `charges_enabled`, request creation unlocks; until you
|
|
46
|
+
* connect Stripe, `POST /v3/payment_requests` returns `403`. You can keep
|
|
47
|
+
* collecting even while Stripe finishes background verification.
|
|
48
|
+
*
|
|
49
|
+
* ## Subscriptions
|
|
50
|
+
*
|
|
51
|
+
* Set `mode: subscription` on `POST /v3/payment_requests` to start an
|
|
52
|
+
* **auto-renewing subscription** instead of a one-time charge. Instead of an
|
|
53
|
+
* amount, you pass a `price_id` — an active **recurring Price** on your
|
|
54
|
+
* connected Stripe account (create one in your Stripe Dashboard under
|
|
55
|
+
* Product catalog; if you sell through Stripe Payment Links today, reuse the
|
|
56
|
+
* price your link is built from). The recipient pays the first invoice at
|
|
57
|
+
* the same checkout, and their payment method is saved to the subscription
|
|
58
|
+
* for automatic renewals.
|
|
59
|
+
*
|
|
60
|
+
* The division of labor is deliberate: **Linq handles the first payment,
|
|
61
|
+
* your Stripe account handles the rest.** The request reaches `succeeded`
|
|
62
|
+
* when the first invoice is paid; from then on the subscription lives
|
|
63
|
+
* entirely on your connected account. The response's `stripe` object gives
|
|
64
|
+
* you the join keys — `customer_id` and `subscription_id` — so renewals,
|
|
65
|
+
* plan changes, dunning, and cancellation are managed with your own Stripe
|
|
66
|
+
* Dashboard/API and your own Stripe webhooks. Your `metadata` is stamped on
|
|
67
|
+
* the Customer and Subscription, so correlating in either direction is
|
|
68
|
+
* trivial. There are no renewal webhooks from Linq by design.
|
|
69
|
+
*
|
|
70
|
+
* ### Free trials
|
|
71
|
+
*
|
|
72
|
+
* Add `trial_period_days` (or a fixed `trial_end` timestamp) to start the
|
|
73
|
+
* subscription with a free trial. The checkout still collects the
|
|
74
|
+
* recipient's payment method — the pay sheet shows "$0 due today" with the
|
|
75
|
+
* first charge date — and saves it to the subscription; Stripe bills it
|
|
76
|
+
* automatically when the trial ends. The request reaches `succeeded` when
|
|
77
|
+
* the card is collected, and the response carries `trial_end`. If the trial
|
|
78
|
+
* would end without a payment method on file, the subscription cancels
|
|
79
|
+
* rather than generating unpayable invoices. Trial lifecycle after checkout
|
|
80
|
+
* (extending, ending early) is managed in your own Stripe account via
|
|
81
|
+
* `stripe.subscription_id`.
|
|
82
|
+
*
|
|
83
|
+
* A subscription request you cancel (or that expires unpaid) cancels the
|
|
84
|
+
* incomplete Stripe subscription — nothing lingers on your account.
|
|
85
|
+
*
|
|
86
|
+
* ## Pre-created customers
|
|
87
|
+
*
|
|
88
|
+
* By default each request stands alone: payment mode attaches no Customer,
|
|
89
|
+
* and subscription mode creates a fresh one. If you already manage
|
|
90
|
+
* Customers on your connected account, pass their id as `customer_id`
|
|
91
|
+
* (`cus_...`) on create — in payment mode the charge lands on that
|
|
92
|
+
* customer's payment history, and in subscription mode the subscription is
|
|
93
|
+
* created on them instead of on a new Customer. The id must reference an
|
|
94
|
+
* existing, non-deleted customer on your connected account or the request
|
|
95
|
+
* fails with `400`. We never modify a customer you pass — no metadata is
|
|
96
|
+
* stamped on it.
|
|
97
|
+
*
|
|
98
|
+
* ## Sending the link
|
|
99
|
+
*
|
|
100
|
+
* Deliver the `checkout_url` as a **`link` message part** via
|
|
101
|
+
* `POST /v3/chats/{chatId}/messages` — it renders as a rich card with your
|
|
102
|
+
* branding (title, amount, image) instead of a bare URL, which converts far
|
|
103
|
+
* better. A `link` part must be the only part in the message. See
|
|
104
|
+
* [Rich Link Previews](/guides/messaging/sending-messages).
|
|
105
|
+
*
|
|
106
|
+
* On a supported iPhone the link opens an **Apple Pay App Clip** — a native,
|
|
107
|
+
* no-install checkout sheet. Everywhere else (Android, desktop, iPhones
|
|
108
|
+
* without the App Clip yet) the same URL opens the web checkout, so the link
|
|
109
|
+
* always works. The App Clip experience for your payment links is registered
|
|
110
|
+
* automatically by Linq and refreshed whenever you update your Agent Pay
|
|
111
|
+
* branding; a newly registered experience can take up to ~24 hours to
|
|
112
|
+
* activate on Apple's side, during which links open the web checkout.
|
|
113
|
+
*
|
|
114
|
+
* ## Webhooks
|
|
115
|
+
*
|
|
116
|
+
* Subscribe to payment lifecycle events to reconcile server-side rather than
|
|
117
|
+
* polling: `payment.succeeded`, `payment.canceled`, and `payment.expired`.
|
|
118
|
+
* Each event carries the payment request id, amount, currency, and your
|
|
119
|
+
* `metadata`. See [Webhooks](/guides/webhooks).
|
|
120
|
+
*/
|
|
121
|
+
class PaymentRequests extends resource_1.APIResource {
|
|
122
|
+
/**
|
|
123
|
+
* Creates a payment request and returns a `checkout_url` the recipient opens to
|
|
124
|
+
* pay with Apple Pay or card. Funds settle directly to your connected Stripe
|
|
125
|
+
* account. A payment request is independent of any chat; to associate one with a
|
|
126
|
+
* chat for your records, store the chat id in `metadata`. Requires your connected
|
|
127
|
+
* account to be `charges_enabled` (returns `403` otherwise).
|
|
128
|
+
*
|
|
129
|
+
* Set `mode: subscription` with a recurring `price_id` from your connected Stripe
|
|
130
|
+
* account to start an **auto-renewing subscription** instead of a one-time charge
|
|
131
|
+
* — the recipient pays the first invoice at checkout and the response's `stripe`
|
|
132
|
+
* object carries the customer and subscription ids for the ongoing lifecycle in
|
|
133
|
+
* your own Stripe account. See the _Subscriptions_ section of the tag overview.
|
|
134
|
+
*
|
|
135
|
+
* In either mode, pass `customer_id` to attach the request to an **existing
|
|
136
|
+
* Customer** on your connected account instead of creating a new one — see
|
|
137
|
+
* _Pre-created customers_ in the tag overview.
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```ts
|
|
141
|
+
* const paymentRequest = await client.paymentRequests.create({
|
|
142
|
+
* amount: 497,
|
|
143
|
+
* currency: 'usd',
|
|
144
|
+
* description: 'Coffee with Ava',
|
|
145
|
+
* metadata: { order_id: 'order_8675309' },
|
|
146
|
+
* });
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
create(params, options) {
|
|
150
|
+
const { 'Idempotency-Key': idempotencyKey, ...body } = params;
|
|
151
|
+
return this._client.post('/v3/payment_requests', {
|
|
152
|
+
body,
|
|
153
|
+
...options,
|
|
154
|
+
headers: (0, headers_1.buildHeaders)([
|
|
155
|
+
{ ...(idempotencyKey != null ? { 'Idempotency-Key': idempotencyKey } : undefined) },
|
|
156
|
+
options?.headers,
|
|
157
|
+
]),
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Returns a payment request's status and details.
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* ```ts
|
|
165
|
+
* const paymentRequest =
|
|
166
|
+
* await client.paymentRequests.retrieve(
|
|
167
|
+
* '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
|
|
168
|
+
* );
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
retrieve(paymentRequestID, options) {
|
|
172
|
+
return this._client.get((0, path_1.path) `/v3/payment_requests/${paymentRequestID}`, options);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Lists your payment requests, newest first, for reconciliation. Paginate with
|
|
176
|
+
* `limit` + `offset`; `has_more` indicates whether another page exists.
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* ```ts
|
|
180
|
+
* const paymentRequests = await client.paymentRequests.list();
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
list(query = {}, options) {
|
|
184
|
+
return this._client.get('/v3/payment_requests', { query, ...options });
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Cancels an unpaid payment request: the underlying payment intent is canceled and
|
|
188
|
+
* the request moves to `canceled`. A request that is already paid, canceled, or
|
|
189
|
+
* expired returns 409.
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```ts
|
|
193
|
+
* const paymentRequest = await client.paymentRequests.cancel(
|
|
194
|
+
* '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
|
|
195
|
+
* );
|
|
196
|
+
* ```
|
|
197
|
+
*/
|
|
198
|
+
cancel(paymentRequestID, options) {
|
|
199
|
+
return this._client.post((0, path_1.path) `/v3/payment_requests/${paymentRequestID}/cancel`, options);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
exports.PaymentRequests = PaymentRequests;
|
|
203
|
+
//# sourceMappingURL=payment-requests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-requests.js","sourceRoot":"","sources":["../src/resources/payment-requests.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAE/C,oDAAmD;AAEnD,oDAA8C;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgHG;AACH,MAAa,eAAgB,SAAQ,sBAAW;IAC9C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,MAAM,CAAC,MAAkC,EAAE,OAAwB;QACjE,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QAC9D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAC/C,IAAI;YACJ,GAAG,OAAO;YACV,OAAO,EAAE,IAAA,sBAAY,EAAC;gBACpB,EAAE,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;gBACnF,OAAO,EAAE,OAAO;aACjB,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,gBAAwB,EAAE,OAAwB;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,wBAAwB,gBAAgB,EAAE,EAAE,OAAO,CAAC,CAAC;IACnF,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,CACF,QAAqD,EAAE,EACvD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,gBAAwB,EAAE,OAAwB;QACvD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,WAAI,EAAA,wBAAwB,gBAAgB,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3F,CAAC;CACF;AAtFD,0CAsFC"}
|