0

UpdatePaymentLink

by
Published Oct 17, 2025

Updates a payment link. You can update the `payment_link` fields such as `description`, `checkout_options`, and `pre_populated_data`. You cannot update other fields such as the `order_id`, `version`, `URL`, or `timestamp` field.

Script square Verified

The script

Submitted by hugo697 Bun
Verified 235 days ago
1
//native
2
type Square = {
3
  token: string;
4
};
5
/**
6
 * UpdatePaymentLink
7
 * Updates a payment link. You can update the `payment_link` fields such as
8
`description`, `checkout_options`, and  `pre_populated_data`.
9
You cannot update other fields such as the `order_id`, `version`, `URL`, or `timestamp` field.
10
 */
11
export async function main(
12
  auth: Square,
13
  id: string,
14
  body: {
15
    payment_link: {
16
      id?: string;
17
      version: number;
18
      description?: string;
19
      order_id?: string;
20
      checkout_options?: {
21
        allow_tipping?: false | true;
22
        custom_fields?: { title: string }[];
23
        subscription_plan_id?: string;
24
        redirect_url?: string;
25
        merchant_support_email?: string;
26
        ask_for_shipping_address?: false | true;
27
        accepted_payment_methods?: {
28
          apple_pay?: false | true;
29
          google_pay?: false | true;
30
          cash_app_pay?: false | true;
31
          afterpay_clearpay?: false | true;
32
        };
33
        app_fee_money?: {
34
          amount?: number;
35
          currency?:
36
            | "UNKNOWN_CURRENCY"
37
            | "AED"
38
            | "AFN"
39
            | "ALL"
40
            | "AMD"
41
            | "ANG"
42
            | "AOA"
43
            | "ARS"
44
            | "AUD"
45
            | "AWG"
46
            | "AZN"
47
            | "BAM"
48
            | "BBD"
49
            | "BDT"
50
            | "BGN"
51
            | "BHD"
52
            | "BIF"
53
            | "BMD"
54
            | "BND"
55
            | "BOB"
56
            | "BOV"
57
            | "BRL"
58
            | "BSD"
59
            | "BTN"
60
            | "BWP"
61
            | "BYR"
62
            | "BZD"
63
            | "CAD"
64
            | "CDF"
65
            | "CHE"
66
            | "CHF"
67
            | "CHW"
68
            | "CLF"
69
            | "CLP"
70
            | "CNY"
71
            | "COP"
72
            | "COU"
73
            | "CRC"
74
            | "CUC"
75
            | "CUP"
76
            | "CVE"
77
            | "CZK"
78
            | "DJF"
79
            | "DKK"
80
            | "DOP"
81
            | "DZD"
82
            | "EGP"
83
            | "ERN"
84
            | "ETB"
85
            | "EUR"
86
            | "FJD"
87
            | "FKP"
88
            | "GBP"
89
            | "GEL"
90
            | "GHS"
91
            | "GIP"
92
            | "GMD"
93
            | "GNF"
94
            | "GTQ"
95
            | "GYD"
96
            | "HKD"
97
            | "HNL"
98
            | "HRK"
99
            | "HTG"
100
            | "HUF"
101
            | "IDR"
102
            | "ILS"
103
            | "INR"
104
            | "IQD"
105
            | "IRR"
106
            | "ISK"
107
            | "JMD"
108
            | "JOD"
109
            | "JPY"
110
            | "KES"
111
            | "KGS"
112
            | "KHR"
113
            | "KMF"
114
            | "KPW"
115
            | "KRW"
116
            | "KWD"
117
            | "KYD"
118
            | "KZT"
119
            | "LAK"
120
            | "LBP"
121
            | "LKR"
122
            | "LRD"
123
            | "LSL"
124
            | "LTL"
125
            | "LVL"
126
            | "LYD"
127
            | "MAD"
128
            | "MDL"
129
            | "MGA"
130
            | "MKD"
131
            | "MMK"
132
            | "MNT"
133
            | "MOP"
134
            | "MRO"
135
            | "MUR"
136
            | "MVR"
137
            | "MWK"
138
            | "MXN"
139
            | "MXV"
140
            | "MYR"
141
            | "MZN"
142
            | "NAD"
143
            | "NGN"
144
            | "NIO"
145
            | "NOK"
146
            | "NPR"
147
            | "NZD"
148
            | "OMR"
149
            | "PAB"
150
            | "PEN"
151
            | "PGK"
152
            | "PHP"
153
            | "PKR"
154
            | "PLN"
155
            | "PYG"
156
            | "QAR"
157
            | "RON"
158
            | "RSD"
159
            | "RUB"
160
            | "RWF"
161
            | "SAR"
162
            | "SBD"
163
            | "SCR"
164
            | "SDG"
165
            | "SEK"
166
            | "SGD"
167
            | "SHP"
168
            | "SLL"
169
            | "SLE"
170
            | "SOS"
171
            | "SRD"
172
            | "SSP"
173
            | "STD"
174
            | "SVC"
175
            | "SYP"
176
            | "SZL"
177
            | "THB"
178
            | "TJS"
179
            | "TMT"
180
            | "TND"
181
            | "TOP"
182
            | "TRY"
183
            | "TTD"
184
            | "TWD"
185
            | "TZS"
186
            | "UAH"
187
            | "UGX"
188
            | "USD"
189
            | "USN"
190
            | "USS"
191
            | "UYI"
192
            | "UYU"
193
            | "UZS"
194
            | "VEF"
195
            | "VND"
196
            | "VUV"
197
            | "WST"
198
            | "XAF"
199
            | "XAG"
200
            | "XAU"
201
            | "XBA"
202
            | "XBB"
203
            | "XBC"
204
            | "XBD"
205
            | "XCD"
206
            | "XDR"
207
            | "XOF"
208
            | "XPD"
209
            | "XPF"
210
            | "XPT"
211
            | "XTS"
212
            | "XXX"
213
            | "YER"
214
            | "ZAR"
215
            | "ZMK"
216
            | "ZMW"
217
            | "BTC"
218
            | "XUS";
219
        };
220
        shipping_fee?: {
221
          name?: string;
222
          charge: {
223
            amount?: number;
224
            currency?:
225
              | "UNKNOWN_CURRENCY"
226
              | "AED"
227
              | "AFN"
228
              | "ALL"
229
              | "AMD"
230
              | "ANG"
231
              | "AOA"
232
              | "ARS"
233
              | "AUD"
234
              | "AWG"
235
              | "AZN"
236
              | "BAM"
237
              | "BBD"
238
              | "BDT"
239
              | "BGN"
240
              | "BHD"
241
              | "BIF"
242
              | "BMD"
243
              | "BND"
244
              | "BOB"
245
              | "BOV"
246
              | "BRL"
247
              | "BSD"
248
              | "BTN"
249
              | "BWP"
250
              | "BYR"
251
              | "BZD"
252
              | "CAD"
253
              | "CDF"
254
              | "CHE"
255
              | "CHF"
256
              | "CHW"
257
              | "CLF"
258
              | "CLP"
259
              | "CNY"
260
              | "COP"
261
              | "COU"
262
              | "CRC"
263
              | "CUC"
264
              | "CUP"
265
              | "CVE"
266
              | "CZK"
267
              | "DJF"
268
              | "DKK"
269
              | "DOP"
270
              | "DZD"
271
              | "EGP"
272
              | "ERN"
273
              | "ETB"
274
              | "EUR"
275
              | "FJD"
276
              | "FKP"
277
              | "GBP"
278
              | "GEL"
279
              | "GHS"
280
              | "GIP"
281
              | "GMD"
282
              | "GNF"
283
              | "GTQ"
284
              | "GYD"
285
              | "HKD"
286
              | "HNL"
287
              | "HRK"
288
              | "HTG"
289
              | "HUF"
290
              | "IDR"
291
              | "ILS"
292
              | "INR"
293
              | "IQD"
294
              | "IRR"
295
              | "ISK"
296
              | "JMD"
297
              | "JOD"
298
              | "JPY"
299
              | "KES"
300
              | "KGS"
301
              | "KHR"
302
              | "KMF"
303
              | "KPW"
304
              | "KRW"
305
              | "KWD"
306
              | "KYD"
307
              | "KZT"
308
              | "LAK"
309
              | "LBP"
310
              | "LKR"
311
              | "LRD"
312
              | "LSL"
313
              | "LTL"
314
              | "LVL"
315
              | "LYD"
316
              | "MAD"
317
              | "MDL"
318
              | "MGA"
319
              | "MKD"
320
              | "MMK"
321
              | "MNT"
322
              | "MOP"
323
              | "MRO"
324
              | "MUR"
325
              | "MVR"
326
              | "MWK"
327
              | "MXN"
328
              | "MXV"
329
              | "MYR"
330
              | "MZN"
331
              | "NAD"
332
              | "NGN"
333
              | "NIO"
334
              | "NOK"
335
              | "NPR"
336
              | "NZD"
337
              | "OMR"
338
              | "PAB"
339
              | "PEN"
340
              | "PGK"
341
              | "PHP"
342
              | "PKR"
343
              | "PLN"
344
              | "PYG"
345
              | "QAR"
346
              | "RON"
347
              | "RSD"
348
              | "RUB"
349
              | "RWF"
350
              | "SAR"
351
              | "SBD"
352
              | "SCR"
353
              | "SDG"
354
              | "SEK"
355
              | "SGD"
356
              | "SHP"
357
              | "SLL"
358
              | "SLE"
359
              | "SOS"
360
              | "SRD"
361
              | "SSP"
362
              | "STD"
363
              | "SVC"
364
              | "SYP"
365
              | "SZL"
366
              | "THB"
367
              | "TJS"
368
              | "TMT"
369
              | "TND"
370
              | "TOP"
371
              | "TRY"
372
              | "TTD"
373
              | "TWD"
374
              | "TZS"
375
              | "UAH"
376
              | "UGX"
377
              | "USD"
378
              | "USN"
379
              | "USS"
380
              | "UYI"
381
              | "UYU"
382
              | "UZS"
383
              | "VEF"
384
              | "VND"
385
              | "VUV"
386
              | "WST"
387
              | "XAF"
388
              | "XAG"
389
              | "XAU"
390
              | "XBA"
391
              | "XBB"
392
              | "XBC"
393
              | "XBD"
394
              | "XCD"
395
              | "XDR"
396
              | "XOF"
397
              | "XPD"
398
              | "XPF"
399
              | "XPT"
400
              | "XTS"
401
              | "XXX"
402
              | "YER"
403
              | "ZAR"
404
              | "ZMK"
405
              | "ZMW"
406
              | "BTC"
407
              | "XUS";
408
          };
409
        };
410
        enable_coupon?: false | true;
411
        enable_loyalty?: false | true;
412
      };
413
      pre_populated_data?: {
414
        buyer_email?: string;
415
        buyer_phone_number?: string;
416
        buyer_address?: {
417
          address_line_1?: string;
418
          address_line_2?: string;
419
          address_line_3?: string;
420
          locality?: string;
421
          sublocality?: string;
422
          sublocality_2?: string;
423
          sublocality_3?: string;
424
          administrative_district_level_1?: string;
425
          administrative_district_level_2?: string;
426
          administrative_district_level_3?: string;
427
          postal_code?: string;
428
          country?:
429
            | "ZZ"
430
            | "AD"
431
            | "AE"
432
            | "AF"
433
            | "AG"
434
            | "AI"
435
            | "AL"
436
            | "AM"
437
            | "AO"
438
            | "AQ"
439
            | "AR"
440
            | "AS"
441
            | "AT"
442
            | "AU"
443
            | "AW"
444
            | "AX"
445
            | "AZ"
446
            | "BA"
447
            | "BB"
448
            | "BD"
449
            | "BE"
450
            | "BF"
451
            | "BG"
452
            | "BH"
453
            | "BI"
454
            | "BJ"
455
            | "BL"
456
            | "BM"
457
            | "BN"
458
            | "BO"
459
            | "BQ"
460
            | "BR"
461
            | "BS"
462
            | "BT"
463
            | "BV"
464
            | "BW"
465
            | "BY"
466
            | "BZ"
467
            | "CA"
468
            | "CC"
469
            | "CD"
470
            | "CF"
471
            | "CG"
472
            | "CH"
473
            | "CI"
474
            | "CK"
475
            | "CL"
476
            | "CM"
477
            | "CN"
478
            | "CO"
479
            | "CR"
480
            | "CU"
481
            | "CV"
482
            | "CW"
483
            | "CX"
484
            | "CY"
485
            | "CZ"
486
            | "DE"
487
            | "DJ"
488
            | "DK"
489
            | "DM"
490
            | "DO"
491
            | "DZ"
492
            | "EC"
493
            | "EE"
494
            | "EG"
495
            | "EH"
496
            | "ER"
497
            | "ES"
498
            | "ET"
499
            | "FI"
500
            | "FJ"
501
            | "FK"
502
            | "FM"
503
            | "FO"
504
            | "FR"
505
            | "GA"
506
            | "GB"
507
            | "GD"
508
            | "GE"
509
            | "GF"
510
            | "GG"
511
            | "GH"
512
            | "GI"
513
            | "GL"
514
            | "GM"
515
            | "GN"
516
            | "GP"
517
            | "GQ"
518
            | "GR"
519
            | "GS"
520
            | "GT"
521
            | "GU"
522
            | "GW"
523
            | "GY"
524
            | "HK"
525
            | "HM"
526
            | "HN"
527
            | "HR"
528
            | "HT"
529
            | "HU"
530
            | "ID"
531
            | "IE"
532
            | "IL"
533
            | "IM"
534
            | "IN"
535
            | "IO"
536
            | "IQ"
537
            | "IR"
538
            | "IS"
539
            | "IT"
540
            | "JE"
541
            | "JM"
542
            | "JO"
543
            | "JP"
544
            | "KE"
545
            | "KG"
546
            | "KH"
547
            | "KI"
548
            | "KM"
549
            | "KN"
550
            | "KP"
551
            | "KR"
552
            | "KW"
553
            | "KY"
554
            | "KZ"
555
            | "LA"
556
            | "LB"
557
            | "LC"
558
            | "LI"
559
            | "LK"
560
            | "LR"
561
            | "LS"
562
            | "LT"
563
            | "LU"
564
            | "LV"
565
            | "LY"
566
            | "MA"
567
            | "MC"
568
            | "MD"
569
            | "ME"
570
            | "MF"
571
            | "MG"
572
            | "MH"
573
            | "MK"
574
            | "ML"
575
            | "MM"
576
            | "MN"
577
            | "MO"
578
            | "MP"
579
            | "MQ"
580
            | "MR"
581
            | "MS"
582
            | "MT"
583
            | "MU"
584
            | "MV"
585
            | "MW"
586
            | "MX"
587
            | "MY"
588
            | "MZ"
589
            | "NA"
590
            | "NC"
591
            | "NE"
592
            | "NF"
593
            | "NG"
594
            | "NI"
595
            | "NL"
596
            | "NO"
597
            | "NP"
598
            | "NR"
599
            | "NU"
600
            | "NZ"
601
            | "OM"
602
            | "PA"
603
            | "PE"
604
            | "PF"
605
            | "PG"
606
            | "PH"
607
            | "PK"
608
            | "PL"
609
            | "PM"
610
            | "PN"
611
            | "PR"
612
            | "PS"
613
            | "PT"
614
            | "PW"
615
            | "PY"
616
            | "QA"
617
            | "RE"
618
            | "RO"
619
            | "RS"
620
            | "RU"
621
            | "RW"
622
            | "SA"
623
            | "SB"
624
            | "SC"
625
            | "SD"
626
            | "SE"
627
            | "SG"
628
            | "SH"
629
            | "SI"
630
            | "SJ"
631
            | "SK"
632
            | "SL"
633
            | "SM"
634
            | "SN"
635
            | "SO"
636
            | "SR"
637
            | "SS"
638
            | "ST"
639
            | "SV"
640
            | "SX"
641
            | "SY"
642
            | "SZ"
643
            | "TC"
644
            | "TD"
645
            | "TF"
646
            | "TG"
647
            | "TH"
648
            | "TJ"
649
            | "TK"
650
            | "TL"
651
            | "TM"
652
            | "TN"
653
            | "TO"
654
            | "TR"
655
            | "TT"
656
            | "TV"
657
            | "TW"
658
            | "TZ"
659
            | "UA"
660
            | "UG"
661
            | "UM"
662
            | "US"
663
            | "UY"
664
            | "UZ"
665
            | "VA"
666
            | "VC"
667
            | "VE"
668
            | "VG"
669
            | "VI"
670
            | "VN"
671
            | "VU"
672
            | "WF"
673
            | "WS"
674
            | "YE"
675
            | "YT"
676
            | "ZA"
677
            | "ZM"
678
            | "ZW";
679
          first_name?: string;
680
          last_name?: string;
681
        };
682
      };
683
      url?: string;
684
      long_url?: string;
685
      created_at?: string;
686
      updated_at?: string;
687
      payment_note?: string;
688
    };
689
  },
690
) {
691
  const url = new URL(
692
    `https://connect.squareup.com/v2/online-checkout/payment-links/${id}`,
693
  );
694

695
  const response = await fetch(url, {
696
    method: "PUT",
697
    headers: {
698
      "Content-Type": "application/json",
699
      Authorization: "Bearer " + auth.token,
700
    },
701
    body: JSON.stringify(body),
702
  });
703
  if (!response.ok) {
704
    const text = await response.text();
705
    throw new Error(`${response.status} ${text}`);
706
  }
707
  return await response.json();
708
}
709