API Documentation

In-depth reference documentation for iQmetrix API's.

NAV

OVERVIEW

This is a DRAFT specification provided for apprasial use only. Once the development team has approved the specification is accurate, resource descriptions will be added and this notation will be removed.

ENDPOINTS

Sandbox: https://paymentsdemo.iqmetrix.net/v1
Production: https://payments.iqmetrix.net/v1

RESOURCES

Transaction

{
    "AllowPartialAuth": true,
    "Amount": 10.99,
    "AuthorizationNumber": "CVI660",
    "AuthorizedAmount": 8.99,
    "AvsCode": "",
    "AvsResponse": "",
    "BalanceRemaining": 9.87,
    "CapabilitiesForDevice": [
        "n[1,5,3]"
    ],
    "CardBin": "555555",
    "CardholderAccountNumber": "5555555555555555",
    "CardholderAddress": "123 Fake Street",
    "CardholderName": "John Doe",
    "CardholderPhone": "5551112222",
    "CardholderZip": "90210",
    "CardType": "Visa",
    "CheckDriversLicense": "AK123AK0987",
    "ChequeImage": "4F07A00000000310109F120B5669736120437265646974500B56495341204352454449545F300202015F200C54455354204341524420303357114761739001010010D181220111438780895A0847617390010100105F24031812315F3401015F2503950701950500080480009B02E8009F2701808A009F260806520C42AD70EB209F360200019F020600000000100082025C009C01009F100706010A03A010009F3303E0F8C89F1A0208409A031502105F2A0208409F37041E4D29FB9F3901059F34030203009F03060000000000009F3501229F6E009F7C00",
    "ChequeMICRData": "T222222255T987654321O 1050",
    "ChequeStateCode": "54",
    "ChequeTransactionType": "2",
    "ChipCardData": "4F07A00000000310109F120B5669736120437265646974500B56495341204352454449545F300202015F200C54455354204341524420303357114761739001010010D181220111438780895A0847617390010100105F24031812315F3401015F2503950701950500080480009B02E8009F2701808A009F260806520C42AD70EB209F360200019F020600000000100082025C009C01009F100706010A03A010009F3303E0F8C89F1A0208409A031502105F2A0208409F37041E4D29FB9F3901059F34030203009F03060000000000009F3501229F6E009F7C00",
    "CommunicatedSuccessfullyWithProvider": true,
    "Currency": "USD",
    "CvvCode": "123",
    "CvvResponse": "",
    "EmployeeID": 12345,
    "EmvParametersUpdatedDate": "06042017043455",
    "EncryptedPAN": "null",
    "EncryptionType": "Unencrypted",
    "EntryType": "1",
    "ErrorMessage": "Decline",
    "ErrorType": "Declined",
    "ExpiryMonth": "12",
    "ExpiryYear": "2025",
    "ForceApprovalNumber": "",
    "Id": "27697",
    "InvoiceID": "",
    "IsApproved": true,
    "IsCompleted": false,
    "IsFallbackToMagstripe": false,
    "IsNonTechnicalFallbackToMagstripe": false,
    "IsPartialAuthorization": false,
    "IsUsedInDuplicateDetection": false,
    "IsVoided": false,
    "KeyedCVVData": "1234",
    "KeyID": "null",
    "KeyManagementType": "None",
    "KSN": "00000E000000010B",
    "LastFourDigits": "1111",
    "MandatoryTokenCreation": true,
    "MerchantNumber": "9998883332",
    "MessageDate": "2016-12-28T21:41:58.5979246Z",
    "OriginalRequestID": null,
    "OriginalRequestType": "1",
    "PaymentDeviceType": "16",
    "PendingEMVCompletion": false,
    "PinBlock": "CE507EA008F65516",
    "ProviderID": "043c4e62-a150-4d07-ac21-46862e58d471",
    "ProviderReferenceID": "1228164159",
    "RequestType": "7",
    "ResponseCode": "AA",
    "ResponseMessage": "APPROVAL",
    "RetrievalReferenceNumber": "1228164159",
    "ReversedBy": 0,
    "SequenceNumber": 58,
    "StoreID": 173526,
    "TerminalNumber": "974",
    "TokenizedCardID": 20063,
    "TrackData": "µ454545454545454^TEST CARD /MASTERCARD^1604101000 1111A123456789012?;5454545454545454=1604101100000123456?",
    "TrackDataKSN": "null",
    "UniqueRequestID": "c7dfca97-3274-422d-a3e1-0b3044968e90",
    "VoidedBy": null,
    "VoidReason": "IQ.Pay.CertRegressionTester.Controller",
    "WorkstationID": "00000000-0000-0000-0000-000000000000"
}
Name Description  
AllowPartialAuth (Boolean) If false does not allow partial authorized amount. Default if not specified is true, allow partial authorized transactions  
Amount (Decimal) Requested dollar amount of transaction  
AuthorizationNumber (String) Authorization number provided by payment processor  
AuthorizedAmount (Decimal) Actual approved amount by payment processor  
AvsCode (String) Response from payment processor indicating outcome of AVS verification  
AvsResponse (String) Alternative AVS response field from payment processor. Not used with Elavon  
BalanceRemaining (Decimal) Gift card balance remaining  
CapabilitiesForDevice (Array[string]) Hardware payment terminal capability indicator required by payment processors  
CardBin (String) First 6 digits of card number submitted for authorization  
CardholderAccountNumber (String) PAN digits (Card number)  
CardholderAddress (String) Cardholder Address, primarily used in card-not-present scenarios  
CardholderName (String) Cardholder Name, primarily used in card-not-present scenarios  
CardholderPhone (String) Customer Phone, primarily used in card-not-present scenarios  
CardholderZip (String) Zipcode, primarily used in card-not-present scenarios  
CardSwipeType (String) For internal use only  
CardType (String) Brand of card that was used. See CardType  
CheckDriversLicense (String) Drivers license number provided as identification for Cheque/Check transactions  
ChequeImage (String) Cheque image as byte array  
ChequeMICRData (String) Cheque MICR formatted data  
ChequeStateCode (String) Two character reference to cardholder geographic state for Cheque transactions  
ChequeTransactionType (String) Classification used to identify ECheck transaction type. See CheckTransactionType  
ChipCardData (String) BERTLV encoded HEX chip card data from card-based EMV transaction  
CommunicatedSuccessfullyWithProvider (Boolean) Indicates that a connection was attempted with the payment processor. Used by reversal workflows  
Currency (String) Currency indicator for transaction as returned by payment processor  
CvvCode (String) 3-4 digit CVV data; primarily used in card-not-present scenarios  
CvvResponse (String) Alternative CVV response field from payment processor. Not used with Elavon.  
EmployeeID (Integer) Associates the transaction to a specific employee for tracking purposes  
EmvParametersUpdatedDate (String) Date in the format of MMddyyyyHHmmss used to update hardware payment terminal EMV configuration  
EncryptedPAN (String) Base64 encoded Encrypted PAN  
EncryptionType (String) Method of decrypting PAN. See EncryptionType  
EntryType (String) Method of PAN entry. See EntryType  
ErrorMessage (String) Host provided error response  
ErrorType (String) Error classification used to identify severity or source of error. See ErrorType  
ExpiryMonth (String) Month digits in the format of MM where 01 = January  
ExpiryYear (String) Year digits in the format of YYYY  
ForceApprovalNumber (String) Force approval code used for Phone Auth, Preauth Completion, and Force transactions  
Id (String) Identifier  
InvoiceID (String) Invoice ID associated with transaction  
IsApproved (Boolean) A flag to indicate if the payment processor accepted the transaction  
IsCompleted (Boolean) A flag to indicate completion in two-phase transactions such as EMV (Response after 2nd Gen AC)  
IsFallbackToMagstripe (Boolean) Used to indicate EMV chip transaction was processed by fallback swipe  
IsNonTechnicalFallbackToMagstripe (Boolean) Used to indicate unsupported EMV chip transaction was processed by fallback swipe  
IsPartialAuthorization (Boolean) A flag to indicate AuthorizedAmount is greater than zero but lesser than Amount requested  
IsUsedInDuplicateDetection (Boolean) Indicates whether a transaction was detected as a duplicate  
IsVoided (Boolean) A flag to indicate the transaction was voided  
KeyedCVVData (String) 3 or 4 digit CVV data  
KeyID (String) Encrypted cardholder information decryption key identifier  
KeyManagementType (String) Cardholder data decryption method. See KeyManagementType  
KSN (String) KSN data for Debit and Credit Online PIN transaction  
LastFourDigits (String) Last four digits of PAN  
MandatoryTokenCreation (Boolean) If true forces transaction reversal if no token is returned from host  
MerchantNumber (String) Merchant number used to communicate with payment processor  
MessageDate (DateTime) Server timestamp of combined Date and Time in UTC YYYY-MM-DDTHH:MM:SS.NNNNNNZ (ISO 8601)  
OriginalRequestID (Integer) References a previous transaction RequestID for the purpose of Reversal or Void workflows  
OriginalRequestType (String) References a previous transaction RequestType for the purpose of Reversal or Void workflows. See RequestType  
PaymentDeviceType (String) Identifies the hardware payment terminal used to capture card data. See PaymentDeviceType  
PendingEMVCompletion (Boolean) Indicates transaction completed EMV 1st Gen AC but has not yet completed 2nd Gen AC step  
PinBlock (String) PIN block for Debit and Credit Online PIN transaction  
ProviderID (GUID) Identifier of the payment processor used for transaction. See PaymentProcessor for a list of possible values  
ProviderReferenceID (String) Reference ID given by the payment provider when the transaction was processed  
RequestType (String) Intended transaction type and action to perform. See RequestType  
ResponseCode (String) Response code received directly from payment processor indicating outcome of transaction  
ResponseMessage (String) Response message received directly from payment processor, describing outcome of transaction  
RetrievalReferenceNumber (String) Payment provider reference number associated with certain transactions  
ReversedBy (Integer) RequestID of the transaction that reversed this transaction. If this is not null then the transaction was reversed  
SequenceNumber (Integer) Sequence number used by payment provider to indicate transaction order in current batch  
StoreID (Integer) Store ID associated to transaction  
TerminalNumber (String) Terminal number associated to credentials used in transaction  
TokenizedCardID (Integer) Tokenized Card reference used instead of sensitive cardholder information  
TrackData (String) Card track Data, obtained in card-present transactions from hardware payment terminal  
TrackDataKSN (String) KSN information associated to track data  
UniqueRequestID (GUID) Value provided by calling application can be used to uniquely identify the transaction  
VoidedBy (Integer) RequestID of the transaction that voided this transaction. If this is not null, the transaction was voided. The Void Reason can be found on the void transaction  
VoidReason (String) String explanation on why the original transaction was voided. Only appears on void transactions, not on the original sale transation  
WorkstationID (GUID) Workstation ID associated with the transaction. Used for hardware payment terminal transactions  

ENUMERATIONS

CardType

Id Name
0 Unknown
1 Visa
2 Mastercard
3 AmericanExpress
4 Discover
5 DinersClubInternational
6 JCB
7 ChinaUnionPay
8 Debit
9 FirstDataPPayCL

CheckTransactionType

CheckTransactionTypeID Description LocalizationID
0 NotSet 1500
1 Conversion 1501
2 Verification 1502
3 Guarantee 1503

EncryptionType

Id Name
0 Unencrypted
5 RSAEncryption

EntryType

Id Name
1 Swiped
2 ManualEntry
3 EmvChip
4 MsdContactless
5 PhoneAuthManual
6 EmvContactless
7 ECommerce
8 ManualEntryCardNotPresent
10 ECommerce

ErrorType

Id Name
0 NotSet
1 Declined
2 Cvv
3 Avs
4 Gateway
5 Sequence
6 WebTimeout

KeyManagementType

Id Name
0 None
2 RegisteredPublicKey

PaymentDeviceType

Id Name
0 NotSet
1 MSR
2 E3Swipe
3 E3PinPad
4 RDM6000i
5 L4100
6 MagTekHID
7 L5300
8 SignatureGemLCD4X3
9 VeriFoneMX860
10 VeriFoneMX915
11 HoneyWell
12 L5200
13 iSC250
14 iSMPc
15 iCMP
16 iSC250RBA
17 iSMPcATT
18 iPP320
19 iPP350
20 iSC480
21 iCT250si
22 iWL250

PaymentProcessor

Id Name
0 NotSet
1 Paymentech
2 Elavon
3 Heartland
4 FirstData
5 AJB
6 GlobalECRi
7 PaymentechECRi

RequestType

Id Name
1 TransactionCreditSale
2 TransactionCreditRefund
3 TransactionCreditVoid
4 TransactionDebitSale
5 TransactionDebitRefund
6 TransactionDebitVoid
7 TransactionCheckSale
8 TransactionCheckVoid
43 TransactionCreditReversal
45 TransactionDebitReversal
71 EMVTransactionComplete
111 TokenCreation
112 TokenPreauth
113 TokenCapture

REQUESTS

POST a Token

Creating a token is nearly identical to processing a sale, except RequestTypeID is set to “TokenCreation” and the Amount will be ignored, since there is no amount associated with token creation.

Request

POST /transaction

Example Request

POST /transaction
Authorization: Bearer (Access Token)
Accept: application/json
Content-Type: application/json

{
    "CardholderAccountNumber": "4005571701111111",
    "ExpiryMonth": "07",
    "ExpiryYear": "2017",
    "RequestType": 111,
    "EntryType": 8
}
curl -X POST "https://paymentsdemo.iqmetrix.net/v1/transaction" -H "Authorization: Bearer (Access Token)" -H "Accept: application/json" -H "Content-Type: application/json" -d '{
    "CardholderAccountNumber": "4005571701111111",
    "ExpiryMonth": "07",
    "ExpiryYear": "2017",
    "RequestType": 111,
    "EntryType": 8
}'
static IRestResponse CreatingAToken()
{
    var client = new RestClient("https://paymentsdemo.iqmetrix.net/v1/transaction");
    var request = new RestRequest(Method.POST);
     
    request.AddHeader("Authorization", "Bearer (Access Token)"); 
    request.AddHeader("Accept", "application/json"); 
    request.AddHeader("Content-Type", "application/json"); 

     request.AddParameter("application/json", "{\"CardholderAccountNumber\":\"4005571701111111\",\"ExpiryMonth\":\"07\",\"ExpiryYear\":\"2017\",\"RequestType\":111,\"EntryType\":8}", ParameterType.RequestBody);

    return client.Execute(request);
}
import org.apache.http.entity.StringEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import java.io.IOException;

public static CloseableHttpResponse CreatingAToken() throws IOException {
    CloseableHttpClient httpClient = HttpClients.createDefault();
    HttpPost request = new HttpPost("https://paymentsdemo.iqmetrix.net/v1/transaction");
     
    request.addHeader("Authorization", "Bearer (Access Token)"); 
    request.addHeader("Accept", "application/json"); 
    request.addHeader("Content-Type", "application/json"); 
    StringEntity body = new StringEntity("{\"CardholderAccountNumber\":\"4005571701111111\",\"ExpiryMonth\":\"07\",\"ExpiryYear\":\"2017\",\"RequestType\":111,\"EntryType\":8}");
    request.setEntity(body);
    
    return httpClient.execute(request);
}
require 'rest-client'

body = "{\"CardholderAccountNumber\":\"4005571701111111\",\"ExpiryMonth\":\"07\",\"ExpiryYear\":\"2017\",\"RequestType\":111,\"EntryType\":8}";

response = RestClient.post 'https://paymentsdemo.iqmetrix.net/v1/transaction', body, {
     :'Authorization' => 'Bearer (Access Token)',
     :'Accept' => 'application/json',
     :'Content-Type' => 'application/json',
    } 

puts response

Request Parameters

Response Parameters

Example Response

HTTP 201 Content-Type: application/json
{  
   "Id":"27697",
   "InvoiceID":"",
   "RequestType":"TokenCreation",
   "Amount":null,
   "Currency":"USD",
   "EntryType":"ManualEntryCardNotPresent",
   "CardSwipeType":"NotSet",
   "PaymentDeviceType":"NotSet",
   "CardType":"Visa",
   "CardBin":"400557",
   "LastFourDigits":"1111",
   "CardholderName":"",
   "ForceApprovalNumber":"",
   "ChequeStateCode":"NotSet",
   "IsUsedInDuplicateDetection":false,
   "EncryptionType":"Unencrypted",
   "KeyManagementType":"None",
   "ProviderReferenceID":"1228164159",
   "IsApproved":true,
   "IsPartialAuthorization":false,
   "ResponseCode":"AA",
   "ResponseMessage":"APPROVAL",
   "AuthorizationNumber":"CVI660",
   "AuthorizedAmount":0,
   "CvvCode":"",
   "CvvResponse":"",
   "AvsCode":"",
   "AvsResponse":"",
   "CommunicatedSuccessfullyWithProvider":true,
   "ErrorMessage":"",
   "VoidedBy":null,
   "ReversedBy":0,
   "MerchantNumber":"9998883332",
   "TerminalNumber":"974",
   "ProviderID":"043c4e62-a150-4d07-ac21-46862e58d471",
   "ExpiryMonth":null,
   "ExpiryYear":null,
   "IsVoided":false,
   "ErrorType":"NotSet",
   "ChequeMICRData":"",
   "ChequeImage":null,
   "CheckDriversLicense":"",
   "ChequeTransactionType":"NotSet",
   "CardholderAccountNumber":null,
   "CardholderZip":"",
   "CardholderAddress":"",
   "CardholderPhone":"",
   "KeyedCVVData":null,
   "TrackData":null,
   "TrackDataKSN":null,
   "EncryptedPAN":null,
   "KSN":null,
   "PinBlock":null,
   "UniqueRequestID":"c7dfca97-3274-422d-a3e1-0b3044968e90",
   "MessageDate":"2016-12-28T21:41:58.5979246Z",
   "KeyID":null,
   "StoreID":0,
   "OriginalRequestType":"NotSet",
   "ChipCardData":"",
   "EmvParametersUpdatedDate":"",
   "IsCompleted":false,
   "IsFallbackToMagstripe":false,
   "IsNonTechnicalFallbackToMagstripe":false,
   "EmployeeID":0,
   "VoidReason":"",
   "WorkstationID":"00000000-0000-0000-0000-000000000000",
   "PendingEMVCompletion":false,
   "RetrievalReferenceNumber":"1228164159",
   "MandatoryTokenCreation":true,
   "TokenizedCardID":20063,
   "OriginalRequestID":null,
   "AllowPartialAuth":null,
   "CapabilitiesForDevice":[],
   "BalanceRemaining":null,
   "SequenceNumber":58
}

Transaction

POST a Pre-Authorized Transaction

Creating a pre-authorized transaction will hold funds on a card for roughly 30 days.

After the sale has been processed and shipped the pre-authorization should be completed using Completing a Pre-Authorized Sale.

A pre-authorization can be requested using either a Tokenized Card ID from a previous request to Creating a Token or can directly accept manual entry card data.

Using a previously retrieved Token will allow more than one pre-authorization to be associated with a token (such as submitting multiple orders for the same token).

Manual Entry requires properties - CardHolderName, CardholderAccountNumber, ExpiryMonth, ExpiryYear, Amount, RequestType, EntryType.

TokenizedCardID requires properties - TokenizedCardID, Amount, RequestType, EntryType.

Request

POST /transaction1

Example Request

POST /transaction1
Authorization: Bearer (Access Token)
Accept: application/json
Content-Type: application/json

{
    "TokenizedCardID": 20063,
    "Amount": 10,
    "RequestType": 112,
    "EntryType": 2,
    "UniqueRequestID": "",
    "AllowPartialAuth": false
}
curl -X POST "https://paymentsdemo.iqmetrix.net/v1/transaction1" -H "Authorization: Bearer (Access Token)" -H "Accept: application/json" -H "Content-Type: application/json" -d '{
    "TokenizedCardID": 20063,
    "Amount": 10,
    "RequestType": 112,
    "EntryType": 2,
    "UniqueRequestID": "",
    "AllowPartialAuth": false
}'
static IRestResponse CreatingAPre-authorizedTransaction()
{
    var client = new RestClient("https://paymentsdemo.iqmetrix.net/v1/transaction1");
    var request = new RestRequest(Method.POST);
     
    request.AddHeader("Authorization", "Bearer (Access Token)"); 
    request.AddHeader("Accept", "application/json"); 
    request.AddHeader("Content-Type", "application/json"); 

     request.AddParameter("application/json", "{\"TokenizedCardID\":20063,\"Amount\":10,\"RequestType\":112,\"EntryType\":2,\"UniqueRequestID\":\"\",\"AllowPartialAuth\":false}", ParameterType.RequestBody);

    return client.Execute(request);
}
import org.apache.http.entity.StringEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import java.io.IOException;

public static CloseableHttpResponse CreatingAPre-authorizedTransaction() throws IOException {
    CloseableHttpClient httpClient = HttpClients.createDefault();
    HttpPost request = new HttpPost("https://paymentsdemo.iqmetrix.net/v1/transaction1");
     
    request.addHeader("Authorization", "Bearer (Access Token)"); 
    request.addHeader("Accept", "application/json"); 
    request.addHeader("Content-Type", "application/json"); 
    StringEntity body = new StringEntity("{\"TokenizedCardID\":20063,\"Amount\":10,\"RequestType\":112,\"EntryType\":2,\"UniqueRequestID\":\"\",\"AllowPartialAuth\":false}");
    request.setEntity(body);
    
    return httpClient.execute(request);
}
require 'rest-client'

body = "{\"TokenizedCardID\":20063,\"Amount\":10,\"RequestType\":112,\"EntryType\":2,\"UniqueRequestID\":\"\",\"AllowPartialAuth\":false}";

response = RestClient.post 'https://paymentsdemo.iqmetrix.net/v1/transaction1', body, {
     :'Authorization' => 'Bearer (Access Token)',
     :'Accept' => 'application/json',
     :'Content-Type' => 'application/json',
    } 

puts response

Request Parameters

Response Parameters

Example Response

HTTP 201 Content-Type: application/json
{  
   "Id":"27711",
   "InvoiceID":"",
   "RequestType":"TokenPreauth",
   "Amount":10,
   "Currency":"USD",
   "EntryType":"ManualEntry",
   "CardSwipeType":"NotSet",
   "PaymentDeviceType":"NotSet",
   "CardType":"Visa",
   "CardBin":"400557",
   "LastFourDigits":"1111",
   "CardholderName":"John Doe",
   "ForceApprovalNumber":"",
   "ChequeStateCode":"NotSet",
   "IsUsedInDuplicateDetection":false,
   "EncryptionType":"Unencrypted",
   "KeyManagementType":"None",
   "ProviderReferenceID":"1228175405",
   "IsApproved":true,
   "IsPartialAuthorization":false,
   "ResponseCode":"AA",
   "ResponseMessage":"APPROVAL",
   "AuthorizationNumber":"CVI967",
   "AuthorizedAmount":10,
   "CvvCode":"",
   "CvvResponse":"",
   "AvsCode":"",
   "AvsResponse":"",
   "CommunicatedSuccessfullyWithProvider":true,
   "ErrorMessage":"",
   "VoidedBy":null,
   "ReversedBy":0,
   "MerchantNumber":"9998883332",
   "TerminalNumber":"974",
   "ProviderID":"043c4e62-a150-4d07-ac21-46862e58d471",
   "ExpiryMonth":null,
   "ExpiryYear":null,
   "IsVoided":false,
   "ErrorType":"NotSet",
   "ChequeMICRData":"",
   "ChequeImage":null,
   "CheckDriversLicense":"",
   "ChequeTransactionType":"NotSet",
   "CardholderAccountNumber":null,
   "CardholderZip":"",
   "CardholderAddress":"",
   "CardholderPhone":"",
   "KeyedCVVData":null,
   "TrackData":null,
   "TrackDataKSN":null,
   "EncryptedPAN":null,
   "KSN":null,
   "PinBlock":null,
   "UniqueRequestID":"c136a208-45a2-4839-9e04-8aea434c7ade",
   "MessageDate":"2016-12-28T22:54:03.0479286Z",
   "KeyID":null,
   "StoreID":0,
   "OriginalRequestType":"NotSet",
   "ChipCardData":"",
   "EmvParametersUpdatedDate":"",
   "IsCompleted":false,
   "IsFallbackToMagstripe":false,
   "IsNonTechnicalFallbackToMagstripe":false,
   "EmployeeID":0,
   "VoidReason":"",
   "WorkstationID":"00000000-0000-0000-0000-000000000000",
   "PendingEMVCompletion":false,
   "RetrievalReferenceNumber":"1228175405",
   "MandatoryTokenCreation":true,
   "TokenizedCardID":20072,
   "OriginalRequestID":null,
   "AllowPartialAuth":null,
   "CapabilitiesForDevice":[],
   "BalanceRemaining":null,
   "SequenceNumber":9
}             

Transaction

Completing a Pre-Authorized Sale

This will complete a pre-authorization and convert a hold on funds to an actual sale.

Request

POST /transaction4

Example Request

POST /transaction4
Authorization: Bearer (Access Token)
Accept: application/json
Content-Type: application/json

{
    "TokenizedCardID": 20072,
    "Amount": 10,
    "RequestType": 113,
    "EntryType": 8,
    "UniqueRequestID": "",
    "AllowPartialAuth": false,
    "ForceApprovalNumber": "CVI967"
}
curl -X POST "https://paymentsdemo.iqmetrix.net/v1/transaction4" -H "Authorization: Bearer (Access Token)" -H "Accept: application/json" -H "Content-Type: application/json" -d '{
    "TokenizedCardID": 20072,
    "Amount": 10,
    "RequestType": 113,
    "EntryType": 8,
    "UniqueRequestID": "",
    "AllowPartialAuth": false,
    "ForceApprovalNumber": "CVI967"
}'
static IRestResponse CompletingAPre-authorizedSale()
{
    var client = new RestClient("https://paymentsdemo.iqmetrix.net/v1/transaction4");
    var request = new RestRequest(Method.POST);
     
    request.AddHeader("Authorization", "Bearer (Access Token)"); 
    request.AddHeader("Accept", "application/json"); 
    request.AddHeader("Content-Type", "application/json"); 

     request.AddParameter("application/json", "{\"TokenizedCardID\":20072,\"Amount\":10,\"RequestType\":113,\"EntryType\":8,\"UniqueRequestID\":\"\",\"AllowPartialAuth\":false,\"ForceApprovalNumber\":\"CVI967\"}", ParameterType.RequestBody);

    return client.Execute(request);
}
import org.apache.http.entity.StringEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import java.io.IOException;

public static CloseableHttpResponse CompletingAPre-authorizedSale() throws IOException {
    CloseableHttpClient httpClient = HttpClients.createDefault();
    HttpPost request = new HttpPost("https://paymentsdemo.iqmetrix.net/v1/transaction4");
     
    request.addHeader("Authorization", "Bearer (Access Token)"); 
    request.addHeader("Accept", "application/json"); 
    request.addHeader("Content-Type", "application/json"); 
    StringEntity body = new StringEntity("{\"TokenizedCardID\":20072,\"Amount\":10,\"RequestType\":113,\"EntryType\":8,\"UniqueRequestID\":\"\",\"AllowPartialAuth\":false,\"ForceApprovalNumber\":\"CVI967\"}");
    request.setEntity(body);
    
    return httpClient.execute(request);
}
require 'rest-client'

body = "{\"TokenizedCardID\":20072,\"Amount\":10,\"RequestType\":113,\"EntryType\":8,\"UniqueRequestID\":\"\",\"AllowPartialAuth\":false,\"ForceApprovalNumber\":\"CVI967\"}";

response = RestClient.post 'https://paymentsdemo.iqmetrix.net/v1/transaction4', body, {
     :'Authorization' => 'Bearer (Access Token)',
     :'Accept' => 'application/json',
     :'Content-Type' => 'application/json',
    } 

puts response

Request Parameters

Response Parameters

Example Response

HTTP 201 Content-Type: application/json
{  
   "Id":"27713",
   "InvoiceID":"",
   "RequestType":"TokenCapture",
   "Amount":1,
   "Currency":"USD",
   "EntryType":"ManualEntryCardNotPresent",
   "CardSwipeType":"NotSet",
   "PaymentDeviceType":"NotSet",
   "CardType":"Unknown",
   "CardBin":"",
   "LastFourDigits":"",
   "CardholderName":"",
   "ForceApprovalNumber":"CVI967",
   "ChequeStateCode":"NotSet",
   "IsUsedInDuplicateDetection":false,
   "EncryptionType":"Unencrypted",
   "KeyManagementType":"None",
   "ProviderReferenceID":"",
   "IsApproved":true,
   "IsPartialAuthorization":false,
   "ResponseCode":"AA",
   "ResponseMessage":"APPROVAL",
   "AuthorizationNumber":"CVI967",
   "AuthorizedAmount":1,
   "CvvCode":"",
   "CvvResponse":"",
   "AvsCode":"",
   "AvsResponse":"",
   "CommunicatedSuccessfullyWithProvider":true,
   "ErrorMessage":"",
   "VoidedBy":null,
   "ReversedBy":0,
   "MerchantNumber":"9998883332",
   "TerminalNumber":"974",
   "ProviderID":"043c4e62-a150-4d07-ac21-46862e58d471",
   "ExpiryMonth":null,
   "ExpiryYear":null,
   "IsVoided":false,
   "ErrorType":"NotSet",
   "ChequeMICRData":"",
   "ChequeImage":null,
   "CheckDriversLicense":"",
   "ChequeTransactionType":"NotSet",
   "CardholderAccountNumber":null,
   "CardholderZip":"",
   "CardholderAddress":"",
   "CardholderPhone":"",
   "KeyedCVVData":null,
   "TrackData":null,
   "TrackDataKSN":null,
   "EncryptedPAN":null,
   "KSN":null,
   "PinBlock":null,
   "UniqueRequestID":"feb56063-3686-4cdc-9696-d9e493ac586f",
   "MessageDate":"2016-12-28T22:57:19.7121843Z",
   "KeyID":null,
   "StoreID":0,
   "OriginalRequestType":"NotSet",
   "ChipCardData":"",
   "EmvParametersUpdatedDate":"",
   "IsCompleted":false,
   "IsFallbackToMagstripe":false,
   "IsNonTechnicalFallbackToMagstripe":false,
   "EmployeeID":0,
   "VoidReason":"",
   "WorkstationID":"00000000-0000-0000-0000-000000000000",
   "PendingEMVCompletion":false,
   "RetrievalReferenceNumber":"",
   "MandatoryTokenCreation":false,
   "TokenizedCardID":20072,
   "OriginalRequestID":null,
   "AllowPartialAuth":null,
   "CapabilitiesForDevice":[],
   "BalanceRemaining":null,
   "SequenceNumber":11
}            

Transaction

Was this page helpful?