NAV Navbar
cURL PHP Java Node.js
  • Version
  • Introduction
  • Audience
  • Authentication
  • URLs
  • Transactions
  • Reconcile
  • Payment Authorizations
  • Processed Transactions
  • Processed Batches
  • Chargebacks
  • Retrieval Requests
  • Funding Accounts
  • Fraud reports
  • Blacklists
  • Asynchronous Transactions and Notifications
  • WPF
  • 3DSecure
  • Authentication Services
  • Genesis KYC Services
  • Genesis Fx Services
  • Consumers
  • Tokenization
  • Transaction API
  • APM Services
  • Errors
  • Client Integrations
  • Client-side encryption
  • Shopping Carts
  • Testing
  • Status Page
  • Infrastructure and Uptime
  • Penetration Testing Warning
  • AVS Status Codes
  • CVV Result Codes
  • Level 3 Travel Data
  • Genesis SCA Services
  • Version

    API version 30.8

    Documentation version 30.8

    History

    Version Date Name Description
    1.0 2011/06/10 Emil Petkov Initial version
    1.1 2011/11/11 Emil Petkov Added optional shipping params section for the shipping address
    1.2 2012/04/18 Emil Petkov Added dynamic descriptor functionality
    1.3 2012/08/03 Emil Petkov Added new transaction type AVS and Account Verification
    2.0 2013/03/29 Emil Petkov Added gaming and MOTO flags and support
    2.1 2013/04/11 Emil Petkov Split Credits with an initial ref transaction and Payouts without a reference transaction
    2.2 2013/05/26 Emil Petkov Added new transaction type InitRecurringSale3D - recurring payments with initial 3D
    2.3 2014/01/15 Emil Petkov Removed the transaction types DebitSale and IdealSale
    2.4 2014/01/22 Emil Petkov Added authorization code and issuer response code to API, section for issuer response codes
    2.5 2014/01/29 Emil Petkov Moto and gaming flags are now returned in the transaction response if present/marked in the request
    2.6 2014/02/05 Emil Petkov Dynamic descriptor params are now returned in the transaction response if present in the request
    2.7 2014/02/15 Emil Petkov Recurring advices are now returned in the transaction response if received from the issuer
    2.8 2014/05/01 Emil Petkov Added required vs. optional API params
    2.9 2014/06/16 Emil Petkov Currency handling rework and API description (different currency exponents, etc)
    3.0 2014/08/28 Emil Petkov Added risk related APIs - chargebacks, retrieval requests, blacklists
    3.1 2014/11/25 Emil Petkov Added API support for partial approvals
    3.2 2014/12/03 Emil Petkov Added WPF I18N specifics
    3.3 2014/12/08 Emil Petkov Added shopping carts and client integrations list
    3.4 2014/12/16 Hristo Tanchev Now the remote ip can be either a required or optional API param
    3.5 2015/02/22 Dimitar Kostov Added API for eZeeWallet and PayByVoucher via Yeepay
    3.6 2015/02/23 Hristo Tanchev Added API for CashU and Paysafecard
    3.7 2015/03/13 Dimitar Kostov Added API for Sofort
    3.8 2015/03/18 Hristo Tanchev Added API for PPRO
    3.9 2015/04/15 Emil Petkov New WPF API and WPF payment methods
    4.0 2015/05/14 Hristo Tanchev Added API for Neteller and ABN iDEAL
    4.1 2015/06/15 Dimitar Kostov Added WPF custom attributes - bin, tail
    4.2 2015/08/10 Tsvetelina Borisova Added WPF custom attributes - default, expiration date
    4.3 2015/08/12 Vladimir Korichkov Added API for WebMoney and POLi
    4.4 2015/08/19 Tsvetelina Borisova Added fraud related API for TC40/SAFE (fraud reports)
    4.5 2015/08/27 Emil Petkov 3D attributes xid and cavv are now not re- quired in the MPI sync attempted only workflow, only eci is
    4.6 2015/09/02 Emil Petkov New transaction type PayByVoucher Sale for purchasing vouchers via credit cards. Reworked the PayByVouchers section
    4.7 2015/09/04 Emil Petkov Added penetration testing warning for merchants
    4.8 2015/09/06 Emil Petkov Reconcile API now works with ARN and transaction ID in addition to unique ID
    4.9 2015/09/11 Hristo Tanchev Added Electronic Commerce Indicator to notifications
    5.0 2015/09/30 Vladimir Korichkov Added API for INPay
    5.1 2015/12/09 Pepa Simeonova Added event parameter to notifications for fraud transactions.
    5.2 2016/02/02 Hristo Tanchev Added API for P24
    5.3 2016/02/16 Tsvetelina Borisova Added ARN in reconcile response if available.
    5.4 2016/03/18 Tsvetelina Borisova Added page for Manually Reviewed Transactions
    5.5 2016/03/17 Tsvetelina Borisova Added API for SDD.
    5.6 2016/03/28 Emil Petkov Extended PayByVouchers processing and WPF APIs with redeem type and card type
    5.7 2016/04/08 Emil Petkov Added info for statuspage.io, uptime and infrastructure, and new shopping carts
    5.8 2016/05/11 Tsvetelina Borisova Change the example for chargeback API - amount is returned in minor currency unit
    5.9 2016/05/22 Emil Petkov Now birth date API param is required only for Visa initial transactions with Financial Service MCCs (e.g. 6012)
    6.0 2016/06/30 Pepa Simeonova Added dynamic descriptor params to WPF payments.
    6.1 2016/07/20 Stefan Slaveykov Now usage can be either a required or optional API param
    6.2 2016/07/21 Tsvetelina Borisova Update documentation for chargebacks API
    6.3 2016/12/08 George Naydenov Added API for Trustly
    6.4 2017/01/20 Plamen Terziev Added AVS Codes
    6.5 2017/02/16 Nikolay Petrov Added API for PayPal Express Checkout
    6.6 2017/03/20 Iskar Enev Added API for Citadel
    6.7 2017/03/30 Stanislav Mihailov Added API for Instadebit/iDebit
    6.8 2017/03/31 Tsvetelina Borisova Added API for SCT Payout
    6.9 2017/05/12 Nikolay Petrov Added reference transaction unique id to the Reconcile API response
    7.0 2017/05/13 Nikolay Petrov Added API for Earthport
    7.1 2017/05/15 Stanislav Mihailov Added API for Wechat
    7.2 2017/05/30 George Naydenov Added API for Alipay
    7.3 2017/06/05 Hristo Tanchev Added API for PaySec
    7.4 2017/06/06 Hristo Tenev Added card brand and card number tags in reconcile response.
    7.5 2017/06/27 Lukasz Wojcik Added lifetime for WPF Payments.
    7.6 2017/07/06 Nikolay Petrov Removed AVS transaction type. AVS response code and text are returned in the transactions responses when present and supported or in the notifications for payments with asynchronous workflow.
    7.7 2017/07/06 Iskar Enev Added APM External Events.
    7.8 2017/08/11 Samuil Goranov Added support for optional shipping address params in Processing and WPF APIs.
    7.9 2017/08/17 Lukasz Wojcik Remove remote ip parameter for transactions with reference. It will be copied from reference transaction
    8.0 2017/08/18 Lukasz Wojcik Added invalid transaction types for amount parameter to WPF response.
    8.1 2017/08/18 Emil Kirilov Added search option by import date in Chargeback, Retrieval request and Fraud APIs.
    8.2 2017/09/05 George Naydenov Added API for RPN Payment
    8.3 2017/10/13 Ventsislav Dimitrov Added API for FashionCheque gift card and split payments.
    8.4 2017/10/13 Pepa Simeonova Added API for Intersolve gift card and split payments.
    8.5 2017/10/13 Stanislav Mihailov Added API for TCS gift card and split payments.
    8.6 2017/10/23 Iskar Enev Added Authentication Services and iSignThis.
    8.7 2017/11/02 George Naydenov Added API for RPN Payout
    8.8 2017/11/24 Hristo Tenev Added API for Paycommerce
    8.9 2017/11/25 George Naydenov API update with new sections Card, 3DS Card, Common. Removing older payment methods.
    9.0 2017/12/18 George Naydenov Added API for Neosurf.
    9.1 2018/01/02 George Naydenov Removed API for Inpay, ABN iDeal, Teleingreso and PayByVoucher.
    9.2 2018/01/03 Iskar Enev & Nikolay Petrov Added Tokenization service.
    9.3 2018/01/12 Hristo Tanchev Added API for Klarna.
    9.4 2018/01/18 Stefan Petrov Added ARN in WPF reconcile response if available.
    9.5 2018/01/26 George Naydenov Added API for Astropay Direct, Pago Facil, Link, Carulla, Davivienda.
    9.6 2018/02/22 George Kostov & Hristo Tenev Added API for Genesis KYC Services.
    9.7 2018/02/22 Emil Kirilov Added API for PSE.
    9.8 2018/02/26 Stefan Petrov Added API for RapiPago, Webpay, Banco de Chile.
    9.9 2018/03/01 Stefan Petrov Added API for Surtimax, Efecty, Cabal, Cencosud, Hipercard, Elo, Aura, Itau, Bradesco, Tarjeta Shopping, BBVA Bancomer, Boleto, Redpagos, Emprese De Energia, GiroPay, InstantTransfer, Multibanco.
    10.0 2018/03/02 George Naydenov Added API for OXXO, Argencard, Naranja, Nativa, Cartao Mercado Livre, Astropay Card, Banamex, Santander, Santander Cash, Zimpler PayU.
    10.1 2018/03/02 Emil Kirilov Added API for Baloto, Banco de Occidente, Banco do Brasil.
    10.2 2018/04/10 Stefan Petrov Added API for Entercash.
    10.3 2018/05/08 Hristo Tenev Added API for eZeeWallet Payout.
    10.4 2018/05/31 Maya Nedyalkova Added 3D MasterCard test cards.
    10.5 2018/05/31 George Naydenov Added API for QQPay.
    10.6 2018/06/22 Hristo Tanchev Added API for Credential on File (COF).
    10.7 2018/07/05 George Naydenov Removed Paysec and added Online Banking OBeP.
    10.8 2018/07/18 Stanislav Mihailov Added the API param issuer_oct_enabled to Visa-based Account Verification transactions, to allow merchant to verify if issuer supports OCTs for the given PAN
    10.9 2018/07/27 Yordan Pulov Added Money Transfer support to Payouts.
    11.0 2018/08/01 George Naydenov Removed Paysec Payout and added Bank Payout.
    11.1 2018/08/02 Stanislav Mihailov Remove API for Citadel
    11.2 2018/08/31 Hristo Tenev Added API for BitPay.
    11.3 2018/08/31 Maya Nedyalkova Add rc_code and rc_description in notification parameters.
    11.4 2018/10/10 Ralitsa Borisova Remove Paycommerce, RPN Payment, Link, Davivienda, Banco de Chile, Cartao Mercado Livre documentation.
    11.5 2018/10/11 Emil Petkov Introduced debt repayments - now birth date API param is required also for Mastercard/- Maestro initial transactions with Financial Service MCCs (e.g. 6012), where merchant is UK-based, transaction is domestic (with UK-based bin), and card type is DEBIT.
    11.6 2018/11/02 Yordan Pulov and Stanislav Mihailov Introduced Travel layer and Added Level 3 Travel API.
    11.7 2018/11/21 Hristo Tenev Added Payout support for BitPay
    11.8 2018/12/05 Stefan Petrov Added API for eZeeCard Payout
    11.9 2018/12/05 Nikolay Petrov Added Pay Later support to the WPF. Introduced Reminders module.
    12.0 2019/01/07 Yordan Pulov Changed Contract Merchant Category Codes for Level 3 Visa Car and Hotel Rental Transactions.
    12.1 2019/01/31 Aleksandar Krastev Introduced Consumer API. Extended Tokenization API to require a consumer. Extended WPF and Processing APIs to create consumers and tokenize card details in one step. WPF API can use saved cards to make payments.
    12.2 2019/02/18 Yordan Pulov Extend the Online Banking bank codes and add payment type.
    12.3 2019/02/26 Stefan Petrov Added API for Tola payments.
    12.4 2019/03/13 Stanislav Mihailov Added support for new non-money transfer payout types.
    12.5 2019/03/19 Nikolay Valchanov Added cardholder and expiration dates params to reconcile APIs.
    12.6 2019/03/19 Vladislav Yakimov Added retrieve endpoint for the Consumer API.
    12.7 2019/03/22 Ventsislav Dimitrov Added support for Preauthorizations.
    12.8 2019/03/28 Nikolay Petrov Added support for importation of external tokens and card details.
    12.9 2019/04/01 Nikolay Petrov & Yasen Angelov Added support for Pay by Link functionality.
    13.0 2019/04/09 Hristo Tenev Added API for transaction card expiry date update.
    13.1 2019/04/11 Stanislav Mihailov Added API support for purchase of cryptocurrency transactions.
    13.2 2019/04/12 George Naydenov Removed QQPay transaction type.
    13.3 2019/04/15 Nikolay Valchanov Added usage and description params to WPF reconcile API.
    13.4 2019/04/22 Nikolay Valchanov Added optional bic param to iDeal transactions.
    13.5 2019/05/31 George Naydenov Added Genesis Fx Services.
    13.6 2019/06/07 Rumen Milushev Added WPF API Reconcile by_date.
    13.7 2019/06/14 Yordan Pulov Extended the Online Banking bank codes and Bank Payout banks.
    13.8 2019/07/02 Aleksandar Krastev Added Tokenization API get masked card details for token.
    13.9 2019/07/04 Vladislav Yakimov Added API for TransferTo Payout and TransferTo Payers retrieve.
    14.0 2019/07/09 Stefan Petrov Extend the Online Banking bank codes.
    14.1 2019/07/11 Pepa Simeonova Added new money-transfer types.
    14.2 2019/07/16 Hristo Tenev Added API support for Business attributes.
    14.3 2019/07/22 Pepa Simeonova Added source_of_funds as an optional API param for OCT types (Credit, Payout)
    14.4 2019/08/01 Stefan Petrov Removed API for Astropay Card, Astropay Direct, Hipercard, Carulla, Emprese de Energia, Surtimax.
    14.5 2019/08/05 Hristo Tanchev Extended Processing and WPF APIs support for FX (Forex).
    14.6 2019/08/05 Martin Lazarov Added reversible amount in Preauthorization reconcile response.
    14.7 2019/08/06 Rumen Milushev Added MOTO flag to WPF transaction types: Authorize, Authorize3D, Sale, Sale3D.
    14.8 2019/08/07 Yasen Angelov Added the new optional param reminder_language to the WPF API.
    14.9 2019/08/13 Stefan Petrov Rebranding African Mobile payments.
    15.0 2019/08/21 Nikolay Petrov Added new status 'represented' in notifications for Processing and WPF APIs.
    15.1 2019/08/22 Stefan Petrov Added beneficiary params to refund transaction.
    15.2 2019/09/03 Stefan Petrov Use sync workflow for Neosurf transaction.
    15.3 2019/09/13 Hristo Tanchev Extended transaction response with transaction ID form card schemes.
    15.4 2019/09/13 Yordan Pulov Added Genesis SCA Checker service API.
    15.5 2019/09/16 Nikolay Petrov Added support for Account Verification to the WPF API.
    15.6 2019/09/17 Ventsislav Dimitrov Extended the supported Merchant Category Codes for Visa Preauthorization
    15.7 2019/09/18 Aleksandar Krastev Added Processed Transaction API for Card Present and Card Not Present transactions.
    15.8 2019/09/20 Yordan Pulov Extended Genesis SCA Checker service API documentation.
    15.9 2019/09/20 Yordan Pulov Added new fields and changed the endpoint for sending TransferToAPI requests.
    16.0 2019/09/24 Rumen Milushev Added 'agency_name' to Hotel Rental Travel attributes.
    16.1 2019/09/25 Aleksandar Krastev Changed filter flags of Processed Transaction API by_date and by_post_date endpoints.
    16.2 2019/10/09 Aleksandar Krastev Extended Chargeback API to return more attributes; Added flags filtering by origin and type of processing.
    16.3 2019/10/10 Pepa Simeonova Added new MPI parameters and SCA parameters.
    16.4 2019/10/16 Aleksandar Krastev Extended Retrieval Request API to return more attributes; Added flags filtering by origin and type of processing.
    16.5 2019/10/17 Martin Lazarov Extended the supported Merchant Category Codes for Visa Preauthorization.
    16.6 2019/10/21 Yordan Pulov Added support for UATP Travel.
    16.7 2019/10/24 Rumen Milushev Transferred Hotel Rentals, Car Rentals and Cruise Lines from Travel Level 3 data to Business Attributes.
    16.8 2019/10/24 Martin Lazarov Added Reference Transaction Unique ID to notification parameters for the reference-based transactions.
    16.9 2019/10/31 Martin Lazarov Added Capture tolerance for Mastercard and Maestro Preauthorizations.
    17.0 2019/11/05 Yordan Pulov Added new fields for TransferTo Payout.
    17.1 2019/11/05 Nikolay Petrov Added new supported currencies and banks for Bank Payout.
    17.2 2019/11/15 Ventsislav Dimitrov Added API support for purchasing Mastercard and Maestro crypto-currencies.
    17.3 2019/11/15 Nikolay Petrov Added optional bank params to the refund transaction.
    17.4 2019/11/19 Stefan Petrov Added Processed Batches API.
    17.5 2019/11/20 Pepa Simeonova Added sub_merchant_id as an optional dynamic descriptor param.
    17.6 2019/11/20 Rumen Milushev Added optional time extensions to the Processing Reconcile and WPF Reconcile APIs.
    17.7 2019/11/21 Nikolay Petrov Added support for Online Banking Unified Payment Interface (UPI) payment type.
    17.8 2019/11/27 Stefan Petrov Added Batch and Deposit Slip Numbers to Processed Transaction API response.
    17.9 2019/11/28 Stefan Petrov Removed API for Entercash and Banamex.
    18.0 2019/12/03 Nikolay Petrov Made BIC param optional for SddSale and SddInitRecurringSale transactions.
    18.1 2019/12/05 Nikolay Petrov Added supported bank codes for Online Banking that can be used with Netbanking payment type.
    18.2 2019/12/12 George Naydenov Added Trustly Select Account API. Extended parameters for Trustly Sale and Bank Pay-out.
    18.3 2019/12/18 Rumen Milushev Added descriptions for Airlines and Travel agencies in Business Attributes.
    18.4 2019/12/20 George Naydenov Added birth_date as conditionally required API param for Trustly Sale and Bank Pay-out.
    18.5 2020/01/08 Hristo Tenev Added Funding Account API for Card Present and Card Not Present transactions.
    18.6 2020/01/21 Sridhar Belagod Added Trustly Register Account API.
    18.7 2020/01/29 Sridhar Belagod Marked birth_date as optional param for Trustly and changed description.
    18.8 2020/01/29 Ralitsa Borisova Added Finnish language as part of the platform internationalization
    18.9 2020/01/30 Sridhar Belagod Updated supported countries for Trustly Sale.
    19.0 2020/02/04 Dmitri Lihachev Added API for Apple Pay.
    19.1 2020/02/05 Sridhar Belagod Removed unique_id param from Trustly RegisterAccount API. Updated birth_date format and extended the example to include country-specific format
    19.2 2020/02/05 Stefan Petrov Exposed querying and reconciling by ARN for Fraud reports, Chargebacks and Transactions.
    19.3 2020/02/21 Ralitsa Borisova Updated description for Trustly Sale.
    19.4 2020/02/26 Rumen Milushev Added batch_slip_number and deposit_slip_number as optional search params for ProcessedTransactions and ProcessedBatches.
    19.5 2020/02/26 Rumen Milushev Added type and card_number response params to Processed Transactions API response.
    19.6 2020/02/28 Svilen Siderov Updated MyBank supported countries for PPRO.
    19.7 2020/03/11 Stanislav Mihailov Added Payment Authorizations API for Card Present and Card Not Present authorizations.
    19.8 2020/03/18 Nikolay Petrov Added captured flag and capturable_amount param to Reconcile API response for authorizations.
    19.9 2020/03/18 Stefan Petrov Updated supported countries for PaysafeCard.
    20.0 2020/03/19 Stefan Petrov Removed France and United Kingdom from the supported countries for Sofort.
    20.1 2020/03/18 Teodor Nikolov Updated amount fields descriptions.
    20.2 2020/03/23 George Naydenov Added list of supported clearinghouses for Trustly register account call.
    20.3 2020/03/23 Rumen Milushev Added merchant_number, merchant_reference_transaction and capture_method to Chargebacks API response.
    20.4 2020/03/27 Rumen Milushev Unified response param to 'merchant_transaction_reference' in Payment Transactions and Chargebacks API.
    20.5 2020/04/03 Ventsislav Dimitrov Added asynchronous 3DSv2 support for 3D transaction types
    20.6 2020/04/03 Svilen Siderov Added card type, card subtype and card issuing bank to the Processing and WPF Reconcile API responses
    20.7 2020/04/08 Stanislav Mihailov Extended Risk data APIs (TC40/SAFE, Chargebacks, Retrieval Requests) to return a list of records by ARN or by transaction unique ID if the new list mode is enabled
    20.8 2020/04/15 Stanislav Mihailov Updated amount field for Card Present, Card Not Present and External payment authorizations.
    20.9 2020/04/15 Martin Lazarov Added details about Async Refund transaction type.
    21.0 2020/04/15 George Naydenov Added clearing houses list of supported IBANs and account numbers for Trustly Register Account
    21.1 2020/04/20 Ventsislav Dimitrov Changed the Mastercard test card numbers for card enrolled and card not participating in the 3DSv1.
    21.2 2020/04/28 Stanislav Mihailov Made gaming flag optional for purchase of VISA cryptocurrency transactions.
    21.3 2020/04/28 Ventsislav Dimitrov Added additional required recurring params for asynchronous InitRecurringSale3d using 3DSv2 authentication protocol.
    21.4 2020/05/05 Ventsislav Dimitrov Added more advanced merchant sequence flow diagrams for 3DSv1 and 3DSv2 authentication protocols using the Processing API.
    21.5 2020/05/05 Ralitsa Borisova Added Norwegian, Danish and Swedish language as part of the platform internationalization.
    21.6 2020/05/11 Svilen Siderov Added bank account number and bank identifier code to the Processing and WPF Reconcile API responses.
    21.7 2020/05/15 Ventsislav Dimitrov Added more detailed request examples for synchronous 3DSecure Visa and MasterCard transactions through the 3DSv1 and 3DSv2 authentication protocol.
    21.8 2020/05/15 Ventsislav Dimitrov Marked xid as out of scope for synchronous 3DSecure transactions using the 3DSv2 authentication protocol.
    21.9 2020/05/15 Ventsislav Dimitrov Extended the 3DSv2 documentation, authentication flow diagrams, and marked usage as required param when processing asynchronous 3DSecure transaction through 3DSv2 authentication protocol.
    22.0 2020/05/19 Martin Lazarov Updated the documentation related to Alipay transaction type, its transaction amount limits and currencies.
    22.1 2020/06/01 Mario Chankov Updated the description related to POLi payment.
    22.2 2020/06/01 Svilen Siderov Added Alipay Register Merchant API.
    22.3 2020/06/09 Svilen Siderov Added auth_start_date and auth_end_date to Payment Authorizations API request.
    22.4 2020/06/24 Martin Lazarov Added authorization_code to the API and WPF notification of various transaction types.
    22.5 2020/06/25 Martin Lazarov Added retrieval_reference_number to: API/WPF notifications, API/WPF response and API/WPF reconciliation response.
    22.6 2020/07/01 Martin Lazarov Removed UPI from Online banking supported payment types. Added new transaction type UPI.
    22.7 2020/07/07 Nikolay Petrov Added support for AliPay QR payment type in the Online Banking.
    22.8 2020/07/10 Mario Chankov Removed Zimpler and Santander Cash. Changes to supported countries for MyBank, Safetypay and Santander
    22.9 2020/07/17 Ventsislav Dimitrov Changed the 3DSv2-Method submission from HTTP GET to HTTP POST with signature mechanism, extended 3DSv2 authentication flow diagrams.
    23.0 2020/07/17 Ventsislav Dimitrov Added API endpoint for handling continuation after 3DSv2-Method submission.
    23.1 2020/07/17 Ventsislav Dimitrov Added threeds_method_callback_url as optional request param to 3DS transaction types in asynchronous workflow.
    23.2 2020/07/17 Ventsislav Dimitrov Added 3DS response attributes to the Processing reconciliation and notification for 3DS transaction types in asynchronous workflow.
    23.3 2020/07/18 Ventsislav Dimitrov Dropped the synchronous 3DSv2-Method workflow handling and authentication flow sequence diagrams.
    23.4 2020/07/20 Alexey Kuznetsov Renamed Klarna related transaction to Invoice. Also, migrate Klarna items to transaction items and introduce a new payment type for different types of invoices.
    23.5 2020/07/21 Stefan Petrov Added new pending_hold status for async transactions where finalized by user, but final update from provider not yet received (Sofort, etc)
    23.6 2020/07/22 Stanislav Mihailov Updated the documentation for TC40/SAFE APIs (fraud reports) when searching by date.
    23.7 2020/07/22 Martin Lazarov Added details regarding partially_reversed payment transaction state.
    23.8 2020/07/22 Tsvetan Tsvetanov Changed Sofort transaction parameter name from bank_account_number to iban
    23.9 2020/08/04 Filipp Pirozhkov Added new tokenization errors and client-side encryption errors.
    24.0 2020/08/05 Vladimir Nudelman Added return_pending_url as an optional param to the WPF API
    24.1 2020/08/05 Stefan Petrov Made voucher_number for Neosurf transactions conditionally required.
    24.2 2020/08/06 Vladimir Nudelman Added cvv_result_code as an optional parameter in the notifications, transaction responses, and reconciliation responses for both WPF and Processing APIs.
    24.3 2020/08/17 Tsvetan Tsvetanov Added return_success_url_target as optional request param to Trustly Sale via Processing API and WPF.
    24.4 2020/08/24 Pepa Simeonova Added Funds Transfer BAI and removed MCC restrictions for money transfer payouts.
    24.5 2020/08/26 Martin Lazarov Added new TransferTo transfer type: C2C (Consumer to Consumer) as well as new conditionally required sender parameters, a table with supported destination countries and currencies, and a link to Retrieve Payers API.
    24.6 2020/08/26 Martin Lazarov Removed NB as available bank code for INR Online Banking transactions as well as the corresponding Netbanking-related notes.
    24.7 2020/09/02 Eduard Gataullin Removed currency attribute from Recurring Sale transaction params, as recurring series work only with the same currency as the init recurring and cannot be changed.
    24.8 2020/09/09 Martin Lazarov Added new conditionally required attributes for TransferTo payouts for the B2B scenario - document_reference_number and purpose_of_remittance.
    24.9 2020/09/16 Alexey Kuznetsov Added API for Secure Invoice payments.
    25.0 2020/09/16 Martin Lazarov Renamed the following TransferTo payout attributes: sender_lastname, sender_firstname, ifs_code to: sender_last_name, sender_first_name and indian_financial_system_code.
    25.1 2020/09/16 George Naydenov Added API for PostFinance.
    25.2 2020/09/29 Martin Lazarov Clarified the descriptions of the following TransferTo payout attributes: account_type, country, msisdn and sender_msisdn
    25.3 2020/10/02 Maya Nedyalkova Added capability to AVS response attributes.
    25.4 2020/10/21 Ventsislav Dimitrov Added field format restrictions to the billing and shipping address for async 3DS transactions that are using the 3DSv2 authentication protocol.
    25.5 2020/10/27 Ventsislav Dimitrov Added international customer phone field format notes for async 3DS transactions that are using the 3DSv2 authentication protocol.
    25.6 2020/10/27 Ventsislav Dimitrov Added card holder field format restrictions for async 3DS transactions that are using the 3DSv2 authentication protocol.
    25.7 2020/10/28 Kuznetsov Alexey Added API for e-wallet solutions.
    25.8 2020/10/28 Ventsislav Dimitrov Added state field format notes for the billing and shipping attributes of async 3DS transactions that are using the 3DSv2 authentication protocol as per the EMVCo spec for 3DSv2.1.
    25.9 2020/10/28 Ventsislav Dimitrov Added hints for building the signatures in the 3DSv2 scope of 3DS transactions that require 3DS-Method submission.
    26.0 2020/11/04 Ralitsa Borisova Extend MCC range for Airlines segment in Business Attributes.
    26.1 2020/11/04 Maya Nedyalkova Added funds status attribute to the Reconcile API responses.
    26.2 2020/11/13 Pepa Simeonova & Ventsislav Dimitrov Added support for 3DSv2 authentication protocol to the Web Payment Form.
    26.3 2020/11/16 Pepa Simeonova & Ventsislav Dimitrov Added additional 3DS attributes to the WPF Notification and WPF reconcile API response.
    26.4 2020/11/18 Ventsislav Dimitrov Changed the additional purchase and recurring params of the 3DSv2 authentication protocol to optional for 3DS transactions through the processing API.
    26.5 2020/11/24 Martin Lazarov Update the description of payment_type for Online Banking transactions.
    26.6 2020/11/24 George Naydenov Extend Online Banking banks list and supported currencies.
    26.7 2020/12/01 Mario Chankov Removed Bancolombia and DirectDebit as supported bank codes for ARS and COP currencies under Online Banking.
    26.8 2020/12/01 Stanislav Mihailov Added scheme_settlement_date to Processing API and Processing API/WPF API reconciliation responses. Extended the scheme_transaction_identifier description and added it to WPF API reconciliation response.
    26.9 2020/12/03 George Naydenov Removed national_id attribute for Online Banking.
    27.0 2020/12/08 Martin Lazarov Added support for sca_params for Authorize and Sale transaction types and updated the description for the exemption field.
    27.1 2020/12/08 Stanislav Mihailov Added credential_on_file_settlement_date attribute to Authorize and Sale payment transaction types. Extended the Credential On File section with a description for merchant_unscheduled COF type.
    27.2 2020/12/08 Vladimir Nudelman Added support for auth_network_outage exemption to Authorize and Sale transactions.
    27.3 2020/12/15 Ventsislav Dimitrov Added information for low_risk SCA exemption to sync/async 3DSv2 transactions and extended the transaction example requests.
    27.4 2020/12/15 Ventsislav Dimitrov Changed the usage param to optional for async 3DS transactions through the 3DSv2 authentication protocol.
    27.5 2020/12/16 Maya Nedyalkova Removed API for QIWI and InstantTransfer.
    27.6 2020/12/30 Ventsislav Dimitrov Extended the validation and description of the browser request parameters in the scope of 3DS transactions through the 3DSv2 authentication protocol.
    27.7 2021/01/06 Martin Lazarov Added an example EEA MasterCard card number for simulating the low-risk exemption request in synchronous 3DSv2 workflow.
    27.8 2021/01/26 Martin Lazarov Extended the description of the color_depth attribute as part of the required async 3DSv2 browser device channel attributes within the 3DSv2 authentication protocol.
    27.9 2021/01/26 Teodor Nikolov Removed API for Trustly withdrawal.
    28.0 2021/01/28 Stefan Petrov Added bank codes for P24.
    28.1 2021/01/28 Eduard Gataullin Added verification and verification status KYC endpoints.
    28.2 2020/02/04 Ventsislav Dimitrov Added support for numeric chars in the browser language subtag for transactions with 3DSv2 authentication protocol.
    28.3 2021/02/05 Pavel Abolmasov Added return_pending_url as optional param for APMs via Processing API.
    28.4 2021/02/12 Maya Nedyalkova Added description for the bic field to iDeal. Included warning for iframes usage.
    28.5 2021/02/16 Ventsislav Dimitrov Extended the list with the originated IPs for asynchronous payment notifications.
    28.6 2021/02/12 Eduard Gataullin Added background checks support to verification KYC endpoints.
    28.7 2021/02/18 Stanislav Mihailov Added an example EEA Visa card number, CAVV and ECI for simulating the low-risk exemption request in synchronous 3DSv2 workflow.
    28.8 2021/03/12 Evgeny Zhdanov Added funds_status and account_holder attributes to WPF reconcile, notification, and to reconcile params.
    28.9 2021/03/17 Pepa Simeonova Added sca_preference to WPF API params.
    29.0 2021/03/18 Martin Lazarov Added support for zero-value amounts with the card-based transaction types - Sale, Sale3D, Authorize, Authorize3D, Init Recurring Sale, Init Recurring Sale3D.
    29.1 2021/03/24 Martin Lazarov Added a notice for amount restrictions of the Partial Reversal transactions.
    29.2 2021/04/29 Eduard Gataullin Added support for an optional reference_id parameter to verification KYC endpoints.
    29.3 2021/05/11 Martin Lazarov Added payment_type to the list of supported business attributes.
    29.4 2021/05/14 Atanas Zlatarev Removed Spain from the supported countries of MyBank transaction.
    29.5 2021/05/19 Maya Nedyalkova Added support for Revolut to iDeal transactions.
    29.6 2021/05/19 Simeon Angelov Extended supported currencies for Neosurf.
    29.7 2021/06/22 Hristo Tanchev Extended Init Recurring with scheme_settlement_date and scheme_transaction_identifier attributes.
    29.8 2021/07/09 Nikola Yurukov Updated WPF transaction types.
    29.9 2021/07/15 Ventsislav Dimitrov Added additional originating IPs for the asynchronous payment notifications on the Staging environment.
    30.0 2021/07/21 Mario Chankov Removed Moneyou from the list of available issuers for the iDeal payment method.
    30.1 2021/07/22 Rumen Milushev Added Russian mobile sale and mobile payout transaction types.
    30.2 2021/08/03 George Naydenov Extended the description for online banking and transaction types that are going to be deprecated.
    30.3 2021/08/06 Ventsislav Dimitrov Extended the description note with the allowed characters of the card_holder request param for Payout with Visa or MasterCard gambling transactions regarding winnings.
    30.4 2021/08/16 Mario Chankov Added Moldova (MD) to the list of supported countries for the Paysafecard transaction type.
    30.5 2021/08/16 Pepa Simeonova Added sender_birth_date to money-transfer payout params.
    30.6 2021/08/18 Simeon Angelov Extended the list with supported currencies for Bitpay Sale transaction type.
    30.7 2021/08/23 Simeon Angelov Updated the list with supported countries for Bitpay transaction types.
    30.8 2021/09/03 Ventsislav Dimitrov Added additional originating IPs for the asynchronous payment notifications on the Production environment.

    Introduction

    You can get PHP SDK from https://github.com/GenesisGateway/genesis_php

    Installation:
    Get the SDK from GitHub and load it with Composer autoloader or include it in your own autoloader (The SDK uses PSR-4 spec).

    git clone http://github.com/GenesisGateway/genesis_php genesis_php
    cd genesis_php
    composer install

    You can get Node.js SDK from https://github.com/GenesisGateway/genesis.js

    Installation:
    Get the SDK from GitHub

    git clone http://github.com/GenesisGateway/genesis.js genesis.js
    cd genesis.js
    npm install

    Or install it using npm

    npm install genesis.js

    You can get Java SDK from http://github.com/GenesisGateway/genesis_java

    Installation:
    Get the SDK from GitHub and install Maven plugin

    git clone http://github.com/GenesisGateway/genesis_java genesis_java
    cd genesis_java
    mvn clean install

    Finally add this to your pom.xml file:

    <dependency> <groupId>com.emerchantpay.gateway</groupId> <artifactId>genesis-java</artifactId> <version>1.3.1</version> </dependency>

    You can get cURL from https://curl.haxx.se

    This document describes the usage of the payment gateway XML/JSON API.

    The API allows you to trigger all supported transactions of the gateway and to retrieve information about transactions existing in the gateway. You can also retrieve chargeback information.

    The payment API is synchronous (except for 3-D secure payments), it accepts HTTP POST or XML data and returns XML data. Connections are always secured via SSL both in test and live mode. Be sure to set Content-type: text/xml in your headers.

    Audience

    This document is intended for technical staff integrating the XML/JSON API in the merchant’s organization.

    It is required that readers have working knowledge of programming languages, XML and JSON formats and UTF8 encodings.

    Authentication

    <?php
    
    use \Genesis\Config as GenesisConfig;
    
    // Load the pre-configured ini file...
    GenesisConfig::loadSettings('/path/to/config.ini');
    
    // ...OR, optionally, you can set the credentials manually
    GenesisConfig::setEndpoint('<set_your_endpoint>');
    GenesisConfig::setEnvironment('<set_your_environment>');
    GenesisConfig::setUsername('<enter_your_username>');
    GenesisConfig::setPassword('<enter_your_password>');
    GenesisConfig::setToken('<enter_your_token>');
    
    // You can find example configuration file in root directory of the module
    
    
    
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;;
    import com.emerchantpay.gateway.util.Configuration;
    
    // Create configuration
    Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
    configuration.setUsername("SET_YOUR_USERNAME");
    configuration.setPassword("SET_YOUR_PASSWORD");
    configuration.setToken("SET_YOUR_TOKEN");
    
    

    You can override the path to the directory holding your configuration files (by default its config in the root directory of the module) via environmental variable NODE_CONFIG_DIR.

    The first file to parse configuration from, is <your-config-dir>/default.json and based on the environment variable (NODE_ENV), you can specify your custom file; for example <your-config-dir>/<NODE_ENV_NAME>.json.

    Its good practice to prevent web/direct access to your config directory and protect the files inside

    Send username and password directly in url
    curl https://username:password@staging.gate.e-comprocessing.net:443/process/TERMINAL-TOKEN

    Or use -u flag
    curl -u username:password https://staging.gate.e-comprocessing.net:443/process/TERMINAL-TOKEN

    To interact with the payment API, you need to provide login credentials using standard HTTP Basic Authentication. (credentials can be found in your Admin interface.)

    To decrease network traffic and response times, we recommend that you enforce sending authentication credentials directly in the first request.

    Some implementations like e.g. the Java HTTPClient automatically try to guess the best authentication scheme. This can be overridden by setting the authorization to preemptive:

    URLs

    Server API

    API methods are called with the following structure:

    https://gate.e-comprocessing.net/process/TERMINAL_TOKEN/

    Single transaction reconciles can be done via this URL:

    https://gate.e-comprocessing.net/reconcile/TERMINAL_TOKEN/

    Date range reconciles can be done via this URL:

    https://gate.e-comprocessing.net/reconcile/by_date/TERMINAL_TOKEN/

    This URL allows retrieval of a list of supported banks based on the customers country and/or currency:

    https://gate.e-comprocessing.net/retrieve_inpay_banks/TERMINAL_TOKEN/

    For the test system use the following URLs:

    https://staging.gate.e-comprocessing.net/process/TERMINAL_TOKEN/

    https://staging.gate.e-comprocessing.net/reconcile/TERMINAL_TOKEN/

    https://staging.gate.e-comprocessing.net/reconcile/by_date/TERMINAL_TOKEN/

    https://staging.gate.e-comprocessing.net/retrieve_inpay_banks/TERMINAL_TOKEN/

    WPF

    The URL for the WPF API create method is:

    https://wpf.e-comprocessing.net/wpf

    For the test system the URL is:

    https://staging.wpf.e-comprocessing.net/wpf

    The URL for the WPF API reconcile method is:

    https://wpf.e-comprocessing.net/wpf/reconcile

    For the test system the URL is:

    https://staging.wpf.e-comprocessing.net/wpf/reconcile

    Your admin panel can be found here:

    https://merchant.e-comprocessing.net/

    Consumer API

    Create consumer:

    https://gate.e-comprocessing.net/v1/create_consumer/

    Retrieve consumer:

    https://gate.e-comprocessing.net/v1/retrieve_consumer/

    Update consumer:

    https://gate.e-comprocessing.net/v1/update_consumer/

    Disable consumer:

    https://gate.e-comprocessing.net/v1/disable_consumer/

    Enable consumer:

    https://gate.e-comprocessing.net/v1/enable_consumer/

    Get consumer cards:

    https://gate.e-comprocessing.net/v1/get_consumer_cards/

    For the test system use the following URLs:

    https://staging.gate.e-comprocessing.net/v1/create_consumer/

    https://staging.gate.e-comprocessing.net/v1/update_consumer/

    https://staging.gate.e-comprocessing.net/v1/disable_consumer/

    https://staging.gate.e-comprocessing.net/v1/enable_consumer/

    https://staging.gate.e-comprocessing.net/v1/get_consumer_cards/

    Tokenization API

    Tokenize cardholder data:

    https://gate.e-comprocessing.net/v1/tokenize/

    Detokenize cardholder data:

    https://gate.e-comprocessing.net/v1/detokenize/

    Update the cardholder data (PAN cannot be updated):

    https://gate.e-comprocessing.net/v1/update_token/

    Validate if given token is valid for the merchant:

    https://gate.e-comprocessing.net/v1/validate_token/

    Delete a token:

    https://gate.e-comprocessing.net/v1/delete_token/

    Exchange masked cardholder data for token:

    https://gate.e-comprocessing.net/v1/get_card/

    For the test system use the following URLs:

    https://staging.gate.e-comprocessing.net/v1/tokenize/

    https://staging.gate.e-comprocessing.net/v1/detokenize/

    https://staging.gate.e-comprocessing.net/v1/update_token/

    https://staging.gate.e-comprocessing.net/v1/validate_token/

    https://staging.gate.e-comprocessing.net/v1/delete_token/

    https://staging.gate.e-comprocessing.net/v1/get_card/

    Genesis KYC Services JSON API

    Testing environment

    Create Consumer:

    POST https://staging.gate.e-comprocessing.net/kyc_service/create_consumer

    Update Consumer:

    POST https://staging.gate.e-comprocessing.net/kyc_service/update_consumer

    Create Transaction:

    POST https://staging.gate.e-comprocessing.net/kyc_service/create_transaction

    Update Transaction:

    POST https://staging.gate.e-comprocessing.net/kyc_service/update_transaction

    Upload Document:

    POST https://staging.gate.e-comprocessing.net/kyc_service/upload_document

    Download Document:

    POST https://staging.gate.e-comprocessing.net/kyc_service/download_document

    Verify Phone:

    POST https://staging.gate.e-comprocessing.net/kyc_service/verify_phone

    Verify Identity:

    POST https://staging.gate.e-comprocessing.net/kyc_service/verify_identity

    Verify Bank Account:

    POST https://staging.gate.e-comprocessing.net/kyc_service/verify_bank_account

    Create Authentication:

    POST https://staging.gate.e-comprocessing.net/kyc_service/create_authentication

    Update Authentication:

    POST https://staging.gate.e-comprocessing.net/kyc_service/update_authentication

    Create Verification:

    POST https://staging.gate.e-comprocessing.net/kyc_service/verifications

    Check Verification Status:

    POST https://staging.gate.e-comprocessing.net/kyc_service/verifications/status

    Production environment

    Genesis KYC Services JSON API URLs for production environment:

    Create Consumer:

    POST https://gate.e-comprocessing.net/kyc_service/create_consumer

    Update Consumer:

    POST https://gate.e-comprocessing.net/kyc_service/update_consumer

    Create Transaction:

    POST https://gate.e-comprocessing.net/kyc_service/create_transaction

    Update Transaction:

    POST https://gate.e-comprocessing.net/kyc_service/update_transaction

    Upload Document:

    POST https://gate.e-comprocessing.net/kyc_service/upload_document

    Download Document:

    POST https://gate.e-comprocessing.net/kyc_service/download_document

    Verify Phone:

    POST https://gate.e-comprocessing.net/kyc_service/verify_phone

    Verify Identity:

    POST https://gate.e-comprocessing.net/kyc_service/verify_identity

    Verify Bank Account:

    POST https://gate.e-comprocessing.net/kyc_service/verify_bank_account

    Create Authentication:

    POST https://gate.e-comprocessing.net/kyc_service/create_authentication

    Update Authentication:

    POST https://gate.e-comprocessing.net/kyc_service/update_authentication

    Create Verification:

    POST https://gate.e-comprocessing.net/kyc_service/verifications

    Check Verification Status:

    POST https://gate.e-comprocessing.net/kyc_service/verifications/status

    Transaction API

    Update expiration date:

    PUT https://gate.e-comprocessing.net/v1/transaction/expiry_date/:transaction_unique_id

    For the test system use the following URLs:

    PUT https://staging.gate.e-comprocessing.net/v1/transaction/expiry_date/:transaction_unique_id

    Transactions

    Invoking a Transaction

    A transaction is invoked via HTTPS POST, parameters are passed as XML with UTF-8 encoding.

    Card

    Recurring Transactions

    A recurring transaction describes a payment where the cardholder’s account is periodically charged for a repeated delivery and use of a product or service (subscription, membership fee, etc.) over time. A recurring payment consists of an initial transaction and one or several repeated transactions. The ”initial” transaction contains all relevant card and cardholder data, while the subsequent repeated transaction references an identifier which is returned with the response to the initial request.

    Init Recurring Sale

    An InitRecurringSale transaction initializes a recurring payment and is equal to a normal SaleTransaction except that it can be referenced as ”initial” transaction in a RecurringSale transaction.

    Note that if an InitRecurringSale is fully refunded, the recurring series is stopped and no more RecurringSales can be performed for that recurring series.

    If an InitRecurringSale is partially refunded, the recurring series can continue with more RecurringSales

    Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Recurring\InitRecurringSale');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setCardHolder('Travis Pastrana')
            ->setCardNumber('4200000000000000')
            ->setExpirationMonth('12')
            ->setExpirationYear('2022')
            ->setCvv('834')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.card.recurring.InitRecurringSale;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    
    public class GenesisExample {
      public static void main()  {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        InitRecurringSale request = new InitRecurringSale();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setAmount(new BigDecimal(100));
        request.setCurrency("USD");
        request.setCardHolder("Travis Pastrana");
        request.setCardNumber("4200000000000000");
        request.setExpirationMonth("12");
        request.setExpirationYear("2022");
        request.setCvv("834");
        request.setCustomerEmail("travis@example.com");
        request.setCustomerPhone("+1987987987987");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("10178");
        request.setBillingCity("Los Angeles");
        request.setBillingState("CA");
        request.setBillingCountry("US");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.init_recurring_sale(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "amount": "100",
        "currency": "USD",
        "card_holder": "Travis Pastrana",
        "card_number": "4200000000000000",
        "expiration_month": "12",
        "expiration_year": 2022,
        "cvv": "834",
        "customer_email": "travis@example.com",
        "customer_phone": "+1987987987987",
        "business_attributes": {
          "event_start_date": "03-10-2021",
          "event_end_date": "13-10-2021",
          "event_organizer_id": "20192375",
          "event_id": "1912"
        },
        "billing_address": {
          "first_name": "Travis",
          "last_name": "Pastrana",
          "address1": "Muster Str. 12",
          "zip_code": "10178",
          "city": "Los Angeles",
          "state": "CA",
          "country": "US"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>init_recurring_sale</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <amount>100</amount>
        <currency>USD</currency>
        <card_holder>Travis Pastrana</card_holder>
        <card_number>4200000000000000</card_number>
        <expiration_month>12</expiration_month>
        <expiration_year>2022</expiration_year>
        <cvv>834</cvv>
        <customer_email>travis@example.com</customer_email>
        <customer_phone>+1987987987987</customer_phone>
        <business_attributes>
          <event_start_date>03-10-2021</event_start_date>
          <event_end_date>13-10-2021</event_end_date>
          <event_organizer_id>20192375</event_organizer_id>
          <event_id>1912</event_id>
        </business_attributes>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>10178</zip_code>
          <city>Los Angeles</city>
          <state>CA</state>
          <country>US</country>
        </billing_address>
      </payment_transaction>'
    
    

    Request Parameters

    Parameter Required Format Description
    transaction_type required string(255) The transaction type: init_recurring_sale
    transaction_id required string(255) Unique transaction id defined by merchant
    usage optional string(255) Description of the transaction for later use.
    moto optional "true" Signifies whether a MOTO (mail order telephone order) transaction is performed. Contact tech-support@e-comprocessing.com for more details
    remote_ip required* IPv4 or IPv6 address IPv4 or IPv6 address of customer
    amount required integer >= 0 Transaction amount in minor currency unit, see Currency and Amount Handling for details. In certain cases, it is possible to submit a transaction with a zero-value amount in order not to charge the consumer with the initial recurring, but with the followed RecurringSale transactions only. For more information regarding the use cases and scenario, Contact tech-support@e-comprocessing.com for more details.
    currency required string(3) Currency code in ISO 4217
    card_holder required string(255) Full name of customer as printed on credit card (first name and last name at least)
    card_number required 13 to 16 digits Complete cc number of customer
    cvv required* 3 to 4 digits cvv of cc, requirement is based on terminal configuration
    expiration_month required MM Expiration month as printed on credit card
    expiration_year required YYYY Expiration year as printed on credit card
    token optional string(36) See Tokenization for more details. If present, the cardholder parameters can be omitted. Cannot be set together with remember_card
    remember_card optional "true" See Tokenize. Tokenizes cardholder parameters. Cannot be set together with token
    consumer_id optional string(10) See Consumers and Tokenization. Combine with remember_card to tokenize or with token to use token
    credential_on_file required* See Credential On File (COF) for more details
       initial_customer_initiated required* string(18) Initial transaction initiated by customer. Required for external tokenization, and optional for gateway-based tokenization
       subsequent_customer_initiated required* string(18) Subsequent transaction initiated by customer. Required for external tokenization, and optional for gateway-based tokenization
       merchant_unscheduled optional string(20) Transaction is initiated by the merchant
    credential_on_file_transaction_identifier optional string(15..32) See Credential On File (COF) for more details
    credential_on_file_settlement_date optional string(4) See Credential On File (COF) for more details
    customer_email required* e-mail address Must contain valid e-mail of customer
    customer_phone required* string(32) Must contain valid phone number of customer
    birth_date required* dd-mm-yyyy Required when MCC is a Financial Services one (e.g. MCC 6012) and either card brand is Visa or Mastercard/Maestro with UK-based merchant, UK-based bin (domestic), and DEBIT card type
    document_id required* sring(20) Document ID of the consumer. See Document ID Parameter for more details.
    fx_rate_id optional integer See Get rates for FX Service. Offers the option to use a specific FX rate to convert the transaction processing amount. Used FX rate should have the same source currency as the processing currency. Contact tech-support@e-comprocessing.com for more details
    business_attributes required* Check business attributes section.
       event_start_date required* dd-mm-yyyy The date when event starts in format dd-mm-yyyy
       event_end_date required* dd-mm-yyyy The date when event ends in format dd-mm-yyyy
       event_organizer_id required* string
       event_id required* string
       date_of_order required* dd-mm-yyyy The date when order was placed in format dd-mm-yyyy
       delivery_date required* dd-mm-yyyy Date of the expected delivery in format dd-mm-yyyy
       name_of_the_supplier required* string
    billing_address required See Required vs Optional API params for details
       first_name required* string(255) Customer first name
       last_name required* string(255) Customer last name
       address1 required* string(255) Primary address
       address2 required* string(255) Secondary address
       zip_code required* string ZIP code
       city required* string(255) City
       state required* string(2) State code in ISO 3166-2, required for USA and Canada
       country required* string(2) Country code in ISO 3166
    shipping_address optional
       first_name optional string(255) Customer first name
       last_name optional string(255) Customer last name
       address1 optional string(255) Primary address
       address2 optional string(255) Secondary address
       zip_code optional string ZIP code
       city optional string(255) City
       state optional string(2) State code in ISO 3166-2, required for USA and Canada
       country optional string(2) Country code in ISO 3166
    dynamic_descriptor_params optional
       merchant_name optional string(25) Allows to dynamically override the charge descriptor
       merchant_city optional string(13) Allows to dynamically override the merchant phone number
       sub_merchant_id optional string(15) Allows to dynamically override the sub-merchant ID.

    required* = conditionally required

    Successful Response

    stdClass Object
    (
        [transaction_type] => init_recurring_sale
        [status] => approved
        [mode] => live
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [consumer_id] => 123456
        [token] => ee946db8-d7db-4bb7-b608-b65b153e127d
        [avs_response_code] => 5I
        [avs_response_text] => Response provided by issuer processor; Address information not verified
        [cvv_result_code] => M
        [authorization_code] => 345678
        [retrieval_reference_number] => 016813015184
        [response_code] => 00
        [technical_message] => Transaction successful!
        [message] => Transaction successful!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:19.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
        [scheme_transaction_identifier] => 019091214161031
        [scheme_settlement_date] => 0903
    )
    
    <payment_response content=[
        <transaction_type content=[init_recurring_sale]>
        <status content=[approved]>
        <mode content=[live]>
        <transaction_id content=[119643250547501c79d8295]>
        <unique_id content=[44177a21403427eb96664a6d7e5d5d48]>
        <consumer_id content=[123456]>
        <token content=[ee946db8-d7db-4bb7-b608-b65b153e127d]>
        <avs_response_code content=[5I]>
        <avs_response_text content=[Response provided by issuer processor; Address information not verified]>
        <cvv_result_code content=[M]>
        <authorization_code content=[345678]>
        <retrieval_reference_number content=[016813015184]>
        <response_code content=[00]>
        <technical_message content=[Transaction successful!]>
        <message content=[Transaction successful!]>
        <timestamp content=[2021-09-02T14:21:19Z]>
        <descriptor content=[Descriptor one]>
        <amount content=[100]>
        <currency content=[USD]>
        <sent_to_acquirer content=[true]>
        <scheme_transaction_identifier content=[019091214161031]>
        <scheme_settlement_date content=[0903]>
    ]>
    
    {
        transaction_type: "init_recurring_sale",
        status: "approved",
        mode: "live",
        transaction_id: "119643250547501c79d8295",
        unique_id: "44177a21403427eb96664a6d7e5d5d48",
        consumer_id: "123456",
        token: "ee946db8-d7db-4bb7-b608-b65b153e127d",
        avs_response_code: "5I",
        avs_response_text: "Response provided by issuer processor; Address information not verified",
        cvv_result_code: "M",
        authorization_code: "345678",
        retrieval_reference_number: "016813015184",
        response_code: "00",
        technical_message: "Transaction successful!",
        message: "Transaction successful!",
        timestamp: "2021-09-02T14:21:19Z",
        descriptor: "Descriptor one",
        amount: "100",
        currency: "USD",
        sent_to_acquirer: "true",
        scheme_transaction_identifier: "019091214161031",
        scheme_settlement_date: "0903",
    }
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>init_recurring_sale</transaction_type>
        <status>approved</status>
        <mode>live</mode>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <consumer_id>123456</consumer_id>
        <token>ee946db8-d7db-4bb7-b608-b65b153e127d</token>
        <avs_response_code>5I</avs_response_code>
        <avs_response_text>Response provided by issuer processor; Address information not verified</avs_response_text>
        <cvv_result_code>M</cvv_result_code>
        <authorization_code>345678</authorization_code>
        <retrieval_reference_number>016813015184</retrieval_reference_number>
        <response_code>00</response_code>
        <technical_message>Transaction successful!</technical_message>
        <message>Transaction successful!</message>
        <timestamp>2021-09-02T14:21:19Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
        <scheme_transaction_identifier>019091214161031</scheme_transaction_identifier>
        <scheme_settlement_date>0903</scheme_settlement_date>
      </payment_response>
    

    Successful Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    consumer_id string(10) Consumer unique reference. See Consumers
    token string(36) Plain-text token value. See Tokenization
    moto 'true' Signifies whether a MOTO (mail order telephone order) transaction is performed. Contact tech support for more details.
    avs_response_code string(255) Generated by the card network on trying to match the billing address when performing the address verification. Optional, returned if config is enabled and acquirer supports it. Check AVS Status Codes for details.
    avs_response_text string(255) Gives the human response text for the AVS response code above. Optional, returned if config is enabled and acquirer supports it. Check AVS Status Codes for details.
    cvv_result_code string(1) Card Verification Value response code. Optional, returned only if acquirer supports it
    authorization_code string(6) Generated by the card network when an authorisation has occurred, used to identify that auth. Consists of 6 alphanumeric chars
    retrieval_reference_number string(255) A reference number used for tracking all messages related to a given cardholder transaction returned by some acquirers.
    response_code string(2) Defines the issuer result of a transaction, the status of a message or some action taken or required. See issuer response codes for details
    recurring_advice_code string(2) Optional, if received in the response from the issuer
    recurring_advice_text string Optional, describes the specific recurring advice code
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    redirect_url url URL where user has to be redirected to complete payment process. It is available for asynchronous mode
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    partial_approval string(4) Optional, set to ’true’ if partial approval happened. Partially approved amount is then in the amount field. Check Partial Approvals for details
    sent_to_acquirer string(255) "true" or "false"
    dynamic_descriptor_params section Optional, returned only if dynamic desc params are submitted on the API. Note here that the formatted dyn desc params are returned - as they would be submitted to the schemes for settlement.
    scheme_transaction_identifier string(32) Id defined by card schemes. Corresponds to NETWORK DATA (field 63) for MasterCard or TRANS ID (field 62.2/125) for VISA.
    scheme_settlement_date string(4) MasterCard settlement date in MMDD format (e.g. 0903). Corresponds to NETWORK DATA (field 15).

    Error Response

    stdClass Object
    (
        [transaction_type] => init_recurring_sale
        [status] => error
        [mode] => live
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [response_code] => 57
        [code] => 340
        [message] => billing_address[zip_code] is invalid!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:19.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => false
    )
    
    <payment_response content=[
        <transaction_type content=[init_recurring_sale]>
        <status content=[error]>
        <mode content=[live]>
        <transaction_id content=[119643250547501c79d8295]>
        <unique_id content=[44177a21403427eb96664a6d7e5d5d48]>
        <response_code content=[57]>
        <code content=[340]>
        <message content=[billing_address[zip_code] is invalid!]>
        <timestamp content=[2021-09-02T14:21:19Z]>
        <descriptor content=[Descriptor one]>
        <amount content=[100]>
        <currency content=[USD]>
        <sent_to_acquirer content=[false]>
    ]>
    
    {
        transaction_type: "init_recurring_sale",
        status: "error",
        mode: "live",
        transaction_id: "119643250547501c79d8295",
        unique_id: "44177a21403427eb96664a6d7e5d5d48",
        response_code: "57",
        code: "340",
        message: "billing_address[zip_code] is invalid!",
        timestamp: "2021-09-02T14:21:19Z",
        descriptor: "Descriptor one",
        amount: "100",
        currency: "USD",
        sent_to_acquirer: "false",
    }
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>init_recurring_sale</transaction_type>
        <status>error</status>
        <mode>live</mode>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <response_code>57</response_code>
        <code>340</code>
        <message>billing_address[zip_code] is invalid!</message>
        <timestamp>2021-09-02T14:21:19Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>false</sent_to_acquirer>
      </payment_response>
    

    Error Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    code integer Error code according to Error code table
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"
    dynamic_descriptor_params section Optional, returned only if dynamic desc params are submitted on the API. Note here that the formatted dyn desc params are returned - as they would be submitted to the schemes for settlement.

    Recurring Sale

    A RecurringSale transaction is a ”repeated” transaction which follows and references a Init Recurring Sale transaction.

    The card and cardholder data is omitted. Note that RecurringSales can be partially or fully refunded if configuration allows it, and this will not stop the recurring series.

    Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Recurring\RecurringSale');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setReferenceId('43672')
            ->setAmount('100');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.card.recurring.RecurringSale;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    
    public class GenesisExample {
      public static void main()  {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        RecurringSale request = new RecurringSale();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setReferenceId("43672");
        request.setAmount(new BigDecimal(100));
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.recurring_sale(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "reference_id": "43672",
        "amount": "100",
        "business_attributes": {
          "event_start_date": "03-10-2021",
          "event_end_date": "13-10-2021",
          "event_organizer_id": "20192375",
          "event_id": "1912"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>recurring_sale</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <reference_id>43672</reference_id>
        <amount>100</amount>
        <business_attributes>
          <event_start_date>03-10-2021</event_start_date>
          <event_end_date>13-10-2021</event_end_date>
          <event_organizer_id>20192375</event_organizer_id>
          <event_id>1912</event_id>
        </business_attributes>
      </payment_transaction>'
    
    

    Request Parameters

    Parameter Required Format Description
    transaction_type required string(255) The transaction type: recurring_sale
    transaction_id required string(255) Unique transaction id defined by merchant
    usage optional string(255) Description of the transaction for later use.
    gaming optional "true" Signifies whether a gaming transaction is performed. Gaming transactions usually use MCC 7995. Contact tech-support@e-comprocessing.com for more details
    moto optional "true" Signifies whether a MOTO (mail order telephone order) transaction is performed. Contact tech-support@e-comprocessing.com for more details
    remote_ip required* IPv4 or IPv6 address IPv4 or IPv6 address of customer
    reference_id required string(32) Unique id returned by corresponding transaction
    amount required integer > 0 Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    business_attributes required* Check business attributes section.
       event_start_date required* dd-mm-yyyy The date when event starts in format dd-mm-yyyy
       event_end_date required* dd-mm-yyyy The date when event ends in format dd-mm-yyyy
       event_organizer_id required* string
       event_id required* string
       date_of_order required* dd-mm-yyyy The date when order was placed in format dd-mm-yyyy
       delivery_date required* dd-mm-yyyy Date of the expected delivery in format dd-mm-yyyy
       name_of_the_supplier required* string

    required* = conditionally required

    Successful Response

    stdClass Object
    (
        [transaction_type] => recurring_sale
        [status] => approved
        [mode] => live
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [authorization_code] => 345678
        [retrieval_reference_number] => 016813015184
        [response_code] => 00
        [technical_message] => Transaction successful!
        [message] => Transaction successful!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:19.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [sent_to_acquirer] => true
    )
    
    <payment_response content=[
        <transaction_type content=[recurring_sale]>
        <status content=[approved]>
        <mode content=[live]>
        <transaction_id content=[119643250547501c79d8295]>
        <unique_id content=[44177a21403427eb96664a6d7e5d5d48]>
        <authorization_code content=[345678]>
        <retrieval_reference_number content=[016813015184]>
        <response_code content=[00]>
        <technical_message content=[Transaction successful!]>
        <message content=[Transaction successful!]>
        <timestamp content=[2021-09-02T14:21:19Z]>
        <descriptor content=[Descriptor one]>
        <amount content=[100]>
        <sent_to_acquirer content=[true]>
    ]>
    
    {
        transaction_type: "recurring_sale",
        status: "approved",
        mode: "live",
        transaction_id: "119643250547501c79d8295",
        unique_id: "44177a21403427eb96664a6d7e5d5d48",
        authorization_code: "345678",
        retrieval_reference_number: "016813015184",
        response_code: "00",
        technical_message: "Transaction successful!",
        message: "Transaction successful!",
        timestamp: "2021-09-02T14:21:19Z",
        descriptor: "Descriptor one",
        amount: "100",
        sent_to_acquirer: "true",
    }
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>recurring_sale</transaction_type>
        <status>approved</status>
        <mode>live</mode>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <authorization_code>345678</authorization_code>
        <retrieval_reference_number>016813015184</retrieval_reference_number>
        <response_code>00</response_code>
        <technical_message>Transaction successful!</technical_message>
        <message>Transaction successful!</message>
        <timestamp>2021-09-02T14:21:19Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Successful Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    authorization_code string(6) Generated by the card network when an authorisation has occurred, used to identify that auth. Consists of 6 alphanumeric chars
    retrieval_reference_number string(255) A reference number used for tracking all messages related to a given cardholder transaction returned by some acquirers.
    response_code string(2) Defines the issuer result of a transaction, the status of a message or some action taken or required. See issuer response codes for details
    recurring_advice_code string(2) Optional, if received in the response from the issuer
    recurring_advice_text string Optional, describes the specific recurring advice code
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    sent_to_acquirer string(255) "true" or "false"

    Error Response

    stdClass Object
    (
        [transaction_type] => recurring_sale
        [status] => error
        [mode] => live
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [response_code] => 57
        [code] => 340
        [message] => billing_address[zip_code] is invalid!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:19.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [sent_to_acquirer] => false
    )
    
    <payment_response content=[
        <transaction_type content=[recurring_sale]>
        <status content=[error]>
        <mode content=[live]>
        <transaction_id content=[119643250547501c79d8295]>
        <unique_id content=[44177a21403427eb96664a6d7e5d5d48]>
        <response_code content=[57]>
        <code content=[340]>
        <message content=[billing_address[zip_code] is invalid!]>
        <timestamp content=[2021-09-02T14:21:19Z]>
        <descriptor content=[Descriptor one]>
        <amount content=[100]>
        <sent_to_acquirer content=[false]>
    ]>
    
    {
        transaction_type: "recurring_sale",
        status: "error",
        mode: "live",
        transaction_id: "119643250547501c79d8295",
        unique_id: "44177a21403427eb96664a6d7e5d5d48",
        response_code: "57",
        code: "340",
        message: "billing_address[zip_code] is invalid!",
        timestamp: "2021-09-02T14:21:19Z",
        descriptor: "Descriptor one",
        amount: "100",
        sent_to_acquirer: "false",
    }
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>recurring_sale</transaction_type>
        <status>error</status>
        <mode>live</mode>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <response_code>57</response_code>
        <code>340</code>
        <message>billing_address[zip_code] is invalid!</message>
        <timestamp>2021-09-02T14:21:19Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <sent_to_acquirer>false</sent_to_acquirer>
      </payment_response>
    

    Error Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    gaming 'true' Signifies whether a gaming transaction is performed. Gaming transactions usually use MCC 7995, contact tech support for more details.
    moto 'true' Signifies whether a MOTO (mail order telephone order) transaction is performed. Contact tech support for more details.
    response_code string(2) Defines the issuer result of a transaction, the status of a message or some action taken or required. See issuer response codes for details
    code integer Error code according to Error code table
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    sent_to_acquirer string(255) "true" or "false"
    dynamic_descriptor_params section Optional, returned only if dynamic desc params are submitted on the API. Note here that the formatted dyn desc params are returned - as they would be submitted to the schemes for settlement.

    Authorize

    With authorize transactions, you can confirm that a credit card is valid and reserve the desired amount on the card.

    After settling the transaction (e.g. shipping the goods), you can then capture the amount. The customer will not be billed until the capture has taken place, but the amount is reserved and the customer’s credit card limit is reduced. Authorizes will automatically be cancelled after a certain timeframe, most likely one week.

    For a typical e-commerce application it is recommended to authorize the amount on incoming orders and capture it when shipping the goods. If you are selling services or non-tangible goods, you can use the sale transaction, which combines authorize and capture.

    If you choose not to serve the customer, consider to void the authorize to unfreeze the amount on the client’s credit card.

    Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Authorize');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setCardHolder('Travis Pastrana')
            ->setCardNumber('4200000000000000')
            ->setExpirationMonth('12')
            ->setExpirationYear('2022')
            ->setCvv('834')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.card.AuthorizeRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    
    public class GenesisExample {
      public static void main()  {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        AuthorizeRequest request = new AuthorizeRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setAmount(new BigDecimal(100));
        request.setCurrency("USD");
        request.setCardHolder("Travis Pastrana");
        request.setCardNumber("4200000000000000");
        request.setExpirationMonth("12");
        request.setExpirationYear("2022");
        request.setCvv("834");
        request.setCustomerEmail("travis@example.com");
        request.setCustomerPhone("+1987987987987");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("10178");
        request.setBillingCity("Los Angeles");
        request.setBillingState("CA");
        request.setBillingCountry("US");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.authorize(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "amount": "100",
        "currency": "USD",
        "card_holder": "Travis Pastrana",
        "card_number": "4200000000000000",
        "expiration_month": "12",
        "expiration_year": 2022,
        "cvv": "834",
        "customer_email": "travis@example.com",
        "customer_phone": "+1987987987987",
        "business_attributes": {
          "event_start_date": "03-10-2021",
          "event_end_date": "13-10-2021",
          "event_organizer_id": "20192375",
          "event_id": "1912"
        },
        "billing_address": {
          "first_name": "Travis",
          "last_name": "Pastrana",
          "address1": "Muster Str. 12",
          "zip_code": "10178",
          "city": "Los Angeles",
          "state": "CA",
          "country": "US"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>authorize</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <amount>100</amount>
        <currency>USD</currency>
        <card_holder>Travis Pastrana</card_holder>
        <card_number>4200000000000000</card_number>
        <expiration_month>12</expiration_month>
        <expiration_year>2022</expiration_year>
        <cvv>834</cvv>
        <customer_email>travis@example.com</customer_email>
        <customer_phone>+1987987987987</customer_phone>
        <business_attributes>
          <event_start_date>03-10-2021</event_start_date>
          <event_end_date>13-10-2021</event_end_date>
          <event_organizer_id>20192375</event_organizer_id>
          <event_id>1912</event_id>
        </business_attributes>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>10178</zip_code>
          <city>Los Angeles</city>
          <state>CA</state>
          <country>US</country>
        </billing_address>
      </payment_transaction>'
    
    

    Request Parameters

    Parameter Required Format Description
    transaction_type required string(255) The transaction type: authorize
    transaction_id required string(255) Unique transaction id defined by merchant
    usage optional string(255) Description of the transaction for later use.
    gaming optional "true" Signifies whether a gaming transaction is performed. Gaming transactions usually use MCC 7995. Contact tech-support@e-comprocessing.com for more details
    moto optional "true" Signifies whether a MOTO (mail order telephone order) transaction is performed. Contact tech-support@e-comprocessing.com for more details
    crypto optional "true" Signifies whether a purchase of crypto-currency transaction is performed. Must be populated when purchasing crypto-currency with a VISA card and MCC is 6051. Must be populated when purchasing crypto-currency with a MASTER or INTL MAESTRO card and MCC is one of 6051, 6211. Contact tech-support@e-comprocessing.com for more details
    preauthorization optional "true" Signifies whether a preauthorization transaction is performed. Check the Preauthorizations section or contact tech support for more details.
    remote_ip required* IPv4 or IPv6 address IPv4 or IPv6 address of customer
    amount required integer >= 0 Transaction amount in minor currency unit, see Currency and Amount Handling for details. In certain cases, it is possible to submit a transaction with a zero-value amount to act as an account verification transaction - Contact tech-support@e-comprocessing.com for more details regarding this scenario.
    currency required string(3) Currency code in ISO 4217
    card_holder required string(255) Full name of customer as printed on credit card (first name and last name at least)
    card_number required 13 to 16 digits Complete cc number of customer
    cvv required* 3 to 4 digits cvv of cc, requirement is based on terminal configuration
    expiration_month required MM Expiration month as printed on credit card
    expiration_year required YYYY Expiration year as printed on credit card
    token optional string(36) See Tokenization for more details. If present, the cardholder parameters can be omitted. Cannot be set together with remember_card
    remember_card optional "true" See Tokenize. Tokenizes cardholder parameters. Cannot be set together with token
    consumer_id optional string(10) See Consumers and Tokenization. Combine with remember_card to tokenize or with token to use token
    credential_on_file required* See Credential On File (COF) for more details
       initial_customer_initiated required* string(18) Initial transaction initiated by customer. Required for external tokenization, and optional for gateway-based tokenization
       subsequent_customer_initiated required* string(18) Subsequent transaction initiated by customer. Required for external tokenization, and optional for gateway-based tokenization
       merchant_unscheduled optional string(20) Transaction is initiated by the merchant
    credential_on_file_transaction_identifier optional string(15..32) See Credential On File (COF) for more details
    credential_on_file_settlement_date optional string(4) See Credential On File (COF) for more details
    customer_email required* e-mail address Must contain valid e-mail of customer
    customer_phone required* string(32) Must contain valid phone number of customer
    birth_date required* dd-mm-yyyy Required when MCC is a Financial Services one (e.g. MCC 6012) and either card brand is Visa or Mastercard/Maestro with UK-based merchant, UK-based bin (domestic), and DEBIT card type
    document_id required* sring(20) Document ID of the consumer. See Document ID Parameter for more details.
    fx_rate_id optional integer See Get rates for FX Service. Offers the option to use a specific FX rate to convert the transaction processing amount. Used FX rate should have the same source currency as the processing currency. Contact tech-support@e-comprocessing.com for more details
    business_attributes required* Check business attributes section.
       event_start_date required* dd-mm-yyyy The date when event starts in format dd-mm-yyyy
       event_end_date required* dd-mm-yyyy The date when event ends in format dd-mm-yyyy
       event_organizer_id required* string
       event_id required* string
       date_of_order required* dd-mm-yyyy The date when order was placed in format dd-mm-yyyy
       delivery_date required* dd-mm-yyyy Date of the expected delivery in format dd-mm-yyyy
       name_of_the_supplier required* string
    billing_address required See Required vs Optional API params for details
       first_name required* string(255) Customer first name
       last_name required* string(255) Customer last name
       address1 required* string(255) Primary address
       address2 required* string(255) Secondary address
       zip_code required* string ZIP code
       city required* string(255) City
       state required* string(2) State code in ISO 3166-2, required for USA and Canada
       country required* string(2) Country code in ISO 3166
    shipping_address optional
       first_name optional string(255) Customer first name
       last_name optional string(255) Customer last name
       address1 optional string(255) Primary address
       address2 optional string(255) Secondary address
       zip_code optional string ZIP code
       city optional string(255) City
       state optional string(2) State code in ISO 3166-2, required for USA and Canada
       country optional string(2) Country code in ISO 3166
    dynamic_descriptor_params optional
       merchant_name optional string(25) Allows to dynamically override the charge descriptor
       merchant_city optional string(13) Allows to dynamically override the merchant phone number
       sub_merchant_id optional string(15) Allows to dynamically override the sub-merchant ID.
    sca_params optional SCA params
       exemption optional string The exemption that the transaction should take advantage of. Note that the requested exemption may not be accepted due to internal risk validations. Check SCA exemption values.
       visa_merchant_id required5 string(8) VMID assigned by Visa if participating in Trusted merchant program.

    required* = conditionally required

    Successful Response

    stdClass Object
    (
        [transaction_type] => authorize
        [status] => approved
        [mode] => live
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [consumer_id] => 123456
        [token] => ee946db8-d7db-4bb7-b608-b65b153e127d
        [avs_response_code] => 5I
        [avs_response_text] => Response provided by issuer processor; Address information not verified
        [cvv_result_code] => M
        [authorization_code] => 345678
        [retrieval_reference_number] => 016813015184
        [response_code] => 00
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:19.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
        [scheme_transaction_identifier] => 019091214161031
        [scheme_settlement_date] => 0903
    )
    
    <payment_response content=[
        <transaction_type content=[authorize]>
        <status content=[approved]>
        <mode content=[live]>
        <transaction_id content=[119643250547501c79d8295]>
        <unique_id content=[44177a21403427eb96664a6d7e5d5d48]>
        <consumer_id content=[123456]>
        <token content=[ee946db8-d7db-4bb7-b608-b65b153e127d]>
        <avs_response_code content=[5I]>
        <avs_response_text content=[Response provided by issuer processor; Address information not verified]>
        <cvv_result_code content=[M]>
        <authorization_code content=[345678]>
        <retrieval_reference_number content=[016813015184]>
        <response_code content=[00]>
        <timestamp content=[2021-09-02T14:21:19Z]>
        <descriptor content=[Descriptor one]>
        <amount content=[100]>
        <currency content=[USD]>
        <sent_to_acquirer content=[true]>
        <scheme_transaction_identifier content=[019091214161031]>
        <scheme_settlement_date content=[0903]>
    ]>
    
    {
        transaction_type: "authorize",
        status: "approved",
        mode: "live",
        transaction_id: "119643250547501c79d8295",
        unique_id: "44177a21403427eb96664a6d7e5d5d48",
        consumer_id: "123456",
        token: "ee946db8-d7db-4bb7-b608-b65b153e127d",
        avs_response_code: "5I",
        avs_response_text: "Response provided by issuer processor; Address information not verified",
        cvv_result_code: "M",
        authorization_code: "345678",
        retrieval_reference_number: "016813015184",
        response_code: "00",
        timestamp: "2021-09-02T14:21:19Z",
        descriptor: "Descriptor one",
        amount: "100",
        currency: "USD",
        sent_to_acquirer: "true",
        scheme_transaction_identifier: "019091214161031",
        scheme_settlement_date: "0903",
    }
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>authorize</transaction_type>
        <status>approved</status>
        <mode>live</mode>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <consumer_id>123456</consumer_id>
        <token>ee946db8-d7db-4bb7-b608-b65b153e127d</token>
        <avs_response_code>5I</avs_response_code>
        <avs_response_text>Response provided by issuer processor; Address information not verified</avs_response_text>
        <cvv_result_code>M</cvv_result_code>
        <authorization_code>345678</authorization_code>
        <retrieval_reference_number>016813015184</retrieval_reference_number>
        <response_code>00</response_code>
        <timestamp>2021-09-02T14:21:19Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
        <scheme_transaction_identifier>019091214161031</scheme_transaction_identifier>
        <scheme_settlement_date>0903</scheme_settlement_date>
      </payment_response>
    

    Successful Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    consumer_id string(10) Consumer unique reference. See Consumers
    token string(36) Plain-text token value. See Tokenization
    gaming 'true' Signifies whether a gaming transaction is performed. Gaming transactions usually use MCC 7995, contact tech support for more details.
    moto 'true' Signifies whether a MOTO (mail order telephone order) transaction is performed. Contact tech support for more details.
    avs_response_code string(255) Generated by the card network on trying to match the billing address when performing the address verification. Optional, returned if config is enabled and acquirer supports it. Check AVS Status Codes for details.
    avs_response_text string(255) Gives the human response text for the AVS response code above. Optional, returned if config is enabled and acquirer supports it. Check AVS Status Codes for details.
    cvv_result_code string(1) Card Verification Value response code. Optional, returned only if acquirer supports it
    authorization_code string(6) Generated by the card network when an authorisation has occurred, used to identify that auth. Consists of 6 alphanumeric chars
    retrieval_reference_number string(255) A reference number used for tracking all messages related to a given cardholder transaction returned by some acquirers.
    response_code string(2) Defines the issuer result of a transaction, the status of a message or some action taken or required. See issuer response codes for details
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    redirect_url url URL where user has to be redirected to complete payment process. It is available for asynchronous mode
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    partial_approval string(4) Optional, set to ’true’ if partial approval happened. Partially approved amount is then in the amount field. Check Partial Approvals for details
    sent_to_acquirer string(255) "true" or "false"
    dynamic_descriptor_params section Optional, returned only if dynamic desc params are submitted on the API. Note here that the formatted dyn desc params are returned - as they would be submitted to the schemes for settlement.
    scheme_transaction_identifier string(32) Id defined by card schemes. Corresponds to NETWORK DATA (field 63) for MasterCard or TRANS ID (field 62.2/125) for VISA.
    scheme_settlement_date string(4) MasterCard settlement date in MMDD format (e.g. 0903). Corresponds to NETWORK DATA (field 15).

    Error Response

    stdClass Object
    (
        [transaction_type] => authorize
        [status] => error
        [mode] => live
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [code] => 340
        [technical_message] => expiration_year is invalid
        [message] => expiration_year is invalid
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:19.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => false
    )
    
    <payment_response content=[
        <transaction_type content=[authorize]>
        <status content=[error]>
        <mode content=[live]>
        <transaction_id content=[119643250547501c79d8295]>
        <unique_id content=[44177a21403427eb96664a6d7e5d5d48]>
        <code content=[340]>
        <technical_message content=[expiration_year is invalid]>
        <message content=[expiration_year is invalid]>
        <timestamp content=[2021-09-02T14:21:19Z]>
        <descriptor content=[Descriptor one]>
        <amount content=[100]>
        <currency content=[USD]>
        <sent_to_acquirer content=[false]>
    ]>
    
    {
        transaction_type: "authorize",
        status: "error",
        mode: "live",
        transaction_id: "119643250547501c79d8295",
        unique_id: "44177a21403427eb96664a6d7e5d5d48",
        code: "340",
        technical_message: "expiration_year is invalid",
        message: "expiration_year is invalid",
        timestamp: "2021-09-02T14:21:19Z",
        descriptor: "Descriptor one",
        amount: "100",
        currency: "USD",
        sent_to_acquirer: "false",
    }
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>authorize</transaction_type>
        <status>error</status>
        <mode>live</mode>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <code>340</code>
        <technical_message>expiration_year is invalid</technical_message>
        <message>expiration_year is invalid</message>
        <timestamp>2021-09-02T14:21:19Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>false</sent_to_acquirer>
      </payment_response>
    

    Error Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    gaming 'true' Signifies whether a gaming transaction is performed. Gaming transactions usually use MCC 7995, contact tech support for more details.
    moto 'true' Signifies whether a MOTO (mail order telephone order) transaction is performed. Contact tech support for more details.
    code integer Error code according to Error code table
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    dynamic_descriptor_params section Optional, returned only if dynamic desc params are submitted on the API. Note here that the formatted dyn desc params are returned - as they would be submitted to the schemes for settlement.

    Capture

    Capture settles a transaction which has been authorized before.

    Do this when you are shipping goods, for example. A capture can only be used after an authorize on the same transaction and on the same terminal.

    Therefore, the reference id of the authorized transaction is mandatory.

    Transaction workflow:

    1. The merchant sends authorize transaction to the gateway.
    2. The gateway replies to it. One of returned values is the unique id of the transaction.
    3. The merchant sends capture transaction. Its reference id is unique id of authorize response.

    Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Capture');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setReferenceId('43672')
            ->setAmount('100')
            ->setCurrency('USD');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.CaptureRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    
    public class GenesisExample {
      public static void main()  {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        CaptureRequest request = new CaptureRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setReferenceId("43672");
        request.setAmount(new BigDecimal(100));
        request.setCurrency("USD");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.capture(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "reference_id": "43672",
        "amount": "100",
        "currency": "USD",
        "business_attributes": {
          "event_start_date": "03-10-2021",
          "event_end_date": "13-10-2021",
          "event_organizer_id": "20192375",
          "event_id": "1912"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>capture</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <reference_id>43672</reference_id>
        <amount>100</amount>
        <currency>USD</currency>
        <business_attributes>
          <event_start_date>03-10-2021</event_start_date>
          <event_end_date>13-10-2021</event_end_date>
          <event_organizer_id>20192375</event_organizer_id>
          <event_id>1912</event_id>
        </business_attributes>
      </payment_transaction>'
    
    

    Request Parameters

    Parameter Required Format Description
    transaction_type required string(255) The transaction type: capture
    transaction_id required string(255) Unique transaction id defined by merchant
    usage optional string(255) Description of the transaction for later use.
    remote_ip required* IPv4 or IPv6 address IPv4 or IPv6 address of customer
    reference_id required string(32) Unique id returned by corresponding transaction
    amount required integer > 0 Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency required string(3) Currency code in ISO 4217
    business_attributes required* Check business attributes section.
       event_start_date required* dd-mm-yyyy The date when event starts in format dd-mm-yyyy
       event_end_date required* dd-mm-yyyy The date when event ends in format dd-mm-yyyy
       event_organizer_id required* string
       event_id required* string
       date_of_order required* dd-mm-yyyy The date when order was placed in format dd-mm-yyyy
       delivery_date required* dd-mm-yyyy Date of the expected delivery in format dd-mm-yyyy
       name_of_the_supplier required* string

    required* = conditionally required

    Successful Response

    stdClass Object
    (
        [transaction_type] => capture
        [status] => approved
        [mode] => live
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [authorization_code] => 345678
        [response_code] => 00
        [technical_message] => Transaction successful!
        [message] => Transaction successful!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:19.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
    )
    
    <payment_response content=[
        <transaction_type content=[capture]>
        <status content=[approved]>
        <mode content=[live]>
        <transaction_id content=[119643250547501c79d8295]>
        <unique_id content=[44177a21403427eb96664a6d7e5d5d48]>
        <authorization_code content=[345678]>
        <response_code content=[00]>
        <technical_message content=[Transaction successful!]>
        <message content=[Transaction successful!]>
        <timestamp content=[2021-09-02T14:21:19Z]>
        <descriptor content=[Descriptor one]>
        <amount content=[100]>
        <currency content=[USD]>
        <sent_to_acquirer content=[true]>
    ]>
    
    {
        transaction_type: "capture",
        status: "approved",
        mode: "live",
        transaction_id: "119643250547501c79d8295",
        unique_id: "44177a21403427eb96664a6d7e5d5d48",
        authorization_code: "345678",
        response_code: "00",
        technical_message: "Transaction successful!",
        message: "Transaction successful!",
        timestamp: "2021-09-02T14:21:19Z",
        descriptor: "Descriptor one",
        amount: "100",
        currency: "USD",
        sent_to_acquirer: "true",
    }
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>capture</transaction_type>
        <status>approved</status>
        <mode>live</mode>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <authorization_code>345678</authorization_code>
        <response_code>00</response_code>
        <technical_message>Transaction successful!</technical_message>
        <message>Transaction successful!</message>
        <timestamp>2021-09-02T14:21:19Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Successful Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    authorization_code string(6) Generated by the card network when an authorisation has occurred, used to identify that auth. Consists of 6 alphanumeric chars
    response_code string(2) Defines the issuer result of a transaction, the status of a message or some action taken or required. See issuer response codes for details
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Error Response

    stdClass Object
    (
        [transaction_type] => capture
        [status] => error
        [mode] => live
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [code] => 430
        [technical_message] => Reference transaction has already been captured, and acquirer does not support partial/multiple capture
        [message] => Transaction declined.
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:19.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => false
    )
    
    <payment_response content=[
        <transaction_type content=[capture]>
        <status content=[error]>
        <mode content=[live]>
        <transaction_id content=[119643250547501c79d8295]>
        <unique_id content=[44177a21403427eb96664a6d7e5d5d48]>
        <code content=[430]>
        <technical_message content=[Reference transaction has already been captured, and acquirer does not support partial/multiple capture]>
        <message content=[Transaction declined.]>
        <timestamp content=[2021-09-02T14:21:19Z]>
        <descriptor content=[Descriptor one]>
        <amount content=[100]>
        <currency content=[USD]>
        <sent_to_acquirer content=[false]>
    ]>
    
    {
        transaction_type: "capture",
        status: "error",
        mode: "live",
        transaction_id: "119643250547501c79d8295",
        unique_id: "44177a21403427eb96664a6d7e5d5d48",
        code: "430",
        technical_message: "Reference transaction has already been captured, and acquirer does not support partial/multiple capture",
        message: "Transaction declined.",
        timestamp: "2021-09-02T14:21:19Z",
        descriptor: "Descriptor one",
        amount: "100",
        currency: "USD",
        sent_to_acquirer: "false",
    }
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>capture</transaction_type>
        <status>error</status>
        <mode>live</mode>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <code>430</code>
        <technical_message>Reference transaction has already been captured, and acquirer does not support partial/multiple capture</technical_message>
        <message>Transaction declined.</message>
        <timestamp>2021-09-02T14:21:19Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>false</sent_to_acquirer>
      </payment_response>
    

    Error Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    code integer Error code according to Error code table
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Sale

    Sale transactions combine authorize and capture into one step.

    Using a sale transaction, the amount is immediately billed to the customer’s credit card. It can be reversed via a void transaction on the same day of the transaction. Use sale transactions, if you are e.g. selling non-tangible goods or services.

    Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Sale');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setCardHolder('Travis Pastrana')
            ->setCardNumber('4200000000000000')
            ->setExpirationMonth('12')
            ->setExpirationYear('2022')
            ->setCvv('834')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.card.SaleRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    
    public class GenesisExample {
      public static void main()  {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        SaleRequest request = new SaleRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setAmount(new BigDecimal(100));
        request.setCurrency("USD");
        request.setCardHolder("Travis Pastrana");
        request.setCardNumber("4200000000000000");
        request.setExpirationMonth("12");
        request.setExpirationYear("2022");
        request.setCvv("834");
        request.setCustomerEmail("travis@example.com");
        request.setCustomerPhone("+1987987987987");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("10178");
        request.setBillingCity("Los Angeles");
        request.setBillingState("CA");
        request.setBillingCountry("US");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.sale(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "amount": "100",
        "currency": "USD",
        "card_holder": "Travis Pastrana",
        "card_number": "4200000000000000",
        "expiration_month": "12",
        "expiration_year": 2022,
        "cvv": "834",
        "customer_email": "travis@example.com",
        "customer_phone": "+1987987987987",
        "business_attributes": {
          "event_start_date": "03-10-2021",
          "event_end_date": "13-10-2021",
          "event_organizer_id": "20192375",
          "event_id": "1912"
        },
        "billing_address": {
          "first_name": "Travis",
          "last_name": "Pastrana",
          "address1": "Muster Str. 12",
          "zip_code": "10178",
          "city": "Los Angeles",
          "state": "CA",
          "country": "US"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>sale</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <amount>100</amount>
        <currency>USD</currency>
        <card_holder>Travis Pastrana</card_holder>
        <card_number>4200000000000000</card_number>
        <expiration_month>12</expiration_month>
        <expiration_year>2022</expiration_year>
        <cvv>834</cvv>
        <customer_email>travis@example.com</customer_email>
        <customer_phone>+1987987987987</customer_phone>
        <business_attributes>
          <event_start_date>03-10-2021</event_start_date>
          <event_end_date>13-10-2021</event_end_date>
          <event_organizer_id>20192375</event_organizer_id>
          <event_id>1912</event_id>
        </business_attributes>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>10178</zip_code>
          <city>Los Angeles</city>
          <state>CA</state>
          <country>US</country>
        </billing_address>
      </payment_transaction>'
    
    

    Request Parameters

    Parameter Required Format Description
    transaction_type required string(255) The transaction type: sale
    transaction_id required string(255) Unique transaction id defined by merchant
    usage optional string(255) Description of the transaction for later use.
    gaming optional "true" Signifies whether a gaming transaction is performed. Gaming transactions usually use MCC 7995. Contact tech-support@e-comprocessing.com for more details
    moto optional "true" Signifies whether a MOTO (mail order telephone order) transaction is performed. Contact tech-support@e-comprocessing.com for more details
    crypto optional "true" Signifies whether a purchase of crypto-currency transaction is performed. Must be populated when purchasing crypto-currency with a VISA card and MCC is 6051. Must be populated when purchasing crypto-currency with a MASTER or INTL MAESTRO card and MCC is one of 6051, 6211. Contact tech-support@e-comprocessing.com for more details
    remote_ip required* IPv4 or IPv6 address IPv4 or IPv6 address of customer
    amount required integer >= 0 Transaction amount in minor currency unit, see Currency and Amount Handling for details. In certain cases, it is possible to submit a transaction with a zero-value amount to act as an account verification transaction - Contact tech-support@e-comprocessing.com for more details regarding this scenario.
    currency required string(3) Currency code in ISO 4217
    card_holder required string(255) Full name of customer as printed on credit card (first name and last name at least)
    card_number required 13 to 16 digits Complete cc number of customer
    cvv required* 3 to 4 digits cvv of cc, requirement is based on terminal configuration
    expiration_month required MM Expiration month as printed on credit card
    expiration_year required YYYY Expiration year as printed on credit card
    token optional string(36) See Tokenization for more details. If present, the cardholder parameters can be omitted. Cannot be set together with remember_card
    remember_card optional "true" See Tokenize. Tokenizes cardholder parameters. Cannot be set together with token
    consumer_id optional string(10) See Consumers and Tokenization. Combine with remember_card to tokenize or with token to use token
    credential_on_file required* See Credential On File (COF) for more details
       initial_customer_initiated required* string(18) Initial transaction initiated by customer. Required for external tokenization, and optional for gateway-based tokenization
       subsequent_customer_initiated required* string(18) Subsequent transaction initiated by customer. Required for external tokenization, and optional for gateway-based tokenization
       merchant_unscheduled optional string(20) Transaction is initiated by the merchant
    credential_on_file_transaction_identifier optional string(15..32) See Credential On File (COF) for more details
    credential_on_file_settlement_date optional string(4) See Credential On File (COF) for more details
    customer_email required* e-mail address Must contain valid e-mail of customer
    customer_phone required* string(32) Must contain valid phone number of customer
    birth_date required* dd-mm-yyyy Required when MCC is a Financial Services one (e.g. MCC 6012) and either card brand is Visa or Mastercard/Maestro with UK-based merchant, UK-based bin (domestic), and DEBIT card type
    document_id required* sring(20) Document ID of the consumer. See Document ID Parameter for more details.
    fx_rate_id optional integer See Get rates for FX Service. Offers the option to use a specific FX rate to convert the transaction processing amount. Used FX rate should have the same source currency as the processing currency. Contact tech-support@e-comprocessing.com for more details
    business_attributes required* Check business attributes section.
       event_start_date required* dd-mm-yyyy The date when event starts in format dd-mm-yyyy
       event_end_date required* dd-mm-yyyy The date when event ends in format dd-mm-yyyy
       event_organizer_id required* string
       event_id required* string
       date_of_order required* dd-mm-yyyy The date when order was placed in format dd-mm-yyyy
       delivery_date required* dd-mm-yyyy Date of the expected delivery in format dd-mm-yyyy
       name_of_the_supplier required* string
    billing_address required See Required vs Optional API params for details
       first_name required* string(255) Customer first name
       last_name required* string(255) Customer last name
       address1 required* string(255) Primary address
       address2 required* string(255) Secondary address
       zip_code required* string ZIP code
       city required* string(255) City
       state required* string(2) State code in ISO 3166-2, required for USA and Canada
       country required* string(2) Country code in ISO 3166
    shipping_address optional
       first_name optional string(255) Customer first name
       last_name optional string(255) Customer last name
       address1 optional string(255) Primary address
       address2 optional string(255) Secondary address
       zip_code optional string ZIP code
       city optional string(255) City
       state optional string(2) State code in ISO 3166-2, required for USA and Canada
       country optional string(2) Country code in ISO 3166
    dynamic_descriptor_params optional
       merchant_name optional string(25) Allows to dynamically override the charge descriptor
       merchant_city optional string(13) Allows to dynamically override the merchant phone number
       sub_merchant_id optional string(15) Allows to dynamically override the sub-merchant ID.
    sca_params optional SCA params
       exemption optional string The exemption that the transaction should take advantage of. Note that the requested exemption may not be accepted due to internal risk validations. Check SCA exemption values.
       visa_merchant_id required5 string(8) VMID assigned by Visa if participating in Trusted merchant program.

    required* = conditionally required

    Successful Response

    stdClass Object
    (
        [transaction_type] => sale
        [status] => approved
        [mode] => live
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [consumer_id] => 123456
        [token] => ee946db8-d7db-4bb7-b608-b65b153e127d
        [avs_response_code] => 5I
        [avs_response_text] => Response provided by issuer processor; Address information not verified
        [cvv_result_code] => M
        [authorization_code] => 345678
        [retrieval_reference_number] => 016813015184
        [response_code] => 00
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:20.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
        [scheme_transaction_identifier] => 019091214161031
        [scheme_settlement_date] => 0903
    )
    
    <payment_response content=[
        <transaction_type content=[sale]>
        <status content=[approved]>
        <mode content=[live]>
        <transaction_id content=[119643250547501c79d8295]>
        <unique_id content=[44177a21403427eb96664a6d7e5d5d48]>
        <consumer_id content=[123456]>
        <token content=[ee946db8-d7db-4bb7-b608-b65b153e127d]>
        <avs_response_code content=[5I]>
        <avs_response_text content=[Response provided by issuer processor; Address information not verified]>
        <cvv_result_code content=[M]>
        <authorization_code content=[345678]>
        <retrieval_reference_number content=[016813015184]>
        <response_code content=[00]>
        <timestamp content=[2021-09-02T14:21:20Z]>
        <descriptor content=[Descriptor one]>
        <amount content=[100]>
        <currency content=[USD]>
        <sent_to_acquirer content=[true]>
        <scheme_transaction_identifier content=[019091214161031]>
        <scheme_settlement_date content=[0903]>
    ]>
    
    {
        transaction_type: "sale",
        status: "approved",
        mode: "live",
        transaction_id: "119643250547501c79d8295",
        unique_id: "44177a21403427eb96664a6d7e5d5d48",
        consumer_id: "123456",
        token: "ee946db8-d7db-4bb7-b608-b65b153e127d",
        avs_response_code: "5I",
        avs_response_text: "Response provided by issuer processor; Address information not verified",
        cvv_result_code: "M",
        authorization_code: "345678",
        retrieval_reference_number: "016813015184",
        response_code: "00",
        timestamp: "2021-09-02T14:21:20Z",
        descriptor: "Descriptor one",
        amount: "100",
        currency: "USD",
        sent_to_acquirer: "true",
        scheme_transaction_identifier: "019091214161031",
        scheme_settlement_date: "0903",
    }
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>sale</transaction_type>
        <status>approved</status>
        <mode>live</mode>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <consumer_id>123456</consumer_id>
        <token>ee946db8-d7db-4bb7-b608-b65b153e127d</token>
        <avs_response_code>5I</avs_response_code>
        <avs_response_text>Response provided by issuer processor; Address information not verified</avs_response_text>
        <cvv_result_code>M</cvv_result_code>
        <authorization_code>345678</authorization_code>
        <retrieval_reference_number>016813015184</retrieval_reference_number>
        <response_code>00</response_code>
        <timestamp>2021-09-02T14:21:20Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
        <scheme_transaction_identifier>019091214161031</scheme_transaction_identifier>
        <scheme_settlement_date>0903</scheme_settlement_date>
      </payment_response>
    

    Successful Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    consumer_id string(10) Consumer unique reference. See Consumers
    token string(36) Plain-text token value. See Tokenization
    gaming 'true' Signifies whether a gaming transaction is performed. Gaming transactions usually use MCC 7995, contact tech support for more details.
    moto 'true' Signifies whether a MOTO (mail order telephone order) transaction is performed. Contact tech support for more details.
    avs_response_code string(255) Generated by the card network on trying to match the billing address when performing the address verification. Optional, returned if config is enabled and acquirer supports it. Check AVS Status Codes for details.
    avs_response_text string(255) Gives the human response text for the AVS response code above. Optional, returned if config is enabled and acquirer supports it. Check AVS Status Codes for details.
    cvv_result_code string(1) Card Verification Value response code. Optional, returned only if acquirer supports it
    authorization_code string(6) Generated by the card network when an authorisation has occurred, used to identify that auth. Consists of 6 alphanumeric chars
    retrieval_reference_number string(255) A reference number used for tracking all messages related to a given cardholder transaction returned by some acquirers.
    response_code string(2) Defines the issuer result of a transaction, the status of a message or some action taken or required. See issuer response codes for details
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    partial_approval string(4) Optional, set to ’true’ if partial approval happened. Partially approved amount is then in the amount field. Check Partial Approvals for details
    sent_to_acquirer string(255) "true" or "false"
    dynamic_descriptor_params section Optional, returned only if dynamic desc params are submitted on the API. Note here that the formatted dyn desc params are returned - as they would be submitted to the schemes for settlement.
    scheme_transaction_identifier string(32) Id defined by card schemes. Corresponds to NETWORK DATA (field 63) for MasterCard or TRANS ID (field 62.2/125) for VISA.
    scheme_settlement_date string(4) MasterCard settlement date in MMDD format (e.g. 0903). Corresponds to NETWORK DATA (field 15).

    Error Response

    stdClass Object
    (
        [transaction_type] => sale
        [status] => error
        [mode] => live
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [response_code] => 57
        [code] => 340
        [technical_message] => billing_address[zip_code] is invalid!
        [message] => billing_address[zip_code] is invalid!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:20.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => false
    )
    
    <payment_response content=[
        <transaction_type content=[sale]>
        <status content=[error]>
        <mode content=[live]>
        <transaction_id content=[119643250547501c79d8295]>
        <unique_id content=[44177a21403427eb96664a6d7e5d5d48]>
        <response_code content=[57]>
        <code content=[340]>
        <technical_message content=[billing_address[zip_code] is invalid!]>
        <message content=[billing_address[zip_code] is invalid!]>
        <timestamp content=[2021-09-02T14:21:20Z]>
        <descriptor content=[Descriptor one]>
        <amount content=[100]>
        <currency content=[USD]>
        <sent_to_acquirer content=[false]>
    ]>
    
    {
        transaction_type: "sale",
        status: "error",
        mode: "live",
        transaction_id: "119643250547501c79d8295",
        unique_id: "44177a21403427eb96664a6d7e5d5d48",
        response_code: "57",
        code: "340",
        technical_message: "billing_address[zip_code] is invalid!",
        message: "billing_address[zip_code] is invalid!",
        timestamp: "2021-09-02T14:21:20Z",
        descriptor: "Descriptor one",
        amount: "100",
        currency: "USD",
        sent_to_acquirer: "false",
    }
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>sale</transaction_type>
        <status>error</status>
        <mode>live</mode>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <response_code>57</response_code>
        <code>340</code>
        <technical_message>billing_address[zip_code] is invalid!</technical_message>
        <message>billing_address[zip_code] is invalid!</message>
        <timestamp>2021-09-02T14:21:20Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>false</sent_to_acquirer>
      </payment_response>
    

    Error Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    gaming 'true' Signifies whether a gaming transaction is performed. Gaming transactions usually use MCC 7995, contact tech support for more details.
    moto 'true' Signifies whether a MOTO (mail order telephone order) transaction is performed. Contact tech support for more details.
    response_code string(2) Defines the issuer result of a transaction, the status of a message or some action taken or required. See issuer response codes for details
    code integer Error code according to Error code table
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"
    dynamic_descriptor_params section Optional, returned only if dynamic desc params are submitted on the API. Note here that the formatted dyn desc params are returned - as they would be submitted to the schemes for settlement.

    Argencard

    Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Argencard');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setReturnSuccessUrl('http://www.example.com/success')
            ->setReturnFailureUrl('http://www.example.com/failure')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setConsumerReference('barney_rumble')
            ->setNationalId('8812128812')
            ->setBirthDate('30-12-1992')
            ->setCustomerEmail('barney@example.com')
    
    
            // Billing Address
            ->setBillingFirstName('Barney')
            ->setBillingLastName('Rubble')
            ->setBillingAddress1('14, Nerazdelni str')
            ->setBillingZipCode('1407')
            ->setBillingCity('Buenos Aires')
            ->setBillingCountry('AR')
    
    
            // Risk Params
            ->setRiskUserId('123456');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    This request is not implemented yet
    
    This request is not implemented yet
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>argencard</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <return_success_url>http://www.example.com/success</return_success_url>
        <return_failure_url>http://www.example.com/failure</return_failure_url>
        <amount>100</amount>
        <currency>USD</currency>
        <consumer_reference>barney_rumble</consumer_reference>
        <national_id>8812128812</national_id>
        <birth_date>30-12-1992</birth_date>
        <customer_email>barney@example.com</customer_email>
        <billing_address>
          <first_name>Barney</first_name>
          <last_name>Rubble</last_name>
          <address1>14, Nerazdelni str</address1>
          <zip_code>1407</zip_code>
          <city>Buenos Aires</city>
          <country>AR</country>
        </billing_address>
        <risk_params>
          <user_id>123456</user_id>
        </risk_params>
      </payment_transaction>'
    
    

    Request Parameters

    Parameter Required Format Description
    transaction_type required string(255) The transaction type: argencard
    transaction_id required string(255) Unique transaction id defined by merchant
    usage optional string(255) Description of the transaction for later use.
    remote_ip required* IPv4 or IPv6 address IPv4 or IPv6 address of customer
    return_success_url required url URL where customer is sent to after successful payment
    return_failure_url required url URL where customer is sent to after unsuccessful payment
    amount required integer > 0 Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency required string(3) Currency code in ISO 4217
    consumer_reference required string(20) Consumer reference is a unique consumer identifier
    national_id required string(20) National Identifier number of the customer
    birth_date optional dd-mm-yyyy Required for Visa only when MCC is a Financial Services one (e.g. MCC 6012)
    customer_email required e-mail address Must contain valid e-mail of customer
    billing_address required See Required vs Optional API params for details
       first_name required* string(255) Customer first name
       last_name required* string(255) Customer last name
       address1 required* string(255) Primary address
       address2 required* string(255) Secondary address
       zip_code required* string ZIP code
       city required* string(255) City
       state required* string(2) State code in ISO 3166-2, required for USA and Canada
       country required string(2) Country code in ISO 3166
    shipping_address optional
       first_name optional string(255) Customer first name
       last_name optional string(255) Customer last name
       address1 optional string(255) Primary address
       address2 optional string(255) Secondary address
       zip_code optional string ZIP code
       city optional string(255) City
       state optional string(2) State code in ISO 3166-2, required for USA and Canada
       country optional string(2) Country code in ISO 3166

    required* = conditionally required

    Supported countries:

    Country
    AR

    Successful Response

    stdClass Object
    (
        [transaction_type] => argencard
        [status] => pending_async
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [redirect_url] => https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61
        [technical_message] => Transaction successful!
        [message] => Transaction successful!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:20.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
    )
    
    This request is not implemented yet
    
    This request is not implemented yet
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>argencard</transaction_type>
        <status>pending_async</status>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <redirect_url>https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61</redirect_url>
        <technical_message>Transaction successful!</technical_message>
        <message>Transaction successful!</message>
        <timestamp>2021-09-02T14:21:20Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Successful Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    redirect_url url URL where user has to be redirected to complete payment process. It is available for asynchronous mode
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Error Response

    stdClass Object
    (
        [transaction_type] => argencard
        [status] => error
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [code] => 110
        [message] => Something went wrong, please contact support!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:20.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
    )
    
    This request is not implemented yet
    
    This request is not implemented yet
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>argencard</transaction_type>
        <status>error</status>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <code>110</code>
        <message>Something went wrong, please contact support!</message>
        <timestamp>2021-09-02T14:21:20Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Error Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    code integer Error code according to Error code table
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Aura

    Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Aura');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setReturnSuccessUrl('http://www.example.com/success')
            ->setReturnFailureUrl('http://www.example.com/failure')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setConsumerReference('barney_rumble')
            ->setNationalId('8812128812')
            ->setBirthDate('30-12-1992')
            ->setCustomerEmail('barney@example.com')
    
    
            // Billing Address
            ->setBillingFirstName('Barney')
            ->setBillingLastName('Rubble')
            ->setBillingAddress1('14, Nerazdelni str')
            ->setBillingZipCode('1407')
            ->setBillingCity('Salvador')
            ->setBillingCountry('BR')
    
    
            // Risk Params
            ->setRiskUserId('123456');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    This request is not implemented yet
    
    This request is not implemented yet
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>aura</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <return_success_url>http://www.example.com/success</return_success_url>
        <return_failure_url>http://www.example.com/failure</return_failure_url>
        <amount>100</amount>
        <currency>USD</currency>
        <consumer_reference>barney_rumble</consumer_reference>
        <national_id>8812128812</national_id>
        <birth_date>30-12-1992</birth_date>
        <customer_email>barney@example.com</customer_email>
        <billing_address>
          <first_name>Barney</first_name>
          <last_name>Rubble</last_name>
          <address1>14, Nerazdelni str</address1>
          <zip_code>1407</zip_code>
          <city>Salvador</city>
          <country>BR</country>
        </billing_address>
        <risk_params>
          <user_id>123456</user_id>
        </risk_params>
      </payment_transaction>'
    
    

    Request Parameters

    Parameter Required Format Description
    transaction_type required string(255) The transaction type: aura
    transaction_id required string(255) Unique transaction id defined by merchant
    usage optional string(255) Description of the transaction for later use.
    remote_ip required* IPv4 or IPv6 address IPv4 or IPv6 address of customer
    return_success_url required url URL where customer is sent to after successful payment
    return_failure_url required url URL where customer is sent to after unsuccessful payment
    amount required integer > 0 Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency required string(3) Currency code in ISO 4217
    consumer_reference required string(20) Consumer reference is a unique consumer identifier
    national_id required string(20) National Identifier number of the customer
    birth_date optional dd-mm-yyyy Required for Visa only when MCC is a Financial Services one (e.g. MCC 6012)
    customer_email required e-mail address Must contain valid e-mail of customer
    billing_address required See Required vs Optional API params for details
       first_name required* string(255) Customer first name
       last_name required* string(255) Customer last name
       address1 required* string(255) Primary address
       address2 required* string(255) Secondary address
       zip_code required* string ZIP code
       city required* string(255) City
       state required* string(2) State code in ISO 3166-2, required for USA and Canada
       country required string(2) Country code in ISO 3166
    shipping_address optional
       first_name optional string(255) Customer first name
       last_name optional string(255) Customer last name
       address1 optional string(255) Primary address
       address2 optional string(255) Secondary address
       zip_code optional string ZIP code
       city optional string(255) City
       state optional string(2) State code in ISO 3166-2, required for USA and Canada
       country optional string(2) Country code in ISO 3166

    required* = conditionally required

    Supported countries:

    Country
    BR

    Successful Response

    stdClass Object
    (
        [transaction_type] => aura
        [status] => pending_async
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [redirect_url] => https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61
        [technical_message] => Transaction successful!
        [message] => Transaction successful!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:20.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
    )
    
    This request is not implemented yet
    
    This request is not implemented yet
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>aura</transaction_type>
        <status>pending_async</status>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <redirect_url>https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61</redirect_url>
        <technical_message>Transaction successful!</technical_message>
        <message>Transaction successful!</message>
        <timestamp>2021-09-02T14:21:20Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Successful Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    redirect_url url URL where user has to be redirected to complete payment process. It is available for asynchronous mode
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Error Response

    stdClass Object
    (
        [transaction_type] => aura
        [status] => error
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [code] => 110
        [message] => Something went wrong, please contact support!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:20.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
    )
    
    This request is not implemented yet
    
    This request is not implemented yet
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>aura</transaction_type>
        <status>error</status>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <code>110</code>
        <message>Something went wrong, please contact support!</message>
        <timestamp>2021-09-02T14:21:20Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Error Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    code integer Error code according to Error code table
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Bancontact

    Request

    This request is not implemented yet
    
    This request is not implemented yet
    
    This request is not implemented yet
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>bcmc</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <return_success_url>http://www.example.com/success</return_success_url>
        <return_failure_url>http://www.example.com/failure</return_failure_url>
        <amount>100</amount>
        <currency>EUR</currency>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>12114</zip_code>
          <city>Brussels</city>
          <country>BE</country>
        </billing_address>
      </payment_transaction>'
    
    

    Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Alternatives\PPRO');
        $request = $genesis->request();
    
        $request
            ->setPaymentType('bcmc')
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setReturnSuccessUrl('http://www.example.com/success')
            ->setReturnFailureUrl('http://www.example.com/failure')
            ->setAmount('100')
            ->setCurrency('EUR')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('12114')
            ->setBillingCity('Brussels')
            ->setBillingCountry('BE');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.apm.PProRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    public class GenesisExample {
      public static void main() throws MalformedURLException {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        PProRequest request = new PProRequest();
    
        request.setPaymentType("bcmc");
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setReturnSuccessUrl(new URL("http://www.example.com/success"));
        request.setReturnFailureUrl(new URL("http://www.example.com/failure"));
        request.setAmount(new BigDecimal(100));
        request.setCurrency("EUR");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("12114");
        request.setBillingCity("Brussels");
        request.setBillingCountry("BE");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.ppro(
      {
        "payment_type": "bcmc",
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "return_success_url": "http://www.example.com/success",
        "return_failure_url": "http://www.example.com/failure",
        "amount": "100",
        "currency": "EUR",
        "billing_address": {
          "first_name": "Travis",
          "last_name": "Pastrana",
          "address1": "Muster Str. 12",
          "zip_code": "12114",
          "city": "Brussels",
          "country": "BE"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>ppro</transaction_type>
        <payment_type>bcmc</payment_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <return_success_url>http://www.example.com/success</return_success_url>
        <return_failure_url>http://www.example.com/failure</return_failure_url>
        <amount>100</amount>
        <currency>EUR</currency>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>12114</zip_code>
          <city>Brussels</city>
          <country>BE</country>
        </billing_address>
      </payment_transaction>'
    
    

    Request Parameters

    Parameter Required Format Description
    transaction_type required string(255) ppro or bcmc. Contact tech support at tech-support@e-comprocessing.com for more details.
    payment_type required* bcmc Bancontact Mr. Cash. Contact tech support for more details
    transaction_id required string(255) Unique transaction id defined by merchant
    usage optional string(255) Description of the transaction for later use.
    remote_ip required IPv4 or IPv6 address IPv4 or IPv6 address of customer
    return_success_url required url URL where customer is sent to after successful payment
    return_failure_url required url URL where customer is sent to after unsuccessful payment
    amount required integer > 0 Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency required string(3) Currency code in ISO 4217
    billing_address required See Required vs Optional API params for details
       first_name required* string(255) Customer first name
       last_name required* string(255) Customer last name
       address1 required* string(255) Primary address
       address2 required* string(255) Secondary address
       zip_code required* string ZIP code
       city required* string(255) City
       state required* string(2) State code in ISO 3166-2, required for USA and Canada
       country required string(2) Country code in ISO 3166
    shipping_address optional
       first_name optional string(255) Customer first name
       last_name optional string(255) Customer last name
       address1 optional string(255) Primary address
       address2 optional string(255) Secondary address
       zip_code optional string ZIP code
       city optional string(255) City
       state optional string(2) State code in ISO 3166-2, required for USA and Canada
       country optional string(2) Country code in ISO 3166

    required* = conditionally required

    Supported currencies and countries:

    Currency code Country code
    EUR BE

    Successful Response

    This request is not implemented yet
    
    This request is not implemented yet
    
    This request is not implemented yet
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>bcmc</transaction_type>
        <status>pending_async</status>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <technical_message>Transaction successful!</technical_message>
        <message>Transaction successful!</message>
        <redirect_url>https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61</redirect_url>
        <mode>live</mode>
        <timestamp>2021-09-02T14:21:20Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>EUR</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Successful Response

    stdClass Object
    (
        [transaction_type] => ppro
        [status] => pending_async
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [transaction_id] => 119643250547501c79d8295
        [technical_message] => Transaction successful!
        [message] => Transaction successful!
        [redirect_url] => https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61
        [mode] => live
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:20.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => EUR
        [sent_to_acquirer] => true
    )
    
    <payment_response content=[
        <transaction_type content=[ppro]>
        <status content=[pending_async]>
        <unique_id content=[44177a21403427eb96664a6d7e5d5d48]>
        <transaction_id content=[119643250547501c79d8295]>
        <technical_message content=[Transaction successful!]>
        <message content=[Transaction successful!]>
        <redirect_url content=[https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61]>
        <mode content=[live]>
        <timestamp content=[2021-09-02T14:21:20Z]>
        <descriptor content=[Descriptor one]>
        <amount content=[100]>
        <currency content=[EUR]>
        <sent_to_acquirer content=[true]>
    ]>
    
    {
        transaction_type: "ppro",
        status: "pending_async",
        unique_id: "44177a21403427eb96664a6d7e5d5d48",
        transaction_id: "119643250547501c79d8295",
        technical_message: "Transaction successful!",
        message: "Transaction successful!",
        redirect_url: "https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61",
        mode: "live",
        timestamp: "2021-09-02T14:21:20Z",
        descriptor: "Descriptor one",
        amount: "100",
        currency: "EUR",
        sent_to_acquirer: "true",
    }
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>ppro</transaction_type>
        <status>pending_async</status>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <technical_message>Transaction successful!</technical_message>
        <message>Transaction successful!</message>
        <redirect_url>https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61</redirect_url>
        <mode>live</mode>
        <timestamp>2021-09-02T14:21:20Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>EUR</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Successful Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    transaction_id string(255) Unique transaction id defined by merchant
    redirect_url url URL where user has to be redirected to complete payment process. It is available for asynchronous mode
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Error Response

    This request is not implemented yet
    
    This request is not implemented yet
    
    This request is not implemented yet
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>bcmc</transaction_type>
        <status>error</status>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <code>110</code>
        <message>Something went wrong, please contact support!</message>
        <timestamp>2021-09-02T14:21:20Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>EUR</currency>
        <sent_to_acquirer>false</sent_to_acquirer>
      </payment_response>
    

    Error Response

    stdClass Object
    (
        [transaction_type] => ppro
        [status] => error
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [transaction_id] => 119643250547501c79d8295
        [code] => 110
        [technical_message] => 
        [message] => Something went wrong, please contact support!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:20.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => EUR
        [sent_to_acquirer] => false
    )
    
    <payment_response content=[
        <transaction_type content=[ppro]>
        <status content=[error]>
        <unique_id content=[44177a21403427eb96664a6d7e5d5d48]>
        <transaction_id content=[119643250547501c79d8295]>
        <code content=[110]>
        <technical_message content=[]>
        <message content=[Something went wrong, please contact support!]>
        <timestamp content=[2021-09-02T14:21:20Z]>
        <descriptor content=[Descriptor one]>
        <amount content=[100]>
        <currency content=[EUR]>
        <sent_to_acquirer content=[false]>
    ]>
    
    {
        transaction_type: "ppro",
        status: "error",
        unique_id: "44177a21403427eb96664a6d7e5d5d48",
        transaction_id: "119643250547501c79d8295",
        code: "110",
        technical_message: "",
        message: "Something went wrong, please contact support!",
        timestamp: "2021-09-02T14:21:20Z",
        descriptor: "Descriptor one",
        amount: "100",
        currency: "EUR",
        sent_to_acquirer: "false",
    }
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>ppro</transaction_type>
        <status>error</status>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <code>110</code>
        <payment_response>technical_message</payment_response>
        <message>Something went wrong, please contact support!</message>
        <timestamp>2021-09-02T14:21:20Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>EUR</currency>
        <sent_to_acquirer>false</sent_to_acquirer>
      </payment_response>
    

    Error Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    transaction_id string(255) Unique transaction id defined by merchant
    code integer Error code according to Error code table
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Cabal

    Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Cabal');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setReturnSuccessUrl('http://www.example.com/success')
            ->setReturnFailureUrl('http://www.example.com/failure')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setConsumerReference('braney_rubble')
            ->setNationalId('8812128812')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    This request is not implemented yet
    
    This request is not implemented yet
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>cabal</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <return_success_url>http://www.example.com/success</return_success_url>
        <return_failure_url>http://www.example.com/failure</return_failure_url>
        <amount>100</amount>
        <currency>USD</currency>
        <consumer_reference>braney_rubble</consumer_reference>
        <national_id>8812128812</national_id>
        <customer_email>travis@example.com</customer_email>
        <customer_phone>+1987987987987</customer_phone>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>10178</zip_code>
          <city>Los Angeles</city>
          <state>CA</state>
          <country>US</country>
        </billing_address>
      </payment_transaction>'
    
    

    Request Parameters

    Parameter Required Format Description
    transaction_type required string(255) The transaction type: cabal
    transaction_id required string(255) Unique transaction id defined by merchant
    usage optional string(255) Description of the transaction for later use.
    remote_ip required* IPv4 or IPv6 address IPv4 or IPv6 address of customer
    return_success_url required url URL where customer is sent to after successful payment
    return_failure_url required url URL where customer is sent to after unsuccessful payment
    amount required integer > 0 Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency required string(3) Currency code in ISO 4217
    consumer_reference required string(20) Consumer reference is a unique consumer identifier
    national_id required string(20) National Identifier number of the customer
    birth_date optional dd-mm-yyyy Required for Visa only when MCC is a Financial Services one (e.g. MCC 6012)
    customer_email required e-mail address Must contain valid e-mail of customer
    billing_address required See Required vs Optional API params for details
       first_name required* string(255) Customer first name
       last_name required* string(255) Customer last name
       address1 required* string(255) Primary address
       address2 required* string(255) Secondary address
       zip_code required* string ZIP code
       city required* string(255) City
       state required* string(2) State code in ISO 3166-2, required for USA and Canada
       country required string(2) Country code in ISO 3166
    shipping_address optional
       first_name optional string(255) Customer first name
       last_name optional string(255) Customer last name
       address1 optional string(255) Primary address
       address2 optional string(255) Secondary address
       zip_code optional string ZIP code
       city optional string(255) City
       state optional string(2) State code in ISO 3166-2, required for USA and Canada
       country optional string(2) Country code in ISO 3166

    required* = conditionally required

    Supported countries

    Country Name Country Code
    Argentina AR

    Successful Response

    stdClass Object
    (
        [status] => pending_async
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [transaction_id] => 119643250547501c79d8295
        [redirect_url] => https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61d0
        [mode] => live
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:20.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
    )
    
    This request is not implemented yet
    
    This request is not implemented yet
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <status>pending_async</status>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <redirect_url>https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61d0</redirect_url>
        <mode>live</mode>
        <timestamp>2021-09-02T14:21:20Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Successful Response Parameters

    Parameter Type Description
    status string(255) Status of the transaction, see states
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    transaction_id string(255) Unique transaction id defined by merchant
    redirect_url url URL where user has to be redirected to complete payment process. It is available for asynchronous mode
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Error Response

    stdClass Object
    (
        [status] => error
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [transaction_id] => 119643250547501c79d8295
        [code] => 110
        [message] => Something went wrong, please contact support!
        [mode] => live
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:20.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => false
    )
    
    This request is not implemented yet
    
    This request is not implemented yet
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <status>error</status>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <code>110</code>
        <message>Something went wrong, please contact support!</message>
        <mode>live</mode>
        <timestamp>2021-09-02T14:21:20Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>false</sent_to_acquirer>
      </payment_response>
    

    Error Response Parameters

    Parameter Type Description
    status string(255) Status of the transaction, see states
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    transaction_id string(255) Unique transaction id defined by merchant
    code integer Error code according to Error code table
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Cencosud

    Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Cencosud');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setReturnSuccessUrl('http://www.example.com/success')
            ->setReturnFailureUrl('http://www.example.com/failure')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setConsumerReference('barney_rumble')
            ->setNationalId('8812128812')
            ->setBirthDate('30-12-1992')
            ->setCustomerEmail('barney@example.com')
    
    
            // Billing Address
            ->setBillingFirstName('Barney')
            ->setBillingLastName('Rubble')
            ->setBillingAddress1('14, Nerazdelni str')
            ->setBillingZipCode('1407')
            ->setBillingCity('Buenos Aires')
            ->setBillingCountry('AR')
    
    
            // Risk Params
            ->setRiskUserId('123456');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    This request is not implemented yet
    
    This request is not implemented yet
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>cencosud</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <return_success_url>http://www.example.com/success</return_success_url>
        <return_failure_url>http://www.example.com/failure</return_failure_url>
        <amount>100</amount>
        <currency>USD</currency>
        <consumer_reference>barney_rumble</consumer_reference>
        <national_id>8812128812</national_id>
        <birth_date>30-12-1992</birth_date>
        <customer_email>barney@example.com</customer_email>
        <billing_address>
          <first_name>Barney</first_name>
          <last_name>Rubble</last_name>
          <address1>14, Nerazdelni str</address1>
          <zip_code>1407</zip_code>
          <city>Buenos Aires</city>
          <country>AR</country>
        </billing_address>
        <risk_params>
          <user_id>123456</user_id>
        </risk_params>
      </payment_transaction>'
    
    

    Request Parameters

    Parameter Required Format Description
    transaction_type required string(255) The transaction type: cencosud
    transaction_id required string(255) Unique transaction id defined by merchant
    usage optional string(255) Description of the transaction for later use.
    remote_ip required* IPv4 or IPv6 address IPv4 or IPv6 address of customer
    return_success_url required url URL where customer is sent to after successful payment
    return_failure_url required url URL where customer is sent to after unsuccessful payment
    amount required integer > 0 Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency required string(3) Currency code in ISO 4217
    consumer_reference required string(20) Consumer reference is a unique consumer identifier
    national_id required string(20) National Identifier number of the customer
    birth_date optional dd-mm-yyyy Required for Visa only when MCC is a Financial Services one (e.g. MCC 6012)
    customer_email required e-mail address Must contain valid e-mail of customer
    billing_address required See Required vs Optional API params for details
       first_name required* string(255) Customer first name
       last_name required* string(255) Customer last name
       address1 required* string(255) Primary address
       address2 required* string(255) Secondary address
       zip_code required* string ZIP code
       city required* string(255) City
       state required* string(2) State code in ISO 3166-2, required for USA and Canada
       country required string(2) Country code in ISO 3166
    shipping_address optional
       first_name optional string(255) Customer first name
       last_name optional string(255) Customer last name
       address1 optional string(255) Primary address
       address2 optional string(255) Secondary address
       zip_code optional string ZIP code
       city optional string(255) City
       state optional string(2) State code in ISO 3166-2, required for USA and Canada
       country optional string(2) Country code in ISO 3166

    required* = conditionally required

    Supported countries:

    Country
    AR

    Successful Response

    stdClass Object
    (
        [transaction_type] => cencosud
        [status] => pending_async
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [redirect_url] => https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61
        [technical_message] => Transaction successful!
        [message] => Transaction successful!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:20.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
    )
    
    This request is not implemented yet
    
    This request is not implemented yet
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>cencosud</transaction_type>
        <status>pending_async</status>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <redirect_url>https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61</redirect_url>
        <technical_message>Transaction successful!</technical_message>
        <message>Transaction successful!</message>
        <timestamp>2021-09-02T14:21:20Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Successful Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    redirect_url url URL where user has to be redirected to complete payment process. It is available for asynchronous mode
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Error Response

    stdClass Object
    (
        [transaction_type] => cencosud
        [status] => error
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [code] => 110
        [message] => Something went wrong, please contact support!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:20.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
    )
    
    This request is not implemented yet
    
    This request is not implemented yet
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>cencosud</transaction_type>
        <status>error</status>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <code>110</code>
        <message>Something went wrong, please contact support!</message>
        <timestamp>2021-09-02T14:21:20Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Error Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    code integer Error code according to Error code table
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Credit (CFT)

    Credits (also known as Credit Fund Transfer a.k.a. CFT) can be done with an initial reference transaction.

    This transaction type allows you to transfer funds to a previously charged card. The amount can be higher than the charged reference. Credits can only be done on former sale, sale3d, init recurring sale, init recurring sale3d, recurring sale or capture transaction. Therefore, the reference_id for the corresponding transaction is mandatory.

    Both Visa and Mastercard/Maestro credits are authorized real-time.

    Note that for exceptional cases with some countries Visa OCTS will not be authorized through the schemes but batched for offline settlement on the same day. This means that the authorization code and issuer response code will not be available only for them.

    Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Credit');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setReferenceId('43672')
            ->setAmount('100');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.card.CreditRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    
    public class GenesisExample {
      public static void main()  {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        CreditRequest request = new CreditRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setReferenceId("43672");
        request.setAmount(new BigDecimal(100));
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.credit(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "reference_id": "43672",
        "amount": "100"
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>credit</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <reference_id>43672</reference_id>
        <amount>100</amount>
      </payment_transaction>'
    
    

    Request Parameters

    Parameter Required Format Description
    transaction_type required string(255) The transaction type: credit
    transaction_id required string(255) Unique transaction id defined by merchant
    usage optional string(255) Description of the transaction for later use.
    reference_id required string(32) Unique id returned by corresponding transaction
    amount required integer > 0 Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    source_of_funds optional string Specify the source of funds with one of credit, debit, prepaid, cash, other_debit_account, other_credit_account.

    required* = conditionally required

    Successful Response

    stdClass Object
    (
        [transaction_type] => credit
        [status] => approved
        [mode] => live
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [authorization_code] => 345678
        [retrieval_reference_number] => 016813015184
        [response_code] => 00
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:20.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
    )
    
    <payment_response content=[
        <transaction_type content=[credit]>
        <status content=[approved]>
        <mode content=[live]>
        <transaction_id content=[119643250547501c79d8295]>
        <unique_id content=[44177a21403427eb96664a6d7e5d5d48]>
        <authorization_code content=[345678]>
        <retrieval_reference_number content=[016813015184]>
        <response_code content=[00]>
        <timestamp content=[2021-09-02T14:21:20Z]>
        <descriptor content=[Descriptor one]>
        <amount content=[100]>
        <currency content=[USD]>
    ]>
    
    {
        transaction_type: "credit",
        status: "approved",
        mode: "live",
        transaction_id: "119643250547501c79d8295",
        unique_id: "44177a21403427eb96664a6d7e5d5d48",
        authorization_code: "345678",
        retrieval_reference_number: "016813015184",
        response_code: "00",
        timestamp: "2021-09-02T14:21:20Z",
        descriptor: "Descriptor one",
        amount: "100",
        currency: "USD",
    }
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>credit</transaction_type>
        <status>approved</status>
        <mode>live</mode>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <authorization_code>345678</authorization_code>
        <retrieval_reference_number>016813015184</retrieval_reference_number>
        <response_code>00</response_code>
        <timestamp>2021-09-02T14:21:20Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
      </payment_response>
    

    Successful Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    authorization_code string(6) Generated by the card network when an authorisation has occurred, used to identify that auth. Consists of 6 alphanumeric chars
    retrieval_reference_number string(255) A reference number used for tracking all messages related to a given cardholder transaction returned by some acquirers.
    response_code string(2) Defines the issuer result of a transaction, the status of a message or some action taken or required. See issuer response codes for details
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217

    Error Response

    stdClass Object
    (
        [transaction_type] => credit
        [status] => error
        [mode] => live
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [response_code] => 57
        [code] => 410
        [technical_message] => No approved reference transaction found
        [message] => No approved reference transaction found
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:21.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
    )
    
    <payment_response content=[
        <transaction_type content=[credit]>
        <status content=[error]>
        <mode content=[live]>
        <transaction_id content=[119643250547501c79d8295]>
        <unique_id content=[44177a21403427eb96664a6d7e5d5d48]>
        <response_code content=[57]>
        <code content=[410]>
        <technical_message content=[No approved reference transaction found]>
        <message content=[No approved reference transaction found]>
        <timestamp content=[2021-09-02T14:21:21Z]>
        <descriptor content=[Descriptor one]>
        <amount content=[100]>
        <currency content=[USD]>
    ]>
    
    {
        transaction_type: "credit",
        status: "error",
        mode: "live",
        transaction_id: "119643250547501c79d8295",
        unique_id: "44177a21403427eb96664a6d7e5d5d48",
        response_code: "57",
        code: "410",
        technical_message: "No approved reference transaction found",
        message: "No approved reference transaction found",
        timestamp: "2021-09-02T14:21:21Z",
        descriptor: "Descriptor one",
        amount: "100",
        currency: "USD",
    }
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>credit</transaction_type>
        <status>error</status>
        <mode>live</mode>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <response_code>57</response_code>
        <code>410</code>
        <technical_message>No approved reference transaction found</technical_message>
        <message>No approved reference transaction found</message>
        <timestamp>2021-09-02T14:21:21Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
      </payment_response>
    

    Error Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    code integer Error code according to Error code table
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217

    Elo

    Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Elo');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setReturnSuccessUrl('http://www.example.com/success')
            ->setReturnFailureUrl('http://www.example.com/failure')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setConsumerReference('barney_rumble')
            ->setNationalId('8812128812')
            ->setBirthDate('30-12-1992')
            ->setCustomerEmail('barney@example.com')
    
    
            // Billing Address
            ->setBillingFirstName('Barney')
            ->setBillingLastName('Rubble')
            ->setBillingAddress1('14, Nerazdelni str')
            ->setBillingZipCode('1407')
            ->setBillingCity('Salvador')
            ->setBillingCountry('BR')
    
    
            // Risk Params
            ->setRiskUserId('123456');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    This request is not implemented yet
    
    This request is not implemented yet
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>elo</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <return_success_url>http://www.example.com/success</return_success_url>
        <return_failure_url>http://www.example.com/failure</return_failure_url>
        <amount>100</amount>
        <currency>USD</currency>
        <consumer_reference>barney_rumble</consumer_reference>
        <national_id>8812128812</national_id>
        <birth_date>30-12-1992</birth_date>
        <customer_email>barney@example.com</customer_email>
        <billing_address>
          <first_name>Barney</first_name>
          <last_name>Rubble</last_name>
          <address1>14, Nerazdelni str</address1>
          <zip_code>1407</zip_code>
          <city>Salvador</city>
          <country>BR</country>
        </billing_address>
        <risk_params>
          <user_id>123456</user_id>
        </risk_params>
      </payment_transaction>'
    
    

    Request Parameters

    Parameter Required Format Description
    transaction_type required string(255) The transaction type: elo
    transaction_id required string(255) Unique transaction id defined by merchant
    usage optional string(255) Description of the transaction for later use.
    remote_ip required* IPv4 or IPv6 address IPv4 or IPv6 address of customer
    return_success_url required url URL where customer is sent to after successful payment
    return_failure_url required url URL where customer is sent to after unsuccessful payment
    amount required integer > 0 Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency required string(3) Currency code in ISO 4217
    consumer_reference required string(20) Consumer reference is a unique consumer identifier
    national_id required string(20) National Identifier number of the customer
    birth_date optional dd-mm-yyyy Required for Visa only when MCC is a Financial Services one (e.g. MCC 6012)
    customer_email required e-mail address Must contain valid e-mail of customer
    billing_address required See Required vs Optional API params for details
       first_name required* string(255) Customer first name
       last_name required* string(255) Customer last name
       address1 required* string(255) Primary address
       address2 required* string(255) Secondary address
       zip_code required* string ZIP code
       city required* string(255) City
       state required* string(2) State code in ISO 3166-2, required for USA and Canada
       country required string(2) Country code in ISO 3166
    shipping_address optional
       first_name optional string(255) Customer first name
       last_name optional string(255) Customer last name
       address1 optional string(255) Primary address
       address2 optional string(255) Secondary address
       zip_code optional string ZIP code
       city optional string(255) City
       state optional string(2) State code in ISO 3166-2, required for USA and Canada
       country optional string(2) Country code in ISO 3166

    required* = conditionally required

    Supported countries:

    Country
    BR

    Successful Response

    stdClass Object
    (
        [transaction_type] => elo
        [status] => pending_async
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [redirect_url] => https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61
        [technical_message] => Transaction successful!
        [message] => Transaction successful!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:21.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
    )
    
    This request is not implemented yet
    
    This request is not implemented yet
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>elo</transaction_type>
        <status>pending_async</status>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <redirect_url>https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61</redirect_url>
        <technical_message>Transaction successful!</technical_message>
        <message>Transaction successful!</message>
        <timestamp>2021-09-02T14:21:21Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Successful Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    redirect_url url URL where user has to be redirected to complete payment process. It is available for asynchronous mode
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Error Response

    stdClass Object
    (
        [transaction_type] => elo
        [status] => error
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [code] => 110
        [message] => Something went wrong, please contact support!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:21.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
    )
    
    This request is not implemented yet
    
    This request is not implemented yet
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>elo</transaction_type>
        <status>error</status>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <code>110</code>
        <message>Something went wrong, please contact support!</message>
        <timestamp>2021-09-02T14:21:21Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Error Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    code integer Error code according to Error code table
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Naranja

    Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Naranja');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setReturnSuccessUrl('http://www.example.com/success')
            ->setReturnFailureUrl('http://www.example.com/failure')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setConsumerReference('barney_rumble')
            ->setNationalId('8812128812')
            ->setBirthDate('30-12-1992')
            ->setCustomerEmail('barney@example.com')
    
    
            // Billing Address
            ->setBillingFirstName('Barney')
            ->setBillingLastName('Rubble')
            ->setBillingAddress1('14, Nerazdelni str')
            ->setBillingZipCode('1407')
            ->setBillingCity('Buenos Aires')
            ->setBillingCountry('AR')
    
    
            // Risk Params
            ->setRiskUserId('123456');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    This request is not implemented yet
    
    This request is not implemented yet
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>naranja</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <return_success_url>http://www.example.com/success</return_success_url>
        <return_failure_url>http://www.example.com/failure</return_failure_url>
        <amount>100</amount>
        <currency>USD</currency>
        <consumer_reference>barney_rumble</consumer_reference>
        <national_id>8812128812</national_id>
        <birth_date>30-12-1992</birth_date>
        <customer_email>barney@example.com</customer_email>
        <billing_address>
          <first_name>Barney</first_name>
          <last_name>Rubble</last_name>
          <address1>14, Nerazdelni str</address1>
          <zip_code>1407</zip_code>
          <city>Buenos Aires</city>
          <country>AR</country>
        </billing_address>
        <risk_params>
          <user_id>123456</user_id>
        </risk_params>
      </payment_transaction>'
    
    

    Request Parameters

    Parameter Required Format Description
    transaction_type required string(255) The transaction type: naranja
    transaction_id required string(255) Unique transaction id defined by merchant
    usage optional string(255) Description of the transaction for later use.
    remote_ip required* IPv4 or IPv6 address IPv4 or IPv6 address of customer
    return_success_url required url URL where customer is sent to after successful payment
    return_failure_url required url URL where customer is sent to after unsuccessful payment
    amount required integer > 0 Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency required string(3) Currency code in ISO 4217
    consumer_reference required string(20) Consumer reference is a unique consumer identifier
    national_id required string(20) National Identifier number of the customer
    birth_date optional dd-mm-yyyy Required for Visa only when MCC is a Financial Services one (e.g. MCC 6012)
    customer_email required e-mail address Must contain valid e-mail of customer
    billing_address required See Required vs Optional API params for details
       first_name required* string(255) Customer first name
       last_name required* string(255) Customer last name
       address1 required* string(255) Primary address
       address2 required* string(255) Secondary address
       zip_code required* string ZIP code
       city required* string(255) City
       state required* string(2) State code in ISO 3166-2, required for USA and Canada
       country required string(2) Country code in ISO 3166
    shipping_address optional
       first_name optional string(255) Customer first name
       last_name optional string(255) Customer last name
       address1 optional string(255) Primary address
       address2 optional string(255) Secondary address
       zip_code optional string ZIP code
       city optional string(255) City
       state optional string(2) State code in ISO 3166-2, required for USA and Canada
       country optional string(2) Country code in ISO 3166

    required* = conditionally required

    Supported countries:

    Country
    AR

    Successful Response

    stdClass Object
    (
        [transaction_type] => naranja
        [status] => pending_async
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [redirect_url] => https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61
        [technical_message] => Transaction successful!
        [message] => Transaction successful!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:21.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
    )
    
    This request is not implemented yet
    
    This request is not implemented yet
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>naranja</transaction_type>
        <status>pending_async</status>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <redirect_url>https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61</redirect_url>
        <technical_message>Transaction successful!</technical_message>
        <message>Transaction successful!</message>
        <timestamp>2021-09-02T14:21:21Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Successful Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    redirect_url url URL where user has to be redirected to complete payment process. It is available for asynchronous mode
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Error Response

    stdClass Object
    (
        [transaction_type] => naranja
        [status] => error
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [code] => 110
        [message] => Something went wrong, please contact support!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:21.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
    )
    
    This request is not implemented yet
    
    This request is not implemented yet
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>naranja</transaction_type>
        <status>error</status>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <code>110</code>
        <message>Something went wrong, please contact support!</message>
        <timestamp>2021-09-02T14:21:21Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Error Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    code integer Error code according to Error code table
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Nativa

    Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Nativa');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setReturnSuccessUrl('http://www.example.com/success')
            ->setReturnFailureUrl('http://www.example.com/failure')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setConsumerReference('barney_rumble')
            ->setNationalId('8812128812')
            ->setBirthDate('30-12-1992')
            ->setCustomerEmail('barney@example.com')
    
    
            // Billing Address
            ->setBillingFirstName('Barney')
            ->setBillingLastName('Rubble')
            ->setBillingAddress1('14, Nerazdelni str')
            ->setBillingZipCode('1407')
            ->setBillingCity('Buenos Aires')
            ->setBillingCountry('AR')
    
    
            // Risk Params
            ->setRiskUserId('123456');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    This request is not implemented yet
    
    This request is not implemented yet
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>nativa</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <return_success_url>http://www.example.com/success</return_success_url>
        <return_failure_url>http://www.example.com/failure</return_failure_url>
        <amount>100</amount>
        <currency>USD</currency>
        <consumer_reference>barney_rumble</consumer_reference>
        <national_id>8812128812</national_id>
        <birth_date>30-12-1992</birth_date>
        <customer_email>barney@example.com</customer_email>
        <billing_address>
          <first_name>Barney</first_name>
          <last_name>Rubble</last_name>
          <address1>14, Nerazdelni str</address1>
          <zip_code>1407</zip_code>
          <city>Buenos Aires</city>
          <country>AR</country>
        </billing_address>
        <risk_params>
          <user_id>123456</user_id>
        </risk_params>
      </payment_transaction>'
    
    

    Request Parameters

    Parameter Required Format Description
    transaction_type required string(255) The transaction type: nativa
    transaction_id required string(255) Unique transaction id defined by merchant
    usage optional string(255) Description of the transaction for later use.
    remote_ip required* IPv4 or IPv6 address IPv4 or IPv6 address of customer
    return_success_url required url URL where customer is sent to after successful payment
    return_failure_url required url URL where customer is sent to after unsuccessful payment
    amount required integer > 0 Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency required string(3) Currency code in ISO 4217
    consumer_reference required string(20) Consumer reference is a unique consumer identifier
    national_id required string(20) National Identifier number of the customer
    birth_date optional dd-mm-yyyy Required for Visa only when MCC is a Financial Services one (e.g. MCC 6012)
    customer_email required e-mail address Must contain valid e-mail of customer
    billing_address required See Required vs Optional API params for details
       first_name required* string(255) Customer first name
       last_name required* string(255) Customer last name
       address1 required* string(255) Primary address
       address2 required* string(255) Secondary address
       zip_code required* string ZIP code
       city required* string(255) City
       state required* string(2) State code in ISO 3166-2, required for USA and Canada
       country required string(2) Country code in ISO 3166
    shipping_address optional
       first_name optional string(255) Customer first name
       last_name optional string(255) Customer last name
       address1 optional string(255) Primary address
       address2 optional string(255) Secondary address
       zip_code optional string ZIP code
       city optional string(255) City
       state optional string(2) State code in ISO 3166-2, required for USA and Canada
       country optional string(2) Country code in ISO 3166

    required* = conditionally required

    Supported countries:

    Country
    AR

    Successful Response

    stdClass Object
    (
        [transaction_type] => nativa
        [status] => pending_async
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [redirect_url] => https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61
        [technical_message] => Transaction successful!
        [message] => Transaction successful!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:21.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
    )
    
    This request is not implemented yet
    
    This request is not implemented yet
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>nativa</transaction_type>
        <status>pending_async</status>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <redirect_url>https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61</redirect_url>
        <technical_message>Transaction successful!</technical_message>
        <message>Transaction successful!</message>
        <timestamp>2021-09-02T14:21:21Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Successful Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    redirect_url url URL where user has to be redirected to complete payment process. It is available for asynchronous mode
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Error Response

    stdClass Object
    (
        [transaction_type] => nativa
        [status] => error
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [code] => 110
        [message] => Something went wrong, please contact support!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:21.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
    )
    
    This request is not implemented yet
    
    This request is not implemented yet
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>nativa</transaction_type>
        <status>error</status>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <code>110</code>
        <message>Something went wrong, please contact support!</message>
        <timestamp>2021-09-02T14:21:21Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Error Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    code integer Error code according to Error code table
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Tarjeta Shopping

    Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\TarjetaShopping');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setReturnSuccessUrl('http://www.example.com/success')
            ->setReturnFailureUrl('http://www.example.com/failure')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setConsumerReference('barney_rubble')
            ->setNationalId('8812128812')
            ->setBirthDate('30-12-1992')
            ->setCustomerEmail('travis@example.com')
    
    
            // Billing Address
            ->setBillingFirstName('Barney')
            ->setBillingLastName('Rubble')
            ->setBillingAddress1('14, Nerazdelni str')
            ->setBillingZipCode('1407')
            ->setBillingCity('Rosario')
            ->setBillingCountry('AR')
    
    
            // Risk Params
            ->setRiskUserId('123456');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    This request is not implemented yet
    
    This request is not implemented yet
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>tarjeta_shopping</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <return_success_url>http://www.example.com/success</return_success_url>
        <return_failure_url>http://www.example.com/failure</return_failure_url>
        <amount>100</amount>
        <currency>USD</currency>
        <consumer_reference>barney_rubble</consumer_reference>
        <national_id>8812128812</national_id>
        <birth_date>30-12-1992</birth_date>
        <customer_email>travis@example.com</customer_email>
        <billing_address>
          <first_name>Barney</first_name>
          <last_name>Rubble</last_name>
          <address1>14, Nerazdelni str</address1>
          <zip_code>1407</zip_code>
          <city>Rosario</city>
          <country>AR</country>
        </billing_address>
        <risk_params>
          <user_id>123456</user_id>
        </risk_params>
      </payment_transaction>'
    
    

    Request Parameters

    Parameter Required Format Description
    transaction_type required string(255) The transaction type: tarjeta_shopping
    transaction_id required string(255) Unique transaction id defined by merchant
    usage optional string(255) Description of the transaction for later use.
    remote_ip required* IPv4 or IPv6 address IPv4 or IPv6 address of customer
    return_success_url required url URL where customer is sent to after successful payment
    return_failure_url required url URL where customer is sent to after unsuccessful payment
    amount required integer > 0 Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency required string(3) Currency code in ISO 4217
    consumer_reference required string(20) Consumer reference is a unique consumer identifier
    national_id required string(20) National Identifier number of the customer
    birth_date optional string(20) Birth date of the customer
    customer_email required e-mail address Must contain valid e-mail of customer
    billing_address required See Required vs Optional API params for details
       first_name required* string(255) Customer first name
       last_name required* string(255) Customer last name
       address1 required* string(255) Primary address
       address2 required* string(255) Secondary address
       zip_code required* string ZIP code
       city required* string(255) City
       state required* string(2) State code in ISO 3166-2, required for USA and Canada
       country required string(2) Country code in ISO 3166
    shipping_address optional
       first_name optional string(255) Customer first name
       last_name optional string(255) Customer last name
       address1 optional string(255) Primary address
       address2 optional string(255) Secondary address
       zip_code optional string ZIP code
       city optional string(255) City
       state optional string(2) State code in ISO 3166-2, required for USA and Canada
       country optional string(2) Country code in ISO 3166

    required* = conditionally required

    Supported countries:

    Country
    AR

    Successful Response

    stdClass Object
    (
        [transaction_type] => tarjeta_shopping
        [status] => pending_async
        [mode] => live
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [technical_message] => Transaction successful!
        [message] => Transaction successful!
        [redirect_url] => https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:21.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
    )
    
    This request is not implemented yet
    
    This request is not implemented yet
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>tarjeta_shopping</transaction_type>
        <status>pending_async</status>
        <mode>live</mode>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <technical_message>Transaction successful!</technical_message>
        <message>Transaction successful!</message>
        <redirect_url>https://staging.gate.e-comprocessing.net/redirect/to_acquirer/649e1ff35c61</redirect_url>
        <timestamp>2021-09-02T14:21:21Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Successful Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    redirect_url url URL where user has to be redirected to complete payment process. It is available for asynchronous mode
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Error Response

    stdClass Object
    (
        [transaction_type] => tarjeta_shopping
        [status] => error
        [mode] => live
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [code] => 110
        [message] => Something went wrong, please contact support!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:21.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [amount] => 100
        [currency] => USD
        [sent_to_acquirer] => true
    )
    
    This request is not implemented yet
    
    This request is not implemented yet
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>tarjeta_shopping</transaction_type>
        <status>error</status>
        <mode>live</mode>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <code>110</code>
        <message>Something went wrong, please contact support!</message>
        <timestamp>2021-09-02T14:21:21Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <amount>100</amount>
        <currency>USD</currency>
        <sent_to_acquirer>true</sent_to_acquirer>
      </payment_response>
    

    Error Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    code integer Error code according to Error code table
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    amount integer Amount of transaction in minor currency unit, see Currency and Amount Handling for details
    currency string(255) Currency code in ISO 4217
    sent_to_acquirer string(255) "true" or "false"

    Non-financial Transactions

    Account Verification

    Account Verification transactions are implemented using the so-called zero-value auths.

    Using an account verification transaction, the account existence for a given cardholder can be verified without any financial impact.

    Note the account verification can also carry on an AVS request, thus you can also get the AVS response code and text by the schemes along with it. Refer to section AVS Status Codes for more information.

    Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('NonFinancial\AccountVerification');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setCardHolder('Travis Pastrana')
            ->setCardNumber('4200000000000000')
            ->setExpirationMonth('12')
            ->setExpirationYear('2022')
            ->setCvv('834')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.nonfinancial.AccountVerificationRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    
    public class GenesisExample {
      public static void main()  {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        AccountVerificationRequest request = new AccountVerificationRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setCardHolder("Travis Pastrana");
        request.setCardNumber("4200000000000000");
        request.setExpirationMonth("12");
        request.setExpirationYear("2022");
        request.setCvv("834");
        request.setCustomerEmail("travis@example.com");
        request.setCustomerPhone("+1987987987987");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("10178");
        request.setBillingCity("Los Angeles");
        request.setBillingState("CA");
        request.setBillingCountry("US");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.account_verification(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "card_holder": "Travis Pastrana",
        "card_number": "4200000000000000",
        "expiration_month": "12",
        "expiration_year": 2022,
        "cvv": "834",
        "customer_email": "travis@example.com",
        "customer_phone": "+1987987987987",
        "billing_address": {
          "first_name": "Travis",
          "last_name": "Pastrana",
          "address1": "Muster Str. 12",
          "zip_code": "10178",
          "city": "Los Angeles",
          "state": "CA",
          "country": "US"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>account_verification</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <card_holder>Travis Pastrana</card_holder>
        <card_number>4200000000000000</card_number>
        <expiration_month>12</expiration_month>
        <expiration_year>2022</expiration_year>
        <cvv>834</cvv>
        <customer_email>travis@example.com</customer_email>
        <customer_phone>+1987987987987</customer_phone>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>10178</zip_code>
          <city>Los Angeles</city>
          <state>CA</state>
          <country>US</country>
        </billing_address>
      </payment_transaction>'
    
    

    Example When Issuer Supports Oct For This Pan:

    Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('NonFinancial\AccountVerification');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setIssuerOctEnabled('true')
            ->setRemoteIp('245.253.2.12')
            ->setCardHolder('Travis Pastrana')
            ->setCardNumber('4200000000000000')
            ->setExpirationMonth('12')
            ->setExpirationYear('2022')
            ->setCvv('834')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.nonfinancial.AccountVerificationRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    
    public class GenesisExample {
      public static void main()  {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        AccountVerificationRequest request = new AccountVerificationRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setIssuerOctEnabled("true");
        request.setRemoteIp("245.253.2.12");
        request.setCardHolder("Travis Pastrana");
        request.setCardNumber("4200000000000000");
        request.setExpirationMonth("12");
        request.setExpirationYear("2022");
        request.setCvv("834");
        request.setCustomerEmail("travis@example.com");
        request.setCustomerPhone("+1987987987987");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("10178");
        request.setBillingCity("Los Angeles");
        request.setBillingState("CA");
        request.setBillingCountry("US");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.account_verification(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "issuer_oct_enabled": true,
        "remote_ip": "245.253.2.12",
        "card_holder": "Travis Pastrana",
        "card_number": "4200000000000000",
        "expiration_month": "12",
        "expiration_year": 2022,
        "cvv": "834",
        "customer_email": "travis@example.com",
        "customer_phone": "+1987987987987",
        "billing_address": {
          "first_name": "Travis",
          "last_name": "Pastrana",
          "address1": "Muster Str. 12",
          "zip_code": "10178",
          "city": "Los Angeles",
          "state": "CA",
          "country": "US"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>account_verification</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <issuer_oct_enabled>true</issuer_oct_enabled>
        <remote_ip>245.253.2.12</remote_ip>
        <card_holder>Travis Pastrana</card_holder>
        <card_number>4200000000000000</card_number>
        <expiration_month>12</expiration_month>
        <expiration_year>2022</expiration_year>
        <cvv>834</cvv>
        <customer_email>travis@example.com</customer_email>
        <customer_phone>+1987987987987</customer_phone>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>10178</zip_code>
          <city>Los Angeles</city>
          <state>CA</state>
          <country>US</country>
        </billing_address>
      </payment_transaction>'
    
    

    Request Parameters

    Parameter Required Format Description
    transaction_type required string(255) The transaction type: account_verification
    transaction_id required string(255) Unique transaction id defined by merchant
    usage optional string(255) Description of the transaction for later use.
    moto optional "true" Signifies whether a MOTO (mail order telephone order) transaction is performed. Contact tech-support@e-comprocessing.com for more details
    issuer_oct_enabled optional true Supported only by Visa. When submitted, Visa checks if the given PAN supports OCTs at the issuer. When not submitted, it is interpreted as a normal account verification.
    remote_ip required* IPv4 or IPv6 address IPv4 or IPv6 address of customer
    card_holder required string(255) Full name of customer as printed on credit card (first name and last name at least)
    card_number required 13 to 16 digits Complete cc number of customer
    cvv required* 3 to 4 digits cvv of cc, requirement is based on terminal configuration
    expiration_month required MM Expiration month as printed on credit card
    expiration_year required YYYY Expiration year as printed on credit card
    token optional string(36) See Tokenization for more details. If present, the cardholder parameters can be omitted. Cannot be set together with remember_card
    remember_card optional "true" See Tokenize. Tokenizes cardholder parameters. Cannot be set together with token
    consumer_id optional string(10) See Consumers and Tokenization. Combine with remember_card to tokenize or with token to use token
    credential_on_file required* See Credential On File (COF) for more details
       initial_customer_initiated required* string(18) Initial transaction initiated by customer. Required for external tokenization, and optional for gateway-based tokenization
       subsequent_customer_initiated required* string(18) Subsequent transaction initiated by customer. Required for external tokenization, and optional for gateway-based tokenization
       merchant_unscheduled optional string(20) Transaction is initiated by the merchant
    customer_email required* e-mail address Must contain valid e-mail of customer
    customer_phone required* string(32) Must contain valid phone number of customer
    document_id required* sring(20) Document ID of the consumer. See Document ID Parameter for more details.
    billing_address required See Required vs Optional API params for details
       first_name required* string(255) Customer first name
       last_name required* string(255) Customer last name
       address1 required* string(255) Primary address
       address2 required* string(255) Secondary address
       zip_code required* string ZIP code
       city required* string(255) City
       state required* string(2) State code in ISO 3166-2, required for USA and Canada
       country required* string(2) Country code in ISO 3166
    shipping_address optional
       first_name optional string(255) Customer first name
       last_name optional string(255) Customer last name
       address1 optional string(255) Primary address
       address2 optional string(255) Secondary address
       zip_code optional string ZIP code
       city optional string(255) City
       state optional string(2) State code in ISO 3166-2, required for USA and Canada
       country optional string(2) Country code in ISO 3166

    required* = conditionally required

    Successful Response

    stdClass Object
    (
        [transaction_type] => account_verification
        [status] => approved
        [mode] => live
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [consumer_id] => 123456
        [token] => ee946db8-d7db-4bb7-b608-b65b153e127d
        [avs_response_code] => 5I
        [avs_response_text] => Response provided by issuer processor; Address information not verified
        [authorization_code] => 345678
        [response_code] => 00
        [technical_message] => Transaction successful!
        [message] => Transaction successful!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:21.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [sent_to_acquirer] => true
        [scheme_transaction_identifier] => 019091214161031
        [scheme_settlement_date] => 0903
    )
    
    <payment_response content=[
        <transaction_type content=[account_verification]>
        <status content=[approved]>
        <mode content=[live]>
        <transaction_id content=[119643250547501c79d8295]>
        <unique_id content=[44177a21403427eb96664a6d7e5d5d48]>
        <consumer_id content=[123456]>
        <token content=[ee946db8-d7db-4bb7-b608-b65b153e127d]>
        <avs_response_code content=[5I]>
        <avs_response_text content=[Response provided by issuer processor; Address information not verified]>
        <authorization_code content=[345678]>
        <response_code content=[00]>
        <technical_message content=[Transaction successful!]>
        <message content=[Transaction successful!]>
        <timestamp content=[2021-09-02T14:21:21Z]>
        <descriptor content=[Descriptor one]>
        <sent_to_acquirer content=[true]>
        <scheme_transaction_identifier content=[019091214161031]>
        <scheme_settlement_date content=[0903]>
    ]>
    
    {
        transaction_type: "account_verification",
        status: "approved",
        mode: "live",
        transaction_id: "119643250547501c79d8295",
        unique_id: "44177a21403427eb96664a6d7e5d5d48",
        consumer_id: "123456",
        token: "ee946db8-d7db-4bb7-b608-b65b153e127d",
        avs_response_code: "5I",
        avs_response_text: "Response provided by issuer processor; Address information not verified",
        authorization_code: "345678",
        response_code: "00",
        technical_message: "Transaction successful!",
        message: "Transaction successful!",
        timestamp: "2021-09-02T14:21:21Z",
        descriptor: "Descriptor one",
        sent_to_acquirer: "true",
        scheme_transaction_identifier: "019091214161031",
        scheme_settlement_date: "0903",
    }
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>account_verification</transaction_type>
        <status>approved</status>
        <mode>live</mode>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <consumer_id>123456</consumer_id>
        <token>ee946db8-d7db-4bb7-b608-b65b153e127d</token>
        <avs_response_code>5I</avs_response_code>
        <avs_response_text>Response provided by issuer processor; Address information not verified</avs_response_text>
        <authorization_code>345678</authorization_code>
        <response_code>00</response_code>
        <technical_message>Transaction successful!</technical_message>
        <message>Transaction successful!</message>
        <timestamp>2021-09-02T14:21:21Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <sent_to_acquirer>true</sent_to_acquirer>
        <scheme_transaction_identifier>019091214161031</scheme_transaction_identifier>
        <scheme_settlement_date>0903</scheme_settlement_date>
      </payment_response>
    

    Example When Issuer Supports Oct For This Pan:

    Successful Response

    stdClass Object
    (
        [transaction_type] => account_verification
        [status] => approved
        [issuer_oct_enabled] => true
        [mode] => live
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [consumer_id] => 123456
        [token] => ee946db8-d7db-4bb7-b608-b65b153e127d
        [avs_response_code] => 5I
        [avs_response_text] => Response provided by issuer processor; Address information not verified
        [authorization_code] => 345678
        [response_code] => 00
        [technical_message] => Transaction successful!
        [message] => Transaction successful!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:21.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [sent_to_acquirer] => true
        [scheme_transaction_identifier] => 019091214161031
        [scheme_settlement_date] => 0903
    )
    
    <payment_response content=[
        <transaction_type content=[account_verification]>
        <status content=[approved]>
        <issuer_oct_enabled content=[true]>
        <mode content=[live]>
        <transaction_id content=[119643250547501c79d8295]>
        <unique_id content=[44177a21403427eb96664a6d7e5d5d48]>
        <consumer_id content=[123456]>
        <token content=[ee946db8-d7db-4bb7-b608-b65b153e127d]>
        <avs_response_code content=[5I]>
        <avs_response_text content=[Response provided by issuer processor; Address information not verified]>
        <authorization_code content=[345678]>
        <response_code content=[00]>
        <technical_message content=[Transaction successful!]>
        <message content=[Transaction successful!]>
        <timestamp content=[2021-09-02T14:21:21Z]>
        <descriptor content=[Descriptor one]>
        <sent_to_acquirer content=[true]>
        <scheme_transaction_identifier content=[019091214161031]>
        <scheme_settlement_date content=[0903]>
    ]>
    
    {
        transaction_type: "account_verification",
        status: "approved",
        issuer_oct_enabled: "true",
        mode: "live",
        transaction_id: "119643250547501c79d8295",
        unique_id: "44177a21403427eb96664a6d7e5d5d48",
        consumer_id: "123456",
        token: "ee946db8-d7db-4bb7-b608-b65b153e127d",
        avs_response_code: "5I",
        avs_response_text: "Response provided by issuer processor; Address information not verified",
        authorization_code: "345678",
        response_code: "00",
        technical_message: "Transaction successful!",
        message: "Transaction successful!",
        timestamp: "2021-09-02T14:21:21Z",
        descriptor: "Descriptor one",
        sent_to_acquirer: "true",
        scheme_transaction_identifier: "019091214161031",
        scheme_settlement_date: "0903",
    }
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>account_verification</transaction_type>
        <status>approved</status>
        <issuer_oct_enabled>true</issuer_oct_enabled>
        <mode>live</mode>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <consumer_id>123456</consumer_id>
        <token>ee946db8-d7db-4bb7-b608-b65b153e127d</token>
        <avs_response_code>5I</avs_response_code>
        <avs_response_text>Response provided by issuer processor; Address information not verified</avs_response_text>
        <authorization_code>345678</authorization_code>
        <response_code>00</response_code>
        <technical_message>Transaction successful!</technical_message>
        <message>Transaction successful!</message>
        <timestamp>2021-09-02T14:21:21Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <sent_to_acquirer>true</sent_to_acquirer>
        <scheme_transaction_identifier>019091214161031</scheme_transaction_identifier>
        <scheme_settlement_date>0903</scheme_settlement_date>
      </payment_response>
    

    Example When Issuer Does Not Support Oct For This Pan:

    Successful Response

    stdClass Object
    (
        [transaction_type] => account_verification
        [status] => declined
        [issuer_oct_enabled] => false
        [mode] => live
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [consumer_id] => 123456
        [token] => ee946db8-d7db-4bb7-b608-b65b153e127d
        [avs_response_code] => 5I
        [avs_response_text] => Response provided by issuer processor; Address information not verified
        [authorization_code] => 345678
        [response_code] => 00
        [technical_message] => Transaction successful!
        [message] => Transaction successful!
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:21.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [sent_to_acquirer] => true
        [scheme_transaction_identifier] => 019091214161031
        [scheme_settlement_date] => 0903
    )
    
    <payment_response content=[
        <transaction_type content=[account_verification]>
        <status content=[declined]>
        <issuer_oct_enabled content=[false]>
        <mode content=[live]>
        <transaction_id content=[119643250547501c79d8295]>
        <unique_id content=[44177a21403427eb96664a6d7e5d5d48]>
        <consumer_id content=[123456]>
        <token content=[ee946db8-d7db-4bb7-b608-b65b153e127d]>
        <avs_response_code content=[5I]>
        <avs_response_text content=[Response provided by issuer processor; Address information not verified]>
        <authorization_code content=[345678]>
        <response_code content=[00]>
        <technical_message content=[Transaction successful!]>
        <message content=[Transaction successful!]>
        <timestamp content=[2021-09-02T14:21:21Z]>
        <descriptor content=[Descriptor one]>
        <sent_to_acquirer content=[true]>
        <scheme_transaction_identifier content=[019091214161031]>
        <scheme_settlement_date content=[0903]>
    ]>
    
    {
        transaction_type: "account_verification",
        status: "declined",
        issuer_oct_enabled: "false",
        mode: "live",
        transaction_id: "119643250547501c79d8295",
        unique_id: "44177a21403427eb96664a6d7e5d5d48",
        consumer_id: "123456",
        token: "ee946db8-d7db-4bb7-b608-b65b153e127d",
        avs_response_code: "5I",
        avs_response_text: "Response provided by issuer processor; Address information not verified",
        authorization_code: "345678",
        response_code: "00",
        technical_message: "Transaction successful!",
        message: "Transaction successful!",
        timestamp: "2021-09-02T14:21:21Z",
        descriptor: "Descriptor one",
        sent_to_acquirer: "true",
        scheme_transaction_identifier: "019091214161031",
        scheme_settlement_date: "0903",
    }
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>account_verification</transaction_type>
        <status>declined</status>
        <issuer_oct_enabled>false</issuer_oct_enabled>
        <mode>live</mode>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <consumer_id>123456</consumer_id>
        <token>ee946db8-d7db-4bb7-b608-b65b153e127d</token>
        <avs_response_code>5I</avs_response_code>
        <avs_response_text>Response provided by issuer processor; Address information not verified</avs_response_text>
        <authorization_code>345678</authorization_code>
        <response_code>00</response_code>
        <technical_message>Transaction successful!</technical_message>
        <message>Transaction successful!</message>
        <timestamp>2021-09-02T14:21:21Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <sent_to_acquirer>true</sent_to_acquirer>
        <scheme_transaction_identifier>019091214161031</scheme_transaction_identifier>
        <scheme_settlement_date>0903</scheme_settlement_date>
      </payment_response>
    

    Successful Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    mode string(4) Mode of the transaction’s terminal, can be test or live
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    consumer_id string(10) Consumer unique reference. See Consumers
    token string(36) Plain-text token value. See Tokenization
    moto 'true' Signifies whether a MOTO (mail order telephone order) transaction is performed. Contact tech support for more details.
    issuer_oct_enabled string Present only if merchant has submitted issuer oct enabled flag in the request to check if issuer supports OCTs for the given PAN. True if the issuer supports OCTs for this PAN, false otherwise.
    avs_response_code string(255) Generated by the card network on trying to match the billing address when performing the address verification. Optional, returned if config is enabled and acquirer supports it. Check AVS Status Codes for details.
    avs_response_text string(255) Gives the human response text for the AVS response code above. Optional, returned if config is enabled and acquirer supports it. Check AVS Status Codes for details.
    authorization_code string(6) Generated by the card network when an authorisation has occurred, used to identify that auth. Consists of 6 alphanumeric chars
    response_code string(2) Defines the issuer result of a transaction, the status of a message or some action taken or required. See issuer response codes for details
    code integer Error code according to Error code table
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    redirect_url url URL where user has to be redirected to complete payment process. It is available for asynchronous mode
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    sent_to_acquirer string(255) "true" or "false"
    scheme_transaction_identifier string(32) Id defined by card schemes. Corresponds to NETWORK DATA (field 63) for MasterCard or TRANS ID (field 62.2/125) for VISA.
    scheme_settlement_date string(4) MasterCard settlement date in MMDD format (e.g. 0903). Corresponds to NETWORK DATA (field 15).

    Error Response

    stdClass Object
    (
        [transaction_type] => account_verification
        [status] => error
        [mode] => live
        [transaction_id] => 119643250547501c79d8295
        [unique_id] => 44177a21403427eb96664a6d7e5d5d48
        [code] => 340
        [technical_message] => expiration_year is invalid
        [message] => expiration_year is invalid
        [timestamp] => DateTime Object
            (
                [date] => 2021-09-02 14:21:21.000000
                [timezone_type] => 2
                [timezone] => Z
            )
        [descriptor] => Descriptor one
        [sent_to_acquirer] => false
    )
    
    <payment_response content=[
        <transaction_type content=[account_verification]>
        <status content=[error]>
        <mode content=[live]>
        <transaction_id content=[119643250547501c79d8295]>
        <unique_id content=[44177a21403427eb96664a6d7e5d5d48]>
        <code content=[340]>
        <technical_message content=[expiration_year is invalid]>
        <message content=[expiration_year is invalid]>
        <timestamp content=[2021-09-02T14:21:21Z]>
        <descriptor content=[Descriptor one]>
        <sent_to_acquirer content=[false]>
    ]>
    
    {
        transaction_type: "account_verification",
        status: "error",
        mode: "live",
        transaction_id: "119643250547501c79d8295",
        unique_id: "44177a21403427eb96664a6d7e5d5d48",
        code: "340",
        technical_message: "expiration_year is invalid",
        message: "expiration_year is invalid",
        timestamp: "2021-09-02T14:21:21Z",
        descriptor: "Descriptor one",
        sent_to_acquirer: "false",
    }
    
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_response>
        <transaction_type>account_verification</transaction_type>
        <status>error</status>
        <mode>live</mode>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
        <code>340</code>
        <technical_message>expiration_year is invalid</technical_message>
        <message>expiration_year is invalid</message>
        <timestamp>2021-09-02T14:21:21Z</timestamp>
        <descriptor>Descriptor one</descriptor>
        <sent_to_acquirer>false</sent_to_acquirer>
      </payment_response>
    

    Error Response Parameters

    Parameter Type Description
    transaction_type string(255) The transaction type
    status string(255) Status of the transaction, see states
    transaction_id string(255) Unique transaction id defined by merchant
    unique_id string(32) Unique id defined by gate (must later be used if capturing, voiding or refunding a transaction)
    gaming 'true' Signifies whether a gaming transaction is performed. Gaming transactions usually use MCC 7995, contact tech support for more details.
    moto 'true' Signifies whether a MOTO (mail order telephone order) transaction is performed. Contact tech support for more details.
    code integer Error code according to Error code table
    technical_message string(255) Technical error message (for internal use only, not to be displayed to users).
    message string(255) Human readable error message which can be displayed to users.
    mode string(4) Mode of the transaction’s terminal, can be test or live
    timestamp string(255) Time when the transaction was processed in ISO 8601 Combined date and time e.g. 2007-08- 30T17:46:11Z
    descriptor string(255) Static descriptor MID info as configured on the gateway
    dynamic_descriptor_params section Optional, returned only if dynamic desc params are submitted on the API. Note here that the formatted dyn desc params are returned - as they would be submitted to the schemes for settlement.

    3DS Card

    To learn more about 3D Secure and supported authentication protocols, please, visit 3D-Secure Section.

    Authorize 3D

    Authorize3D transactions basically have the same request as standard authorize transactions.

    Visa Synchronous 3 D Sv1 Fully Authenticated Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Authorize3D');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setCardHolder('Travis Pastrana')
            ->setCardNumber('4711100000000000')
            ->setExpirationMonth('12')
            ->setExpirationYear('2022')
            ->setCvv('834')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US')
    
    
            // MPI Synchronous 3DSv1
            ->setMpiEci('05')
            ->setMpiCavv('MDAwMDAwMDAwMDAxMTA2Njk5NFg=')
            ->setMpiXid('0pv62FIrT5qQODB7DCewKgEBAQI=')
            ->setMpiProtocolVersion('1')
    
    
            // Sca Params
            ->setScaExemption('trusted_merchant')
            ->setScaVisaMerchantId('00000000');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.card.Authorize3DRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    
    public class GenesisExample {
      public static void main()  {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        Authorize3DRequest request = new Authorize3DRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setAmount(new BigDecimal(100));
        request.setCurrency("USD");
        request.setCardHolder("Travis Pastrana");
        request.setCardNumber("4711100000000000");
        request.setExpirationMonth("12");
        request.setExpirationYear("2022");
        request.setCvv("834");
        request.setCustomerEmail("travis@example.com");
        request.setCustomerPhone("+1987987987987");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("10178");
        request.setBillingCity("Los Angeles");
        request.setBillingState("CA");
        request.setBillingCountry("US");
    
    
        // Mpi Synchronous V1
        request.setMpiParams("{"eci"=>"05", "cavv"=>"MDAwMDAwMDAwMDAxMTA2Njk5NFg=", "xid"=>"0pv62FIrT5qQODB7DCewKgEBAQI=", "protocol_version"=>"1"}");
    
    
        // Sca Params
        request.setScaExemption("trusted_merchant");
        request.setScaVisaMerchantId("00000000");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.authorize3d(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "amount": "100",
        "currency": "USD",
        "card_holder": "Travis Pastrana",
        "card_number": "4711100000000000",
        "expiration_month": "12",
        "expiration_year": 2022,
        "cvv": "834",
        "customer_email": "travis@example.com",
        "customer_phone": "+1987987987987",
        "business_attributes": {
          "event_start_date": "03-10-2021",
          "event_end_date": "13-10-2021",
          "event_organizer_id": "20192375",
          "event_id": "1912"
        },
        "billing_address": {
          "first_name": "Travis",
          "last_name": "Pastrana",
          "address1": "Muster Str. 12",
          "zip_code": "10178",
          "city": "Los Angeles",
          "state": "CA",
          "country": "US"
        },
        "mpi_params": {
          "eci": "05",
          "cavv": "MDAwMDAwMDAwMDAxMTA2Njk5NFg=",
          "xid": "0pv62FIrT5qQODB7DCewKgEBAQI=",
          "protocol_version": "1"
        },
        "sca_params": {
          "exemption": "trusted_merchant",
          "visa_merchant_id": "00000000"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>authorize3d</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <amount>100</amount>
        <currency>USD</currency>
        <card_holder>Travis Pastrana</card_holder>
        <card_number>4711100000000000</card_number>
        <expiration_month>12</expiration_month>
        <expiration_year>2022</expiration_year>
        <cvv>834</cvv>
        <customer_email>travis@example.com</customer_email>
        <customer_phone>+1987987987987</customer_phone>
        <business_attributes>
          <event_start_date>03-10-2021</event_start_date>
          <event_end_date>13-10-2021</event_end_date>
          <event_organizer_id>20192375</event_organizer_id>
          <event_id>1912</event_id>
        </business_attributes>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>10178</zip_code>
          <city>Los Angeles</city>
          <state>CA</state>
          <country>US</country>
        </billing_address>
        <mpi_params>
          <eci>05</eci>
          <cavv>MDAwMDAwMDAwMDAxMTA2Njk5NFg=</cavv>
          <xid>0pv62FIrT5qQODB7DCewKgEBAQI=</xid>
          <protocol_version>1</protocol_version>
        </mpi_params>
        <sca_params>
          <exemption>trusted_merchant</exemption>
          <visa_merchant_id>00000000</visa_merchant_id>
        </sca_params>
      </payment_transaction>'
    
    

    Master Synchronous 3 D Sv1 Fully Authenticated Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Authorize3D');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setCardHolder('Travis Pastrana')
            ->setCardNumber('5555555555559997')
            ->setExpirationMonth('12')
            ->setExpirationYear('2022')
            ->setCvv('834')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US')
    
    
            // MPI Synchronous 3DSv1
            ->setMpiEci('02')
            ->setMpiCavv('jlk/+AMJkDARYwAAA2SqCUQAAAA=')
            ->setMpiXid('UVg1QThJU1FVV1hWWVQxQkxZNU8=')
            ->setMpiProtocolVersion('1');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.card.Authorize3DRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    
    public class GenesisExample {
      public static void main()  {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        Authorize3DRequest request = new Authorize3DRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setAmount(new BigDecimal(100));
        request.setCurrency("USD");
        request.setCardHolder("Travis Pastrana");
        request.setCardNumber("5555555555559997");
        request.setExpirationMonth("12");
        request.setExpirationYear("2022");
        request.setCvv("834");
        request.setCustomerEmail("travis@example.com");
        request.setCustomerPhone("+1987987987987");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("10178");
        request.setBillingCity("Los Angeles");
        request.setBillingState("CA");
        request.setBillingCountry("US");
    
    
        // Mpi Synchronous V1
        request.setMpiParams("{"eci"=>"02", "cavv"=>"jlk/+AMJkDARYwAAA2SqCUQAAAA=", "xid"=>"UVg1QThJU1FVV1hWWVQxQkxZNU8=", "protocol_version"=>"1"}");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.authorize3d(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "amount": "100",
        "currency": "USD",
        "card_holder": "Travis Pastrana",
        "card_number": "5555555555559997",
        "expiration_month": "12",
        "expiration_year": 2022,
        "cvv": "834",
        "customer_email": "travis@example.com",
        "customer_phone": "+1987987987987",
        "business_attributes": {
          "event_start_date": "03-10-2021",
          "event_end_date": "13-10-2021",
          "event_organizer_id": "20192375",
          "event_id": "1912"
        },
        "billing_address": {
          "first_name": "Travis",
          "last_name": "Pastrana",
          "address1": "Muster Str. 12",
          "zip_code": "10178",
          "city": "Los Angeles",
          "state": "CA",
          "country": "US"
        },
        "mpi_params": {
          "eci": "02",
          "cavv": "jlk/+AMJkDARYwAAA2SqCUQAAAA=",
          "xid": "UVg1QThJU1FVV1hWWVQxQkxZNU8=",
          "protocol_version": "1"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>authorize3d</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <amount>100</amount>
        <currency>USD</currency>
        <card_holder>Travis Pastrana</card_holder>
        <card_number>5555555555559997</card_number>
        <expiration_month>12</expiration_month>
        <expiration_year>2022</expiration_year>
        <cvv>834</cvv>
        <customer_email>travis@example.com</customer_email>
        <customer_phone>+1987987987987</customer_phone>
        <business_attributes>
          <event_start_date>03-10-2021</event_start_date>
          <event_end_date>13-10-2021</event_end_date>
          <event_organizer_id>20192375</event_organizer_id>
          <event_id>1912</event_id>
        </business_attributes>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>10178</zip_code>
          <city>Los Angeles</city>
          <state>CA</state>
          <country>US</country>
        </billing_address>
        <mpi_params>
          <eci>02</eci>
          <cavv>jlk/+AMJkDARYwAAA2SqCUQAAAA=</cavv>
          <xid>UVg1QThJU1FVV1hWWVQxQkxZNU8=</xid>
          <protocol_version>1</protocol_version>
        </mpi_params>
      </payment_transaction>'
    
    

    Visa Synchronous 3 D Sv1 Attempted Authentication Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Authorize3D');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setCardHolder('Travis Pastrana')
            ->setCardNumber('4711100000000000')
            ->setExpirationMonth('12')
            ->setExpirationYear('2022')
            ->setCvv('834')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US')
    
    
            // MPI Synchronous 3DSv1
            ->setMpiEci('06')
            ->setMpiCavv('MDAwMDAwMDAwMDAxMTA2Njk5NFg=')
            ->setMpiXid('0pv62FIrT5qQODB7DCewKgEBAQI=')
            ->setMpiProtocolVersion('1')
    
    
            // Sca Params
            ->setScaExemption('trusted_merchant')
            ->setScaVisaMerchantId('00000000');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.card.Authorize3DRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    
    public class GenesisExample {
      public static void main()  {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        Authorize3DRequest request = new Authorize3DRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setAmount(new BigDecimal(100));
        request.setCurrency("USD");
        request.setCardHolder("Travis Pastrana");
        request.setCardNumber("4711100000000000");
        request.setExpirationMonth("12");
        request.setExpirationYear("2022");
        request.setCvv("834");
        request.setCustomerEmail("travis@example.com");
        request.setCustomerPhone("+1987987987987");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("10178");
        request.setBillingCity("Los Angeles");
        request.setBillingState("CA");
        request.setBillingCountry("US");
    
    
        // Mpi Synchronous V1
        request.setMpiParams("{"eci"=>"06", "cavv"=>"MDAwMDAwMDAwMDAxMTA2Njk5NFg=", "xid"=>"0pv62FIrT5qQODB7DCewKgEBAQI=", "protocol_version"=>"1"}");
    
    
        // Sca Params
        request.setScaExemption("trusted_merchant");
        request.setScaVisaMerchantId("00000000");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.authorize3d(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "amount": "100",
        "currency": "USD",
        "card_holder": "Travis Pastrana",
        "card_number": "4711100000000000",
        "expiration_month": "12",
        "expiration_year": 2022,
        "cvv": "834",
        "customer_email": "travis@example.com",
        "customer_phone": "+1987987987987",
        "business_attributes": {
          "event_start_date": "03-10-2021",
          "event_end_date": "13-10-2021",
          "event_organizer_id": "20192375",
          "event_id": "1912"
        },
        "billing_address": {
          "first_name": "Travis",
          "last_name": "Pastrana",
          "address1": "Muster Str. 12",
          "zip_code": "10178",
          "city": "Los Angeles",
          "state": "CA",
          "country": "US"
        },
        "mpi_params": {
          "eci": "06",
          "cavv": "MDAwMDAwMDAwMDAxMTA2Njk5NFg=",
          "xid": "0pv62FIrT5qQODB7DCewKgEBAQI=",
          "protocol_version": "1"
        },
        "sca_params": {
          "exemption": "trusted_merchant",
          "visa_merchant_id": "00000000"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>authorize3d</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <amount>100</amount>
        <currency>USD</currency>
        <card_holder>Travis Pastrana</card_holder>
        <card_number>4711100000000000</card_number>
        <expiration_month>12</expiration_month>
        <expiration_year>2022</expiration_year>
        <cvv>834</cvv>
        <customer_email>travis@example.com</customer_email>
        <customer_phone>+1987987987987</customer_phone>
        <business_attributes>
          <event_start_date>03-10-2021</event_start_date>
          <event_end_date>13-10-2021</event_end_date>
          <event_organizer_id>20192375</event_organizer_id>
          <event_id>1912</event_id>
        </business_attributes>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>10178</zip_code>
          <city>Los Angeles</city>
          <state>CA</state>
          <country>US</country>
        </billing_address>
        <mpi_params>
          <eci>06</eci>
          <cavv>MDAwMDAwMDAwMDAxMTA2Njk5NFg=</cavv>
          <xid>0pv62FIrT5qQODB7DCewKgEBAQI=</xid>
          <protocol_version>1</protocol_version>
        </mpi_params>
        <sca_params>
          <exemption>trusted_merchant</exemption>
          <visa_merchant_id>00000000</visa_merchant_id>
        </sca_params>
      </payment_transaction>'
    
    

    Master Synchronous 3 D Sv1 Attempted Authentication Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Authorize3D');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setCardHolder('Travis Pastrana')
            ->setCardNumber('5555555555559997')
            ->setExpirationMonth('12')
            ->setExpirationYear('2022')
            ->setCvv('834')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US')
    
    
            // MPI Synchronous 3DSv1
            ->setMpiEci('01')
            ->setMpiCavv('hlk/+AMJkDARYwAAA2SqCUQAAAA=')
            ->setMpiXid('UVg1QThJU1FVV1hWWVQxQkxZNU8=')
            ->setMpiProtocolVersion('1');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.card.Authorize3DRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    
    public class GenesisExample {
      public static void main()  {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        Authorize3DRequest request = new Authorize3DRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setAmount(new BigDecimal(100));
        request.setCurrency("USD");
        request.setCardHolder("Travis Pastrana");
        request.setCardNumber("5555555555559997");
        request.setExpirationMonth("12");
        request.setExpirationYear("2022");
        request.setCvv("834");
        request.setCustomerEmail("travis@example.com");
        request.setCustomerPhone("+1987987987987");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("10178");
        request.setBillingCity("Los Angeles");
        request.setBillingState("CA");
        request.setBillingCountry("US");
    
    
        // Mpi Synchronous V1
        request.setMpiParams("{"eci"=>"01", "cavv"=>"hlk/+AMJkDARYwAAA2SqCUQAAAA=", "xid"=>"UVg1QThJU1FVV1hWWVQxQkxZNU8=", "protocol_version"=>"1"}");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.authorize3d(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "amount": "100",
        "currency": "USD",
        "card_holder": "Travis Pastrana",
        "card_number": "5555555555559997",
        "expiration_month": "12",
        "expiration_year": 2022,
        "cvv": "834",
        "customer_email": "travis@example.com",
        "customer_phone": "+1987987987987",
        "business_attributes": {
          "event_start_date": "03-10-2021",
          "event_end_date": "13-10-2021",
          "event_organizer_id": "20192375",
          "event_id": "1912"
        },
        "billing_address": {
          "first_name": "Travis",
          "last_name": "Pastrana",
          "address1": "Muster Str. 12",
          "zip_code": "10178",
          "city": "Los Angeles",
          "state": "CA",
          "country": "US"
        },
        "mpi_params": {
          "eci": "01",
          "cavv": "hlk/+AMJkDARYwAAA2SqCUQAAAA=",
          "xid": "UVg1QThJU1FVV1hWWVQxQkxZNU8=",
          "protocol_version": "1"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>authorize3d</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <amount>100</amount>
        <currency>USD</currency>
        <card_holder>Travis Pastrana</card_holder>
        <card_number>5555555555559997</card_number>
        <expiration_month>12</expiration_month>
        <expiration_year>2022</expiration_year>
        <cvv>834</cvv>
        <customer_email>travis@example.com</customer_email>
        <customer_phone>+1987987987987</customer_phone>
        <business_attributes>
          <event_start_date>03-10-2021</event_start_date>
          <event_end_date>13-10-2021</event_end_date>
          <event_organizer_id>20192375</event_organizer_id>
          <event_id>1912</event_id>
        </business_attributes>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>10178</zip_code>
          <city>Los Angeles</city>
          <state>CA</state>
          <country>US</country>
        </billing_address>
        <mpi_params>
          <eci>01</eci>
          <cavv>hlk/+AMJkDARYwAAA2SqCUQAAAA=</cavv>
          <xid>UVg1QThJU1FVV1hWWVQxQkxZNU8=</xid>
          <protocol_version>1</protocol_version>
        </mpi_params>
      </payment_transaction>'
    
    

    Asynchronous 3 D Sv1 Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Authorize3D');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setCardHolder('Travis Pastrana')
            ->setCardNumber('4200000000000000')
            ->setExpirationMonth('12')
            ->setExpirationYear('2022')
            ->setCvv('834')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US')
            ->setNotificationUrl('https://www.example.com/notification')
            ->setReturnSuccessUrl('http://www.example.com/success')
            ->setReturnFailureUrl('http://www.example.com/failure');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.card.Authorize3DRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    public class GenesisExample {
      public static void main() throws MalformedURLException {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        Authorize3DRequest request = new Authorize3DRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setAmount(new BigDecimal(100));
        request.setCurrency("USD");
        request.setCardHolder("Travis Pastrana");
        request.setCardNumber("4200000000000000");
        request.setExpirationMonth("12");
        request.setExpirationYear("2022");
        request.setCvv("834");
        request.setCustomerEmail("travis@example.com");
        request.setCustomerPhone("+1987987987987");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("10178");
        request.setBillingCity("Los Angeles");
        request.setBillingState("CA");
        request.setBillingCountry("US");
        request.setNotificationUrl(new URL("https://www.example.com/notification"));
        request.setReturnSuccessUrl(new URL("http://www.example.com/success"));
        request.setReturnFailureUrl(new URL("http://www.example.com/failure"));
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.authorize3d(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "amount": "100",
        "currency": "USD",
        "card_holder": "Travis Pastrana",
        "card_number": "4200000000000000",
        "expiration_month": "12",
        "expiration_year": 2022,
        "cvv": "834",
        "customer_email": "travis@example.com",
        "customer_phone": "+1987987987987",
        "billing_address": {
          "first_name": "Travis",
          "last_name": "Pastrana",
          "address1": "Muster Str. 12",
          "zip_code": "10178",
          "city": "Los Angeles",
          "state": "CA",
          "country": "US"
        },
        "notification_url": "https://www.example.com/notification",
        "return_success_url": "http://www.example.com/success",
        "return_failure_url": "http://www.example.com/failure"
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>authorize3d</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <amount>100</amount>
        <currency>USD</currency>
        <card_holder>Travis Pastrana</card_holder>
        <card_number>4200000000000000</card_number>
        <expiration_month>12</expiration_month>
        <expiration_year>2022</expiration_year>
        <cvv>834</cvv>
        <customer_email>travis@example.com</customer_email>
        <customer_phone>+1987987987987</customer_phone>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>10178</zip_code>
          <city>Los Angeles</city>
          <state>CA</state>
          <country>US</country>
        </billing_address>
        <notification_url>https://www.example.com/notification</notification_url>
        <return_success_url>http://www.example.com/success</return_success_url>
        <return_failure_url>http://www.example.com/failure</return_failure_url>
      </payment_transaction>'
    
    

    Visa Synchronous 3 D Sv2 Fully Authenticated Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Authorize3D');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setCardHolder('Travis Pastrana')
            ->setCardNumber('4012000000060085')
            ->setExpirationMonth('12')
            ->setExpirationYear('2022')
            ->setCvv('834')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US')
    
    
            // MPI Synchronous 3DSv2
            ->setMpiEci('05')
            ->setMpiCavv('MDAwMDAwMDAwMDAxMTA2Njk5NFg=')
            ->setMpiProtocolVersion('2')
            ->setMpiDirectoryServerId('23402340-eef0-0139-c108-00505690f91e')
    
    
            // Sca Params
            ->setScaExemption('trusted_merchant')
            ->setScaVisaMerchantId('00000000');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.card.Authorize3DRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    
    public class GenesisExample {
      public static void main()  {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        Authorize3DRequest request = new Authorize3DRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setAmount(new BigDecimal(100));
        request.setCurrency("USD");
        request.setCardHolder("Travis Pastrana");
        request.setCardNumber("4012000000060085");
        request.setExpirationMonth("12");
        request.setExpirationYear("2022");
        request.setCvv("834");
        request.setCustomerEmail("travis@example.com");
        request.setCustomerPhone("+1987987987987");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("10178");
        request.setBillingCity("Los Angeles");
        request.setBillingState("CA");
        request.setBillingCountry("US");
    
    
        // Mpi Synchronous V2
        request.setMpiParams("{"eci"=>"05", "cavv"=>"MDAwMDAwMDAwMDAxMTA2Njk5NFg=", "protocol_version"=>"2", "directory_server_id"=>"23402340-eef0-0139-c108-00505690f91e"}");
    
    
        // Sca Params
        request.setScaExemption("trusted_merchant");
        request.setScaVisaMerchantId("00000000");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.authorize3d(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "amount": "100",
        "currency": "USD",
        "card_holder": "Travis Pastrana",
        "card_number": "4012000000060085",
        "expiration_month": "12",
        "expiration_year": 2022,
        "cvv": "834",
        "customer_email": "travis@example.com",
        "customer_phone": "+1987987987987",
        "business_attributes": {
          "event_start_date": "03-10-2021",
          "event_end_date": "13-10-2021",
          "event_organizer_id": "20192375",
          "event_id": "1912"
        },
        "billing_address": {
          "first_name": "Travis",
          "last_name": "Pastrana",
          "address1": "Muster Str. 12",
          "zip_code": "10178",
          "city": "Los Angeles",
          "state": "CA",
          "country": "US"
        },
        "mpi_params": {
          "eci": "05",
          "cavv": "MDAwMDAwMDAwMDAxMTA2Njk5NFg=",
          "protocol_version": "2",
          "directory_server_id": "23402340-eef0-0139-c108-00505690f91e"
        },
        "sca_params": {
          "exemption": "trusted_merchant",
          "visa_merchant_id": "00000000"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>authorize3d</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <amount>100</amount>
        <currency>USD</currency>
        <card_holder>Travis Pastrana</card_holder>
        <card_number>4012000000060085</card_number>
        <expiration_month>12</expiration_month>
        <expiration_year>2022</expiration_year>
        <cvv>834</cvv>
        <customer_email>travis@example.com</customer_email>
        <customer_phone>+1987987987987</customer_phone>
        <business_attributes>
          <event_start_date>03-10-2021</event_start_date>
          <event_end_date>13-10-2021</event_end_date>
          <event_organizer_id>20192375</event_organizer_id>
          <event_id>1912</event_id>
        </business_attributes>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>10178</zip_code>
          <city>Los Angeles</city>
          <state>CA</state>
          <country>US</country>
        </billing_address>
        <mpi_params>
          <eci>05</eci>
          <cavv>MDAwMDAwMDAwMDAxMTA2Njk5NFg=</cavv>
          <protocol_version>2</protocol_version>
          <directory_server_id>23402340-eef0-0139-c108-00505690f91e</directory_server_id>
        </mpi_params>
        <sca_params>
          <exemption>trusted_merchant</exemption>
          <visa_merchant_id>00000000</visa_merchant_id>
        </sca_params>
      </payment_transaction>'
    
    

    Master Synchronous 3 D Sv2 Fully Authenticated Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Authorize3D');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setCardHolder('Travis Pastrana')
            ->setCardNumber('5555555555559997')
            ->setExpirationMonth('12')
            ->setExpirationYear('2022')
            ->setCvv('834')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US')
    
    
            // MPI Synchronous 3DSv2
            ->setMpiEci('02')
            ->setMpiCavv('kAOImea0C/2ta1NZl4Hhwslmomqj')
            ->setMpiProtocolVersion('2')
            ->setMpiDirectoryServerId('2346b040-eef0-0139-c108-00505690f91e');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.card.Authorize3DRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    
    public class GenesisExample {
      public static void main()  {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        Authorize3DRequest request = new Authorize3DRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setAmount(new BigDecimal(100));
        request.setCurrency("USD");
        request.setCardHolder("Travis Pastrana");
        request.setCardNumber("5555555555559997");
        request.setExpirationMonth("12");
        request.setExpirationYear("2022");
        request.setCvv("834");
        request.setCustomerEmail("travis@example.com");
        request.setCustomerPhone("+1987987987987");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("10178");
        request.setBillingCity("Los Angeles");
        request.setBillingState("CA");
        request.setBillingCountry("US");
    
    
        // Mpi Synchronous V2
        request.setMpiParams("{"eci"=>"02", "cavv"=>"kAOImea0C/2ta1NZl4Hhwslmomqj", "protocol_version"=>"2", "directory_server_id"=>"2346b040-eef0-0139-c108-00505690f91e"}");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.authorize3d(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "amount": "100",
        "currency": "USD",
        "card_holder": "Travis Pastrana",
        "card_number": "5555555555559997",
        "expiration_month": "12",
        "expiration_year": 2022,
        "cvv": "834",
        "customer_email": "travis@example.com",
        "customer_phone": "+1987987987987",
        "business_attributes": {
          "event_start_date": "03-10-2021",
          "event_end_date": "13-10-2021",
          "event_organizer_id": "20192375",
          "event_id": "1912"
        },
        "billing_address": {
          "first_name": "Travis",
          "last_name": "Pastrana",
          "address1": "Muster Str. 12",
          "zip_code": "10178",
          "city": "Los Angeles",
          "state": "CA",
          "country": "US"
        },
        "mpi_params": {
          "eci": "02",
          "cavv": "kAOImea0C/2ta1NZl4Hhwslmomqj",
          "protocol_version": "2",
          "directory_server_id": "2346b040-eef0-0139-c108-00505690f91e"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>authorize3d</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <amount>100</amount>
        <currency>USD</currency>
        <card_holder>Travis Pastrana</card_holder>
        <card_number>5555555555559997</card_number>
        <expiration_month>12</expiration_month>
        <expiration_year>2022</expiration_year>
        <cvv>834</cvv>
        <customer_email>travis@example.com</customer_email>
        <customer_phone>+1987987987987</customer_phone>
        <business_attributes>
          <event_start_date>03-10-2021</event_start_date>
          <event_end_date>13-10-2021</event_end_date>
          <event_organizer_id>20192375</event_organizer_id>
          <event_id>1912</event_id>
        </business_attributes>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>10178</zip_code>
          <city>Los Angeles</city>
          <state>CA</state>
          <country>US</country>
        </billing_address>
        <mpi_params>
          <eci>02</eci>
          <cavv>kAOImea0C/2ta1NZl4Hhwslmomqj</cavv>
          <protocol_version>2</protocol_version>
          <directory_server_id>2346b040-eef0-0139-c108-00505690f91e</directory_server_id>
        </mpi_params>
      </payment_transaction>'
    
    

    Visa Synchronous 3 D Sv2 Attempted Authentication Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Authorize3D');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setCardHolder('Travis Pastrana')
            ->setCardNumber('4012000000060085')
            ->setExpirationMonth('12')
            ->setExpirationYear('2022')
            ->setCvv('834')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US')
    
    
            // MPI Synchronous 3DSv2
            ->setMpiEci('06')
            ->setMpiCavv('MDAwMDAwMDAwMDAxMTA2Njk5NFg=')
            ->setMpiProtocolVersion('2')
            ->setMpiDirectoryServerId('234de300-eef0-0139-c108-00505690f91e')
    
    
            // Sca Params
            ->setScaExemption('trusted_merchant')
            ->setScaVisaMerchantId('00000000');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.card.Authorize3DRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    
    public class GenesisExample {
      public static void main()  {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        Authorize3DRequest request = new Authorize3DRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setAmount(new BigDecimal(100));
        request.setCurrency("USD");
        request.setCardHolder("Travis Pastrana");
        request.setCardNumber("4012000000060085");
        request.setExpirationMonth("12");
        request.setExpirationYear("2022");
        request.setCvv("834");
        request.setCustomerEmail("travis@example.com");
        request.setCustomerPhone("+1987987987987");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("10178");
        request.setBillingCity("Los Angeles");
        request.setBillingState("CA");
        request.setBillingCountry("US");
    
    
        // Mpi Synchronous V2
        request.setMpiParams("{"eci"=>"06", "cavv"=>"MDAwMDAwMDAwMDAxMTA2Njk5NFg=", "protocol_version"=>"2", "directory_server_id"=>"234de300-eef0-0139-c108-00505690f91e"}");
    
    
        // Sca Params
        request.setScaExemption("trusted_merchant");
        request.setScaVisaMerchantId("00000000");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.authorize3d(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "amount": "100",
        "currency": "USD",
        "card_holder": "Travis Pastrana",
        "card_number": "4012000000060085",
        "expiration_month": "12",
        "expiration_year": 2022,
        "cvv": "834",
        "customer_email": "travis@example.com",
        "customer_phone": "+1987987987987",
        "business_attributes": {
          "event_start_date": "03-10-2021",
          "event_end_date": "13-10-2021",
          "event_organizer_id": "20192375",
          "event_id": "1912"
        },
        "billing_address": {
          "first_name": "Travis",
          "last_name": "Pastrana",
          "address1": "Muster Str. 12",
          "zip_code": "10178",
          "city": "Los Angeles",
          "state": "CA",
          "country": "US"
        },
        "mpi_params": {
          "eci": "06",
          "cavv": "MDAwMDAwMDAwMDAxMTA2Njk5NFg=",
          "protocol_version": "2",
          "directory_server_id": "234de300-eef0-0139-c108-00505690f91e"
        },
        "sca_params": {
          "exemption": "trusted_merchant",
          "visa_merchant_id": "00000000"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>authorize3d</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <amount>100</amount>
        <currency>USD</currency>
        <card_holder>Travis Pastrana</card_holder>
        <card_number>4012000000060085</card_number>
        <expiration_month>12</expiration_month>
        <expiration_year>2022</expiration_year>
        <cvv>834</cvv>
        <customer_email>travis@example.com</customer_email>
        <customer_phone>+1987987987987</customer_phone>
        <business_attributes>
          <event_start_date>03-10-2021</event_start_date>
          <event_end_date>13-10-2021</event_end_date>
          <event_organizer_id>20192375</event_organizer_id>
          <event_id>1912</event_id>
        </business_attributes>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>10178</zip_code>
          <city>Los Angeles</city>
          <state>CA</state>
          <country>US</country>
        </billing_address>
        <mpi_params>
          <eci>06</eci>
          <cavv>MDAwMDAwMDAwMDAxMTA2Njk5NFg=</cavv>
          <protocol_version>2</protocol_version>
          <directory_server_id>234de300-eef0-0139-c108-00505690f91e</directory_server_id>
        </mpi_params>
        <sca_params>
          <exemption>trusted_merchant</exemption>
          <visa_merchant_id>00000000</visa_merchant_id>
        </sca_params>
      </payment_transaction>'
    
    

    Master Synchronous 3 D Sv2 Attempted Authentication Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Authorize3D');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setCardHolder('Travis Pastrana')
            ->setCardNumber('5555555555559997')
            ->setExpirationMonth('12')
            ->setExpirationYear('2022')
            ->setCvv('834')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US')
    
    
            // MPI Synchronous 3DSv2
            ->setMpiEci('01')
            ->setMpiCavv('kFOImea0C/2ta1NZl4Hhwslmomqj')
            ->setMpiProtocolVersion('2')
            ->setMpiDirectoryServerId('23561140-eef0-0139-c108-00505690f91e');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.card.Authorize3DRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    
    public class GenesisExample {
      public static void main()  {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        Authorize3DRequest request = new Authorize3DRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setAmount(new BigDecimal(100));
        request.setCurrency("USD");
        request.setCardHolder("Travis Pastrana");
        request.setCardNumber("5555555555559997");
        request.setExpirationMonth("12");
        request.setExpirationYear("2022");
        request.setCvv("834");
        request.setCustomerEmail("travis@example.com");
        request.setCustomerPhone("+1987987987987");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("10178");
        request.setBillingCity("Los Angeles");
        request.setBillingState("CA");
        request.setBillingCountry("US");
    
    
        // Mpi Synchronous V2
        request.setMpiParams("{"eci"=>"01", "cavv"=>"kFOImea0C/2ta1NZl4Hhwslmomqj", "protocol_version"=>"2", "directory_server_id"=>"23561140-eef0-0139-c108-00505690f91e"}");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.authorize3d(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "amount": "100",
        "currency": "USD",
        "card_holder": "Travis Pastrana",
        "card_number": "5555555555559997",
        "expiration_month": "12",
        "expiration_year": 2022,
        "cvv": "834",
        "customer_email": "travis@example.com",
        "customer_phone": "+1987987987987",
        "business_attributes": {
          "event_start_date": "03-10-2021",
          "event_end_date": "13-10-2021",
          "event_organizer_id": "20192375",
          "event_id": "1912"
        },
        "billing_address": {
          "first_name": "Travis",
          "last_name": "Pastrana",
          "address1": "Muster Str. 12",
          "zip_code": "10178",
          "city": "Los Angeles",
          "state": "CA",
          "country": "US"
        },
        "mpi_params": {
          "eci": "01",
          "cavv": "kFOImea0C/2ta1NZl4Hhwslmomqj",
          "protocol_version": "2",
          "directory_server_id": "23561140-eef0-0139-c108-00505690f91e"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>authorize3d</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <amount>100</amount>
        <currency>USD</currency>
        <card_holder>Travis Pastrana</card_holder>
        <card_number>5555555555559997</card_number>
        <expiration_month>12</expiration_month>
        <expiration_year>2022</expiration_year>
        <cvv>834</cvv>
        <customer_email>travis@example.com</customer_email>
        <customer_phone>+1987987987987</customer_phone>
        <business_attributes>
          <event_start_date>03-10-2021</event_start_date>
          <event_end_date>13-10-2021</event_end_date>
          <event_organizer_id>20192375</event_organizer_id>
          <event_id>1912</event_id>
        </business_attributes>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>10178</zip_code>
          <city>Los Angeles</city>
          <state>CA</state>
          <country>US</country>
        </billing_address>
        <mpi_params>
          <eci>01</eci>
          <cavv>kFOImea0C/2ta1NZl4Hhwslmomqj</cavv>
          <protocol_version>2</protocol_version>
          <directory_server_id>23561140-eef0-0139-c108-00505690f91e</directory_server_id>
        </mpi_params>
      </payment_transaction>'
    
    

    Master Synchronous 3 D Sv2 Acquirer Exemption Accepted (Tra Already Performed) Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Authorize3D');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setCardHolder('Travis Pastrana')
            ->setCardNumber('5169750000001111')
            ->setExpirationMonth('12')
            ->setExpirationYear('2022')
            ->setCvv('834')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US')
    
    
            // MPI Synchronous 3DSv2
            ->setMpiEci('06')
            ->setMpiCavv('kNMAAAAA3S13awBkrWtTWZeBBCmy')
            ->setMpiProtocolVersion('2')
            ->setMpiDirectoryServerId('235d00f0-eef0-0139-c108-00505690f91e')
    
    
            // Sca Params
            ->setScaExemption('low_risk');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.card.Authorize3DRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    
    public class GenesisExample {
      public static void main()  {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        Authorize3DRequest request = new Authorize3DRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setAmount(new BigDecimal(100));
        request.setCurrency("USD");
        request.setCardHolder("Travis Pastrana");
        request.setCardNumber("5169750000001111");
        request.setExpirationMonth("12");
        request.setExpirationYear("2022");
        request.setCvv("834");
        request.setCustomerEmail("travis@example.com");
        request.setCustomerPhone("+1987987987987");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("10178");
        request.setBillingCity("Los Angeles");
        request.setBillingState("CA");
        request.setBillingCountry("US");
    
    
        // Mpi Synchronous V2
        request.setMpiParams("{"eci"=>"06", "cavv"=>"kNMAAAAA3S13awBkrWtTWZeBBCmy", "protocol_version"=>"2", "directory_server_id"=>"235d00f0-eef0-0139-c108-00505690f91e"}");
    
    
        // Sca Params
        request.setScaExemption("low_risk");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.authorize3d(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "amount": "100",
        "currency": "USD",
        "card_holder": "Travis Pastrana",
        "card_number": "5169750000001111",
        "expiration_month": "12",
        "expiration_year": 2022,
        "cvv": "834",
        "customer_email": "travis@example.com",
        "customer_phone": "+1987987987987",
        "business_attributes": {
          "event_start_date": "03-10-2021",
          "event_end_date": "13-10-2021",
          "event_organizer_id": "20192375",
          "event_id": "1912"
        },
        "billing_address": {
          "first_name": "Travis",
          "last_name": "Pastrana",
          "address1": "Muster Str. 12",
          "zip_code": "10178",
          "city": "Los Angeles",
          "state": "CA",
          "country": "US"
        },
        "mpi_params": {
          "eci": "06",
          "cavv": "kNMAAAAA3S13awBkrWtTWZeBBCmy",
          "protocol_version": "2",
          "directory_server_id": "235d00f0-eef0-0139-c108-00505690f91e"
        },
        "sca_params": {
          "exemption": "low_risk"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>authorize3d</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <amount>100</amount>
        <currency>USD</currency>
        <card_holder>Travis Pastrana</card_holder>
        <card_number>5169750000001111</card_number>
        <expiration_month>12</expiration_month>
        <expiration_year>2022</expiration_year>
        <cvv>834</cvv>
        <customer_email>travis@example.com</customer_email>
        <customer_phone>+1987987987987</customer_phone>
        <business_attributes>
          <event_start_date>03-10-2021</event_start_date>
          <event_end_date>13-10-2021</event_end_date>
          <event_organizer_id>20192375</event_organizer_id>
          <event_id>1912</event_id>
        </business_attributes>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>10178</zip_code>
          <city>Los Angeles</city>
          <state>CA</state>
          <country>US</country>
        </billing_address>
        <mpi_params>
          <eci>06</eci>
          <cavv>kNMAAAAA3S13awBkrWtTWZeBBCmy</cavv>
          <protocol_version>2</protocol_version>
          <directory_server_id>235d00f0-eef0-0139-c108-00505690f91e</directory_server_id>
        </mpi_params>
        <sca_params>
          <exemption>low_risk</exemption>
        </sca_params>
      </payment_transaction>'
    
    

    Visa Synchronous 3 D Sv2 Acquirer Exemption Accepted (Tra Already Performed) Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Authorize3D');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setCardHolder('Travis Pastrana')
            ->setCardNumber('4378510000000004')
            ->setExpirationMonth('12')
            ->setExpirationYear('2022')
            ->setCvv('834')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US')
    
    
            // MPI Synchronous 3DSv2
            ->setMpiEci('07')
            ->setMpiCavv('ApkCAlgGQCECEBJWNgZAAAAAAAA=')
            ->setMpiProtocolVersion('2')
            ->setMpiDirectoryServerId('23638860-eef0-0139-c108-00505690f91e')
    
    
            // Sca Params
            ->setScaExemption('low_risk');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.card.Authorize3DRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    
    public class GenesisExample {
      public static void main()  {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        Authorize3DRequest request = new Authorize3DRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setAmount(new BigDecimal(100));
        request.setCurrency("USD");
        request.setCardHolder("Travis Pastrana");
        request.setCardNumber("4378510000000004");
        request.setExpirationMonth("12");
        request.setExpirationYear("2022");
        request.setCvv("834");
        request.setCustomerEmail("travis@example.com");
        request.setCustomerPhone("+1987987987987");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("10178");
        request.setBillingCity("Los Angeles");
        request.setBillingState("CA");
        request.setBillingCountry("US");
    
    
        // Mpi Synchronous V2
        request.setMpiParams("{"eci"=>"07", "cavv"=>"ApkCAlgGQCECEBJWNgZAAAAAAAA=", "protocol_version"=>"2", "directory_server_id"=>"23638860-eef0-0139-c108-00505690f91e"}");
    
    
        // Sca Params
        request.setScaExemption("low_risk");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.authorize3d(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "amount": "100",
        "currency": "USD",
        "card_holder": "Travis Pastrana",
        "card_number": "4378510000000004",
        "expiration_month": "12",
        "expiration_year": 2022,
        "cvv": "834",
        "customer_email": "travis@example.com",
        "customer_phone": "+1987987987987",
        "business_attributes": {
          "event_start_date": "03-10-2021",
          "event_end_date": "13-10-2021",
          "event_organizer_id": "20192375",
          "event_id": "1912"
        },
        "billing_address": {
          "first_name": "Travis",
          "last_name": "Pastrana",
          "address1": "Muster Str. 12",
          "zip_code": "10178",
          "city": "Los Angeles",
          "state": "CA",
          "country": "US"
        },
        "mpi_params": {
          "eci": "07",
          "cavv": "ApkCAlgGQCECEBJWNgZAAAAAAAA=",
          "protocol_version": "2",
          "directory_server_id": "23638860-eef0-0139-c108-00505690f91e"
        },
        "sca_params": {
          "exemption": "low_risk"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>authorize3d</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <amount>100</amount>
        <currency>USD</currency>
        <card_holder>Travis Pastrana</card_holder>
        <card_number>4378510000000004</card_number>
        <expiration_month>12</expiration_month>
        <expiration_year>2022</expiration_year>
        <cvv>834</cvv>
        <customer_email>travis@example.com</customer_email>
        <customer_phone>+1987987987987</customer_phone>
        <business_attributes>
          <event_start_date>03-10-2021</event_start_date>
          <event_end_date>13-10-2021</event_end_date>
          <event_organizer_id>20192375</event_organizer_id>
          <event_id>1912</event_id>
        </business_attributes>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>10178</zip_code>
          <city>Los Angeles</city>
          <state>CA</state>
          <country>US</country>
        </billing_address>
        <mpi_params>
          <eci>07</eci>
          <cavv>ApkCAlgGQCECEBJWNgZAAAAAAAA=</cavv>
          <protocol_version>2</protocol_version>
          <directory_server_id>23638860-eef0-0139-c108-00505690f91e</directory_server_id>
        </mpi_params>
        <sca_params>
          <exemption>low_risk</exemption>
        </sca_params>
      </payment_transaction>'
    
    

    Asynchronous 3 D Sv2 Frictionless No 3ds Method Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Authorize3D');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setCardHolder('Travis Pastrana')
            ->setCardNumber('4012000000060085')
            ->setExpirationMonth('12')
            ->setExpirationYear('2022')
            ->setCvv('834')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US')
            ->setNotificationUrl('https://www.example.com/notification')
            ->setReturnSuccessUrl('http://www.example.com/success')
            ->setReturnFailureUrl('http://www.example.com/failure')
    
    
            // Threeds V2 Params
            ->setThreedsThreedsMethod('{"callback_url"=>"https://www.example.com/threeds/threeds_method/callback"}')
            ->setThreedsControl('{"device_type"=>"browser", "challenge_window_size"=>"full_screen", "challenge_indicator"=>"preference"}')
            ->setThreedsPurchase('{"category"=>"service"}')
            ->setThreedsRecurring('{"expiration_date"=>"03-03-2022", "frequency"=>30}')
            ->setThreedsMerchantRisk('{"shipping_indicator"=>"verified_address", "delivery_timeframe"=>"electronic", "reorder_items_indicator"=>"reordered", "pre_order_purchase_indicator"=>"merchandise_available", "pre_order_date"=>"03-10-2021", "gift_card"=>"true", "gift_card_count"=>"2"}')
            ->setThreedsCardHolderAccount('{"creation_date"=>"03-09-2020", "update_indicator"=>"more_than_60days", "last_change_date"=>"03-06-2021", "password_change_indicator"=>"no_change", "password_change_date"=>"19-08-2021", "shipping_address_usage_indicator"=>"current_transaction", "shipping_address_date_first_used"=>"29-08-2021", "transactions_activity_last_24_hours"=>"2", "transactions_activity_previous_year"=>"10", "provision_attempts_last_24_hours"=>"1", "purchases_count_last_6_months"=>"5", "suspicious_activity_indicator"=>"no_suspicious_observed", "registration_indicator"=>"30_to_60_days", "registration_date"=>"03-09-2019"}')
            ->setThreedsBrowser('{"accept_header"=>"*/*", "java_enabled"=>"false", "language"=>"en-GB", "color_depth"=>"24", "screen_height"=>"900", "screen_width"=>"1440", "time_zone_offset"=>"-120", "user_agent"=>"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"}')
            ->setThreedsSdk('{"interface"=>"native", "ui_types"=>{"ui_type"=>"multi_select"}, "application_id"=>"fc1650c0-5778-0138-8205-2cbc32a32d65", "encrypted_data"=>"encrypted-data-here", "ephemeral_public_key_pair"=>"public-key-pair", "max_timeout"=>"10", "reference_number"=>"sdk-reference-number-here"}')
    
    
            // Sca Params
            ->setScaExemption('low_risk');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.card.Authorize3DRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    public class GenesisExample {
      public static void main() throws MalformedURLException {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        Authorize3DRequest request = new Authorize3DRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setAmount(new BigDecimal(100));
        request.setCurrency("USD");
        request.setCardHolder("Travis Pastrana");
        request.setCardNumber("4012000000060085");
        request.setExpirationMonth("12");
        request.setExpirationYear("2022");
        request.setCvv("834");
        request.setCustomerEmail("travis@example.com");
        request.setCustomerPhone("+1987987987987");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("10178");
        request.setBillingCity("Los Angeles");
        request.setBillingState("CA");
        request.setBillingCountry("US");
        request.setNotificationUrl(new URL("https://www.example.com/notification"));
        request.setReturnSuccessUrl(new URL("http://www.example.com/success"));
        request.setReturnFailureUrl(new URL("http://www.example.com/failure"));
    
    
        // Threeds V2 Params
        request.setThreedsThreedsMethod("{"callback_url"=>"https://www.example.com/threeds/threeds_method/callback"}");
        request.setThreedsControl("{"device_type"=>"browser", "challenge_window_size"=>"full_screen", "challenge_indicator"=>"preference"}");
        request.setThreedsPurchase("{"category"=>"service"}");
        request.setThreedsRecurring("{"expiration_date"=>"03-03-2022", "frequency"=>30}");
        request.setThreedsMerchantRisk("{"shipping_indicator"=>"verified_address", "delivery_timeframe"=>"electronic", "reorder_items_indicator"=>"reordered", "pre_order_purchase_indicator"=>"merchandise_available", "pre_order_date"=>"03-10-2021", "gift_card"=>"true", "gift_card_count"=>"2"}");
        request.setThreedsCardHolderAccount("{"creation_date"=>"03-09-2020", "update_indicator"=>"more_than_60days", "last_change_date"=>"03-06-2021", "password_change_indicator"=>"no_change", "password_change_date"=>"19-08-2021", "shipping_address_usage_indicator"=>"current_transaction", "shipping_address_date_first_used"=>"29-08-2021", "transactions_activity_last_24_hours"=>"2", "transactions_activity_previous_year"=>"10", "provision_attempts_last_24_hours"=>"1", "purchases_count_last_6_months"=>"5", "suspicious_activity_indicator"=>"no_suspicious_observed", "registration_indicator"=>"30_to_60_days", "registration_date"=>"03-09-2019"}");
        request.setThreedsBrowser("{"accept_header"=>"*/*", "java_enabled"=>"false", "language"=>"en-GB", "color_depth"=>"24", "screen_height"=>"900", "screen_width"=>"1440", "time_zone_offset"=>"-120", "user_agent"=>"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"}");
        request.setThreedsSdk("{"interface"=>"native", "ui_types"=>{"ui_type"=>"multi_select"}, "application_id"=>"fc1650c0-5778-0138-8205-2cbc32a32d65", "encrypted_data"=>"encrypted-data-here", "ephemeral_public_key_pair"=>"public-key-pair", "max_timeout"=>"10", "reference_number"=>"sdk-reference-number-here"}");
    
    
        // Sca Params
        request.setScaExemption("low_risk");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success = function(data) {
      return console.log(data);
    };
    
    transaction.authorize3d(
      {
        "transaction_id": "119643250547501c79d8295",
        "usage": "40208 concert tickets",
        "remote_ip": "245.253.2.12",
        "amount": "100",
        "currency": "USD",
        "card_holder": "Travis Pastrana",
        "card_number": "4012000000060085",
        "expiration_month": "12",
        "expiration_year": 2022,
        "cvv": "834",
        "customer_email": "travis@example.com",
        "customer_phone": "+1987987987987",
        "billing_address": {
          "first_name": "Travis",
          "last_name": "Pastrana",
          "address1": "Muster Str. 12",
          "zip_code": "10178",
          "city": "Los Angeles",
          "state": "CA",
          "country": "US"
        },
        "notification_url": "https://www.example.com/notification",
        "return_success_url": "http://www.example.com/success",
        "return_failure_url": "http://www.example.com/failure",
        "threeds_v2_params": {
          "threeds_method": {
            "callback_url": "https://www.example.com/threeds/threeds_method/callback"
          },
          "control": {
            "device_type": "browser",
            "challenge_window_size": "full_screen",
            "challenge_indicator": "preference"
          },
          "purchase": {
            "category": "service"
          },
          "recurring": {
            "expiration_date": "03-03-2022",
            "frequency": 30
          },
          "merchant_risk": {
            "shipping_indicator": "verified_address",
            "delivery_timeframe": "electronic",
            "reorder_items_indicator": "reordered",
            "pre_order_purchase_indicator": "merchandise_available",
            "pre_order_date": "03-10-2021",
            "gift_card": "true",
            "gift_card_count": "2"
          },
          "card_holder_account": {
            "creation_date": "03-09-2020",
            "update_indicator": "more_than_60days",
            "last_change_date": "03-06-2021",
            "password_change_indicator": "no_change",
            "password_change_date": "19-08-2021",
            "shipping_address_usage_indicator": "current_transaction",
            "shipping_address_date_first_used": "29-08-2021",
            "transactions_activity_last_24_hours": "2",
            "transactions_activity_previous_year": "10",
            "provision_attempts_last_24_hours": "1",
            "purchases_count_last_6_months": "5",
            "suspicious_activity_indicator": "no_suspicious_observed",
            "registration_indicator": "30_to_60_days",
            "registration_date": "03-09-2019"
          },
          "browser": {
            "accept_header": "*/*",
            "java_enabled": "false",
            "language": "en-GB",
            "color_depth": "24",
            "screen_height": "900",
            "screen_width": "1440",
            "time_zone_offset": "-120",
            "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"
          },
          "sdk": {
            "interface": "native",
            "ui_types": {
              "ui_type": "multi_select"
            },
            "application_id": "fc1650c0-5778-0138-8205-2cbc32a32d65",
            "encrypted_data": "encrypted-data-here",
            "ephemeral_public_key_pair": "public-key-pair",
            "max_timeout": "10",
            "reference_number": "sdk-reference-number-here"
          }
        },
        "sca_params": {
          "exemption": "low_risk"
        }
      }
    ).send()
      .then(success)
      .catch(failure);
    
    curl https://username:7494c464abf47ebaa261ab281ad75bd5f55548eb@staging.gate.e-comprocessing.net/process/TERMINAL-TOKEN \
       -X POST \
       -H "Content-Type: text/xml" \
       -d '
      <?xml version="1.0" encoding="UTF-8"?>
      <payment_transaction>
        <transaction_type>authorize3d</transaction_type>
        <transaction_id>119643250547501c79d8295</transaction_id>
        <usage>40208 concert tickets</usage>
        <remote_ip>245.253.2.12</remote_ip>
        <amount>100</amount>
        <currency>USD</currency>
        <card_holder>Travis Pastrana</card_holder>
        <card_number>4012000000060085</card_number>
        <expiration_month>12</expiration_month>
        <expiration_year>2022</expiration_year>
        <cvv>834</cvv>
        <customer_email>travis@example.com</customer_email>
        <customer_phone>+1987987987987</customer_phone>
        <billing_address>
          <first_name>Travis</first_name>
          <last_name>Pastrana</last_name>
          <address1>Muster Str. 12</address1>
          <zip_code>10178</zip_code>
          <city>Los Angeles</city>
          <state>CA</state>
          <country>US</country>
        </billing_address>
        <notification_url>https://www.example.com/notification</notification_url>
        <return_success_url>http://www.example.com/success</return_success_url>
        <return_failure_url>http://www.example.com/failure</return_failure_url>
        <threeds_v2_params>
          <threeds_method>
            <callback_url>https://www.example.com/threeds/threeds_method/callback</callback_url>
          </threeds_method>
          <control>
            <device_type>browser</device_type>
            <challenge_window_size>full_screen</challenge_window_size>
            <challenge_indicator>preference</challenge_indicator>
          </control>
          <purchase>
            <category>service</category>
          </purchase>
          <merchant_risk>
            <shipping_indicator>verified_address</shipping_indicator>
            <delivery_timeframe>electronic</delivery_timeframe>
            <reorder_items_indicator>reordered</reorder_items_indicator>
            <pre_order_purchase_indicator>merchandise_available</pre_order_purchase_indicator>
            <pre_order_date>03-10-2021</pre_order_date>
            <gift_card>true</gift_card>
            <gift_card_count>2</gift_card_count>
          </merchant_risk>
          <card_holder_account>
            <creation_date>03-09-2020</creation_date>
            <update_indicator>more_than_60days</update_indicator>
            <last_change_date>03-06-2021</last_change_date>
            <password_change_indicator>no_change</password_change_indicator>
            <password_change_date>19-08-2021</password_change_date>
            <shipping_address_usage_indicator>current_transaction</shipping_address_usage_indicator>
            <shipping_address_date_first_used>29-08-2021</shipping_address_date_first_used>
            <transactions_activity_last_24_hours>2</transactions_activity_last_24_hours>
            <transactions_activity_previous_year>10</transactions_activity_previous_year>
            <provision_attempts_last_24_hours>1</provision_attempts_last_24_hours>
            <purchases_count_last_6_months>5</purchases_count_last_6_months>
            <suspicious_activity_indicator>no_suspicious_observed</suspicious_activity_indicator>
            <registration_indicator>30_to_60_days</registration_indicator>
            <registration_date>03-09-2019</registration_date>
          </card_holder_account>
          <browser>
            <accept_header>*/*</accept_header>
            <java_enabled>false</java_enabled>
            <language>en-GB</language>
            <color_depth>24</color_depth>
            <screen_height>900</screen_height>
            <screen_width>1440</screen_width>
            <time_zone_offset>-120</time_zone_offset>
            <user_agent>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36</user_agent>
          </browser>
          <sdk>
            <interface>native</interface>
            <ui_types>
              <ui_type>multi_select</ui_type>
            </ui_types>
            <application_id>fc1650c0-5778-0138-8205-2cbc32a32d65</application_id>
            <encrypted_data>encrypted-data-here</encrypted_data>
            <ephemeral_public_key_pair>public-key-pair</ephemeral_public_key_pair>
            <max_timeout>10</max_timeout>
            <reference_number>sdk-reference-number-here</reference_number>
          </sdk>
        </threeds_v2_params>
        <sca_params>
          <exemption>low_risk</exemption>
        </sca_params>
      </payment_transaction>'
    
    

    Asynchronous 3 D Sv2 Frictionless With 3ds Method Request

    <?php
    
    // Load the pre-configured ini file...
    \Genesis\Config::loadSettings('/path/to/config.ini');
    
    try {
        $genesis = new Genesis('Financial\Cards\Authorize3D');
        $request = $genesis->request();
    
        $request
            ->setTransactionId('119643250547501c79d8295')
            ->setUsage('40208 concert tickets')
            ->setRemoteIp('245.253.2.12')
            ->setAmount('100')
            ->setCurrency('USD')
            ->setCardHolder('Travis Pastrana')
            ->setCardNumber('4066330000000004')
            ->setExpirationMonth('12')
            ->setExpirationYear('2022')
            ->setCvv('834')
            ->setCustomerEmail('travis@example.com')
            ->setCustomerPhone('+1987987987987')
    
    
            // Billing Address
            ->setBillingFirstName('Travis')
            ->setBillingLastName('Pastrana')
            ->setBillingAddress1('Muster Str. 12')
            ->setBillingZipCode('10178')
            ->setBillingCity('Los Angeles')
            ->setBillingState('CA')
            ->setBillingCountry('US')
            ->setNotificationUrl('https://www.example.com/notification')
            ->setReturnSuccessUrl('http://www.example.com/success')
            ->setReturnFailureUrl('http://www.example.com/failure')
    
    
            // Threeds V2 Params
            ->setThreedsThreedsMethod('{"callback_url"=>"https://www.example.com/threeds/threeds_method/callback"}')
            ->setThreedsControl('{"device_type"=>"browser", "challenge_window_size"=>"full_screen", "challenge_indicator"=>"preference"}')
            ->setThreedsPurchase('{"category"=>"service"}')
            ->setThreedsRecurring('{"expiration_date"=>"03-03-2022", "frequency"=>30}')
            ->setThreedsMerchantRisk('{"shipping_indicator"=>"verified_address", "delivery_timeframe"=>"electronic", "reorder_items_indicator"=>"reordered", "pre_order_purchase_indicator"=>"merchandise_available", "pre_order_date"=>"03-10-2021", "gift_card"=>"true", "gift_card_count"=>"2"}')
            ->setThreedsCardHolderAccount('{"creation_date"=>"03-09-2020", "update_indicator"=>"more_than_60days", "last_change_date"=>"03-06-2021", "password_change_indicator"=>"no_change", "password_change_date"=>"19-08-2021", "shipping_address_usage_indicator"=>"current_transaction", "shipping_address_date_first_used"=>"29-08-2021", "transactions_activity_last_24_hours"=>"2", "transactions_activity_previous_year"=>"10", "provision_attempts_last_24_hours"=>"1", "purchases_count_last_6_months"=>"5", "suspicious_activity_indicator"=>"no_suspicious_observed", "registration_indicator"=>"30_to_60_days", "registration_date"=>"03-09-2019"}')
            ->setThreedsBrowser('{"accept_header"=>"*/*", "java_enabled"=>"false", "language"=>"en-GB", "color_depth"=>"24", "screen_height"=>"900", "screen_width"=>"1440", "time_zone_offset"=>"-120", "user_agent"=>"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"}')
            ->setThreedsSdk('{"interface"=>"native", "ui_types"=>{"ui_type"=>"multi_select"}, "application_id"=>"fc1650c0-5778-0138-8205-2cbc32a32d65", "encrypted_data"=>"encrypted-data-here", "ephemeral_public_key_pair"=>"public-key-pair", "max_timeout"=>"10", "reference_number"=>"sdk-reference-number-here"}')
    
    
            // Sca Params
            ->setScaExemption('low_risk');
    
        $genesis->execute();
        $response = $genesis->response()->getResponseObject();
    } catch (\Genesis\Exceptions\ErrorAPI $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\InvalidArgument $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\ErrorParameter $e) {
        $response = $e->getMessage();
    } catch (\Genesis\Exceptions\Exception $e) {
        $response = $e->getMessage();
    }
    
    import com.emerchantpay.gateway.GenesisClient;
    import com.emerchantpay.gateway.api.TransactionResult;
    import com.emerchantpay.gateway.api.constants.Endpoints;
    import com.emerchantpay.gateway.api.constants.Environments;
    import com.emerchantpay.gateway.api.requests.financial.card.Authorize3DRequest;
    import com.emerchantpay.gateway.model.Transaction;
    import com.emerchantpay.gateway.util.Configuration;
    import com.emerchantpay.gateway.util.Country;
    import com.emerchantpay.gateway.util.Currency;
    import java.math.BigDecimal;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    public class GenesisExample {
      public static void main() throws MalformedURLException {
    
        // Create configuration
        Configuration configuration = new Configuration(Environments.STAGING, Endpoints.EMERCHANTPAY);
    
        configuration.setUsername("SET_YOUR_USERNAME");
        configuration.setPassword("SET_YOUR_PASSWORD");
        configuration.setToken("SET_YOUR_TOKEN");
    
        Authorize3DRequest request = new Authorize3DRequest();
    
        request.setTransactionId("119643250547501c79d8295");
        request.setUsage("40208 concert tickets");
        request.setRemoteIp("245.253.2.12");
        request.setAmount(new BigDecimal(100));
        request.setCurrency("USD");
        request.setCardHolder("Travis Pastrana");
        request.setCardNumber("4066330000000004");
        request.setExpirationMonth("12");
        request.setExpirationYear("2022");
        request.setCvv("834");
        request.setCustomerEmail("travis@example.com");
        request.setCustomerPhone("+1987987987987");
    
    
        // Billing Address
        request.setBillingFirstname("Travis");
        request.setBillingLastname("Pastrana");
        request.setBillingPrimaryAddress("Muster Str. 12");
        request.setBillingZipCode("10178");
        request.setBillingCity("Los Angeles");
        request.setBillingState("CA");
        request.setBillingCountry("US");
        request.setNotificationUrl(new URL("https://www.example.com/notification"));
        request.setReturnSuccessUrl(new URL("http://www.example.com/success"));
        request.setReturnFailureUrl(new URL("http://www.example.com/failure"));
    
    
        // Threeds V2 Params
        request.setThreedsThreedsMethod("{"callback_url"=>"https://www.example.com/threeds/threeds_method/callback"}");
        request.setThreedsControl("{"device_type"=>"browser", "challenge_window_size"=>"full_screen", "challenge_indicator"=>"preference"}");
        request.setThreedsPurchase("{"category"=>"service"}");
        request.setThreedsRecurring("{"expiration_date"=>"03-03-2022", "frequency"=>30}");
        request.setThreedsMerchantRisk("{"shipping_indicator"=>"verified_address", "delivery_timeframe"=>"electronic", "reorder_items_indicator"=>"reordered", "pre_order_purchase_indicator"=>"merchandise_available", "pre_order_date"=>"03-10-2021", "gift_card"=>"true", "gift_card_count"=>"2"}");
        request.setThreedsCardHolderAccount("{"creation_date"=>"03-09-2020", "update_indicator"=>"more_than_60days", "last_change_date"=>"03-06-2021", "password_change_indicator"=>"no_change", "password_change_date"=>"19-08-2021", "shipping_address_usage_indicator"=>"current_transaction", "shipping_address_date_first_used"=>"29-08-2021", "transactions_activity_last_24_hours"=>"2", "transactions_activity_previous_year"=>"10", "provision_attempts_last_24_hours"=>"1", "purchases_count_last_6_months"=>"5", "suspicious_activity_indicator"=>"no_suspicious_observed", "registration_indicator"=>"30_to_60_days", "registration_date"=>"03-09-2019"}");
        request.setThreedsBrowser("{"accept_header"=>"*/*", "java_enabled"=>"false", "language"=>"en-GB", "color_depth"=>"24", "screen_height"=>"900", "screen_width"=>"1440", "time_zone_offset"=>"-120", "user_agent"=>"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"}");
        request.setThreedsSdk("{"interface"=>"native", "ui_types"=>{"ui_type"=>"multi_select"}, "application_id"=>"fc1650c0-5778-0138-8205-2cbc32a32d65", "encrypted_data"=>"encrypted-data-here", "ephemeral_public_key_pair"=>"public-key-pair", "max_timeout"=>"10", "reference_number"=>"sdk-reference-number-here"}");
    
    
        // Sca Params
        request.setScaExemption("low_risk");
    
        GenesisClient client = new GenesisClient(configuration, request);
        client.execute();
    
        // Parse Payment result
        System.out.println(client.getResponse());
    
      }
    }
    
    var genesis = require('genesis.js/lib/genesis.js');
    var transaction = new genesis.transaction();
    
    var failure = function(reason) {
      return console.log(reason);
    };
    
    var success =