Ecrypt

Ecrypt payment gateway integration supporting credit card processing, authorization, capture, refunds, voids, $0 account validation, and secure card storage via the Ecrypt customer wallet.

Supported Functionality

FeatureSupported
Authorization
Capture
Refund
Card Tokenization
3D Secure
MOTO
$0 Transactions

Adding an Ecrypt Merchant

To connect a Merchant using the Ecrypt Gateway,

  1. First add Merchant
  2. Select Ecrypt as the Gateway
  3. Add Gateway Details as outlined below
Gateway DetailsDescription
Private API Key*The private API key from the Ecrypt dashboard under Settings > API/Security Keys. Ecrypt does not use a separate sandbox address — whether the key is a test or production key determines which environment the transaction is processed in.
Use Preferred Payments endpointEcrypt is also sold as Preferred Payments. Check this box to send requests to api.preferredpayments.com instead of api.ecrypt.com. Both addresses serve the same API — use whichever the merchant was boarded on.
Store cards in the Ecrypt vaultCheck this box to store the card with Ecrypt after the first approved transaction. Renewals will then charge the stored card instead of resending the card details.
Bypass $0 Transaction AuthorizationsEcrypt has a validation endpoint for $0.00 transactions. When unchecked, Vrio will validate the card through that endpoint and the result will determine if the transaction is successful. Check this box to bypass the gateway entirely for $0 transactions. Learn more about $0.00 transaction handling.
Merchant Payment Methods*The types of payment methods this merchant accepts - Credit card, check, ach, etc.
Merchant Card Types*Card types to be accepted on this Merchant
Merchant Default Currency*Default currency that will be used, if currency is not specified
Merchant Currencies*All currencies accepted on this merchant

*Required


Card Tokenization

When Store cards in the Ecrypt vault is checked, Vrio stores the card with Ecrypt after the first approved transaction so that renewals do not have to resend the card details.

How it works:

  1. The initial charge is sent with the full card details and is approved as normal.
  2. Vrio creates an Ecrypt customer record for the cardholder.
  3. Vrio adds the card to that customer's wallet by referencing the approved transaction — the card details are not sent a second time.
  4. Renewals charge the stored wallet in a single request.

The customer and wallet identifiers are stored together in the format {ecrypt_customer_id}|{wallet_id}.

If the card cannot be stored

Storing the card happens after the payment is approved, so a failure to store it never affects the payment. The transaction remains successful and the order is processed as normal — the renewal simply sends the card details again instead of using the stored card.


$0.00 Transactions

Ecrypt cannot charge $0.00, so Vrio sends $0 transactions to the Ecrypt validation endpoint instead. This confirms the card is real and active without charging it, and the result determines whether the transaction is successful.

Unlike gateways that require a $1 authorization and immediate void to validate a card, no charge is ever placed against the card.

Check Bypass $0 Transaction Authorizations to skip the gateway entirely and treat all $0 transactions as successful. The card is not validated when this is checked.


3D Secure

Ecrypt does not currently support 3D Secure, either natively or by passing authentication values from a third-party provider. Any 3DS data on the order will not be sent.


Request

Required Data Mapping

Below is a table that shows how Vrio maps its data to the Ecrypt API. Values in bold are hard coded values, the rest are dynamic based on the payment.

Auth / Sale (New Card)

Ecrypt APIVRIO
payment.methodCREDITCARD
payment.credit_card.name_on_cardbilling_fname + billing_lname
payment.credit_card.account_numbercustomers_card.card_number
payment.credit_card.expirescustomers_card.card_exp_month + customers_card.card_exp_year (MMYY)
payment.credit_card.verification_valuecustomers_card.card_cvv
payment.credit_card.postal_codecustomers_address.billing_zipcode
amount.currencytransactions.currency_value
amount.valuetransactions.transaction_total
order.totaltransactions.transaction_total
order.emailcustomers.email
order.bill_to.namebilling_fname + billing_lname
order.bill_to.line1customers_address.billing_address1
order.bill_to.line2customers_address.billing_address2
order.bill_to.citycustomers_address.billing_city
order.bill_to.statecustomers_address.billing_state
order.bill_to.postal_codecustomers_address.billing_zipcode
order.bill_to.countrycustomers_address.billing_country
order.metadata.vrio_transaction_idtransactions.transaction_id
order.metadata.vrio_order_idorders.order_id

Sale is sent to the sale endpoint and Auth to the authorize endpoint. The request body is otherwise identical.

Auth / Sale (Stored Card)

When the card has been stored in the Ecrypt vault, renewals send the stored card instead of the card details.

Ecrypt APIVRIO
payment.methodCUSTOMER
payment.stored.walletThe stored wallet identifier
payment.stored.initiated_byCUSTOMER if an initial charge (cycle 1)
MERCHANT if a renewal charge (cycle 2+)
payment.stored.initialRECURRING if the charge is recurring, or on any renewal charge (cycle 2+)
amount.currencytransactions.currency_value
amount.valuetransactions.transaction_total

The order details are passed exactly as they are on a new card transaction.

Capture

Ecrypt APIVRIO
transaction_idThe Gateway Response ID (gateway_response_id) of the authorization
amounttransactions.transaction_total

Void

Ecrypt APIVRIO
transaction_idThe Gateway Response ID (gateway_response_id) of the original transaction

Refund

Ecrypt APIVRIO
transaction_idThe Gateway Response ID (gateway_response_id) of the original transaction
amounttransactions.transaction_total

Optional Data Mapping

Card Tokenization

If Store cards in the Ecrypt vault is checked, after a successful payment Vrio will create an Ecrypt customer and add the approved transaction's card to that customer's wallet.

Customer

Ecrypt APIVRIO
first_namecustomers_address.billing_fname
last_namecustomers_address.billing_lname
merchant_identifier**VRIO-**customers.customer_id
email_addresscustomers.email
phone_numbercustomers_address.billing_telephone

Wallet

Ecrypt APIVRIO
transaction_idThe Gateway Response ID (gateway_response_id) of the approved transaction
defaulttrue
billing_address.namebilling_fname + billing_lname
billing_address.line1customers_address.billing_address1
billing_address.line2customers_address.billing_address2
billing_address.citycustomers_address.billing_city
billing_address.statecustomers_address.billing_state
billing_address.postal_codecustomers_address.billing_zipcode
billing_address.countrycustomers_address.billing_country

The resulting identifiers are stored in the format: {ecrypt_customer_id}|{wallet_id}


Response Data Mapping

Below is a table that shows how Vrio maps data from the Ecrypt API response.

Ecrypt APIVRIO
100 (success) / 200 (decline)response_code
transaction_idgateway_response_id
request_idgateway_response_gateway_id
response_codegateway_response_code
response_textresponse
auth_codegateway_auth_code
avs.codegateway_response_avs
cvv.codegateway_response_cvv
ecrypt_customer_id|wallet_idcustomer_card_merchant_token

Ecrypt returns validation failures in a separate format from declines. When the request itself is rejected — an invalid card number, for example — the response carries an error list rather than a response code, and Vrio maps it as follows.

Ecrypt APIVRIO
errors[0].typegateway_response_code
errors[0].messageresponse

Testing

Note : Placing test orders with an Ecrypt test account or using Ecrypt test cards will not automatically set the order as a test in Vrio. Be sure to flag the order as a test using the is_test flag after the order is processed. For more details on placing test orders, click here.

Test Cards

RegionCard TypeNumber
USVisa4111111111111111
USMasterCard5431111111111111
USDiscover6011000991300009
USAmerican Express341111111111111
CanadaVisa4242424242424242
CanadaMasterCard5454545454545454
CanadaDiscover6011000992927602
CanadaAmerican Express373599005095005

Declines are triggered by the amount, not the card

Ecrypt does not use a dedicated decline card. To force a decline in the test environment, send an amount below $1.00 on a US account, or exactly $0.05 on a Canadian account. The maximum amount accepted in the test environment is $11.00.

To trigger an address match, use 888 as the address and 77777 as the postal code. To trigger a card security code match, use 999 as the CVV. An invalid card number returns a validation error rather than a decline.


FAQ


Q: My renewal is sending the full card details instead of using the stored card. Why?

A: Either Store cards in the Ecrypt vault is not checked on the merchant, or the card could not be stored when the initial transaction was processed. Storing the card is deliberately kept separate from taking the payment, so a failure to store it does not decline the transaction — the renewal falls back to sending the card details, which Ecrypt accepts. Check the initial transaction's response data to see whether the card was stored.


Q: My test transaction keeps declining and I do not know why.

A: Ecrypt triggers test declines by amount rather than by card number. Any amount below $1.00 will decline on a US account. Check the amount on the offer before assuming the card or the credentials are at fault.


Q: Does Ecrypt support 3D Secure?

A: No. Ecrypt does not offer 3D Secure and does not accept authentication values from a third-party provider. If 3D Secure is a requirement, use a gateway that supports it.


Q: Which endpoint should I use, Ecrypt or Preferred Payments?

A: Both serve the same API and the same account. Use whichever address the merchant was boarded on — if you are unsure, leave Use Preferred Payments endpoint unchecked.



Did this page help you?