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
(Required)

Merchant API login

api_password
(Required)

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 NameDescription
terminal_tokenA 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.
usageA description of the transaction for later use.
event_start_dateThe date when an event starts in format dd-mm-yyyy (part of Business Attributes).
event_end_dateMerchant-provided additional information. The information provided is not transaction processing relevant. It will appear in reporting only.
event_organizer_idThe identifier for the event organizer (part of Business Attributes).
event_idThe identifier for the event (part of Business Attributes).
transaction_idunique transaction ID defined by the merchant.
consumer_idA unique reference identifier for the consumer generated by the gateway. Use this field to associate the transaction with an existing consumer profile
consumer_emailMust contain a valid e-mail of the customer (referenced as customer_email in transaction requests or email when creating a consumer).
merchant_nameAllows to dynamically override the charge descriptor.
merchant_cityContains the city of the merchant or the merchant phone number for CNP merchants.
sub_merchant_idAllows to dynamically override the sub-merchant ID assigned by the Payment Facilitator.
merchant_countryAllows to dynamically override the merchant country using ISO 3166 format.
merchant_stateAllows to dynamically override the merchant subdivision code defined in ISO 3166-2.
merchant_zip_codeAllows to dynamically override the merchant zip/postal code (required for VISA OCT transactions with Australian and Canadian card bins).
merchant_addressAllows to dynamically override the merchant address
merchant_urlAllows to dynamically override the merchant URL
merchant_phoneAllows to dynamically override the merchant phone number.
merchant_service_cityAllows to dynamically override the merchant service city.
merchant_service_countryAllows to dynamically override the merchant service countr
merchant_service_stateAllows to dynamically override the merchant service subdivision code
merchant_service_zip_codeAllows to dynamically override the merchant service zip/postal code.
merchant_service_phoneAllows to dynamically override the merchant service phone number
merchant_geo_coordinatesAllows to dynamically override the merchant geographic coordinates (Latitude and Longitude).
merchant_service_geo_coordinatesAllows to dynamically override the merchant service geographic coordinates.
scheme_tokenizedRequired 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

FieldDescription
unique_idA unique identifier defined by the gateway that must be used for subsequent actions like capturing, voiding, or refunding a transaction
transaction_idA unique transaction identifier defined by the merchant
tokenA plain-text surrogate value representing sensitive cardholder data that can be used in place of card details for processing
token_idA unique identifier assigned to a specific token returned in the Tokenization API responses
consumer_idA unique reference identifier for a consumer used to transactions and managing tokenized card data
statusThe current state of the transaction, consumer, or token (e.g., active, approved, declined, enabled) returned in the response
consumer_emailThe valid email address of the customer, often required for creating a consumer or processing transactions (referenced as customer_email in the API)
technical_messageA 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