E-comprocessing gateway guide
| Additional notes |
|---|
| E-comprocessing also requires you to create a terminal. Ensure that the following transaction types are enabled on the terminal: Authorize, Authorize 3D, Payout, Sale, and Sale 3D. Additionally, set Requires CVV to false. |
| For Google Pay non-tokenized (PAN_ONLY) payment method, make sure you use Global 3DS Authentication; otherwise transaction will fail. |
| terminal_token GSF is mandatory for purchase, authorize, verify, capture, void, refund, and general credit transactions |
| Store (third-party vaulting) is only available for card payment methods, not for Apple Pay and Google Pay |
| Passing an email in the Store API is mandatory if don’t pass consumer_id in GSF, and payment method does not include email. |
| If the payment method includes an email and no email is passed in the Store API, the payment method’s email is used and carried forward to the Purchase/authorize AP |
| If the payment method includes an email, but a different email is explicitly passed in the Store API, the Store API email overrides it and becomes the one stored with the third-party token and used in the Purchase API. |
| If the payment method does not include an email, an email must be provided in the Store API, and it will also be used for the Purchase/Authorize API. |
| If the email passed in the Purchase/Authorize API differs from the consumer_email stored on the gateway side, then you will receive consumer not found error |
Adding E-comprocessing gateway
curl https://core.spreedly.com/v1/gateways.xml \
-u 'C7cRfNJGODKh4Iu5Ox3PToKjniY:4UIuWybmdythfNGPqAqyQnYha6s451ri0fYAo4p3drZUi7q2Jf4b7HKg8etDtoKJ' \
-H 'Content-Type: application/xml' \
-d '<gateway>
<gateway_type>e_comprocessing</gateway_type>
<api_login>68ad6e9b6d5dc6700807d6dxxxxxx3d</api_login>
<api_password>b1b0253c647277df5xxxxxxx07d62d0e2</api_password>
<sandbox>true</sandbox>
</gateway>'<gateway>
<token>0V9KGMC53T8WQSPN1623C2FV1H</token>
<gateway_type>e_comprocessing</gateway_type>
<description nil="true"/>
<merchant_profile_key nil="true"/>
<sub_merchant_key nil="true"/>
<payment_methods type="array">
<payment_method>credit_card</payment_method>
<payment_method>apple_pay</payment_method>
<payment_method>google_pay</payment_method>
<payment_method>third_party_token</payment_method>
</payment_methods>
<state>retained</state>
<created_at type="dateTime">2025-12-05T09:11:30Z</created_at>
<updated_at type="dateTime">2025-12-05T09:11:30Z</updated_at>
<name>E Comprocessing</name>
<api_login>68ad6e9b6d5dc6700807d6d41df86c403052a33d</api_login>
<characteristics type="array">
<characteristic>purchase</characteristic>
<characteristic>authorize</characteristic>
<characteristic>capture</characteristic>
<characteristic>credit</characteristic>
<characteristic>general_credit</characteristic>
<characteristic>void</characteristic>
<characteristic>verify</characteristic>
<characteristic>3dsecure_2_mpi_purchase</characteristic>
<characteristic>3dsecure_2_mpi_authorize</characteristic>
<characteristic>store</characteristic>
<characteristic>remove</characteristic>
<characteristic>transaction_retry</characteristic>
<characteristic>stored_credentials</characteristic>
</characteristics>
<credentials type="array">
<credential>
<name>api_login</name>
<value>68ad6e9b6d5dc6700807d6d41df86c403052a33d</value>
</credential>
</credentials>
<gateway_settings/>
<gateway_specific_fields type="array">
<gateway_specific_field>terminal_token</gateway_specific_field>
<gateway_specific_field>usage</gateway_specific_field>
<gateway_specific_field>event_start_date</gateway_specific_field>
<gateway_specific_field>event_end_date</gateway_specific_field>
<gateway_specific_field>event_organizer_id</gateway_specific_field>
<gateway_specific_field>event_id</gateway_specific_field>
<gateway_specific_field>transaction_id</gateway_specific_field>
<gateway_specific_field>consumer_email</gateway_specific_field>
<gateway_specific_field>consumer_id</gateway_specific_field>
<gateway_specific_field>merchant_name</gateway_specific_field>
<gateway_specific_field>merchant_city</gateway_specific_field>
<gateway_specific_field>sub_merchant_id</gateway_specific_field>
<gateway_specific_field>merchant_country</gateway_specific_field>
<gateway_specific_field>merchant_state</gateway_specific_field>
<gateway_specific_field>merchant_zip_code</gateway_specific_field>
<gateway_specific_field>merchant_address</gateway_specific_field>
<gateway_specific_field>merchant_url</gateway_specific_field>
<gateway_specific_field>merchant_phone</gateway_specific_field>
<gateway_specific_field>merchant_service_city</gateway_specific_field>
<gateway_specific_field>merchant_service_country</gateway_specific_field>
<gateway_specific_field>merchant_service_state</gateway_specific_field>
<gateway_specific_field>merchant_service_zip_code</gateway_specific_field>
<gateway_specific_field>merchant_service_phone</gateway_specific_field>
<gateway_specific_field>merchant_geo_coordinates</gateway_specific_field>
<gateway_specific_field>merchant_service_geo_coordinates</gateway_specific_field>
<gateway_specific_field>scheme_tokenized</gateway_specific_field>
</gateway_specific_fields>
<redacted>false</redacted>
<sandbox>true</sandbox>
<mode>default</mode>
</gateway>Parameters
Name | Description |
|---|---|
api_login | Merchant API login |
api_password | Merchant API password |
Use your Merchant API login and API password (available under Configuration > Merchants > Terminal Details) and provide them as api_login and api_password when creating the gateway. |
Gateway Specific Fields
<gateway_specific_fields>
<e_comprocessing>
<terminal_token>797db33b4c9df9b63xxxxxxxxf8b78d3c1cad</terminal_token>
<transaction_id>TRX-987654321</transaction_id>
<usage>Purchase of Event Tickets</usage>
<scheme_tokenized>false</scheme_tokenized>
<consumer_id>888999</consumer_id>
<consumer_email>[email protected]</consumer_email>
<event_start_date>15-08-2024</event_start_date>
<event_end_date>17-08-2024</event_end_date>
<event_organizer_id>ORG_555123</event_organizer_id>
<event_id>EVT_001</event_id>
<sub_merchant_id>SUB_001_AFX</sub_merchant_id>
<merchant_name>Spreedly</merchant_name>
<merchant_address>123 Market Street</merchant_address>
<merchant_city>San Francisco</merchant_city>
<merchant_state>CA</merchant_state>
<merchant_country>US</merchant_country>
<merchant_zip_code>94103</merchant_zip_code>
<merchant_phone>14155550199</merchant_phone>
<merchant_url>https://www.spreedly.com</merchant_url>
<merchant_geo_coordinates>37.7749,-122.4194</merchant_geo_coordinates>
<merchant_service_city>New York</merchant_service_city>
<merchant_service_state>NY</merchant_service_state>
<merchant_service_country>US</merchant_service_country>
<merchant_service_zip_code>10001</merchant_service_zip_code>
<merchant_service_phone>12125550199</merchant_service_phone>
<merchant_service_geo_coordinates>40.7128,-74.0060</merchant_service_geo_coordinates>
</e_comprocessing>
</gateway_specific_fields>Parameter Details
| Field Name | Description |
|---|---|
| terminal_token | A terminal token is a unique identifier found in the Admin panel that is required in the URL of Server API calls to route requests to a specific terminal configuration. |
| usage | A description of the transaction for later use. |
| event_start_date | The date when an event starts in format dd-mm-yyyy (part of Business Attributes). |
| event_end_date | Merchant-provided additional information. The information provided is not transaction processing relevant. It will appear in reporting only. |
| event_organizer_id | The identifier for the event organizer (part of Business Attributes). |
| event_id | The identifier for the event (part of Business Attributes). |
| transaction_id | unique transaction ID defined by the merchant. |
| consumer_id | A unique reference identifier for the consumer generated by the gateway. Use this field to associate the transaction with an existing consumer profile |
| consumer_email | Must contain a valid e-mail of the customer (referenced as customer_email in transaction requests or email when creating a consumer). |
| merchant_name | Allows to dynamically override the charge descriptor. |
| merchant_city | Contains the city of the merchant or the merchant phone number for CNP merchants. |
| sub_merchant_id | Allows to dynamically override the sub-merchant ID assigned by the Payment Facilitator. |
| merchant_country | Allows to dynamically override the merchant country using ISO 3166 format. |
| merchant_state | Allows to dynamically override the merchant subdivision code defined in ISO 3166-2. |
| merchant_zip_code | Allows to dynamically override the merchant zip/postal code (required for VISA OCT transactions with Australian and Canadian card bins). |
| merchant_address | Allows to dynamically override the merchant address |
| merchant_url | Allows to dynamically override the merchant URL |
| merchant_phone | Allows to dynamically override the merchant phone number. |
| merchant_service_city | Allows to dynamically override the merchant service city. |
| merchant_service_country | Allows to dynamically override the merchant service countr |
| merchant_service_state | Allows to dynamically override the merchant service subdivision code |
| merchant_service_zip_code | Allows to dynamically override the merchant service zip/postal code. |
| merchant_service_phone | Allows to dynamically override the merchant service phone number |
| merchant_geo_coordinates | Allows to dynamically override the merchant geographic coordinates (Latitude and Longitude). |
| merchant_service_geo_coordinates | Allows to dynamically override the merchant service geographic coordinates. |
| scheme_tokenized | Required and set to true when the card_number provided is a DPAN (Device Primary Account Number) instead of a Funding Primary Account Number. |
Gateway Specific Response Fields
<gateway_specific_response_fields>
<e_comprocessing>
<unique_id>49f0627976fe45xxxbe4c564aad10ef</unique_id>
<transaction_id>65e2fd4d796a2196xxxxcb96a9a010f</transaction_id>
<token>df9c8bca-e705-4c4c-9999-1255e540eed5</token>
<token_id>84cbd6a67c5xxxxxx8b2142529acf0d9</token_id>
<status>approved</status>
<consumer_id>913099</consumer_id>
<consumer_email>[email protected]</consumer_email>
<technical_message>TESTMODE: No real money will be transferred!</technical_message>
</e_comprocessing>
</gateway_specific_response_fields>Parameter Details
| Field | Description |
|---|---|
| unique_id | A unique identifier defined by the gateway that must be used for subsequent actions like capturing, voiding, or refunding a transaction |
| transaction_id | A unique transaction identifier defined by the merchant |
| token | A plain-text surrogate value representing sensitive cardholder data that can be used in place of card details for processing |
| token_id | A unique identifier assigned to a specific token returned in the Tokenization API responses |
| consumer_id | A unique reference identifier for a consumer used to transactions and managing tokenized card data |
| status | The current state of the transaction, consumer, or token (e.g., active, approved, declined, enabled) returned in the response |
| consumer_email | The valid email address of the customer, often required for creating a consumer or processing transactions (referenced as customer_email in the API) |
| technical_message | A descriptive error message intended for internal use and debugging, not for display to end-users |
Stored Credentials
For E-comprocessing, sending stored credential fields can be done using Spreedly’s first class support. For any Authorize or Purchase request, you need to include two fields which tell Spreedly a little bit more about the nature of the transaction:
- stored_credential_initiator
- stored_credential_reason_type
Updated about 16 hours ago
