Payment Link Card Storage
Once you have a payment page configured on your account the next step is to use it to securely store credit card data. This stored data can then be used to make subsequent tagged or recurring transactions.
The two x_type transactions that can be used to create Recurring Seed transactions are AUTH_TOKEN or PURCHASE_TOKEN:
AUTH_TOKENis a Pre-authorization transaction that returns a transaction tag which can be used by the API to perform additional transactions for that cardholder.PURCHASE_TOKENA Sale transaction that captures funds and returns a transaction tag that can be used by the API to perform additional transactions for that cardholder.
You can direct cardholders to your Hosted Payment Page using Payment Links
Payment Links
Payment Links provide the easiest way to securely capture cardholder data. Instead of building an HTML form and making a POST call from your server, you can use the /payment_links API call to generate a ready-to-use URL that directs the cardholder straight to the Hosted Payment Page.
Once the cardholder completes the transaction via the link, your system simply consumes the results returned to your designated response endpoint. You do not have to handle the initial POST request at all.
Processing the Response
Regardless of which method you use to send the cardholder to the payment page, once the transaction has been executed and approved, the response data will contain both an Authorization Number and a Tag Number.
These two values are required in order to make subsequent Tagged Transactions using the API. See the example of a raw transaction response below. We have highlighted the Authorization Number (x_auth_code) and the Tag Number (x_trans_id):
x_response_code=1&x_response_subcode=S&x_response_reason_code=1&x_response_reason_text=Transaction+has+been+approved&x_auth_code=ET187443&x_avs_code=&x_trans_id=2151376984&x_invoice_num=Invoice100&x_description=&x_amount=0.01&x_method=&x_type=AUTH_TOKEN&x_cust_id=&x_first_name=&x_last_name=&x_company=&x_address=&x_city=&x_state=&x_zip=&x_country=&x_phone=&x_fax=&x_email=&x_ship_to_first_name=&x_ship_to_last_name=&x_ship_to_company=&x_ship_to_address=&x_ship_to_city=&x_ship_to_state=&x_ship_to_zip=&x_ship_to_country=&x_tax=&x_duty=&x_freight=&x_tax_exempt=&x_po_num=PO12345&x_reference_3=&x_cvv2_resp_code=M&x_cavv_response=1&exact_ctr=%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D+TRANSACTION+RECORD+%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0ARichard%27s+DEMO%0A123+test+st%0Atestville%2C+AB+t2a0l3%0ACanada%0A%0A%0ATYPE%3A+Pre-Authorization%0A%0AACCT%3A+Visa++%24+0.01+CAD%0A%0ACARD+NUMBER+%3A+%23%23%23%23%23%23%23%23%23%23%23%234242%0ADATE%2FTIME+++%3A+15+Aug+24+14%3A49%3A14%0AREFERENCE+%23+%3A+001+000108+M%0AAUTHOR.+%23+++%3A+ET187443%0ATRANS.+REF.+%3A+Invoice100%0A%0A++++Approved+-+Thank+You+000%0A%0A++++%0A%0A%0APlease+retain+this+copy+for+your+records.%0A%0ACardholder+will+pay+above+amount+to+card%0Aissuer+pursuant+to+cardholder+agreement.%0A%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D&exact_issname=&exact_issconf=&exact_wsp_version=1.7&x_SHA1_Hash=12fd20bd37a0d0ac3967588bd6829c1747d8e2cb&x_login=WSP-RICHA-iZIoDgA7aw&x_test_request=TRUE&x_fp_sequence=12345&x_fp_timestamp=1723757723&x_show_form=PAYMENT_FORM&Transaction_Type=40&DollarAmount=0.01&SurchargeAmount=0&Card_Number=%23%23%23%23%23%23%23%23%23%23%23%234242&Transaction_Tag=2151376984&Authorization_Num=ET187443&Expiry_Date=1028&CardHoldersName=Exact+Test&CVD_Presence_Ind=0&ZipCode=&Tax1Amount=&Tax1Number=&Tax2Amount=&Tax2Number=&Secure_AuthRequired=0&Secure_AuthResult=0&Ecommerce_Flag=0&XID=&CAVV_Algorithm=0&Reference_No=Invoice100&Customer_Ref=PO12345&Reference_3=&Language=0&Client_IP=&Client_Email=&Transaction_Error=false&Transaction_Approved=YES&EXact_Resp_Code=00&EXact_Message=Transaction+Normal&Bank_Resp_Code=000&Bank_Message=Approved&Bank_Resp_Code_2=&SequenceNo=000108&AVS=&CVV2=M&Retrieval_Ref_No=0793723&CAVV_Response=1&MerchantName=Richard%27s+DEMO&MerchantAddress=123+test+st&MerchantCity=testville&MerchantProvince=Alberta&MerchantCountry=Canada&MerchantPostal=t2a0l3&TransactionCardType=VISAUsing the API and Transaction Tags to make Tagged Transactions
Once you have the Authorization and Tag Numbers (whether they were created from a previous API or HCO transaction) you are ready to make a Tagged Transaction.
In the majority of situations, E-xact recommends the use of a Tagged Purchase (30) to make subsequent charges from a tokenized card.
Here is an example of a Tagged Purchase using the API, utilizing the Tag that we created from our original transaction:
{
"transaction_type": "30",
"amount": "1.00",
"transaction_tag": "984166872",
"authorization_num": "ET161625",
"ecommerce_flag": 2,
"stored_credentials": {
"indicator": "S",
"initiation": "M",
"schedule": "S"
}
}There you have it, from start to finish: a walkthrough of how to create a Recurring Seed transaction through the payment page and follow up with a Tagged Purchase transaction made through the API.
NoteYou can create a Recurring Seed Transaction without the payment page. From the API, a Recurring Seed Pre-Authorization is Transaction Type
40, and a Recurring Seed Purchase is Transaction Type41. The hosted payment page ensures that you, as the merchant, do not handle sensitive credit card data; if this is not a concern to your business, then using the API to store the data is an alternative.
Updated 16 days ago
