PayFabric gateway guide

Integration guide for the PayFabric payment gateway with Spreedly

Additional notes
eCheck/ACH transactions do not support the standard authorize operation. When an authorize is attempted on a bank account, it automatically redirects to a purchase operation instead.
setup_id should be included as a gateway_specific_field for each request and include the desired Gateway Profile for the transaction. See the Setup Id section for more details.

Adding PayFabric gateway

curl https://core.spreedly.com/v1/gateways.xml \
  -u 'C7cRfNJGODKh4Iu53PToKjniY:4UIuWybmdythqAqyQnYha6s451ri0fYAo4p3drZUi7q2Jf4b7HKg8etDtoKJ' \
  -H 'Content-Type: application/xml' \
  -d '<gateway>
  <gateway_type>pay_fabric</gateway_type>
  <device_id>your_device_id</device_id>
  <device_password>your_device_password</device_password>
   <dcn>dcn</dcn>
  <setup_id>setup_id</setup_id>
  <sandbox>true</sandbox>
</gateway>'
<gateway>
  <token>6QPFGKTRYN8N8TZYA8W6NGA3M6</token>
  <gateway_type>pay_fabric</gateway_type>
  <name>PayFabric</name>
  ...
</gateway>

For more information on PayFabric API Authentication, reference their documentation.

Parameters

NameDescription
device_id (Required)PayFabric device identifier (36-character UUID)
device_password (Required)PayFabric device password
dcn (Required)Data Center Number
setup_id (Required)SetupID associated to the currency used to process credit cards/echecks

Setup Id

setup_id refers to the Gateway Profile Name setup in the PayFabric gateway account. This should be passed to Spreedly when creating the gateway, but can be overridden in the transaction as a gateway specific field.

Please see PayFabric's documentation on the Gateway Profile for more information.

Gateway Specific Fields

The following gateway specific fields are supported for PayFabric transactions:

Field NameDescription
setup_idGateway account profile name configured in the PayFabric web portal. This name routes the transaction to the specific gateway configuration (e.g., "EVO US_ACH" for eCheck transactions).
customerCustomer ID or Customer Number as specified by the client. Required field to associate transactions and wallet entries with a customer account.
req_auth_codeRequired authorization code for Force transactions. Used when forcing a transaction with a specific authorization code.
batch_numberBatch number name for saving transactions into a PayFabric batch. Merchants can process the batch on the PayFabric portal. Automatically removed for Verify transaction types.
pay_dateA future date to process the transaction in format "3/23/2015". PayFabric treats the date in merchant timezone. Transaction won't be processed immediately when this field is set.
document_headLevel 2/3 transaction header fields for invoice-level information and compliance requirements.
document_linesLevel 2/3 transaction line item details for detailed transaction reporting and compliance.
document_user_definedUser-defined fields within the document structure for custom transaction metadata.
reference_transactionsArray of original transaction objects when this transaction is a reference transaction (void, refund, capture).
shipping_emailEmail address for shipping notifications, used in the Shipto address object.
trx_user_define1User-defined field 1 for storing additional transaction data (max 256 characters).
trx_initiationSpecifies who initiated the transaction. Valid values: Merchant, Customer, or NotSet. Used for stored credential compliance.
trx_scheduleThe authorization type for scheduled transactions. Valid values: Unscheduled, ScheduledInstallment, ScheduledRecurring, or NotSet.
origination_idNetwork transaction identifier used for eCheck/ACH transactions and stored credential linking.
cc_entry_indicatorIdentifies whether the card is a stored credential or newly entered. Valid values: Entered or Stored. Automatically set by the gateway.
set_defaultBoolean flag to set the payment method as the customer's primary card when creating wallet entries.
default_card_indicatorAlternative boolean flag for setting default card status during wallet operations.

Stored Credentials

For PayFabric, 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