0

RefundPayment

by
Published Oct 17, 2025

Refunds a payment. You can refund the entire payment amount or a portion of it. You can use this endpoint to refund a card payment or record a refund of a cash or external payment. For more information, see [Refund Payment](https://developer.squareup.com/docs/payments-api/refund-payments).

Script square Verified

The script

Submitted by hugo697 Bun
Verified 235 days ago
1
//native
2
type Square = {
3
  token: string;
4
};
5
/**
6
 * RefundPayment
7
 * Refunds a payment. You can refund the entire payment amount or a
8
portion of it. You can use this endpoint to refund a card payment or record a 
9
refund of a cash or external payment. For more information, see
10
[Refund Payment](https://developer.squareup.com/docs/payments-api/refund-payments).
11
 */
12
export async function main(
13
  auth: Square,
14
  body: {
15
    idempotency_key: string;
16
    amount_money: {
17
      amount?: number;
18
      currency?:
19
        | "UNKNOWN_CURRENCY"
20
        | "AED"
21
        | "AFN"
22
        | "ALL"
23
        | "AMD"
24
        | "ANG"
25
        | "AOA"
26
        | "ARS"
27
        | "AUD"
28
        | "AWG"
29
        | "AZN"
30
        | "BAM"
31
        | "BBD"
32
        | "BDT"
33
        | "BGN"
34
        | "BHD"
35
        | "BIF"
36
        | "BMD"
37
        | "BND"
38
        | "BOB"
39
        | "BOV"
40
        | "BRL"
41
        | "BSD"
42
        | "BTN"
43
        | "BWP"
44
        | "BYR"
45
        | "BZD"
46
        | "CAD"
47
        | "CDF"
48
        | "CHE"
49
        | "CHF"
50
        | "CHW"
51
        | "CLF"
52
        | "CLP"
53
        | "CNY"
54
        | "COP"
55
        | "COU"
56
        | "CRC"
57
        | "CUC"
58
        | "CUP"
59
        | "CVE"
60
        | "CZK"
61
        | "DJF"
62
        | "DKK"
63
        | "DOP"
64
        | "DZD"
65
        | "EGP"
66
        | "ERN"
67
        | "ETB"
68
        | "EUR"
69
        | "FJD"
70
        | "FKP"
71
        | "GBP"
72
        | "GEL"
73
        | "GHS"
74
        | "GIP"
75
        | "GMD"
76
        | "GNF"
77
        | "GTQ"
78
        | "GYD"
79
        | "HKD"
80
        | "HNL"
81
        | "HRK"
82
        | "HTG"
83
        | "HUF"
84
        | "IDR"
85
        | "ILS"
86
        | "INR"
87
        | "IQD"
88
        | "IRR"
89
        | "ISK"
90
        | "JMD"
91
        | "JOD"
92
        | "JPY"
93
        | "KES"
94
        | "KGS"
95
        | "KHR"
96
        | "KMF"
97
        | "KPW"
98
        | "KRW"
99
        | "KWD"
100
        | "KYD"
101
        | "KZT"
102
        | "LAK"
103
        | "LBP"
104
        | "LKR"
105
        | "LRD"
106
        | "LSL"
107
        | "LTL"
108
        | "LVL"
109
        | "LYD"
110
        | "MAD"
111
        | "MDL"
112
        | "MGA"
113
        | "MKD"
114
        | "MMK"
115
        | "MNT"
116
        | "MOP"
117
        | "MRO"
118
        | "MUR"
119
        | "MVR"
120
        | "MWK"
121
        | "MXN"
122
        | "MXV"
123
        | "MYR"
124
        | "MZN"
125
        | "NAD"
126
        | "NGN"
127
        | "NIO"
128
        | "NOK"
129
        | "NPR"
130
        | "NZD"
131
        | "OMR"
132
        | "PAB"
133
        | "PEN"
134
        | "PGK"
135
        | "PHP"
136
        | "PKR"
137
        | "PLN"
138
        | "PYG"
139
        | "QAR"
140
        | "RON"
141
        | "RSD"
142
        | "RUB"
143
        | "RWF"
144
        | "SAR"
145
        | "SBD"
146
        | "SCR"
147
        | "SDG"
148
        | "SEK"
149
        | "SGD"
150
        | "SHP"
151
        | "SLL"
152
        | "SLE"
153
        | "SOS"
154
        | "SRD"
155
        | "SSP"
156
        | "STD"
157
        | "SVC"
158
        | "SYP"
159
        | "SZL"
160
        | "THB"
161
        | "TJS"
162
        | "TMT"
163
        | "TND"
164
        | "TOP"
165
        | "TRY"
166
        | "TTD"
167
        | "TWD"
168
        | "TZS"
169
        | "UAH"
170
        | "UGX"
171
        | "USD"
172
        | "USN"
173
        | "USS"
174
        | "UYI"
175
        | "UYU"
176
        | "UZS"
177
        | "VEF"
178
        | "VND"
179
        | "VUV"
180
        | "WST"
181
        | "XAF"
182
        | "XAG"
183
        | "XAU"
184
        | "XBA"
185
        | "XBB"
186
        | "XBC"
187
        | "XBD"
188
        | "XCD"
189
        | "XDR"
190
        | "XOF"
191
        | "XPD"
192
        | "XPF"
193
        | "XPT"
194
        | "XTS"
195
        | "XXX"
196
        | "YER"
197
        | "ZAR"
198
        | "ZMK"
199
        | "ZMW"
200
        | "BTC"
201
        | "XUS";
202
    };
203
    app_fee_money?: {
204
      amount?: number;
205
      currency?:
206
        | "UNKNOWN_CURRENCY"
207
        | "AED"
208
        | "AFN"
209
        | "ALL"
210
        | "AMD"
211
        | "ANG"
212
        | "AOA"
213
        | "ARS"
214
        | "AUD"
215
        | "AWG"
216
        | "AZN"
217
        | "BAM"
218
        | "BBD"
219
        | "BDT"
220
        | "BGN"
221
        | "BHD"
222
        | "BIF"
223
        | "BMD"
224
        | "BND"
225
        | "BOB"
226
        | "BOV"
227
        | "BRL"
228
        | "BSD"
229
        | "BTN"
230
        | "BWP"
231
        | "BYR"
232
        | "BZD"
233
        | "CAD"
234
        | "CDF"
235
        | "CHE"
236
        | "CHF"
237
        | "CHW"
238
        | "CLF"
239
        | "CLP"
240
        | "CNY"
241
        | "COP"
242
        | "COU"
243
        | "CRC"
244
        | "CUC"
245
        | "CUP"
246
        | "CVE"
247
        | "CZK"
248
        | "DJF"
249
        | "DKK"
250
        | "DOP"
251
        | "DZD"
252
        | "EGP"
253
        | "ERN"
254
        | "ETB"
255
        | "EUR"
256
        | "FJD"
257
        | "FKP"
258
        | "GBP"
259
        | "GEL"
260
        | "GHS"
261
        | "GIP"
262
        | "GMD"
263
        | "GNF"
264
        | "GTQ"
265
        | "GYD"
266
        | "HKD"
267
        | "HNL"
268
        | "HRK"
269
        | "HTG"
270
        | "HUF"
271
        | "IDR"
272
        | "ILS"
273
        | "INR"
274
        | "IQD"
275
        | "IRR"
276
        | "ISK"
277
        | "JMD"
278
        | "JOD"
279
        | "JPY"
280
        | "KES"
281
        | "KGS"
282
        | "KHR"
283
        | "KMF"
284
        | "KPW"
285
        | "KRW"
286
        | "KWD"
287
        | "KYD"
288
        | "KZT"
289
        | "LAK"
290
        | "LBP"
291
        | "LKR"
292
        | "LRD"
293
        | "LSL"
294
        | "LTL"
295
        | "LVL"
296
        | "LYD"
297
        | "MAD"
298
        | "MDL"
299
        | "MGA"
300
        | "MKD"
301
        | "MMK"
302
        | "MNT"
303
        | "MOP"
304
        | "MRO"
305
        | "MUR"
306
        | "MVR"
307
        | "MWK"
308
        | "MXN"
309
        | "MXV"
310
        | "MYR"
311
        | "MZN"
312
        | "NAD"
313
        | "NGN"
314
        | "NIO"
315
        | "NOK"
316
        | "NPR"
317
        | "NZD"
318
        | "OMR"
319
        | "PAB"
320
        | "PEN"
321
        | "PGK"
322
        | "PHP"
323
        | "PKR"
324
        | "PLN"
325
        | "PYG"
326
        | "QAR"
327
        | "RON"
328
        | "RSD"
329
        | "RUB"
330
        | "RWF"
331
        | "SAR"
332
        | "SBD"
333
        | "SCR"
334
        | "SDG"
335
        | "SEK"
336
        | "SGD"
337
        | "SHP"
338
        | "SLL"
339
        | "SLE"
340
        | "SOS"
341
        | "SRD"
342
        | "SSP"
343
        | "STD"
344
        | "SVC"
345
        | "SYP"
346
        | "SZL"
347
        | "THB"
348
        | "TJS"
349
        | "TMT"
350
        | "TND"
351
        | "TOP"
352
        | "TRY"
353
        | "TTD"
354
        | "TWD"
355
        | "TZS"
356
        | "UAH"
357
        | "UGX"
358
        | "USD"
359
        | "USN"
360
        | "USS"
361
        | "UYI"
362
        | "UYU"
363
        | "UZS"
364
        | "VEF"
365
        | "VND"
366
        | "VUV"
367
        | "WST"
368
        | "XAF"
369
        | "XAG"
370
        | "XAU"
371
        | "XBA"
372
        | "XBB"
373
        | "XBC"
374
        | "XBD"
375
        | "XCD"
376
        | "XDR"
377
        | "XOF"
378
        | "XPD"
379
        | "XPF"
380
        | "XPT"
381
        | "XTS"
382
        | "XXX"
383
        | "YER"
384
        | "ZAR"
385
        | "ZMK"
386
        | "ZMW"
387
        | "BTC"
388
        | "XUS";
389
    };
390
    payment_id?: string;
391
    destination_id?: string;
392
    unlinked?: false | true;
393
    location_id?: string;
394
    customer_id?: string;
395
    reason?: string;
396
    payment_version_token?: string;
397
    team_member_id?: string;
398
    cash_details?: {
399
      seller_supplied_money: {
400
        amount?: number;
401
        currency?:
402
          | "UNKNOWN_CURRENCY"
403
          | "AED"
404
          | "AFN"
405
          | "ALL"
406
          | "AMD"
407
          | "ANG"
408
          | "AOA"
409
          | "ARS"
410
          | "AUD"
411
          | "AWG"
412
          | "AZN"
413
          | "BAM"
414
          | "BBD"
415
          | "BDT"
416
          | "BGN"
417
          | "BHD"
418
          | "BIF"
419
          | "BMD"
420
          | "BND"
421
          | "BOB"
422
          | "BOV"
423
          | "BRL"
424
          | "BSD"
425
          | "BTN"
426
          | "BWP"
427
          | "BYR"
428
          | "BZD"
429
          | "CAD"
430
          | "CDF"
431
          | "CHE"
432
          | "CHF"
433
          | "CHW"
434
          | "CLF"
435
          | "CLP"
436
          | "CNY"
437
          | "COP"
438
          | "COU"
439
          | "CRC"
440
          | "CUC"
441
          | "CUP"
442
          | "CVE"
443
          | "CZK"
444
          | "DJF"
445
          | "DKK"
446
          | "DOP"
447
          | "DZD"
448
          | "EGP"
449
          | "ERN"
450
          | "ETB"
451
          | "EUR"
452
          | "FJD"
453
          | "FKP"
454
          | "GBP"
455
          | "GEL"
456
          | "GHS"
457
          | "GIP"
458
          | "GMD"
459
          | "GNF"
460
          | "GTQ"
461
          | "GYD"
462
          | "HKD"
463
          | "HNL"
464
          | "HRK"
465
          | "HTG"
466
          | "HUF"
467
          | "IDR"
468
          | "ILS"
469
          | "INR"
470
          | "IQD"
471
          | "IRR"
472
          | "ISK"
473
          | "JMD"
474
          | "JOD"
475
          | "JPY"
476
          | "KES"
477
          | "KGS"
478
          | "KHR"
479
          | "KMF"
480
          | "KPW"
481
          | "KRW"
482
          | "KWD"
483
          | "KYD"
484
          | "KZT"
485
          | "LAK"
486
          | "LBP"
487
          | "LKR"
488
          | "LRD"
489
          | "LSL"
490
          | "LTL"
491
          | "LVL"
492
          | "LYD"
493
          | "MAD"
494
          | "MDL"
495
          | "MGA"
496
          | "MKD"
497
          | "MMK"
498
          | "MNT"
499
          | "MOP"
500
          | "MRO"
501
          | "MUR"
502
          | "MVR"
503
          | "MWK"
504
          | "MXN"
505
          | "MXV"
506
          | "MYR"
507
          | "MZN"
508
          | "NAD"
509
          | "NGN"
510
          | "NIO"
511
          | "NOK"
512
          | "NPR"
513
          | "NZD"
514
          | "OMR"
515
          | "PAB"
516
          | "PEN"
517
          | "PGK"
518
          | "PHP"
519
          | "PKR"
520
          | "PLN"
521
          | "PYG"
522
          | "QAR"
523
          | "RON"
524
          | "RSD"
525
          | "RUB"
526
          | "RWF"
527
          | "SAR"
528
          | "SBD"
529
          | "SCR"
530
          | "SDG"
531
          | "SEK"
532
          | "SGD"
533
          | "SHP"
534
          | "SLL"
535
          | "SLE"
536
          | "SOS"
537
          | "SRD"
538
          | "SSP"
539
          | "STD"
540
          | "SVC"
541
          | "SYP"
542
          | "SZL"
543
          | "THB"
544
          | "TJS"
545
          | "TMT"
546
          | "TND"
547
          | "TOP"
548
          | "TRY"
549
          | "TTD"
550
          | "TWD"
551
          | "TZS"
552
          | "UAH"
553
          | "UGX"
554
          | "USD"
555
          | "USN"
556
          | "USS"
557
          | "UYI"
558
          | "UYU"
559
          | "UZS"
560
          | "VEF"
561
          | "VND"
562
          | "VUV"
563
          | "WST"
564
          | "XAF"
565
          | "XAG"
566
          | "XAU"
567
          | "XBA"
568
          | "XBB"
569
          | "XBC"
570
          | "XBD"
571
          | "XCD"
572
          | "XDR"
573
          | "XOF"
574
          | "XPD"
575
          | "XPF"
576
          | "XPT"
577
          | "XTS"
578
          | "XXX"
579
          | "YER"
580
          | "ZAR"
581
          | "ZMK"
582
          | "ZMW"
583
          | "BTC"
584
          | "XUS";
585
      };
586
      change_back_money?: {
587
        amount?: number;
588
        currency?:
589
          | "UNKNOWN_CURRENCY"
590
          | "AED"
591
          | "AFN"
592
          | "ALL"
593
          | "AMD"
594
          | "ANG"
595
          | "AOA"
596
          | "ARS"
597
          | "AUD"
598
          | "AWG"
599
          | "AZN"
600
          | "BAM"
601
          | "BBD"
602
          | "BDT"
603
          | "BGN"
604
          | "BHD"
605
          | "BIF"
606
          | "BMD"
607
          | "BND"
608
          | "BOB"
609
          | "BOV"
610
          | "BRL"
611
          | "BSD"
612
          | "BTN"
613
          | "BWP"
614
          | "BYR"
615
          | "BZD"
616
          | "CAD"
617
          | "CDF"
618
          | "CHE"
619
          | "CHF"
620
          | "CHW"
621
          | "CLF"
622
          | "CLP"
623
          | "CNY"
624
          | "COP"
625
          | "COU"
626
          | "CRC"
627
          | "CUC"
628
          | "CUP"
629
          | "CVE"
630
          | "CZK"
631
          | "DJF"
632
          | "DKK"
633
          | "DOP"
634
          | "DZD"
635
          | "EGP"
636
          | "ERN"
637
          | "ETB"
638
          | "EUR"
639
          | "FJD"
640
          | "FKP"
641
          | "GBP"
642
          | "GEL"
643
          | "GHS"
644
          | "GIP"
645
          | "GMD"
646
          | "GNF"
647
          | "GTQ"
648
          | "GYD"
649
          | "HKD"
650
          | "HNL"
651
          | "HRK"
652
          | "HTG"
653
          | "HUF"
654
          | "IDR"
655
          | "ILS"
656
          | "INR"
657
          | "IQD"
658
          | "IRR"
659
          | "ISK"
660
          | "JMD"
661
          | "JOD"
662
          | "JPY"
663
          | "KES"
664
          | "KGS"
665
          | "KHR"
666
          | "KMF"
667
          | "KPW"
668
          | "KRW"
669
          | "KWD"
670
          | "KYD"
671
          | "KZT"
672
          | "LAK"
673
          | "LBP"
674
          | "LKR"
675
          | "LRD"
676
          | "LSL"
677
          | "LTL"
678
          | "LVL"
679
          | "LYD"
680
          | "MAD"
681
          | "MDL"
682
          | "MGA"
683
          | "MKD"
684
          | "MMK"
685
          | "MNT"
686
          | "MOP"
687
          | "MRO"
688
          | "MUR"
689
          | "MVR"
690
          | "MWK"
691
          | "MXN"
692
          | "MXV"
693
          | "MYR"
694
          | "MZN"
695
          | "NAD"
696
          | "NGN"
697
          | "NIO"
698
          | "NOK"
699
          | "NPR"
700
          | "NZD"
701
          | "OMR"
702
          | "PAB"
703
          | "PEN"
704
          | "PGK"
705
          | "PHP"
706
          | "PKR"
707
          | "PLN"
708
          | "PYG"
709
          | "QAR"
710
          | "RON"
711
          | "RSD"
712
          | "RUB"
713
          | "RWF"
714
          | "SAR"
715
          | "SBD"
716
          | "SCR"
717
          | "SDG"
718
          | "SEK"
719
          | "SGD"
720
          | "SHP"
721
          | "SLL"
722
          | "SLE"
723
          | "SOS"
724
          | "SRD"
725
          | "SSP"
726
          | "STD"
727
          | "SVC"
728
          | "SYP"
729
          | "SZL"
730
          | "THB"
731
          | "TJS"
732
          | "TMT"
733
          | "TND"
734
          | "TOP"
735
          | "TRY"
736
          | "TTD"
737
          | "TWD"
738
          | "TZS"
739
          | "UAH"
740
          | "UGX"
741
          | "USD"
742
          | "USN"
743
          | "USS"
744
          | "UYI"
745
          | "UYU"
746
          | "UZS"
747
          | "VEF"
748
          | "VND"
749
          | "VUV"
750
          | "WST"
751
          | "XAF"
752
          | "XAG"
753
          | "XAU"
754
          | "XBA"
755
          | "XBB"
756
          | "XBC"
757
          | "XBD"
758
          | "XCD"
759
          | "XDR"
760
          | "XOF"
761
          | "XPD"
762
          | "XPF"
763
          | "XPT"
764
          | "XTS"
765
          | "XXX"
766
          | "YER"
767
          | "ZAR"
768
          | "ZMK"
769
          | "ZMW"
770
          | "BTC"
771
          | "XUS";
772
      };
773
    };
774
    external_details?: { type: string; source: string; source_id?: string };
775
  },
776
) {
777
  const url = new URL(`https://connect.squareup.com/v2/refunds`);
778

779
  const response = await fetch(url, {
780
    method: "POST",
781
    headers: {
782
      "Content-Type": "application/json",
783
      Authorization: "Bearer " + auth.token,
784
    },
785
    body: JSON.stringify(body),
786
  });
787
  if (!response.ok) {
788
    const text = await response.text();
789
    throw new Error(`${response.status} ${text}`);
790
  }
791
  return await response.json();
792
}
793