-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathswagger.json
More file actions
5658 lines (5658 loc) · 207 KB
/
Copy pathswagger.json
File metadata and controls
5658 lines (5658 loc) · 207 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"openapi": "3.0.1",
"info": {
"title": "Payments API",
"description": "## Introduction\r\n\r\nThis ***301Pay Payments API*** allows to create and retrieve ***payments*** inside the [BKN301 Pay](https://www.bkn301.sm/) platform.<br/>\r\nIt is organized around ***REST*** and ***JSON*** specifications and can be used in test mode with no impact on production data.<br/>\r\nIf you have been granted access to the server to server endpoint, you can also use the API to directly create and authorize ***charges***.\r\n\r\n## Authentication\r\n\r\nTo authenticate with the API, you must pass in 2 headers:<br/>\r\n\r\n| Header | Description |\r\n|-----------------|------------------------------------|\r\n| x-SubmerchantId | your Submerchant unique identifier |\r\n| x-ApiKey | your API key |\r\n\r\nboth these values can be retrieved/generated in your dashboard.\r\n\r\n## Live Mode\r\n\r\nMost of the API calls can be used in test mode, which means that your production data will not be impacted and the transaction will be executed against tests accounts.\r\nTo switch to live mode, upon successful completion of the onboarding in the 301Pay platform, you must pass in the following header:\r\n\r\n| Header | Description |\r\n|------------|-------------|\r\n| x-LiveMode | true |\r\n\r\n## Test Cards\r\n\r\nTo test payments via cards, you can use the following cards details:<br/>\r\n\r\n| Card Number | Expiry Date | CVV | Brand | 3D-Secure | Result |\r\n|:----------------:|:-----------:|:---:|:------:|:-------------:|:-------:|\r\n| 5186190250001017 | 12/2025 | 283 | MC | V1/V2 | Succeed |\r\n| 5351479989003330 | 12/2025 | 399 | MC | V1/V2 | Decline |\r\n| 4300002100000012 | 12/2025 | 626 | VISA | V1/V2 | Succeed |\r\n| 5530826700000009 | 12/2025 | 123 | MC | V1/V2 | Succeed |\r\n| 4005529320030039 | 12/2025 | 123 | VISA | V1/V2 | Decline |\r\n| 5346933300108119 | 12/2025 | 874 | MC | V1/V2 | Decline |\r\n| 6210946888060008 | 10/2030 | --- | UPI | V1/V2 | Succeed |\r\n\r\n\r\n\r\n## Subscriptions\r\n\r\nWith Subscriptions, customers make recurring payments to access a product or service. This feature requires the system to retain more customer information, as they'll be charged multiple times over the subscription's duration.<br/>\r\nA subscription links a customer to a specific plan you've created, enabling recurring charges. \r\nWhen setting up a subscription, you define the billing schedule and may also specify a trial period. The process to establish a subscription follows these steps:\r\n\r\n### Step 1: Create a subscription\r\nDefine the subscription using [POST subscription](#tag/Subscriptions/paths/~1api~11.0~1subscriptions/post). his step sets up the essential parameters of your offering, including the subscription name, amount, frequency, internal reference (for reconciliation purposes), and an optional trial period. This endpoint returns a SubscriptionId, needed in Step 3.<br/>\r\n\r\n### Step 2: Create a Customer\r\nUse [POST customers](#tag/Customers/paths/~1api~11.0~1customers/post) to create a customer profile, which acts as a container for customer data and associated payment methods. You can input identifiers such as full name, phone number, and email. This endpoint returns a CustomerId, required in Step 3.<br/>\r\n\r\n### Step 3: Create a subscriber\r\nCreate a subscriber [POST subscribers](#tag/Subscribers/paths/~1api~11.0~1subscribers/post), establishing the relationship between a subscription (SubscriptionId), customer (CustomerId), and the chosen payment method. Once a subscriber is created, you'll receive a link to redirect your customer for payment setup and a SubscriberId.<br/>\r\n\r\n### Callbacks\r\nTo receive updates on payment outcomes, merchants can use webhooks. After a customer enrolls in a subscription plan, the merchant receives a POST notification for each \"PaymentSucceeded\" or \"PaymentFailed\" attempt.<br/>\r\nA successful subscription generates two notifications:\r\n1. An initial notification with a $0.00 amount, confirming the payment setup for the subscriber.\r\n2. A subsequent notification with the actual subscription amount. For subscriptions with a trial period, this payment notification will be sent once the trial ends.\r\n\r\n### Subscription Management\r\nCustomers can decide to cancel their subscription at any time. Merchants have two options to ensure a prompt response to its customer request:\r\n- To implement an unsubscribe flow using the [PUT subscribers](#tag/Subscribers/paths/~1api~11.0~1subscribers~1%7BsubscriberId%7D/put) and updating the Status to \"canceled\". This will stop future recurring charges for the specific subscriber.\r\n- To manage cancellations through the 301pay UI. The merchant will select the Subscription and the Subscriber within it that needs to be \"cancelled\".\r\n\r\nOn top of that, Subscriptions can be deactivated via the 301pay UI to prevent new Subscribers from joining.\r\n\r\n\r\n## Payment Configurations\r\n\r\nA submerchant may have multiple payment methods, and each payment method can use different configurations.<br/>\r\nTo get the available payment methods, you can [GET account](#tag/Account/paths/~1api~11.0~1account/get).<br/>\r\nThen to obtain all the configurations of a specific payment method, you can [GET paymentConfigurations](#tag/Account/paths/~1api~11.0~1account~1configurations~1%7BpaymentMethod%7D/get).<br/>\r\nTo active a particular payment configuration, you can [PUT paymentConfiguration](#tag/Account/paths/~1api~11.0~1account~1configurations~1%7BpaymentMethod%7D~1%7BconfigurationId%7D~1active/put), passing the paymentMethodId and the configurationId (retrieved from the previous requests). <br/>\r\nAt any time it is possible to activate a specific payment configuration, and the system will immediately start using it.<br/>\r\nPlease notice that there can be only one active configuration for each payment method.<br/>\r\n\r\n\r\n## Server to Server\r\n\r\nThe server to server endpoint can be used to directly create and authorize charges, thus bypassing the BKN301 Pay payment application.<br/>\r\nThe flow to complete a payment involves multiple steps and API calls.<br />\r\n\r\n### Payment flow\r\n\r\nIf you want to give your customers the possibility to tokenize the card and reuse it for following transactions, you will need to create a new customer [POST customers](#tag/Customers/paths/~1api~11.0~1customers/post).\r\nThis is a facultative step.<br/>\r\n\r\n#### Step 1: Create a payment\r\n\r\nThe first step is to create a payment [POST payments](#tag/Payments/paths/~1api~11.0~1payments/post).<br/>\r\nIt is not necessary to pass in the 'returnUrls' object, as there won't be any redirection to the payment application.<br/>\r\nBy passing the id of a customer previously created into the 'customerId' property, you will be able to eventually save the payment method for that customer,\r\nor to reuse previous saved payment methods.<br/>\r\n\r\n#### Step 2: Create a new charge\r\n\r\nCreate a new charge [POST charges](#tag/Charges/paths/~1api~1s2s~11.0~1nets~1charges/post).<br/>\r\nThe response object will contain the unique identifier of the charge, which will be needed to authorize the charge and the encryption key.<br/>\r\n\r\n#### Step 3: Issue an authorization request\r\n\r\nPost an authorization request [POST charges/{chargeId}/authorizations](#tag/Charges/paths/~1api~1s2s~11.0~1nets~1charges~1{chargeId}~1authorizations/post).\r\nThe request object must contain one of the following properties:\r\n- the card to authorize. The card number and security code (CVV) are encrypted using the encryption key from the previous step, by using an RSA PKCS #1 algorithm\r\n- the paymentMethodId of the customer specified in step 1\r\n\r\nand also:<br/>\r\n\r\n- the 'gdiNotifyUrl', which will be called when the 3DS flow is triggered and the bank has finished identifying the user browser<br/>\r\n- the 'authNotifyUrl', which will be called when the 3DS flow is triggered and the authentication has completed<br/>\r\n\r\nIf you wish to save the payment method and associate it to the customer, the 'savePaymentMethod' property must be set to true.\r\nIn case the same payment method already exists, it will get overwritten.<br/>\r\n\r\nThe result of the call may vary depending on the card used and if the card is enrolled in 3DS or not (see the section <b>Card not enrolled/enrolled in 3ds</b>).\r\n\r\n### Card not enrolled in 3DS\r\n\r\nThe response from the authorization request will contain the status of the authorization and both the 'success' and 'completed' fields will be true.<br/>\r\nIn case the transaction has been declined, the field 'gatewayCode' will contain the reason for the decline.\r\n\r\n### Card enrolled in 3DS\r\n\r\nThe response from the authorization request will have 'success' set to true and 'completed' set to false.<br/>\r\nIn this case the 'iframe' object will contain the url that must be opened in an iframe, plus an indication if the iframe must be hidden or visible to the user.\r\nThe hidden iframe is used to open the GDI flow which is similar to an assessment of the user browser, while the visible iframe is used to open the authentication flow.\r\nN.B. You will need to issue the authorization request multiple times, until the 'completed' field is set to true or the 'success' field is set to false, thus indicating that either the authentication or transaction operation have failed.\r\n\r\n### Gateway error codes\r\n| Code | Description |\r\n|----------------|----------------------------------------------------|\r\n| IGFS_000 | Transazione Autorizzata |\r\n| IGFS_001 | DESTINATARIO SCONOSCIUTO |\r\n| IGFS_00155 | BATCH TRACK ID NON VALIDO. |\r\n| IGFS_00156 | BATCH TRACK ID NON UNIVOCO |\r\n| IGFS_00157 | STRUMENTO PAGAMENTO NON VALIDO. |\r\n| IGFS_00158 | NUMERO CARTA NON NUMERICO |\r\n| IGFS_00159 | NUMERO CARTA NON PRESENTE |\r\n| IGFS_002 | CARTA SCADUTA |\r\n| IGFS_00202 | TENTATIVO HACK RILEVATO |\r\n| IGFS_00203 | ACCESSO NON VALIDO :ULITIZZARE METODO POST |\r\n| IGFS_00253 | MAXIMUM CREDIT VOLUME EXCEEDED. |\r\n| IGFS_00254 | MAXIMUM CARD DEBIT VOLUME EXCEEDED. |\r\n| IGFS_00255 | MAXIMUM CARD CREDIT VOLUME EXCEEDED. |\r\n| IGFS_00256 | MAXIMUM CARD TRANSACTION COUNT EXCEEDED. |\r\n| IGFS_00257 | MAXIMUM TRANSACTION AMOUNT EXCEEDED. |\r\n| IGFS_00260 | TRANSACTION DENIED: CREDITS EXCEED CAPTURES |\r\n| IGFS_00261 | TRANSACTION DENIED: CAPTURES EXCEED AUTHORIZATIONS |\r\n| IGFS_00262 | TRANSAZIONE SCADUTA |\r\n| IGFS_003 | CARTA ERRATA |\r\n| IGFS_00300 | INSTITUTION ID NON PRESENTE. |\r\n| IGFS_00301 | RISK PROFILE ID NON PRESENTE. |\r\n| IGFS_00302 | CODICE VALUTA NON PRESENTE. |\r\n| IGFS_004 | CARTA IN BLACK LIST - RITIRARE |\r\n| IGFS_00451 | MERCHANT ID NON PRESENTE. |\r\n| IGFS_00452 | TERMINAL ID NON PRESENTE. |\r\n| IGFS_00453 | TERMINAL ID NON PRESENTE. |\r\n| IGFS_00454 | TERMINAL ID NON VALIDO |\r\n| IGFS_00456 | TERMINAL ID NON VALIDO |\r\n| IGFS_005 | ERRORE DI FORMATO |\r\n| IGFS_006 | ERRORE FILE SYSTEM |\r\n| IGFS_007 | ERRORE DI COMUNICAZIONE |\r\n| IGFS_00701 | IL BATCH NON PROCESSATO |\r\n| IGFS_00702 | IL BATCH NON RIAVVIATO |\r\n| IGFS_00704 | BATCH ID NON NUMERICO |\r\n| IGFS_00705 | BATCH ID NON PRESENTE |\r\n| IGFS_008 | AUTORIZZAZIONE NEGATA |\r\n| IGFS_009 | RITIRARE CARTA |\r\n| IGFS_00950 | DIRECTORY BATCH UPLOAD NON PRESENTE |\r\n| IGFS_00951 | DIRECTORY BATCH DOWNLOAD NON PRESENTE |\r\n| IGFS_00952 | NOME DIRECTORY ARCHIVIAZIONE BATCH NON PRESENTE |\r\n| IGFS_010 | MERCHANT NON ABILITATO |\r\n| IGFS_01000 | TRANSAZIONE NEGATA DAL RISCHIO |\r\n| IGFS_011 | CONTATTARE ACQUIRER |\r\n| IGFS_014 | MERCHANT NON CONVENZIONATO |\r\n| IGFS_015 | CARTA NON GESTITA |\r\n| IGFS_016 | CARTA IN RANGE NEGATIVO O STRANIERA |\r\n| IGFS_018 | CARTA INESISTENTE |\r\n| IGFS_020 | CARTA INVALIDA |\r\n| IGFS_021 | CODICE MERCHANT ERRATO |\r\n| IGFS_029 | DATA SCADENZA ERRATA |\r\n| IGFS_030 | FONDI INSUFFICIENTI |\r\n| IGFS_03100 | CONFERME E CREDITI MULTIPLI NON ABILITATI |\r\n| IGFS_032 | IMPORTO NON VALIDO |\r\n| IGFS_03200 | CONFERME E CREDITI PARZIALI NON ABILITATI |\r\n| IGFS_033 | TRANSAZIONE ORIGINALE NON TROVATA |\r\n| IGFS_04000 | URL EXPIRED |\r\n| IGFS_04001 | MAXIMUM ATTEMPTS |\r\n| IGFS_04002 | ERROR SENDING PAYMENT URL |\r\n| IGFS_083 | ERRORE CIFRATURA TRANSAZIONE |\r\n| IGFS_085 | CODICE DIVISA ERRATO |\r\n| IGFS_086 | MALFUNZIONAMENTO SISTEMA |\r\n| IGFS_087 | ACQUIRER NON RAGGIUNGIBILE |\r\n| IGFS_088 | MANCATA RISPOSTA DA ACQUIRER |\r\n| IGFS_089 | PAYMENT INSTRUMENT ERROR |\r\n| IGFS_091 | MALFUNZIONAMENTO SISTEMA ACQUIRER |\r\n| IGFS_092 | TRANSAZIONE SCONOSCIUTA |\r\n| IGFS_093 | CONFERMA GIA' PRESENTE |\r\n| IGFS_094 | CREDITO GIA' PRESENTE |\r\n| IGFS_095 | STORNO PER NOTIFICA INESISTENTE |\r\n| IGFS_096 | STORNO PER AUTORIZZAZIONE INESISTENTE |\r\n| IGFS_097 | CONFERMA PER AUTORIZZAZIONE INESISTENTE |\r\n| IGFS_098 | IMPORTO SUPERIORE AD IMPORTO AUTORIZZATO |\r\n| IGFS_099 | STORNO GIA' PRESENTE |\r\n| IGFS_10000 | CARATTERI NON VALIDI |\r\n| IGFS_101 | MAC ERRATO |\r\n| IGFS_102 | SOSPETTA FRODE |\r\n| IGFS_104 | CARTA SOGGETTA A RESTRIZIONI |\r\n| IGFS_107 | CONTATTARE ISSUER |\r\n| IGFS_108 | CONTATTARE ISSUER :CASO SPECIALE |\r\n| IGFS_112 | INSERIRE PIN |\r\n| IGFS_115 | FUNZIONE NON SUPPORTATA SU CARTA |\r\n| IGFS_117 | PIN ERRATO |\r\n| IGFS_118 | CONTO NON TROVATO O NON ABILITATO |\r\n| IGFS_119 | OPERAZIONE NON PERMESSA AL TITOLARE |\r\n| IGFS_121 | SUPERATO LIMITE IMPORTO |\r\n| IGFS_122 | ERRORE SICUREZZA |\r\n| IGFS_123 | SUPERATO LIMITE FREQUENZA |\r\n| IGFS_125 | CARTA NON GESTITA |\r\n| IGFS_129 | SOSPETTA FRODE SU CARTA |\r\n| IGFS_160 | CARTA PERSA |\r\n| IGFS_164 | DATA ANTEC. A BLOCCO CARTA |\r\n| IGFS_165 | ? |\r\n| IGFS_172 | ADDITIONAL AUTHENTICATION REQUIRED: SCA REQUIRED |\r\n| IGFS_180 | DATI ERRATI |\r\n| IGFS_181 | DATI SENSIBILI ERRATI |\r\n| IGFS_188 | ? |\r\n| IGFS_189 | BIN IN RANGE NEGATIVO |\r\n| IGFS_1921 | 3DS:UNABLE TO AUTENTICATE |\r\n| IGFS_1922 | 3DS:AUTENTICATION ERROR |\r\n| IGFS_1923 | 3DS:UNABLE TO VERIFY (VERES=U) |\r\n| IGFS_1924 | OTP:AUTENTICATION ERROR |\r\n| IGFS_200 | RITIRARE CARTA |\r\n| IGFS_20000 | DATI MANCANTI |\r\n| IGFS_20001 | CODICE AZIONE NON VALIDO |\r\n| IGFS_20002 | SESSIONE SCADUTA |\r\n| IGFS_20003 | COOKIES NON ABILITATI |\r\n| IGFS_20004 | JAVASCRIPT NON ABILITATO |\r\n| IGFS_20006 | BRAND NON VALIDO |\r\n| IGFS_20007 | STATO ORDINE NON VALIDO |\r\n| IGFS_20010 | URL INVIO RISPOSTA NON VALIDO |\r\n| IGFS_20011 | URL INVIO ERRORE NON VALIDO |\r\n| IGFS_20012 | TRACK ID NON VALIDO |\r\n| IGFS_20013 | CODICE LINGUA NON VALIDO |\r\n| IGFS_20014 | CAMPO UDF NON VALIDO |\r\n| IGFS_20015 | NOME CARTA NON VALIDO |\r\n| IGFS_20016 | INDIRIZZO NON VALIDO |\r\n| IGFS_20017 | CAP NON VALIDO |\r\n| IGFS_20018 | CVV2 NON VALIDO |\r\n| IGFS_20019 | TRANSACTION ID. NON VALIDO |\r\n| IGFS_20020 | CAMPO USER IDENTIFIER NON VALIDO |\r\n| IGFS_20021 | CAMPO API VERSION NON VALIDO |\r\n| IGFS_20022 | CAMPO SIGNATURE NON VALIDO |\r\n| IGFS_20023 | CAMPO PAYMENT ID NON VALIDO |\r\n| IGFS_20024 | CODICE AUTORIZZAZIONE MANCANTE |\r\n| IGFS_20025 | CAMPO REFERENCE DATA NON VALIDO |\r\n| IGFS_20026 | SHOP ID DUPLICATO |\r\n| IGFS_20027 | FORMATO RICHIESTA NON VALIDO |\r\n| IGFS_20028 | DATI BATCH MANCANTI |\r\n| IGFS_20029 | DATI BATCH NON VALIDI |\r\n| IGFS_20030 | DIRECTORY DATI BATCH NON VALIDA |\r\n| IGFS_20031 | DATI BATCH DUPLICATI |\r\n| IGFS_20032 | NOME BATCH FILE NON VALIDO |\r\n| IGFS_20033 | DATI BATCH NON TROVATI |\r\n| IGFS_20034 | BATCH TRACK ID NON VALIDO |\r\n| IGFS_20035 | ORDERID NON VALIDO |\r\n| IGFS_20036 | PAN NON VALIDO |\r\n| IGFS_20037 | CVV2 NON VALIDO |\r\n| IGFS_20038 | EXPIRE DATE NON VALIDA |\r\n| IGFS_20040 | MPI VERIFIED NON VALIDA |\r\n| IGFS_20041 | MPI AUTHORIZED NON VALIDA |\r\n| IGFS_20042 | MPI CAVV NON VALIDA |\r\n| IGFS_20043 | MPI XID DATE NON VALIDA |\r\n| IGFS_20044 | CAMPO PAYMENT DESCRIPTION NON VALIDO |\r\n| IGFS_20045 | PAYMENT INSTRUMENT TOKEN ID ERRATO |\r\n| IGFS_20046 | FREE TEXT ERRATO |\r\n| IGFS_20047 | HASH PAYMENT INSTRUMENT TOKEN ERRATO |\r\n| IGFS_20048 | ERRORE PROCESSAMENTO PAYMENT INSTRUMENT TOKEN |\r\n| IGFS_20049 | TOPUPID ERRATO |\r\n| IGFS_20050 | CODICE POSTALE MITTENTE NON VALIDO |\r\n| IGFS_20051 | CODICE POSTALE DESTINATARIO NON VALIDO |\r\n| IGFS_20052 | CODICE NAZIONE DESTINATARIO NON VALIDO |\r\n| IGFS_20053 | IMPORTO SPEDIZIONE NON VALIDO |\r\n| IGFS_20054 | TELEFONO DESTINATARIO NON VALIDO |\r\n| IGFS_20055 | FAX DESTINATARIO NON VALIDO |\r\n| IGFS_20056 | IMPORTO TASSE NON VALIDO |\r\n| IGFS_20057 | ELENCO ARTICOLI MANCANTE |\r\n| IGFS_20058 | CODICE ARTICOLO NON VALIDO |\r\n| IGFS_20059 | DESCRIZIONE ARTICOLO NON VALIDO |\r\n| IGFS_20060 | NUMERO NON VALIDO |\r\n| IGFS_20061 | TELEFONO FATTURA NON VALIDO |\r\n| IGFS_20062 | IMPORTO ARTICOLO NON VALIDO |\r\n| IGFS_20064 | FAX FATTURA NON VALIDO |\r\n| IGFS_20065 | NUMERO MASSIMO PRODOTTI SUPERATO |\r\n| IGFS_20066 | CODICE NAZIONE MITTENTE NON VALIDO |\r\n| IGFS_20067 | NOME DESTINATARIO NON VALIDO |\r\n| IGFS_20068 | INDIRIZZO DESTINATARIO NON VALIDO |\r\n| IGFS_20069 | CITTA DESTINATARIO NON VALIDA |\r\n| IGFS_20070 | STATO DESTINATARIO NON VALIDO |\r\n| IGFS_20071 | CODICE VAT NON VALIDO |\r\n| IGFS_20072 | NOME FATTURA NON VALIDO |\r\n| IGFS_20073 | INDIRIZZO FATTURA NON VALIDO |\r\n| IGFS_20074 | CITTA FATTURA NON VALIDA |\r\n| IGFS_20075 | STATO FATTURA NON VALIDO |\r\n| IGFS_20076 | CODICE POSTALE FATTURA NON VALIDO |\r\n| IGFS_20077 | CODICE NAZIONE FATTURA NON VALIDO |\r\n| IGFS_20078 | NUMERO FATTURA NON VALIDO |\r\n| IGFS_20079 | NOTE AL VENDITORE NON VALIDE |\r\n| IGFS_20080 | PAGINA DI STILE NON VALIDA |\r\n| IGFS_20083 | AUTHCODE ERRATO |\r\n| IGFS_20084 | BUYERNAME ERRATO |\r\n| IGFS_20085 | BUYERACCNT ERRATO |\r\n| IGFS_20086 | IPBUYER ERRATO |\r\n| IGFS_20087 | BOUSER ERRATO |\r\n| IGFS_20090 | TRANSAZIONE CANCELLATA DALL'UTENTE |\r\n| IGFS_20092 | BUYERMOBILE ERRATO |\r\n| IGFS_20095 | MIN EXPIRE DATE NON VALIDA |\r\n| IGFS_20096 | TOPUPID GIA' AVVIATO |\r\n| IGFS_20098 | CAMPO RECURRENT NON VALIDO |\r\n| IGFS_20099 | BUYERIMEI ERRATO |\r\n| IGFS_20100 | ERRORE NOTIFICA MERCHANT |\r\n| IGFS_208 | CARTA PERSA |\r\n| IGFS_209 | CARTA RUBATA |\r\n| IGFS_400 | STORNO OK |\r\n| IGFS_800 | TERMINALE NON ABILITATO |\r\n| IGFS_801 | BANCA SELEZIONATA ERRATA |\r\n| IGFS_802 | TENTATIVI PIN ESAURITI |\r\n| IGFS_803 | CODICE TERMINALE ERRATO |\r\n| IGFS_804 | CHIAVE DISALLINEATA |\r\n| IGFS_805 | ERRORE CIFRATURA |\r\n| IGFS_807 | TERMINALE CHIUSO |\r\n| IGFS_808 | TERMINALE NON CHIUSO |\r\n| IGFS_809 | ERRORE SEQUENZA |\r\n| IGFS_810 | TERMINALE NON RICONOSCIUTO |\r\n| IGFS_811 | TERMINALE BLOCCATO |\r\n| IGFS_812 | TERMINALE CHIUSO FORZ. |\r\n| IGFS_813 | OPERAZIONE NON PERMESSA |\r\n| IGFS_814 | TRANSAZIONE IN CORSO |\r\n| IGFS_815 | CARTA BLOCCATA |\r\n| IGFS_888 | IN ATTESA DI COMPLETAMENTO |\r\n| IGFS_90000 | DATABASE ERROR |\r\n| IGFS_90005 | TIMESTAMP ERRATO. |\r\n| IGFS_902 | TRANSAZIONE NON VALIDA |\r\n| IGFS_903 | REINVIARE TRANSAZIONE |\r\n| IGFS_907 | EMITTENTE NON ADERENTE |\r\n| IGFS_908 | DESTINAZIONE NON TROVATA |\r\n| IGFS_909 | ERRORE DI SISTEMA |\r\n| IGFS_910 | SISTEMA ISSUER NON ATTIVO |\r\n| IGFS_911 | TIME OUT |\r\n| IGFS_912 | ISSUER NON RAGGIUNGIBILE |\r\n| IGFS_913 | TRANSAZIONE DUPLICATA |\r\n| IGFS_934 | NOTIFICA RIFIUTATA |\r\n| IGFS_990 | STRUMENTO PAGAMENTO NON ATTIVO |\r\n| IGFS_BPIOL_999 | CONTO BPIOL ERRATO |\r\n| IGFS_BPOL_999 | CONTO BPOL ERRATO |\r\n| IGFS_PPAY_999 | CONTO PPAY ERRATO |\r\n| IGFS_PPAYI_999 | CONTO PPAYI ERRATO |\r\n\r\n## Webhooks\r\nWebhooks allow you to receive an HTTP callbacks sent to your endpoints.\r\nYou can define up to 10 endpoints via the [dashboard](https://www.301pay.sm/).\r\nEvery callback is sent as a POST request with a JSON body.\r\n\r\n### Timeout, retries and idempotency\r\nA callback has a timeout of 30 seconds, so your system should process the request in a timely manner or, better, asynchronously.\r\nIn some occasions, the same callback may be sent multiple times, so your system should be idempotent.\r\n\r\nA callback is considered successful if it returns a 2xx HTTP status code.\r\n\r\nEvery callback will be attempted 10 times, with an exponential backoff configured as 60 seconds + number of attempts ^ 4, like in the following schema:\r\n\r\n| Attempt | Retry after (approx.) |\r\n|--------:|----------------------:|\r\n| 1 | - |\r\n| 2 | 60 seconds |\r\n| 3 | 136 seconds |\r\n| 4 | 277 seconds |\r\n| 5 | 593 seconds |\r\n| 6 | 1278 seconds |\r\n| 7 | 2634 seconds |\r\n| 8 | 5461 seconds |\r\n| 9 | 11264 seconds |\r\n| 10 | 23040 seconds |\r\n\r\n### Anatomy of an event\r\n```http request\r\nPOST / HTTP/1.1\r\nHost: http.outmatic.dev\r\nContent-Length: 103\r\nContent-Type: application/json; charset=utf-8\r\nX-Event-Version: 1.0\r\nX-Event-Signatures: z5c0Vubo/bRQdpouMSJQZjrEIEA2xq/z1QSBgA04YkA=\r\n\r\n{\"id\":\"someId\",\"eventType\":\"PaymentSucceeded\",\"eventDate\":\"2023-03-24T09:53:38.744583+01:00\",\"eventData\":{\"paymentId\":\"someId\",\"reference\":\"some external identifier\",\"currency\":\"EUR\",\"amount\":10.000}}<br/>\r\n```\r\n\r\n#### Event Signatures\r\nTo verify that every event is sent by 301pay, you can use the event signatures.\r\nEvery POST will contain a header (X-Event-Signatures) that contains one or more signatures, calculated as follows:\r\n- SHA256 (raw) of the POST body content\r\n- The raw output of the SHA256 must be converted to base64\r\n- HMAC (raw) of the hash using the key provided during the endpoint creation\r\n- The raw output of the HMAC must be converted to base64\r\n\r\nIf the signature you obtain is equal to one of those present in the header, you can be sure that the event is sent by 301pay.\r\n\r\n#### Event versioning\r\nThe header X-Event-Version contains the version of the event payload.\r\n\r\n#### Event structure\r\nEvery event has the following structure, where the eventData field contains the payload of the event:\r\n\r\n```json\r\n{\r\n \"id\": \"ae3234324\", // event identifier\r\n \"eventType\": \"PaymentSucceeded\", // type of the event\r\n \"eventDate\": \"2023-03-24T09:53:38.744583+01:00\",\r\n \"eventData\": { // payload of the event\r\n \"somedata\": \"somevalue\"\r\n ...\r\n }\r\n}\r\n```\r\n\r\n### Event types\r\n#### PaymentSucceeded\r\nOccurs when a payment has been completed successfully.\r\n```json\r\n{\r\n \"paymentId\": \"123456\",\r\n \"reference\": \"some external identifier\",\r\n \"currency\": \"EUR\",\r\n \"amount\": 10.000\r\n}\r\n```\r\n#### PaymentFailed\r\nOccurs when a payment has been failed.\r\n```json\r\n{\r\n \"paymentId\": \"123456\",\r\n \"reference\": \"some external identifier\",\r\n \"currency\": \"EUR\",\r\n \"amount\": 10.000\r\n}\r\n```\r\n\r\n",
"version": "1.0",
"x-logo": {
"url": "/images/301pay.svg",
"altText": "301pay"
}
},
"paths": {
"/api/1.0/account": {
"get": {
"tags": [
"Account"
],
"summary": "Retrieves information about the account",
"description": "Retrieves all the information about the submerchant account, like payment methods, supported currencies, etc.",
"parameters": [
{
"name": "x-LiveMode",
"in": "header",
"description": "When true, the operations are executed in production mode. Defaults to false.",
"schema": {
"title": "Live mode",
"type": "boolean",
"description": "When true, the operations are executed in production mode. Defaults to false.",
"format": "bool"
}
},
{
"name": "x-SubmerchantId",
"in": "header",
"description": "The identifier of the Submerchant.",
"required": true,
"schema": {
"title": "Submerchant id",
"type": "string",
"description": "The identifier of the Submerchant.",
"format": "string"
}
},
{
"name": "x-SubmerchantApiKey",
"in": "header",
"description": "The api key of the Submerchant.",
"required": true,
"schema": {
"title": "Submerchant api key",
"type": "string",
"description": "The api key of the Submerchant.",
"format": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Queries.GetSubmerchantAccount_Result"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Queries.GetSubmerchantAccount_Result"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Internal Server Error"
}
}
}
},
"/api/1.0/account/configurations/{paymentMethod}/{configurationId}/active": {
"put": {
"tags": [
"Account"
],
"summary": "Activete a payment configuration",
"description": "Activete a payment configuration",
"parameters": [
{
"name": "configurationId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "paymentMethod",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "x-SubmerchantId",
"in": "header",
"description": "The identifier of the Submerchant.",
"required": true,
"schema": {
"title": "Submerchant id",
"type": "string",
"description": "The identifier of the Submerchant.",
"format": "string"
}
},
{
"name": "x-SubmerchantApiKey",
"in": "header",
"description": "The api key of the Submerchant.",
"required": true,
"schema": {
"title": "Submerchant api key",
"type": "string",
"description": "The api key of the Submerchant.",
"format": "string"
}
}
],
"responses": {
"200": {
"description": "OK"
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Internal Server Error"
}
}
}
},
"/api/1.0/account/configurations/{paymentMethod}": {
"get": {
"tags": [
"Account"
],
"summary": "Gets available payment configurations",
"description": "Gets available payment configurations",
"parameters": [
{
"name": "paymentMethod",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "x-SubmerchantId",
"in": "header",
"description": "The identifier of the Submerchant.",
"required": true,
"schema": {
"title": "Submerchant id",
"type": "string",
"description": "The identifier of the Submerchant.",
"format": "string"
}
},
{
"name": "x-SubmerchantApiKey",
"in": "header",
"description": "The api key of the Submerchant.",
"required": true,
"schema": {
"title": "Submerchant api key",
"type": "string",
"description": "The api key of the Submerchant.",
"format": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Queries.GetPaymentMethods_Result"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Queries.GetPaymentMethods_Result"
}
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Internal Server Error"
}
}
}
},
"/api/s2s/1.0/nets/charges": {
"post": {
"tags": [
"Charges"
],
"summary": "Creates a s2s charge",
"description": "Creates and initialize a new s2s charge.\r\n If a valid configurationId (the unique identifier of payment configuration) is valorized with an existing payment configuration of the merchant, \r\n the charge will be authorized with this configuration.\r\n Otherwise, the charge will be authorized with the merchant active configuration at that moment.",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Nets.CreateS2SCharge_Request"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Nets.CreateS2SCharge_Request"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/Nets.CreateS2SCharge_Request"
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Nets.CreateS2SCharge_Result"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Nets.CreateS2SCharge_Result"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Internal Server Error"
}
}
}
},
"/api/s2s/1.0/nets/charges/{chargeId}/authorizations": {
"post": {
"tags": [
"Charges"
],
"summary": "Authorizes a s2s charge",
"description": "Authorize a s2s charge.\r\n If the charge does not require an authorization flow, it gets immediately authorized (or declined),\r\n otherwise the response will contain the indications for the authentication flow (e.g. in case of 3D-Secure).",
"parameters": [
{
"name": "x-UserAgent",
"in": "header",
"description": "Description of the user browser.",
"schema": {
"title": "UserAgent",
"type": "string",
"description": "Description of the user browser.",
"format": "string"
}
},
{
"name": "x-UserIp",
"in": "header",
"description": "User IP address.",
"schema": {
"title": "UserIp",
"type": "string",
"description": "User IP address.",
"format": "string"
}
},
{
"name": "chargeId",
"in": "path",
"description": "The unique identifier of the charge.",
"required": true,
"schema": {
"title": "Charge Id",
"type": "string",
"description": "The unique identifier of the charge.",
"format": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Nets.AuthorizeS2SCharge_Request_BodyDto"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Nets.AuthorizeS2SCharge_Request_BodyDto"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/Nets.AuthorizeS2SCharge_Request_BodyDto"
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Nets.AuthorizeS2SCharge_Result"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Nets.AuthorizeS2SCharge_Result"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Internal Server Error"
}
}
}
},
"/api/1.0/customers": {
"post": {
"tags": [
"Customers"
],
"summary": "Creates a customer",
"description": "Creates a customer.",
"parameters": [
{
"name": "x-PreferredLanguage",
"in": "header",
"description": "The language code (ISO 639-1, two-letter) to use for customer notifications. If not specified, the default language 'it' is used.",
"schema": {
"title": "Language",
"type": "string",
"description": "The language code (ISO 639-1, two-letter) to use for customer notifications. If not specified, the default language 'it' is used.",
"format": "iso-639-1"
}
},
{
"name": "x-LiveMode",
"in": "header",
"description": "When true, the operations are executed in production mode. Defaults to false.",
"schema": {
"title": "Live mode",
"type": "boolean",
"description": "When true, the operations are executed in production mode. Defaults to false.",
"format": "bool"
}
},
{
"name": "x-SubmerchantId",
"in": "header",
"description": "The identifier of the Submerchant.",
"required": true,
"schema": {
"title": "Submerchant id",
"type": "string",
"description": "The identifier of the Submerchant.",
"format": "string"
}
},
{
"name": "x-SubmerchantApiKey",
"in": "header",
"description": "The api key of the Submerchant.",
"required": true,
"schema": {
"title": "Submerchant api key",
"type": "string",
"description": "The api key of the Submerchant.",
"format": "string"
}
}
],
"requestBody": {
"description": "The customer payload",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Commands.CreateCustomer_Request_Body"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Commands.CreateCustomer_Request_Body"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/Commands.CreateCustomer_Request_Body"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Commands.CreateCustomer_Result"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Commands.CreateCustomer_Result"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Internal Server Error"
}
}
},
"get": {
"tags": [
"Customers"
],
"summary": "Gets the list of customers",
"description": "Gets the list of customers",
"parameters": [
{
"name": "limit",
"in": "query",
"description": "The maximum number of results to return. The default is 10.",
"schema": {
"title": "Limit",
"type": "integer",
"description": "The maximum number of results to return. The default is 10.",
"format": "string"
}
},
{
"name": "startingAfterId",
"in": "query",
"description": "The id of the first item in the current page of the list, used for scrolling forward.",
"schema": {
"title": "StartingAfterId",
"type": "string",
"description": "The id of the first item in the current page of the list, used for scrolling forward.",
"format": "string"
}
},
{
"name": "endingBeforeId",
"in": "query",
"description": "The id of the last item in the current page of the list, used for navigating backward..",
"schema": {
"title": "EndingBeforeId",
"type": "string",
"description": "The id of the last item in the current page of the list, used for navigating backward..",
"format": "string"
}
},
{
"name": "emailAddress",
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "fullName",
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "mobileNumber",
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "x-LiveMode",
"in": "header",
"description": "When true, the operations are executed in production mode. Defaults to false.",
"schema": {
"title": "Live mode",
"type": "boolean",
"description": "When true, the operations are executed in production mode. Defaults to false.",
"format": "bool"
}
},
{
"name": "x-SubmerchantId",
"in": "header",
"description": "The identifier of the Submerchant.",
"required": true,
"schema": {
"title": "Submerchant id",
"type": "string",
"description": "The identifier of the Submerchant.",
"format": "string"
}
},
{
"name": "x-SubmerchantApiKey",
"in": "header",
"description": "The api key of the Submerchant.",
"required": true,
"schema": {
"title": "Submerchant api key",
"type": "string",
"description": "The api key of the Submerchant.",
"format": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Queries.SearchCustomers_Result"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Queries.SearchCustomers_Result"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Internal Server Error"
}
}
}
},
"/api/1.0/customers/{customerId}": {
"get": {
"tags": [
"Customers"
],
"summary": "Gets a customer",
"description": "Gets a customer.",
"parameters": [
{
"name": "customerId",
"in": "path",
"description": "The unique identifier of the customer to retrieve",
"required": true,
"schema": {
"title": "Customer Id",
"type": "string",
"description": "The unique identifier of the customer to retrieve",
"format": "string"
}
},
{
"name": "x-LiveMode",
"in": "header",
"description": "When true, the operations are executed in production mode. Defaults to false.",
"schema": {
"title": "Live mode",
"type": "boolean",
"description": "When true, the operations are executed in production mode. Defaults to false.",
"format": "bool"
}
},
{
"name": "x-SubmerchantId",
"in": "header",
"description": "The identifier of the Submerchant.",
"required": true,
"schema": {
"title": "Submerchant id",
"type": "string",
"description": "The identifier of the Submerchant.",
"format": "string"
}
},
{
"name": "x-SubmerchantApiKey",
"in": "header",
"description": "The api key of the Submerchant.",
"required": true,
"schema": {
"title": "Submerchant api key",
"type": "string",
"description": "The api key of the Submerchant.",
"format": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Common.Customer"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Common.Customer"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Internal Server Error"
}
}
}
},
"/api/1.0/customers/{customerId}/paymentmethods": {
"get": {
"tags": [
"Customers"
],
"summary": "Gets paymentMethods",
"description": "Gets a payment method.",
"parameters": [
{
"name": "customerId",
"in": "path",
"description": "The unique identifier of the customer to retrieve",
"required": true,
"schema": {
"title": "Customer Id",
"type": "string",
"description": "The unique identifier of the customer to retrieve",
"format": "string"
}
},
{
"name": "x-LiveMode",
"in": "header",
"description": "When true, the operations are executed in production mode. Defaults to false.",
"schema": {
"title": "Live mode",
"type": "boolean",
"description": "When true, the operations are executed in production mode. Defaults to false.",
"format": "bool"
}
},
{
"name": "x-SubmerchantId",
"in": "header",
"description": "The identifier of the Submerchant.",
"required": true,
"schema": {
"title": "Submerchant id",
"type": "string",
"description": "The identifier of the Submerchant.",
"format": "string"
}
},
{
"name": "x-SubmerchantApiKey",
"in": "header",
"description": "The api key of the Submerchant.",
"required": true,
"schema": {
"title": "Submerchant api key",
"type": "string",
"description": "The api key of the Submerchant.",
"format": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Queries.GetCustomerPaymentMethods_Result"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Queries.GetCustomerPaymentMethods_Result"
}
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
}
}
},
"500": {
"description": "Internal Server Error"
}
}
}
},
"/api/1.0/customers/{customerId}/paymentmethods/{paymentMethodId}": {
"delete": {
"tags": [
"Customers"
],
"summary": "Delete paymentMethods",
"description": "Delete a payment method.",
"parameters": [
{
"name": "customerId",
"in": "path",
"description": "The unique identifier of the customer to retrieve",
"required": true,
"schema": {
"title": "Customer Id",
"type": "string",
"description": "The unique identifier of the customer to retrieve",
"format": "string"
}
},
{
"name": "paymentMethodId",
"in": "path",
"description": "The unique identifier of the paymentMethodId of the customer to retrieve",
"required": true,
"schema": {
"title": "PaymentMethod Id",
"type": "string",
"description": "The unique identifier of the paymentMethodId of the customer to retrieve",
"format": "string"
}
},
{
"name": "x-LiveMode",
"in": "header",
"description": "When true, the operations are executed in production mode. Defaults to false.",
"schema": {
"title": "Live mode",
"type": "boolean",
"description": "When true, the operations are executed in production mode. Defaults to false.",
"format": "bool"
}
},
{
"name": "x-SubmerchantId",
"in": "header",
"description": "The identifier of the Submerchant.",
"required": true,
"schema": {
"title": "Submerchant id",
"type": "string",
"description": "The identifier of the Submerchant.",
"format": "string"
}
},
{
"name": "x-SubmerchantApiKey",
"in": "header",
"description": "The api key of the Submerchant.",
"required": true,
"schema": {
"title": "Submerchant api key",
"type": "string",
"description": "The api key of the Submerchant.",
"format": "string"
}
}
],
"responses": {
"200": {
"description": "OK"
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/Mvc.ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized",