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

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

  • Passing an email in the Store API is mandatory if you 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 API.
  • 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
  • Store (third-party vaulting) is only available for card payment methods, not for Apple Pay and Google Pay.
  • When you call a store transaction and don’t pass consumer_id GSF, then Spreedly will create a consumer/customer on the gateway side and return consumer_id and consumer_email in the gateway-specific response field.