Skip to main content

Overview

This page provides a comprehensive reference of all variables available in the Payment API. Use these parameters to customize transaction processing, add billing information, and implement advanced features.
All variables are sent via HTTP POST to https://api.ionicfi.com/api/transact.php

Required Variables

These variables are required for all transaction types:
VariableDescriptionFormatExample
security_keyAPI Security KeyStringabc123...
typeTransaction typeStringsale, auth, capture, void, refund

Transaction Types

TypeDescriptionAdditional Required Fields
saleImmediate settlementPayment method, amount
authAuthorization onlyPayment method, amount
captureSettle authorizationtransactionid, amount
voidCancel transactiontransactionid
refundReverse settled transactiontransactionid
creditDirect creditPayment method, amount
validateAccount validationPayment method
updateUpdate transactiontransactionid
offlineOffline auth codePayment method, amount, authorization_code

Payment Method Variables

Required Fields

VariableDescriptionFormatExample
ccnumberCard numberNumeric4111111111111111
ccexpExpiration dateMMYY1225
amountTransaction amountx.xx99.99
VariableDescriptionFormat
cvvSecurity code3-4 digits999
Including CVV significantly improves approval rates and reduces fraud.

Billing Information

VariableDescriptionMax LengthRequired
first_nameFirst name32Recommended
last_nameLast name32Recommended
companyCompany name64Optional
address1Street address line 164Recommended
address2Street address line 264Optional
cityCity32Recommended
stateState/Province code2Recommended
zipPostal code16Recommended
countryCountry code2Recommended
phonePhone number16Optional
faxFax number16Optional
emailEmail address64Recommended
websiteWebsite URL128Optional
Providing complete billing information improves AVS matching and approval rates.

Shipping Information

All billing fields are available for shipping by prefixing with shipping_:
VariableDescription
shipping_firstnameShipping first name
shipping_lastnameShipping last name
shipping_companyShipping company
shipping_address1Shipping address line 1
shipping_address2Shipping address line 2
shipping_cityShipping city
shipping_stateShipping state
shipping_zipShipping postal code
shipping_countryShipping country
shipping_phoneShipping phone
shipping_emailShipping email

Order Information

VariableDescriptionFormatExample
orderidMerchant order identifierStringORD-12345
order_descriptionOrder descriptionString2 items
ponumberPurchase order numberStringPO-98765
taxSales tax amountx.xx8.25
shippingShipping chargesx.xx5.99
duty_amountImport dutyx.xx10.00
discount_amountDiscount appliedx.xx15.00
currencyCurrency codeISO 4217USD
ipaddressCustomer IP addressxxx.xxx.xxx.xxx192.168.1.1

Transaction Control

VariableDescriptionFormatValues
processor_idRoute to specific processorStringProcessor ID
descriptorStatement descriptorString (25 chars)Custom text
descriptor_phoneDescriptor phoneNumericPhone number
dup_secondsDuplicate check windowNumeric (seconds)0-3600
test_modeEnable test modeBoolean1 or 0
Set dup_seconds=0 to disable duplicate transaction checking if needed.

Custom Fields

Add merchant-defined custom fields (up to 20):
VariableDescriptionExample
merchant_defined_field_1Custom field 1Customer ID: 12345
merchant_defined_field_2Custom field 2Location: Store #5
...
merchant_defined_field_20Custom field 20Notes: VIP customer

Credential on File (CIT/MIT)

For stored credentials and recurring transactions:
VariableDescriptionValues
initiated_byWho initiated transactioncustomer, merchant
initial_transaction_idOriginal transaction IDString
stored_credential_indicatorStorage statusstored, used

Usage Example

Initial Storage:
stored_credential_indicator=stored
initiated_by=customer
Subsequent Use:
stored_credential_indicator=used
initial_transaction_id=ORIGINAL_TXN_ID
initiated_by=merchant

3D Secure Variables

For 3D Secure authentication:
VariableDescriptionFormat
cardholder_authAuthentication indicatorString
cavvCardholder Authentication Verification ValueBase64
xidTransaction identifierBase64
eciElectronic Commerce IndicatorNumeric
threeds_version3DS version1.0 or 2.0

Device Data Collection (3DS 2.0)

VariableDescription
threeds_device_channelDevice channel type
threeds_device_infoDevice information
threeds_browser_infoBrowser information

Level II/III Processing

Level II Fields

VariableDescriptionFormat
summary_commodity_codeProduct classification4 characters
duty_amountImport dutyx.xx
discount_amountDiscountx.xx
taxSales taxx.xx
ponumberPurchase orderString

Level III Fields

For detailed line items, use indexed variables:
Variable PatternDescriptionExample
item_product_code_#Product codeSKU-123
item_description_#Item descriptionWidget
item_commodity_code_#Commodity code1234
item_unit_of_measure_#Unit measureEA
item_unit_cost_#Unit price10.00
item_quantity_#Quantity2
item_total_amount_#Line total20.00
item_tax_amount_#Tax amount1.60
item_tax_rate_#Tax rate0.08
item_discount_amount_#Discount2.00
Example:
item_product_code_1=SKU-123
item_description_1=Blue Widget
item_quantity_1=2
item_unit_cost_1=10.00
item_total_amount_1=20.00

Partial Payments

For split-tender transactions:
VariableDescriptionFormat
partial_payment_idUnique payment identifierString
partial_payment_balanceRemaining balancex.xx

Payment Facilitator

For payment facilitators and marketplaces:
VariableDescription
submerchant_idSub-merchant identifier
submerchant_nameSub-merchant name
submerchant_mccSub-merchant MCC code
submerchant_addressSub-merchant address
submerchant_citySub-merchant city
submerchant_stateSub-merchant state
submerchant_zipSub-merchant postal code
submerchant_countrySub-merchant country

HSA/FSA Healthcare

For healthcare transactions:
VariableDescriptionFormat
healthcare_copayCopay amountx.xx
healthcare_prescriptionPrescription amountx.xx
healthcare_visionVision amountx.xx
healthcare_dentalDental amountx.xx
healthcare_clinicalClinical amountx.xx

Recurring Billing

Subscription Management

VariableDescriptionValues
recurringEnable recurringadd_subscription, update_subscription, delete_subscription
plan_idPlan identifierString
plan_amountRecurring amountx.xx
plan_paymentsNumber of paymentsNumeric (0=until canceled)
start_dateStart dateYYYYMMDD
day_frequencyDays between chargesNumeric
month_frequencyMonths between chargesNumeric
day_of_monthDay to charge1-31

Customer Vault

VariableDescriptionValues
customer_vaultVault actionadd_customer, update_customer, delete_customer
customer_vault_idCustomer identifierString (auto-generated if blank)
billing_idMultiple payment methodsString

Response Format

VariableDescriptionValues
response_formatResponse formatquery_string (default), json, xml

Advanced Options

VariableDescriptionFormat
signature_imageSignature dataBase64
tip_amountGratuity amountx.xx
cashback_amountCash back amountx.xx
surcharge_amountSurchargex.xx
authorization_codeOffline auth codeString
magnetic_dataMag stripe dataString
emv_dataEMV chip dataString
device_license_idDevice identifierString

Example Requests

security_key=YOUR_API_KEY
type=sale
ccnumber=4111111111111111
ccexp=1225
cvv=999
amount=99.99
first_name=John
last_name=Doe
address1=123 Main St
city=New York
state=NY
zip=10001
email=[email protected]
orderid=ORD-12345

Best Practices

Use CVV

Always include CVV for card-not-present transactions

Complete Billing Info

Provide full billing address for better AVS matching

Unique Order IDs

Use unique order identifiers for tracking

Customer IP

Include customer IP address for fraud detection

Next Steps