forked from activemerchant/active_merchant
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
3423 lines (3149 loc) · 190 KB
/
CHANGELOG
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
= ActiveMerchant CHANGELOG
== HEAD
* Stripe PI: ensure `setup_future_sage` and `off_session` work when using SetupIntents.
* Orbital: Update commit to accept retry_logic in params [jessiagee] #3890
* Orbital: Update remote 3DS tests [jessiagee] #3892
* Mercado Pago: support Creditel card type [therufs] #3893
* Payeezy: Update error mapping [meagabeth] #3896
* HPS: Add support for stored_credential [cdmackeyfree] #3894
* Orbital: Ensure payment_detail sends for ECP [jessiagee] #3899
* Payeezy: Update `error_code_from` method [meagabeth] #3900
* Worldpay: Add support for `statementNarrative` field [meagabeth] #3901
* Mercado Pago: Give ability to pass capture option in authorize txn field [naashton] #3897
* Orbital: Ensure correct fields sent in refund [jessiagee] #3903
* WorldPay: remove some defaults in billing address [carrigan] #3902
* Adyen: Support for General Credit [naashton] #3904
* Worldpay: reintroduce address1 and city defaults [carrigan] #3905
* Stripe: ensure potentially nested data is scrubbed #3907
* Stripe PI: Send Validate on Payment Method Attach [tatsianaclifton] #3909
* Adyen: Update handling of authorization returned from gateway [meagabeth] #3910
* Update gateway templates for Rubocop compliance [therufs] #3912 #3895
* Orbital: Send AVSname for all eCheck transactions [jessiagee] #3911
* Litle: update support of customerId field [cdmackeyfree] #3913
* Payment Express: fix signature for `verify` [therufs] #3914
* Forte: Send xdata fields [dsmcclain] #3915
* PaywayDotCom: Add New Gateway [DanAtPayway] #3898
* Orbital: Remove unnecessary requirements [jessiagee] #3917
* SafeCharge (Nuvei): Add network tokenization support [DStoyanoff] #3847
* Stripe PI: Enhance testing of SetupIntents API #3908
* SafeCharge (Nuvei): Fix NT related bug [jimilpatel24] #3921
* Worldpay: Only override cardholdername for 3ds tests [curiousepic] #3918
* Orbital: Add support for general credit [meagabeth] #3922
* Banco Sabadell: Ensure sca_exemption field is used #3923
* Redsys: Refactor XML character escape logic #3925
* HPS: Strip zip codes of non-alphanumeric characters [dsmcclain] #3926
* Orbital: $0 PreNote using authorize for eCheck force_capture [jessiagee] #3927
== Version 1.119.0 (February 9th, 2021)
* Payment Express: support verify/validate [therufs] #3874
* GlobalCollect: Truncate address fields [meagabeth] #3878
* Litle: Truncate address fields [meagabeth] #3877
* Netbanx: Add-customer-information(name,email,IP)-to-a-transaction [rockyhakjoong] #3754
* Netbanx: Adjust the avs and cvv return code in shopify [rockyhakjoong] #3833
* Decidir: Improve error mapping [meagabeth] #3875
* Worldpay: support `skip_capture` [therufs] #3879
* Redsys: Add new response code text [britth] #3880
* Orbital: Update ECP details to use payment source [jessiagee] #3881
* Alelo: Add additional BIN ranges [meagabeth] #3882
* HPS: Update Add support for general credit [naashton] #3885
* Elavon: Fix issue with encoding data sent in the request [naashton] #3865
* Orbital: Update ECP to use EWS verification [jessiagee] #3886
* Eway: Add 3ds field when do direct payment [GavinSun9527] #3860
* Support Creditel cardtype [therufs] #3883
* Elavon: Remove ampersand char from fields [naashton] #3891
== Version 1.118.0 (January 22nd, 2021)
* Worldpay: Add support for challengeWindowSize [carrigan] #3823
* Adyen: Update capitalization on subMerchantId field [cdmackeyfree] #3824
* Maestro and Elo: Update BIN ranges [meagabeth] #3822
* HPS: Truncate invoice numbers that are too long [curiousepic] #3825
* Pass network_transaction_id attribute in Response [therufs] #3815
* Elavon: support standardized stored credentials [therufs] #3816
* Decidir: update fraud_detection field [cdmackeyfree] #3829
* Paymentez: Add Olimpica cardtype [meagabeth] #3831
* SafeCharge: 3DS external MPI data refinements [curiousepic] #3821
* Credorax: Add support for 3DS Adviser [meagabeth] #3834
* Adyen: Support subMerchant data [mymir][therufs] #3835
* Decidir: add device_unique_identifier to card data [cdmackeyfree] #3839
* BraintreeBlue: add support for account_type field [jimilpatel24] #3840
* Redsys: Add support for stored_credential [meagabeth] #3844
* Redsys: add_payment method solution [meagabeth] #3845
* Stripe Payment Intents: Add support for error_on_requires_action option [tatsianaclifton] #3846
* Add 3DS 2.0 values to paypal [nebdil] #3285
* Redsys: Update Mpi Fields [tatsianaclifton] #3855
* Paypal: Update AuthStatus3ds MPI field [curiousepic] #3857
* Orbital: Update 3DS support for Mastercard [meagabeth] #3850
* Payeezy: Support standardized stored credentials [therufs] #3861
* CyberSource: Update `billing_address` override [meagabeth] #3862
* Paymentez: Add 3DS MPI field support [carrigan] #3856
* BlueSnap: Add support `fraud-session-id` field [meagabeth] #3863
* BlueSnap: Update handling of `transaction-fraud-info` fields [meagabeth] #3866
* Payeezy: Allow no stored credential transaction id [therufs] #3868
* Orbital: eCheck processing added [ajawadmirza] #3870
* FirsdataE4V27: Fixes some apple pay transaction issues [pi3r] #3872
== Version 1.117.0 (November 13th)
* Checkout V2: Pass attempt_n3d along with 3ds enabled [naashton] #3805
* GlobalCollect: Add support for Third-party 3DS2 data [molbrown] #3801
* Authorize.net: Pass stored credentials [therufs] #3804
* Authorize.net: Don't pass isFirstRecurringPayment [therufs] #3805
* Litle: Add support for general credit transactions [naashton] #3807
* Redsys: Add 3DS2 Integration Support [esmitperez] #3794
* Cybersource: Use firstname/lastname from address instead of the payment method [pi3r] #3798
* Add MPI functionality for SafeCharge gateway [daniel] #3809
* SafeCharge: Standardize MPI fields [curiousepic] #3809
* Credorax: Adds AMEX to supported cards and adds 1A error code [LinTrieu] #3792
* Stripe PI: Pass external 3DS auth data [curiousepic] #3811
* Credorax: Allow 3DS1 normalized pass-through, ease version matching [britth] #3812
* Redsys: Redsys: Harden 3DS v1/v2 check for External MPI [esmitperez] #3814
* Add card types for Stripe, Worldpay, Checkout.com [LinTrieu] #3810
* ActiveMerchant::Billing::Response: Include `network_transaction_id` attribute [therufs] #3815
== Version 1.116.0 (October 28th)
* Remove Braintree specific version dependency [pi3r] #3800
== Version 1.115.0 (October 27th)
* Checkout v2: $0 Auth on gateway [jessiagee] #3762
* Adyen: Safely add execute_threeds: false [curiousepic] #3756
* RuboCop: Fix Layout/SpaceAroundEqualsInParameterDefault [leila-alderman] #3720
* iATS: Allow email to be passed outside of the billing_address context [naashton] #3750
* Orbital: Don't pass xid for transactions using network tokens [britth] #3757
* Forte: Add service_fee_amount field [meagabeth] #3751
* WorldPay: Add support for idempotency_key[cdmackeyfree] #3759
* Orbital: Handle line_tot key as a string [naashton] #3760
* RuboCop: Fix Lint/UnusedMethodArgument [leila-alderman] #3721
* RuboCop: Fix Naming/MemoizedInstanceVariableName [leila-alderman] #3722
* RuboCop: Fix Style/BlockComments [leila-alderman] #3729
* Checkout V2: Move to single-transaction Purchases [curiousepic] #3761
* RuboCop: Fix Naming/ConstantName [leila-alderman] #3723
* Orbital: Fix schema errors [britth] #3766
* Checkout V2: Start testing via amount code [curiousepic] #3767
* CyberSource: Don't include empty `mdd_` fields [arbianchi] #3758
* RuboCop: Fix Naming/VariableNumber [leila-alderman] #3725
* Update BIN ranges for Elo cardtype [cdmackeyfree] #3769
* Orbital: Resolve CardIndicators issue [meagabeth] #3771
* Adyen: Add subMerchant fields [naashton] #3772
* PayPal Express: reduce param requirements [shasum] #3773
* PayU Latam: Support partial refunds [leila-alderman] #3774
* RuboCop: Fix Style/Alias [leila-alderman] #3727
* Stripe PI: Allow `on_behalf_of` to be passed alone #3776
* RuboCop: Fix Performance/RedundantMatch [leila-alderman] #3765
* RuboCop: Fix Layout/MultilineMethodCallBraceLayout [leila-alderman] #3763
* NMI: Add standardized 3DS fields [meagabeth] #3775
* Mundipagg: Add support for SubMerchant fields [meagabeth] #3779
* Stripe Payment Intents: Add request_three_d_secure option [molbrown] #3787
* Decidir: Add support for csmdds fields [naashton] #3786
* RuboCop: Fix Performance/StringReplacement [leila-alderman] #3782
* RuboCop: Fix Naming/HeredocDelimiterCase & Naming [leila-alderman] #3781
* BlueSnap: Add address fields to contact info [naashton] #3777
* RuboCop: Fix Layout/SpaceInsideHashLiteralBraces [leila-alderman] #3780
* RuboCop: Fix Style/AndOr [leila-alderman] #3783
* Checkout V2: Support ability to pass attempt_n3d 3ds field [naashton] #3788
* Elavon: Upgrade to `processxml.do` [therufs] #3784
* Checkout V2: Support for attempt_n3d 3DS field [naashton] #3790
* Elavon: Strip ampersands [therufs] #3795
* Paybox: Add support for 3DS 1.0 values [jcpaybox] #3335
* Decidir: Add additional fraud_detection options [cdmackeyfree] #3812
== Version 1.114.0
* BlueSnap: Add address1,address2,phone,shipping_* support #3749
* BlueSnap: Protect against `nil` metadata [carrigan] #3752
* Cybersource: [CyberSource] Ensure the default address doesn't override `ActionController::Parameters` [pi3r] #3755
== Version 1.113.0
* Orbital: Add cardIndicators field [meagabeth] #3734
* Openpay: Add Colombia to supported countries [molbrown] #3740
* Mercado Pago: Update Device Id Header field [cdmackeyfree] #3741
* RuboCop: Fix Style/TrailingCommaInHashLiteral [leila-alderman] #3718
* RuboCop: Fix Naming/PredicateName [leila-alderman] #3724
* RuboCop: Fix Style/Attr [leila-alderman] #3728
* Payflow: Use application_id to set buttonsource [britth] #3737
* HPS: Enable refunds using capture transaction [britth] #3738
* Quickbooks: Omit empty strings in address [leila-alderman] #3743
* BlueSnap: Add transactionMetaData support #3745
* Orbital: Fix typo in PC3DtlLineTot field [naashton] #3736
* Credorax: Send first and last name parameters for CFT transactions [britth] #3748
* Orbital: Update CardIndicators field to fix bug [meagabeth] #3746
* CyberSource: Always send default address [leila-alderman] #3747
* Netbanx: Reject partial refund on pending status [rockyhakjoong] #3735
== Version 1.112.0
* Cybersource: add `maestro` and `diners_club` eci brand mapping [bbraschi] #3708
* Cybersource: Ensure Partner Solution Id placement conforms to schema [britth] #3715
* Adyen: Adyen: Pass `subMerchantId` as `additionalData` [naashton] #3714
* Litle: Omit checkNum when nil [leila-alderman] #3719
* PayU Latam: Improve error response [esmitperez] #3717
* Vantiv: Vantiv Express - CardPresentCode, PaymentType, SubmissionType, DuplicateCheckDisableFlag [esmitperez] #3730,#3731
* Cybersource: Ensure issueradditionaldata comes before partnerSolutionId [britth] #3733
== Version 1.111.0
* Fat Zebra: standardized 3DS fields and card on file extra data for Visa scheme rules [montdidier] #3409
* Realex: Change 3DSecure v1 message_version to a valid format [shuhala] #3702
* Ingenico/ GlobalCollect: Add field for installments [cdmackeyfree] #3707
* Cybersource: do not send 3DS fields if 'cavv` is missing and `commerceIndicator` is inferred [bbraschi] #3712
== Version 1.110.0
* FirstData e4 v27+: Strip linebreaks from address [curiousepic] #3693
* Adyen: Change shopper_email to email and shopper_ip to ip [rikterbeek] #3675
* FirstData e4 v27+ Fix strip_line_breaks method [carrigan] #3695
* Cybersource: Set authorization on the response even when in fraud review [pi3r] #3701
* Cybersource: Add fields to override stored creds [leila-alderman] #3689
* Cybersource: Conditionally find stored credentials [therufs] #3696 #3697
* Cybersource: Update logic to send cavv as xid for 3DS2 [douglas] #3699
* Credorax: Default 3ds_browsercolordepth to 32 when passed as 30 [britth] #3700
== Version 1.109.0
* Remove reference to `Billing::Integrations` [pi3r] #3692
* DLocal: Handle nil address1 [molbrown] #3661
* Braintree: Add travel and lodging fields [leila-alderman] #3668
* Stripe: strict_encode64 api key [britth] #3672
* Stripe PI: Implement verify action [leila-alderman] #3662
* Stripe, Stripe Payment Intents: Update supported countries [britth] #3684
* Forte: Use underscore for unused arguments in test [wsmoak] #3605
* Add Alia card type [therufs] #3673
* Element: Fix unit tests [leila-alderman] #3676
* PayU Latam: Fix store method [ccarruitero] #2590
* Adyen: Allow for executeThreeD to be passed as false [naashton] #3681
* WorldPay: Fix handling of `state` field for 3DS transactions [chinhle23] #3687
* Alia: Skip Luhn validation [therufs] #3673
* Diners Club: support 16 digit card numbers [therufs] #3682
* Cybersource: Update supported countries [britth] #3683
* Cybersource: pass reconciliation_id [therufs] #3688
* RuboCop: Fix Style/SpecialGlobalVars [leila-alderman] #3669
* RuboCop: Fix Style/StringLiteralsInInterpolation [leila-alderman] #3670
* RuboCop: Fix Layout/HeredocIndentation [leila-alderman] #3685
* RuboCop: Fix Gemspec/OrderedDependencies [leila-alderman] #3679
* RuboCop: Fix Style/TrailingUnderscoreVariable [leila-alderman] #3663
* RuboCop: Fix Style/WordArray [leila-alderman] #3664
* RuboCop: Fix Style/SymbolArray [leila-alderman] #3665
* Mercado-Pago: Notification url GSF [cdmackeyfree] #3678
* Credorax: Update logic for setting 3ds_homephonecountry [britth] #3691
== Version 1.108.0 (Jun 9, 2020)
* Cybersource: Send cavv as xid is xid is missing [pi3r] #3658
* Forte: Change default sec_code value to PPD [molbrown] #3653
* Elavon: Add merchant initiated unscheduled field [leila-alderman] #3647
* Decidir: Add aggregate data fields [leila-alderman] #3648
* Vantiv: Vantiv(Element): add option to send terminal id in transactions [cdmackeyfree] #3654
* Update supported Ruby and Rails versions [leila-alderman] #3656
* CI: Drop unused sudo: false Travis directive [olleolleolle] #3616
* PayU Latam: Prevent blank country in billing_address [britth] #3657
* DLocal: Fix address field names [molbrown] #3651
== Version 1.107.4 (Jun 2, 2020)
* Elavon: Implement true verify action [leila-alderman] #3610
* Vantiv Express: Implement true verify [leila-alderman] #3617
* Litle: Pass expiration data for basis payment method [therufs] #3606
* Stripe Payment Intents: Error handling and backwards compatibility within refund [britth] #3627
* HPS: Prevent errors when account_type or account_holder_type are nil [britth] #3628
* D Local: Handle invalid country code errors [curiousepic] #3626
* Stripe Payment Intents: Utilize execute_threed flag to determine success [britth] #3625
* Elavon: Add Level 3 fields [leila-alderman] #3632
* CyberSource: Stored Credential fixes [curiousepic] #3624
* CyberSource: Fix invalid and missing field tests [curiousepic] #3634
* CyberSource: Pass stored credentials with purchase [curiousepic] #3636
* Mercado Pago: Add payment_method_option_id field [schwarzgeist] #3635
* Stripe: Provide error when attempting an authorize with ACH [britth] #3633
* EBANX: Send original order id as merchant_payment_code metadata [miguelxpn] #3637
* Element: Add card_present_code field [schwarzgeist] #3623
* Orbital: Add support for Level 3 fields [leila-alderman] #3639
* Firstdata: Strip newline characters from address [bittercoder] #3643
* Forte: add sec_code attribute for echeck [wsmoak] #3640
== Version 1.107.3 (May 8, 2020)
* Realex: Ignore IPv6 unsupported addresses [elfassy] #3622
* Cybersource: Set partnerSolutionID after the business rules, fixes 500 error [pi3r] #3621
== Version 1.107.2 (May 7, 2020)
* Cybersource: Send a specific card brand commerceIndicator for 3DS [pi3r] #3620
* Cybersource: Send application_id as partnerSolutionID [pi3r] #3620
* Iridium: Localize zero-decimal currencies [chinhle23] #3587
* iVeri: Fix `verify` action [chinhle23] #3588
* Ixopay: Properly support three-decimal currencies [chinhle23] #3589
* Kushki: support `auth` and `capture` [therufs] #3591
* PaymentExpress: Update references to Windcave to reflect rebranding [britth] #3595
* Decidir: Improve handling of error responses from the gateway [naashton] #3594
* CyberSource: Added support for MerchantInformation CyberSource-specific fields [apfranzen] #3592
* ePay: Send unique order ids for remote tests [curiousepic] #3593
* Checkout V2: Send more informative error messages for 4xx errors [britth] #3601
* Elavon: Add ssl_dynamic_dba field [apfranzen] #3600
* iATS Payments: Update gateway to v3 and add support for additional GSFs [naashton] #3599
* Remove deprecated `rubyforge_project` attribute and tidy up unit test output [fatcatt316] #3598
* Elavon: Cleanup inadvertant field removal (avs_address) in #3600 [apfranzen] #3602
* EBANX: Fix transaction amount for verify transaction [miguelxpn] #3603
* iATS Payments: Update gateway to accept `email`, `phone`, and `country` fields [naashton] #3607
* Braintree: Fix response for failed refunds when falling back to voids [jasonwebster] #3608
* Worldpay: Fix response for failed refunds when falling back to voids [jasonwebster] #3609
* iATS Payments: Add support for Customer Code payment method [molbrown] #3611
* HPS: Add Google Pay support [MSmedal] #3597
* Adyen: Parse appropriate message for 3DS2 authorization calls [britth] #3619
* CyberSource: Add error details response fields [schwarzgeist] #3629
== Version 1.107.1 (Apr 1, 2020)
* Add `allowed_push_host` to gemspec [mdeloupy]
== Version 1.107.0 (Apr 1, 2020)
* Stripe Payment Intents: Early return failed `payment_methods` response [chinhle23] #3570
* Borgun: Support `passengerItineraryData` [therufs] #3572
* Ingenico GlobalCollect: support optional `requires_approval` field [fatcatt316] #3571
* CenPOS: Update failing remote tests [britth] #3575
* Realex: Update remote tests [britth] #3576
* FirstData e4 v27: Properly tag stored credential initiation field in request [britth] #3578
* Orbital: Fix stored credentials [chinhle23] #3579
* Acapture(Opp): Update gateway credentials [molbrown] #3574
* Ingenico GlobalCollect: support `requires_approval` field [fatcatt316] #3577
* CyberSource: Fix `void` for `purchase` transactions [chinhle23] #3581
* Checkout V2: Begin to add support for using network tokens for transactions. [arbianchi] #3580
* Opp: Update remote test fixtures [ccarruitero] #3582
* Optimal Payment: Add support for store [britth] #3585
* SecurePay Australia : Update test URL (#3586)
== Version 1.106.0 (Mar 10, 2020)
* PayJunctionV2: Send billing address in `auth` and `purchase` transactions [naashton] #3538
* Adyen: Fix some remote tests [curiousepic] #3541
* Redsys: Properly escape cardholder name and description fields in 3DS requests [britth] #3537
* RuboCop: Fix Style/HashSyntax [leila-alderman] #3540
* Paypal: Fix OrderTotal elements in `add_payment_details` [chinhle23] #3544
* Stripe Payment Intents: Add tests for "Idempotency-Key" header [fatcatt316] #3542
* Paypal: Fix RuboCop Style/HashSyntax violations [chinhle23] #3547
* Rubocop corrections for space around operators [cdmackeyfree] #3543
* Fat Zebra: Add `is_billing` in post for `store` call [chinhle23] #3551
* SafeCharge: Adds four supported countries [carrigan] #3550
* Ixopay: Support stored credentials [leila-alderman] #3549
* BlueSnap: Adds localized currency support [carrigan] #3552
* CheckoutV2: Use status as message for 3DS txns in progress [britth] #3545
* Stripe Payment Intents: Prevent idempotency key errors for compound actions [britth] #3554
* Adyen: Add tests for voiding with idempotency keys [jknipp] #3553
* Fat Zebra: Fix `store` call [chinhle23] #3556
* Update README to include Adyen [haolime] #3452
* PayJunctionv2: Fix billing address fields [leila-alderman] #3557
* Adyen: Fail unexpected 3DS responses [curiousepic] #3546
* Merchant Warrior: Add support for setting soft descriptors [daBayrus] #3558
* Adyen: Fix stored credentials [chinhle23] #3560
* Update BIN ranges for Alelo and Maestro cards [leila-alderman] #3559
* EBANX: Fix declines if order id is bigger than 40 chars [miguelxpn] #3563
* Moneris US: Remove gateway [chinhle23] #3561
* Decidir: Decidir: Improving the response message when encountering errors [naashton] #3564
* PayBox: Added USERTrust RSA Certification Authority and Sectigo RSA Organization Validation Secure Server CA [baldowl] #3567
== Version 1.105.0 (Feb 20, 2020)
* Credorax: Fix `3ds_transtype` setting in post [chinhle23] #3531
* Bambora Apac: Send void amount in options [leila-alderman] #3532
* RuboCop: Fix Layout/IndentHash [leila-alderman] #3529
* Stripe: Add connected account support [Carrigan] #3535
* Redsys: Update scrub method to account for 3DS error responses [britth] #3534
* Authorize.Net: Pass `account_type` to `check` payment types [chinhle23] #3530
* Merchant Warrior: Send void amount in options [leila-alderman] #3525
* Stripe: Add support for `statement_descriptor_suffix` field [Carrigan] #3528
* Decidir: Add support for fraud_detection, site_id, and establishment_name [fatcatt316] #3527
* HPS: support eCheck [therufs] #3500
* EBANX: Add metadata information in post [miguelxpn] #3522
* Worldpay: Add `riskData` GSF [fatcatt316] #3514
* EBANX: Fix `scrub` [chinhle23] #3521
* Worldpay: Remove unnecessary .tag! methods [leila-alderman] #3519
* BPoint: Remove amount from void requests [leila-alderman] #3518
* Authorize.net: Trim supported countries to AU, CA, US [fatcatt316] #3516
* Credorax: Allow optional 3DS 2 fields [jeremywrowe] #3515
* Stripe: Remove outdated 'customer options' deprecation [alexdunae] #3401
* Added support for fraud review in CyberSource gateway [greg-burgoon] #3536
== Version 1.104.0 (Jan 29, 2020)
* Adyen: add `recurring_contract_type` GSF [therufs] #3460
* Credorax: Only pass `3ds_version` parameter when required [britth] #3458
* EBANX: Include Peru in supported countries [Ruanito] #3443
* Bluesnap: include fraud data in response message [therufs] #3459
* Ingenico GlobalCollect: support `airline_data` and related GSFs [therufs] #3461
* Add UnionPay card type [leila-alderman] #3464
* Braintree: Fix add_credit_card_to_customer in Store [molbrown] #3466
* EBANX: Default to not send amount on capture [chinhle23] #3463
* Latitude19: Convert money format to dollars [molbrown] #3468
* Adyen: Fix response success for unstore [kheang] #3470
* CyberSource: add several GSFs [therufs] #3465
* Adyen: add `recurring_contract_type` GSF to auth [therufs] #3471
* Stripe Payment Intents: Use localized_amount on capture [molbrown] #3475
* dLocal: Add support for installments [kdelemme] #3456
* Merchant Warrior: Add void operation [leila-alderman] #3474
* Decidir: Update payment method IDs [leila-alderman] #3476
* Adyen: Add delivery address [leila-alderman] #3477
* Authorize.net: Correctly parse direct_response field with quotation marks [britth] #3479
* Decidir: Add debit card payment method IDs [leila-alderman] #3480
* CyberSource: Add issuer data+MDD to credit & void [leila-alderman] #3481
* Credorax: add `authorization_type` and `multiple_capture_count` GSFs [therufs] #3478
* CardStream: use localized_amount to correctly support zero-decimal currencies [britth] #3473
* EBANX: Add additional data in post [Ruanito] #3482
* Credorax: Omit phone when nil [leila-alderman] #3490
* TransFirst TrExp: Remove hyphens from zip [leila-alderman] #3483
* Mundipagg: Return acquirer code as the error code [leila-alderman] #3492
* Braintree Blue: Remove customer hash when using a payment_method_nonce #3495
* Credorax: Update non-standard currencies list [chinhle23] #3499
* Redsys: Update production URL [britth] #3505
* Moneris: include AVS and CoF fields when storing vault records [alexdunae] #3446
* Moneris: Add support for temporary vault storage [alexdunae] #3446
* Clearhaus: Update currencies without fractions list [chinhle23] #3506
* Merchant Warrior: Add recurringFlag to purchase & authorize [carrigan] #3504
* CardConnect: Remove domain port validation [leila-alderman] #3494
* Paymentez: Correct refund and void message parsing [carrigan] #3509
* Mercado Pago: Add taxes and net_amount gateway specific fields [carrigan] #3512
* Moneris: use dedicated card_verification methods [alexdunae] #3428
* Authorize.net: Trim down supported countries [fatcatt316] #3511
* Stripe: Add support for `statement_descriptor_suffix` field [carrigan] #3528
* Stripe: Add connected account support [carrigan] #3535
== Version 1.103.0 (Dec 2, 2019)
* Quickbooks: Mark transactions that returned `AuthorizationFailed` as failures [britth] #3447
* Credorax: Add referral CFT transactions [leila-alderman] #3432
* DLocal: Updates for version 2.1 [molbrown] #3449
* CyberSource: Send MDD on capture [leila-alderman] #3453
* Ixopay: Include extra_data gateway specific field [therufs] #3450
* CyberSource: Fix XML error on capture [leila-alderman] #3454
* Adyen: Add gateway specific field for splits [leila-alderman] #3448
* Adyen: Add `unstore` and `storeToken` actions with '/Recurring' endpoint [deedeelavinder][davidsantoso] #3438
* Barclaycard Smartpay: Add functionality to set 3DS exemptions via API [britth] #3457
* Use [email protected] when option[:email] is an empty string [pi3r] #3462
== Version 1.102.0 (Nov 14, 2019)
* Quickbooks: Make token refresh optional with allow_refresh flag [britth] #3419
* Paymentez: Update supported countries [curiousepic] #3425
* Ixopay: Add new gateway [jasonxp] #3426
* Ixopay: Add support for currency option to refund method #3433
* Ixopay: Remove default callback URL #3436
* Ixopay: Refactor capture #3431
* Update supported countries list. Add currencies without fractions / with 3 decimal places #3424
* RuboCop: Fix Layout/EndAlignment [leila-alderman] #3427
* RuboCop: Fix Layout/ExtraSpacing [leila-alderman] #3429
* RuboCop: Fix Layout/MultilineOperationIndentation [leila-alderman] #3439
* Worldpay: Update logic to set cardholderName for 3DS transactions [britth] #3444
* Adopt new enrolled key for 3DS1 transactions. enrolled contains the 3… #3442
== Version 1.101.0 (Nov 4, 2019)
* Add UYI to list of currencies without fractions [curiousepic] #3416
* Quickbooks: Add OAuth 2.0 support and void action [britth] #3397
* Credorax: Stop always sending r1 parameter [molbrown] #3415
* Rubocop: Layout/RescueEnsureAlignment fix [leila-alderman] #3411
* CyberSource: Send issuer data on capture [leila-alderman] #3404
* Rubocop: Style/IfUnlessModifier [nfarve] #3390
* Redsys: Updates to parse method for non-3DS responses [britth] #3391
* Netbanx: Add 3DS2 Support [Jujhar] #3394
== Version 1.100.0 (Oct 16, 2019)
* Stripe: Restore non-auto capture behaviour for card present transactions [PatrickFang] #3258
* Revert "Revert "Worldpay: Switch to Nokogiri"" [curiousepic] #3373
* Adyen: Fix `authorise3d` message for refusals [jeremywrowe] #3374
* Redsys: Set authorization field for 3DS transactions [britth] #3377
* Adyen: Add capture_delay_hours GSF [therufs] #3376
* Credorax: Add support for stored credentials [chinhle23] #3375
* BlueSnap: Add remote tests for Cabal and Naranja [leila-alderman] #3382
* WorldPay: Add Cabal and Naranja remote tests [leila-alderman] #3378
* Rubocop: Indentions [nfarve] #3383
* Worldpay: Handle parse errors gracefully [curiousepic] #3380
* BluePay: Add ability to pass doc_type in refunds and credits [britth] #3386
* Stripe Payment Intents: Fix fallback for Store [waaux] #3343
* Update Securionpay supported countries [hossamhossny] #2472
* Visanet Peru: Add amount argument to Capture [curiousepic] #3389
* Rubocop: Layout/MultilineHashBraceLayout [nfarve] #3385
* CardConnect: Always include additional_data in purchase [therufs] #3387
* CardConnect: Add user_fields GSF [therufs] #3388
* Moneris: Add support for stored credentials [chinhle23] #3384
== Version 1.99.0 (Sep 26, 2019)
* Adyen: Add functionality to set 3DS exemptions via API [britth] #3331
* Adyen: Send "NA" instead of "N/A" [leila-alderman] #3339
* Stripe Payment Intents: Set application fee or transfer amount on capture [britth] #3340
* TNS: Support Europe endpoint [curiousepic] #3346
* Redsys: Add 3DS support to gateway [britth] #3336
* Worldpay: Allow multiple refunds per authorization [jknipp] #3349
* MercadoPago: Add remote and unit tests for Naranja card [hdeters] #3345
* CyberSource: Pass commerce indicator if present [curiousepic] #3350
* Worldpay: Add 3DS2 Support [nfarve] #3344
* Credorax: Add 3DS 2.0 [nfarve] #3342
* TNS: Update verison and support pay mode [curiousepic] #3355
* Stripe: Add supported countries [therufs] #3358
* Stripe Payment Intents: Add supported countries [therufs] #3359
* Mundipagg: Append error messages to the message response field [jasonxp] #3353
* Redsys: Add ability to pass sca_exemption and moto fields to request exemptions [britth] #3354
* Credorax: Add A Mandatory 3DS field [nfarve] #3360
* CyberSource: Support 3DS2 pass-through fields [curiousepic] #3363
* Credorax: Add support for MOTO flagging [britth] #3366
* Credorax: Enable selecting a processor [leila-alderman] #3302
* Adyen: Add Cabal card [leila-alderman] #3361
* Decidir: Add remote tests for Cabal and Naranja [leila-alderman] #3337
* Payflow: Pass correct field in Status for 3DS in Payflow [nebdil] #3362
* CyberSource: Use 3DS hash for enrolled field [curiousepic] #3371
== Version 1.98.0 (Sep 9, 2019)
* Stripe Payment Intents: Add new gateway [britth] #3290
* Stripe: Send cardholder name and address when creating sources for 3DS 1.0 [jknipp] #3300
* Checkout_v2: Support for native 3DS2.0 [nfarve] #3303
* Adds new Maestro BINs [tanyajajodia] #3305
* eWAY Rapid: If no address is available, default to the name associated with the payment method when setting the Customer fields [jasonxp] #3306
* eWAY Rapid: Fix a bug in which the email was not set in Customer fields if no address was provided [jasonxp] #3306
* eWAY Rapid: Support both `phone` and `phone_number` fields under the `shipping_address` option [jasonxp] #3306
* PayU Latam: Add support for the `merchant_buyer_id` field in the `options` and `buyer` hashes [jasonxp] #3308
* Update Braintree Gem [curiousepic] #3311
* Fat Zebra: Send metadata for purchase and authorize [montdidier] #3101
* TrustCommerce: Add support for custom fields [jasonxp] #3313
* Stripe Payment Intents: Support option fields `transfer_destination` and `transfer_amount` and remove `transfer_data` hash [britth] #3317
* Barclaycard Smartpay: Add support for `shopperStatement` gateway-specific field [jasonxp] #3319
* Stripe Payment Intents: Add support for billing_details on payment methods [britth] #3320
* BlueSnap: add standardized 3DS 2 auth fields [bayprogrammer] #3318
* Barclaycard Smartpay: Add app based 3DS requests for auth and purchase [britth] #3327
* Stripe Payment Intents, Checkout V2: Add support for `MOTO` flagging [britth] #3323
* Braintree Blue: Adding 3DS2 passthru support [molbrown] #3328
* Global Collect: Add Cabal card [leila-alderman] #3310
* WorldPay: Add Cabal card [leila-alderman] #3316
* Decidir: Add Cabal card [leila-alderman] #3322
* PayU Latam: Add Cabal card [leila-alderman] #3324
* dLocal: Add Cabal card [leila-alderman] #3325
* BlueSnap: Add Cabal card [leila-alderman] #3326
* Adyen: added 3DS support through external [rikterbeek] #3294
* Worldpay: Add support for MOTO flagging [britth] #3329
* ePay: 3DS support [AllaWLie] #3321
* Checkout.com: added options[:metadata][:manual_entry] support for MOTO transactions [filipebarcos] #3330
== Version 1.97.0 (Aug 15, 2019)
* CyberSource: Add issuer `additionalData` gateway-specific field [jasonxp] #3296
* PayU Latam: Add Naranja card type [hdeters] #3299
* Adyen: Add app based 3DS requests for auth and purchase [jeremywrowe] #3298
* MercadoPago: Add Cabal card type [leila-alderman] #3295
* MONEI: Add external MPI 3DS 1 support [jimmyn] #3292
* Bambora formerly Beanstream: Pass card owner when storing tokenized cards [alexdunae] #3006
* Realex: Prevent error calculating `refund_hash` or `credit_hash` when the secret is nil [jasonxp] #3291
* Orbital: Add external MPI support for 3DS1 [pi3r] #3261
* Paymill: Add currency and amount to store requests [jasonxp] #3289
* Realex: Re-implement credit as general credit [leila-alderman] #3280
* Braintree Blue: Support for stored credentials [hdeters] #3286
* CardConnect: Move domain from gateway specific to gateway field [hdeters] #3283
== Version 1.96.0 (Jul 26, 2019)
* Bluesnap: Omit state codes for unsupported countries [therufs] #3229
* Adyen: Pass updateShopperStatement, industryUsage [curiousepic] #3233
* TransFirst Transaction Express: Fix blank address2 values [britth] #3231
* WorldPay: Add support for store method [bayprogrammer] #3232
* Adyen: Support for additional AVS code mapping [jknipp] #3236
* Adyen: Update message for AVS result code 'A' to generically cover postal code mismatches [jknipp] #3237
* CyberSource: Update CyberSource SOAP documentation link [vince-smith] #3204
* USAePay: Handle additional error codes and add default error code [estelendur] #3167
* Braintree: Add `skip_avs` and `skip_cvv` gateway specific fields [leila-alderman] #3241
* NAB Transact: Update periodic test url [mengqing] #3177
* NMI: Add level 3 gateway-specific fields tax, shipping, and ponumber [jasonxp] #3239
* Checkout V2: Update stored card flag [curiousepic] #3247
* NMI: Add support for stored credentials [bayprogrammer] #3243
* Spreedly: Consolidate API requests and support bank accounts [lancecarlson] #3105
* BPoint: Hook up merchant_reference and CRN fields [curiousepic] #3249
* Checkout V2: Stop sending phone number to Checkout V2 integration [filipebarcos] #3248
* Barclaycard Smartpay: Add support for 3DS2 [britth] #3251
* Adyen: Add support for non-fractional currencies [molbrown] #3257
* Decidir: Add new gateway [jknipp] #3254
* Checkout V2: Reapply Update stored card flag [curiousepic]
* CyberSource: Update supported countries [molbrown] #3260
* Credorax: Update supported countries [molbrown] #3260
* Kushki: Update supported countries [molbrown] #3260
* Paypal: Update supported countries [molbrown] #3260
* BlueSnap: Send amount in capture requests [jknipp] #3262
* Mundipagg: Add Alelo card support [jasonxp] #3255
* Adyen: Remove temporary amount modification for non-fractional currencies [molbrown] #3263
* Adyen: Set blank state to N/A [therufs] #3252
* MiGS: Add tx_source gateway specific field [leila-alderman] #3264
* NMI: Correct password scrubber to scrub symbols [hdeters] #3267
* Global Collect: Only add name if present [curiousepic] #3268
* HPS: Add Apple Pay raw cryptogram support [slogsdon] #3209
* CardConnect: Fix parsing of level 3 fields [hdeters] #3273
* TrustCommerce: Support void after purchase [jknipp] #3265
* Payflow: Support arbitrary level 2 + level 3 fields [therufs] #3272
* BlueSnap: Default to not send amount on capture [molbrown] #3270
* Spreedly: extra fields, remove extraneous check [montdidier] #3102 #3281
* Cecabank: Update encryption to SHA2 [leila-alderman] #3278
* Checkout V2: Fix 3DS 1&2 integration [nicolas-maalouf-cko] #3240
* Credorax: add 3DS2 MPI auth data support [bayprogrammer] #3274
* Add Kosovo to the list of countries [AnotherJoSmith] #3226
* Realex: Adds 3DS 1&2 support through external MPI [filipebarcos] #3284
* PayPal: Adds 3DS 1 support through external MPI [nebdil] #3279
== Version 1.95.0 (May 23, 2019)
* Adyen: Constantize version to fix subdomains [curiousepic] #3228
* Qvalent: Adds support for standard stored credential framework [molbrown] #3227
* Cybersource: Send tokenization data when card is :master [pi3r] #3230
== Version 1.94.0 (May 21, 2019)
* Mundipagg: Fix number lengths for both VR and Sodexo [dtykocki] #3195
* Stripe: Support show and list webhook endpoints [jknipp] #3196
* CardConnect: Add frontendid parameter to requests [gcatlin] #3198
* Adyen: Correct formatting of Billing Address [nfarve] #3200
* Stripe: Stripe: Show payment source [jknipp] #3202
* Checkout V2: Checkout V2: Correct success criteria [curiousepic] #3205
* Adyen: Add normalized hash of 3DS 2.0 data fields from web browsers [davidsantoso] #3207
* Stripe: Do not attempt application fee refund if refund was not successful [jasonwebster] #3206
* Elavon: Send transaction_currency if currency is provided [gcatlin] #3201
* Elavon: Multi-currency support [jknipp] #3210
* Adyen: Support preAuths and Synchronous Adjusts [curiousepic] #3212
* WorldPay: Support Unknown Card Type [tanyajajodia] #3213
* Mundipagg: Make gateway_affiliation_id an option [curiousepic] #3219
* CyberSource: Adds Elo Card Type [tanyajajodia] #3220
* CyberSource: Support standalone credit for cards [curiousepic] #3225
== Version 1.93.0 (April 18, 2019)
* Stripe: Do not consider a refund unsuccessful if only refunding the fee failed [jasonwebster] #3188
* Stripe: Fix webhook creation for connected account [jknipp] #3193
* Adyen: Upgrade to v40 API version [davidsantoso] #3192
== Version 1.92.0 (April 8, 2019)
* BluePay: Send customer IP address when provided [jknipp] #3149
* PaymentExpress: Use ip field for client_info field [jknipp] #3150
* Bambora Asia-Pacific: Adds Store [molbrown] #3147
* Orbital: Pass normalized stored credential fields [curiousepic] #3148
* Adds Elo card type in general and specifically to Adyen [deedeelavinder] #3153
* Mercado Pago: Adds Elo card type [deedeelavinder] #3156
* Litle: Add support for stored credentials [bayprogrammer] #3155
* Adyen: Correctly process risk_data option [bayprogrammer] #3161
* Paymentez: Adds Elo card type [deedeelavinder] #3162
* WorldPay: Adds Elo card type [deedeelavinder] #3163
* Adyen: Idempotency for non-purchase requests [molbrown] #3164
* FirstData e4 v27: Support v28 url and stored creds [curiousepic] #3165
* WorldPay: Fix element order for 3DS + stored cred [bayprogrammer] #3172
* Braintree: Add risk data to returned response [jknipp] #3169
* Adyen: Support idempotency on purchase [molbrown] #3168
* Adyen: Pass phone, statement, device_fingerprint [curiousepic] #3178
* Adyen: Fix adding phone from billing address [curiousepic] #3179
* Fix partial or missing address exceptions [molbrown] #3180
* Adyen: Update to support normalized stored credential fields [molbrown] #3182
* VisaNet Peru: Always include DSC_COD_ACCION [bayprogrammer] #3174
* Adyen: Support adjust action [curiousepic] #3190
* CyberSource: Add support for stored credentials [therufs] #3185
== Version 1.91.0 (February 22, 2019)
* WorldPay: Pull CVC and AVS Result from Response [nfarve] #3106
* Worldpay: Add AVS and CVC Mapping [nfarve] #3107
* Paymentez: Fixes extra_params field [molbrown] #3108
* Improved support for account_type using Check class's account_type instead [lancecarlson] #3097
* USA Epay: Allow quantity to be passed and check custom fields [lancecarlson] #3090
* Fix usaepay transaction invoice [lancecarlson] #3093
* Adyen: Handles blank state address field [molbrown] #3113
* Braintree: Send all country fields [curiousepic] #3112
* Braintree: Account for empty string countries [curiousepic] #3115
* Orbital: Support for stored credentials framework [jknipp] #3117
* Openpay: Fix for marking successful transaction(s) as failed [jknipp] #3121
* Braintree: Adds support for transaction_source [molbrown] #3120
* Moneris: Remove redundant card on file guard clause [davidsantoso] #3123
* Switch order of Romania country codes [molbrown] #3125
* Blue Snap: Supports Level 2/3 data [molbrown] #3126
* Blue Snap: Support personal_identification_number [jknipp] #3128
* ProPay: Send 9 digit zip code without dash [molbrown] #3129
* Adyen: Extend AVS code mappings [therufs] #3119
* NMI: Add customer id to authorization on store [curiousepic] #3130
* Trans First Express: Don't pass blank name field [curiousepic] #3133
* TrustCommerce: Send full name on ACH transactions [jknipp] #3132
* Qvalent: Map CVV Result to responses [curiousepic] #3135
* Card Connect: Handle 401s as responses [curiousepic] #3137
* Worldpay: Introduce normalized stored credential options [davidsantoso] #3134
* Worldpay: Adjust use of normalized stored credentials hash [davidsantoso] #3139
* Adyen: Enable Dynamic 3DS [molbrown] #3138
* Fat Zebra: Support voids [curiousepic] #3142
* Blue Snap: Support ACH/ECP payments [jknipp] #3143
* Blue Snap: Fix Card-on-File field typo [jknipp] #3143
* Add Bambora gateway [InfraRuby] #3145
* Bambora Asia-Pacific: Updates Gateway [molbrown] #3145
* PaymentExpress: Support ClientInfo field [jknipp] #3131
* Pin Payments: Concatenate card and customer tokens when storing card [therufs] #3144
* Update Discover regex to allow card numbers longer than 16 digits [prashcr] #3146
* Merrco partial refunds fix [payfirma1] #3141
== Version 1.90.0 (January 8, 2019)
* Mercado Pago: Support "gateway" processing mode [curiousepic] #3087
* Braintree: Update gem to latest version [curiousepic] #3091
* Adyen: Pass arbitrary riskData fields [curiousepic] #3089
* Worldpay: Fix cookie header name [curiousepic] #3099
* Paymentez: Adds support for extra_params optional field [molbrown] #3095
* Braintree Blue: Support Level 2 and 3 data fields [curiousepic] #3094
* Braintree Blue: Refactor line_items field [curiousepic] #3100
* TrustCommerce: Use `application_id` [nfarve] #3103
* Stripe: Add 3DS Support [nfarve] #3086
* Cecabank: Append error text to message [therufs] #3127
== Version 1.89.0 (December 17, 2018)
* Worldpay: handle Visa and MasterCard payouts differently [bpollack] #3068
* QuickPay: update supported countries [ta] #3049
* WorldPay: set cardholder name to "3D" for 3DS transactions [bpollack] #3071
* Authorize.Net: Support refunds for bank accounts [nfarve] #3063
* Stripe: support specifying a reason for refunds [yosukehasumi] #3056
* Paybox Direct: add support for XPF currency [adam-stead] #2938
* TrustCommerce: Add ACH Ability [nfarve] #3073
* Payeezy: Support $0 for verify transactions [molbrown] #3074
* USA ePay: add support for recurring transactions, custom fields, and line items [lancecarlson] #3069
* Add dLocal gateway [curiousepic] #3709
* dLocal: Require secret_key [curiousepic] #3080
* Adyen: Implement 3DS [nfarve] #3076
* Adyen: Add 3DS Fix [nfarve] #3081
* Payeezy: Add `stored_credentials` [nfarve] #3083
* Fix CVC validation for 0 length CVC [filipebarcos] #3082
* NMI: Supports vendor_id and processor_id fields [molbrown] #3085
== Version 1.88.0 (November 30, 2018)
* Added ActiveSupport/Rails master support [Edouard-chin] #3065
== Version 1.87.0 (November 29, 2018)
* Barclaycard Smartpay: Improves Error Handling [deedeelavinder] #3026
* Braintree: Fix passing phone-only billing address [curiousepic] #3025
* Litle: Capitalize check account type [curiousepic] #3028
* Braintree: Account for nil billing address fields [curiousepic] #3029
* Realex: Add verify [kheang] #3030
* Braintree: Actually account for nil address fields [curiousepic] #3032
* Mercado Pago: do not infer card type [bpollack] #3038
* Credorax: allow sending submerchant ID (h3 parameter) [bpollack] #3040
* Worldpay: Pass stored credential option fields [curiousepic] #3041
* Make behavior of nil CC numbers more consistent [guaguasi] #3010
* Moneris: Adds Credential on File logic [deedeelavinder] #3042
* Adyen: Return AVS and CVC Result [nfarve] #3044
* Paymentez: Supports phone field, does not send if empty [molbrown] #3043
* Braintree: Account for nil address with existing customer [curiousepic] #3047
* Optimal Payment: Add verify capabilities #3052
* Moneris: Allows cof_enabled gateway to process non-cof transactions [deedeelavinder] #3051
* Cenpos: update supported countries [bpollack] #3055
* CyberSource: update supported countries [bpollack] #3055
* MiGS: update supported countries [bpollack] #3055
* Clearhaus: update submission data format [bpollack] #3053
* Forte: Allow void on capture [nfarve] #3059
== Version 1.86.0 (October 26, 2018)
* UsaEpayTransaction: Support UMcheckformat option for echecks [dtykocki] #3002
* Global Collect: handle internal server errors [molbrown] #3005
* Barclaycard Smartpay: allow third-party payouts for credits [bpollack] #3009
* RuboCop: AlignHash [nfarve] #3004
* Beanstream: Switch `recurringPayment` flag from boolean to integer [dtykocki] #3011
* Update Swipe HQ endpoint [bdewater] #3013
* Braintree: Adds device_data [deedeelavinder] #3012
* Payflow Express: Add phone to returned Response [filipebarcos] #3003
* Authorize.Net: Pass some level 3 fields [curiousepic] #3022
* Add state to the netbanx payload [Girardvjonathan] #3024
== Version 1.85.0 (September 28, 2018)
* Authorize.Net: Support custom delimiter for cim [curiousepic] #3001
== Version 1.84.0 (September 27, 2018)
* PayU Latam: support partial captures [bpollack] #2974
* Braintree: Reflect correct test mode in Braintree responses [elfassy] #2980
* FirstPay: Expose error code [curiousepic] #2979
* Barclaycard Smartpay: Pass device_fingerprint when specified [dtykocki] #2981
* Komoju: remove no-longer-relevant sandbox URL [miyazawadegica] #2987
* [POSSIBLE BREAKAGE] Determine credit cards via functions [bpollack] #2983
* Drop support for Laser cards [bpollack] #2983
* Improve Maestro card detection [bpollack] #2983
* Add ROU alpha3 code for Romania [dtykocki] #2989
* [POSSIBLE BREAKAGE] Drop support for Solo and Switch cards [bpollack] #2991
* Add support for Carnet cards [bpollack] #2992
* Stripe: support a reason for voiding a transaction [whitby3001] #2378
* Payeezy: Add reversal_id in support of timeout reversals [dtykocki] #2997
* Stripe: support Level 3 transaction fields [bpollack] #2996
* Conekta: support Carnet cards [bpollack] #2999
* Openpay: support Carnet cards [bpollack] #2999
* Adyen: Add support for GooglePay [dtykocki] #2971
== Version 1.83.0 (August 30, 2018)
* CT Payment: Update How Address is Passed [nfarve] #2960
* Adyen: Add RecurringProcessingModel [nfarve] #2951
* Optimal Payments: update country list [bpollack] #2961
* Ebanx: update sandbox and production URLs [vnbrs] #2949
* Ebanx: support additional countries [vnbrs] #2950
* Gateway generator: fix a typo that would cause the script to crash [bpollack] #2962
* Clearhaus: use $0 for verify transactions [bpollack] #2964
* Global Collect: properly handle partial captures [bpollack] #2967
* Braintree: Add support for GooglePay [dtykocki] #2966
* Adyen: allow overriding card brands [bpollack] #2968
* Adyen: allow custom routing [bpollack] #2969
* First Pay: Adds scrubbing [deedeelavinder] #2972
== Version 1.82.0 (August 13, 2018)
* FirstData: add support for WalletProviderID in v27 gateway [bpollack] #2946
* BlueSnap: Handle 403 responses [curiousepic] #2948
* BlueSnap: Add StoreCard Field [nfarve] #2953
* Worldpay: support installments [bpollack] #2957
* Paymentez: support partial refunds [bpollack] #2959
* Payflow: allow support for partial captures [pi3r] #2952
== Version 1.81.0 (July 30, 2018)
* GlobalCollect: Don't overwrite contactDetails [curiousepic] #2915
* Pin Payments: Pass reference for statement desc [curiousepic] #2919
* FirstData: introduce v27 gateway [shasum] #2912
* Stripe: Fix contactless magstripe support [abhiin1947] #2917
* ANET: Expose full response code [curiousepic] #2924
* Global Collect: Fix customer data field structure [curiousepic] #2929
* Adyen: Set Default Name for Apple Pay Transactions [nfarve] #2930
* Beanstream: Update to use api key with login credentials [nfarve] #2934
* CT Payments: Fix a typo in the live URL scheme [bpollack] #2936
* CyberSource: Don't throw exceptions on HTML responses [bpollack] #2937
* CyberSource: Remove extraneous parameter blocking echecks [chriscz] #2861
* FirstPay: Update Fields For Recurring Payments [nfarve] #2940
* Remove unused handle_response method [bl] #2309
* Barclaycard Smartpay: bump API version to v30 [bpollack] #2941
* Safecharge: Remove duplicate supported country [curiousepic]
* Payflow Express: Use SHIPTONAME instead of `full_name` for shipping address [filipebarcos] #2945
== Version 1.80.0 (July 4, 2018)
* Default SSL min_version to TLS 1.1 to comply with June 30 PCI DSS deadline [bdewater] #2909
* Paymentez: return a Result object even when the upstream server 500s [bpollack] #2871
* Drop support for Ruby versions older than 2.3 [bpollack] #2863
* Bridge Pay: don't throw an exception when bank account type is omitted [bpollack] #2873
* Avoid making actual connections in Blue Snap and Mundipagg unit tests [bpollack] #2875
* Avoid making actual connections in the connection unit tests [bpollack] #2876
* Openpay: support payment installments [bpollack] #2865
* First Pay: support recurring charges [bpollack] #2877
* Bridge Pay: pass full name of account type for echeck transactions [bpollack] #2878
* Kushki: do not send 0 for tax values if tax values are not provided [bpollack] #2886
* Payflow: Update ACH tests [curiousepic] #2887
* Credorax: support passing billing description [bpollack] #2889
* MiGS: scrub 3DS fields [abarrak] #2771
* Forte: avoid crashing when location_id or account_id have spaces [bpollack] #2890
* Adyen: Support Network Tokenization Cards via mpiData fields [curiousepic] #2891
* Moneris US: Add ACH [nfarve] #2888
* Realex: Pass amount for captures [curiousepic] #2895
* Card Connect: support storing cards [bpollack] #2896
* Avoid mutating headers passed in for Active Merchant connections [grantbdev] #2892
* Forte: add support for refunds [bpollack] #2898
* Forte: fix a bug in logic for selecting billing names [whitby3001] #2381
* Paymentez: allow capture amount to exceed authorization amount [bpollack] #2900
* JetPay: fix typo in error messages [reynhout] #2749
* Braintree: add support for Maestro cards [matthewheath] #2571
* Visanet Peru: Refund on unsettled transactions [nfarve] #2772
* Remove iDeal offsite gateway references [bdewater] #2807
* Conekta: Allow customer application in headers [curiousepic] #2908
* Payment Express: use testing URLs when testing [oklas] #2231
* Redsys: Fix payments with cc token [Leonardo Diez] #2586
* Redsys: Missing cardnumber params in xml_signed_fields [nerburish] #2628
* Bogus: allow authorizing with a tokenized card [Azdaroth] #2703
* CT Payment: Add new gateway [nfarve] #2911
== Version 1.79.2 (June 2, 2018)
* Fix Gateway#max_version= overwriting min_version [bdewater]
== Version 1.79.1 (May 31, 2018)
* Fix Net::HTTP connections defaulting to connection: keep-alive instead of close since #2862 [bpollack] #2868
* Mundipagg: allow passing holder_document for credit card purchases [bpollack] #2864
* Conekta: support monthly_installments [bpollack] #2866
* Authorize.net: allow sending email_customer set to false [bpollack] #2867
== Version 1.79.0 (May 30, 2018)
* Allow setting min/max SSL version for a connection on Ruby 2.5 [bdewater] #2775
* Add `gateways:ssl:min_version` rake task to test upcoming TLS 1.0 deprecation deadline [bdewater] #2775
* Log negotiated SSL version and cipher [bdewater + methodmissing] #2862
* Remove support for Rails < 4.2, add support for Rails 5.2 and Ruby 2.5 [bdewater]
* Spreedly: Support verify and find transactions [abarrak] #2798
* Adyen: Support merchant-specific subdomains [curiousepic] #2799
* Fix ENV based configuration of Net::Http for proxies [bbergstrom] #2800
* ANET: Withhold cryptogram for credit [curiousepic] #2804
* Borgun: Remove batch from request parameters [deedeelavinder] #2805
* WorldPay: Remove Inquiry requests in verify transactions [nfarve] #2802
* Credorax: Update tests [curiousepic] #2809
* Braintree: Remove decimal for non-fractional currencies [nfarve] #2806
* Realex: Add documented country support for US and CA [a-salty-strudel] #2810
* Paymentez: Add `tax_percentage` optional parameter [deedeelavinder] #2814
* Braintree: Add `skip_advanced_fraud_checking` optional parameter [deedeelavinder] #2811
* SafeCharge: Additional gateway options [dtykocki] #2816
* FirstPay: Handle missing billing addresses [dtykocki] #2822
* Realex: Add ApplePay Support [nfarve] #2820
* Checkout V2: Additional gateway options [dtykocki] #2821
* CyberSource: Support 3ds validate request [curiousepic] #2823
* Paymentez: Remove card tokenization step from authorize [dtykocki] #2825
* WorldPay: Add 3DS [nfarve] #2819
* EBANX: Interpolate authorization string [curiousepic] #2830
* CyberSource: Support 3DS validation for authorize [curiousepic] #2832
* Redsys: Fix ISO code for PLN [chopenhauer] #2831
* Merchant E Solutions: Support transcript scrubbing [curiousepic] #2836
* Paystation: Support transcript scrubbing [curiousepic] #2837
* Psigate: Support transcript scrubbing [curiousepic] #2835
* Braintree: Adding 3D Secure pass thru capabilities [filipebarcos] #2843
* Authorize.net: Add flexibility for 3D Secure Parameters [filipebarcos] #2844
* Elavon: Update Country List [nfarve] #2840
* WorldPay: Update Country List [nfarve] #2841
* Merchant Warrior: Support transcript scrubbing [curiousepic] #2845
* NAB Transact: Pass nonfractional amounts correctly [curiousepic] #2843
* Realex: Update Country List [nfarve] #2842
* QBMS: Support transcript scrubbing [curiousepic] #2849
* Adyen: Add support for installments [nfarve] #2839
* Paymentez: Read messages on Failure with no error [nfarve] #2850
* Paymentez: Fix response message conditional [curiousepic] #2851
* Add ability to send email receipt [nfarve] #2852
* Barclaycard Smartpay: Pass shopper_interaction [curiousepic] #2853
* Stripe: Treat UGX as a zero-decimal currency [bpollack] #2857
* Mundipagg: Remove Billing Address if no Address Sent [nfarve] #2855
* Paypal: Support more robust scrubbing [curiousepic] #2858
* Stripe: Report internal Stripe errors as failures [bpollack] #2859
* Authorize.net: Add ability to pass `customer_payment_profile_id` [nfarve] #2854
== Version 1.78.0 (March 29, 2018)
* Litle: Add store for echecks [nfarve] #2779
* Litle: Add Support for Echeck [nfarve] #2776
* Orbital: Correct level 2 tax handling [deedeelavinder] #2729
* Payeezy: Change determination method of endpoint for store request [deedeelavinder] #2731
* Adyen: Return refusal_reason_raw when present [curiousepic] #2728
* Payeezy: Update Store method [nfarve] #2733
* CenPOS: Remove gzip encoding header [curiousepic] #2735
* Mercado Pago: Allow binary_mode to be changed [nfarve] #2736
* Stripe: Accept strings for refund_fee_amount [curiousepic] #2738
* Orbital: Complete scrub test coverage [curiousepic] #2739
* MIGS: Scrub sensitive data [curiousepic] #2740
* Worldpay US: Scrub sensitive data [curiousepic] #2742
* WorldPay: Remove Israel from supported country list [dtykocki] #2746
* Optimal Payments: Scrub sensitive data [curiousepic] #2743
* USA Epay Transaction: Scrub sensitive data [curiousepic] #2745
* MIGS: Add unit test for scrub [curiousepic] #2747
* Worldpay US: Fix bank account scrub [curiousepic] #2748
* Litle: Add support for merchantData elements [dtykocki] #2751
* Paymentez: Add support for purchasing and authorizatin with tokens [bpollack] #2753
* Ingenico: Remove Trinidad and Tobego from supported country list [bpollack] #2754
* Barclaycard Smartpay: Remove Georgia from supported country list [bpollack] #2755
* Merchant Warrior: Remove requirement for state field [joshnuss] #2638
* Wirecard: Adding missing DigiCert Global Root G2 Cert [filipebarcos] #2759
* Redsys: Add support for CNY, IDR, INR, KRW and TWD [chopenhauer] #2761
* Optimal Payments: Fix scrub for double escaping [curiousepic] #2763
* Orbital: Scrub profile transactions [curiousepic] #2762
* BlueSnap: Fix currency passing [curiousepic] #2765
* Stripe: Support pickup_card decline code [dtykocki] #2764
* Improve scrub testing for five gateways [curiousepic] #2767
* Payflow: Support scrub [curiousepic] #2768
* SecureNet: Support scrub [curiousepic] #2769
* Payeezy: Update transaction method when using stored cards [dtykocki] #2770
* Citrus Pay, DIBS, 1stPayGateway, Global Transport, NETbilling, Ogone, TNS: remove TLS 1.0 requirement [bdewater] #2774
* CardStream: Default IP and customer country [dtykocki] #2773
* Stripe: Support destination amount [dtykocki] #2777
* GlobalCollect: Update supported country list [dtykocki] #2783
* Adyen: Support store action [curiousepic] #2784
* Psigate: Update Test URL and Card [nfarve] #2785
* USA ePay Transaction: Support ACH/eChecks [curiousepic] #2786
* PayU Latam: Support language parameter [dtykocki] #2787
* Payflow: Pass OrderDesc field [curiousepic] #2789
* Global Collect: Add arbitrary fraudField params [curiousepic] #2790
* Paystation: Support verify action [curiousepic] #2793
* Checkout V2: Return error codes in response [curiousepic] #2791
* CardStream: Change refund to use REFUND_SALE [dtykocki] #2795
* Spreedly: Scrub sensitive transaction data [abarrak] #2781
* Stripe: Add `exchange_rate` parameter [WilsonChiang] #2796
* Mundipagg: New Gateway Implementation [nfarve] #2791
== Version 1.77.0 (January 31, 2018)
* Authorize.net: Allow Transaction Id to be passed for refuds [nfarve] #2698
* Forte: ensure unit tests are local-only [bpollack] #2696
* Moneris US: ensure unit tests are local-only [bpollack] #2696
* Payflow: Change Verify Method for Amex Cards [nfarve] #2693
* Safe Charge: fix an issue with variable shadowing in the adapter [bpollack] #2697
* Crashnet: add scrubbing support [bpollack] #2695
* Barclays EPDQ: add scrubbing support [bpollack] #2695
* Fat Zebra: add remote scrubbing test [bpollack] #2695
* Clearhaus: add remote scrubbing test [bpollack] #2695
* Borgun: add remote scrubbing test [bpollack] #2695
* Stripe: Added support for the quickchip entry mode option [rbalsdon]
* Ogone: Add tests for scrubbing [bpollack] #2700
* Global Transport: Add scrubbing support [bpollack] #2700
* HPS: Add scrubbing support [bpollack] #2700
* FirstData E4: Improve scrubbing and add remote scrubbing test [bpollack] #2700
* Elavon: Add scrubbing support [bpollack] #2700
* Data Cash: Add scrubbing support [bpollack] #2700
* Litle: Fix testing URL [wsmoak] #2673
* Barclays ePDQ Extra Plus: Add missing Entrust root certificates [pacso] #2614
* Moneris US: Add scrubbing support [bpollack] #2702
* Mercury: Add scrubbing support [bpollack] #2702
* Fat Zebra: Tweak remote scrubbing test [bpollack] #2704
* Card Connect: Add new gateway [nfarve] #2706
* Payeezy: Ensure store calls are properly scrubbed [dtykocki] #2709
* Payeezy: Add unit test for scrubbing store call [dtykocki] #2710
* Element: Correct URL used by store transactions [dtykocki] #2711
* Borgun: Add support for specifying TerminalID [bpollack] #2712
* Barclaycard Smartpay: 3DS Implementation [nfarve] #2714
* Payeezy: Surface gateway_message on failure [curiousepic] #2717
* Payment Express: Scrub merchant password [curiousepic] #2723
* Stripe: Fix Partial Application Fee Refunds [curiousepic] #2713
* GooglePay: Support network tokenized cards [joshnuss] #2725
== Version 1.76.0 (January 3, 2018)
* PayU Latam: Change default text for description [nfarve] #2669
* Checkout V2: Allows AVS and CVV result details to come through on authorizations [deedeelavinder] #2650
* Global Collect: Adds boolean option for pre_authorization [deeedeelavinder] #2651
* Credorax: Pass Transaction Type field [curiousepic] #2653
* Add CardProcess Gateway [bpollack] #2659
* Safe Charge: Provision 3DS option for approved merchants [deedeelavinder] #2661
* PayU Latam: Require payment_country on initialize [curiousepic] #2663
* Adyen: Remove CVV as Required Field and Determines shopperInteraction [nfarve] #2665
* SafeCharge: add support for VendorID, WebsiteID, and IP logging [bpollack] #2667
* Safe Charge: Adds 3DS flag [deedeelavinder] #2668
* CardProcess: Fix success? to always return true or false [bpollack] #2674
* SagePay: Correct CVV, AVS codes for Sagepay [singhai0] #2670
* PayU Latam: Count pending Voids as successful [curiousepic] #2677
* Mercado Pago: Ensure acess tokens are URL escaped [bpollack] #2675
* MiGS: Update hash format to SHA256 and restore remote tests [bpollack] #2676
* MiGS: Support verify calls [bpollack] #2664
* iATS: Fix Messages with Failure on iATS Server [nfarve] #2680
* Barclaycard Smartpay: Correct repsonse for fraud rejects #2683
* Adyen: Allow incomplete addresses in some situations [bpollack] #2684
* Paymentez: Add new gateway [bpollack] #2685
* PayU Latam: Provide a mechanism to override the amount in verify [dtykocki] #2688
* Mercado Pago: Support X-Device-Session-ID Header [bpollack] #2689
* Mercado Pago: Support arbitrary additional_info JSON [bpollack] #2691
* FirstData E4: Override ECI value for Apple Pay transactions with Discover [jasonwebster] #2671
* Quickbooks: Add payment context to Quickbooks charges and refunds [bdewater] #2694
== Version 1.75.0 (November 9, 2017)
* Barclaycard Smartpay: Clean up test options hashes [bpollack] #2632
* Barclaycard Smartpay: Extra data fields for credits [bpollack] #2631
* Cyber Source: Correctly passes subscriptionID for store [deedeelavinder] #2633
* Ebanx: Pass fields for business person responsible [curiousepic] #2635
* Ebanx: Support Colombian transactions [bpollack] #2636
* FirstData E4 (Payeezy): Ensure numeric ECI values are zero padded [jasonwebster] #2630
* Netbanx: Only send currency and billing_details for auths and sales [anotherjosmith] #2643
* Netbanx: Revert "Fixes basic auth for netbanx by sending the account_number and api_key" [anotherjosmith] #2644
* PayU Latam: Adds `partnerID`, adjusts phone preferences, allows empty `ip_address`, and adjusts for no `cvv` [deedeelavinder] #2634
* Sage Payment Solutions: Scrub check info [curiousepic] #2639
* Worldbank US: Allow using the backup URL [bpollack] #2641
* Worldbank US: Allow using the backup URL per-request [bpollack] #2645
== Version 1.74.0 (October 24, 2017)
* Adyen: Update list of supported countries [dtykocki] #2600
* Authorize.net CIM: Handle multiple error messages [amandapuff] #2537
* Barclaycard Smartpay: Pass street and house_number fields, in addition to standard address [deedeelavinder] #2603