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:
Variable Description Format Example security_keyAPI Security Key String abc123...typeTransaction type String sale, auth, capture, void, refund
Transaction Types
Type Description Additional Required Fields saleImmediate settlement Payment method, amount authAuthorization only Payment method, amount captureSettle authorization transactionid, amountvoidCancel transaction transactionidrefundReverse settled transaction transactionidcreditDirect credit Payment method, amount validateAccount validation Payment method updateUpdate transaction transactionidofflineOffline auth code Payment method, amount, authorization_code
Payment Method Variables
Credit Card
ACH/eCheck
Digital Wallets
Tokenized Payments
Required Fields Variable Description Format Example ccnumberCard number Numeric 4111111111111111ccexpExpiration date MMYY 1225amountTransaction amount x.xx 99.99
Recommended Fields Variable Description Format cvvSecurity code 3-4 digits 999
Including CVV significantly improves approval rates and reduces fraud.
Required Fields Variable Description Format Example checknameAccount holder name String John DoecheckabaRouting number 9 digits 123456789checkaccountAccount number String 987654321account_typeAccount type String checking or savingssec_codeEntry class String WEB, PPD, TEL, CCDamountTransaction amount x.xx 99.99
SEC Codes Code Description Use Case WEBInternet-initiated Online payments PPDPrearranged Payment Recurring billing TELTelephone-initiated Phone orders CCDCorporate Credit or Debit B2B payments
Credit card and ACH variables cannot be submitted in the same request.
Apple Pay Variable Description Format applepay_payment_dataEncrypted payment token Hex string amountTransaction amount x.xx
Google Pay Variable Description Format googlepay_payment_dataEncrypted payment payload JSON string amountTransaction amount x.xx
Collect.js Token Variable Description Format payment_tokenCollect.js token String amountTransaction amount x.xx
Customer Vault Variable Description Format customer_vault_idStored customer ID String amountTransaction amount x.xx
Variable Description Max Length Required first_nameFirst name 32 Recommended last_nameLast name 32 Recommended companyCompany name 64 Optional address1Street address line 1 64 Recommended address2Street address line 2 64 Optional cityCity 32 Recommended stateState/Province code 2 Recommended zipPostal code 16 Recommended countryCountry code 2 Recommended phonePhone number 16 Optional faxFax number 16 Optional emailEmail address 64 Recommended websiteWebsite URL 128 Optional
Providing complete billing information improves AVS matching and approval rates.
All billing fields are available for shipping by prefixing with shipping_:
Variable Description 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
Variable Description Format Example orderidMerchant order identifier String ORD-12345order_descriptionOrder description String 2 itemsponumberPurchase order number String PO-98765taxSales tax amount x.xx 8.25shippingShipping charges x.xx 5.99duty_amountImport duty x.xx 10.00discount_amountDiscount applied x.xx 15.00currencyCurrency code ISO 4217 USDipaddressCustomer IP address xxx.xxx.xxx.xxx 192.168.1.1
Transaction Control
Variable Description Format Values processor_idRoute to specific processor String Processor ID descriptorStatement descriptor String (25 chars) Custom text descriptor_phoneDescriptor phone Numeric Phone number dup_secondsDuplicate check window Numeric (seconds) 0-3600test_modeEnable test mode Boolean 1 or 0
Set dup_seconds=0 to disable duplicate transaction checking if needed.
Custom Fields
Add merchant-defined custom fields (up to 20):
Variable Description Example merchant_defined_field_1Custom field 1 Customer ID: 12345merchant_defined_field_2Custom field 2 Location: Store #5...… … merchant_defined_field_20Custom field 20 Notes: VIP customer
Credential on File (CIT/MIT)
For stored credentials and recurring transactions:
Variable Description Values initiated_byWho initiated transaction customer, merchantinitial_transaction_idOriginal transaction ID String stored_credential_indicatorStorage status stored, 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:
Variable Description Format cardholder_authAuthentication indicator String cavvCardholder Authentication Verification Value Base64 xidTransaction identifier Base64 eciElectronic Commerce Indicator Numeric threeds_version3DS version 1.0 or 2.0
Device Data Collection (3DS 2.0)
Variable Description threeds_device_channelDevice channel type threeds_device_infoDevice information threeds_browser_infoBrowser information
Level II/III Processing
Level II Fields
Variable Description Format summary_commodity_codeProduct classification 4 characters duty_amountImport duty x.xx discount_amountDiscount x.xx taxSales tax x.xx ponumberPurchase order String
Level III Fields
For detailed line items, use indexed variables:
Variable Pattern Description Example item_product_code_#Product code SKU-123item_description_#Item description Widgetitem_commodity_code_#Commodity code 1234item_unit_of_measure_#Unit measure EAitem_unit_cost_#Unit price 10.00item_quantity_#Quantity 2item_total_amount_#Line total 20.00item_tax_amount_#Tax amount 1.60item_tax_rate_#Tax rate 0.08item_discount_amount_#Discount 2.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:
Variable Description Format partial_payment_idUnique payment identifier String partial_payment_balanceRemaining balance x.xx
Payment Facilitator
For payment facilitators and marketplaces:
Variable Description 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:
Variable Description Format healthcare_copayCopay amount x.xx healthcare_prescriptionPrescription amount x.xx healthcare_visionVision amount x.xx healthcare_dentalDental amount x.xx healthcare_clinicalClinical amount x.xx
Recurring Billing
Subscription Management
Variable Description Values recurringEnable recurring add_subscription, update_subscription, delete_subscriptionplan_idPlan identifier String plan_amountRecurring amount x.xx plan_paymentsNumber of payments Numeric (0=until canceled) start_dateStart date YYYYMMDD day_frequencyDays between charges Numeric month_frequencyMonths between charges Numeric day_of_monthDay to charge 1-31
Customer Vault
Variable Description Values customer_vaultVault action add_customer, update_customer, delete_customercustomer_vault_idCustomer identifier String (auto-generated if blank) billing_idMultiple payment methods String
Variable Description Values response_formatResponse format query_string (default), json, xml
Advanced Options
Variable Description Format signature_imageSignature data Base64 tip_amountGratuity amount x.xx cashback_amountCash back amount x.xx surcharge_amountSurcharge x.xx authorization_codeOffline auth code String magnetic_dataMag stripe data String emv_dataEMV chip data String device_license_idDevice identifier String
Example Requests
Credit Card Sale
ACH Payment
Customer Vault Transaction
Level III Transaction
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