icon picker
ETT Payments - Flex Microform

Last edited 215 days ago by System Writer
SPAN Payment Flow with Flex Microform and Token Management System (TMS)
This document explains the span payment current flow and new flow with Cybersource, Flex Microform and, Token Management System.

Span Payment Current Flow: Without PCI DSS compliance
In the present flow of Span payments, the ETT application transmits billing information and credit card data to Span Payment API server. These details are sent to Cybersource “Simple order API” from the span Payment API server.
The Cybersource Simple Order API sends responses to the Span Payment API server. Finally the payment API server sends the response to the ETT Application.

image.png

SPAN Payment New Flow: With PCI DSS compliance – PCI SAQ A
In the Payment New flow, the Cybersource “Flex Microform” will be implemented in the ETT application. The Flex Microform will get credit card details and the ETT application will only save the billing information.

ETT Application, Flex Microform and Token Management System Process

New Credit Card Payment Flow
The ETT application, Flex microform and TMS integration flow is explained below.
The Flex microform generates the public key based on the RsaOaep256 algorithm and domain name.
The Flex microform generates the JWT token based on the Credit card information.
Finally, the ETT application creates a Payment request to the CyberSource REST API using JWT token and billing information. The CyberSource REST API sends responses to ETT Application.
image.png
Saved Credit Card Payment Flow
Here, the ETT application creates a Payment request to the CyberSource REST API using Customer Id and billing information. The CyberSource REST API sends responses to the ETT Application.
Create JWT Token using Flex Microform

image.png

image.png
image.png
Script: Create Card Number and CVV Field
image.png
image.png

After Adding Credit Card Details :

image.png
Script: Create Token and adding Expiry month and Expiry Year
image.png

image.png

Flex Response Token :
: Token Encode/Decode
image.png

image.png

image.png

image.png
image.png
image.png
image.png
image.png
Payment Rest API Call Method:
image.png
API Request JSON - Send:
{
"clientReferenceInformation": {
"code": "TC50171_3"
},
"processingInformation": {
"actionList": [
"TOKEN_CREATE"
],
"actionTokenTypes": [
"customer",
"paymentInstrument",
"shippingAddress"
],
"capture": false
},
"orderInformation": {
"amountDetails": {
"totalAmount": "0",
"currency": "USD"
},
"billTo": {
"firstName": "TestCard",
"lastName": "TestCard",
"address1": "2466 Nash Street",
"address2": "",
"locality": "Detroit",
"administrativeArea": "MI",
"postalCode": "48226",
"country": "USA",
"email": "manibalan@spantechnologyservices.com"
},
"shipTo": {
"firstName": "TestCard",
"lastName": "TestCard",
"address1": "2466 Nash Street",
"address2": "",
"locality": "Detroit",
"administrativeArea": "MI",
"postalCode": "48226",
"country": "USA"
}
},
"tokenInformation": {
"transientTokenJwt": "eyJraWQiOiIwOFNjVzRoYm5Edk94azZ1VGZheTR0YTQwNnI3RVhNSyIsImFsZyI6IlJTMjU2In0.eyJkYXRhIjp7ImV4cGlyYXRpb25ZZWFyIjoiMjAyNyIsIm51bWJlciI6IjQxMTExMVhYWFhYWDExMTEiLCJleHBpcmF0aW9uTW9udGgiOiIwNCIsInR5cGUiOiIwMDEifSwiaXNzIjoiRmxleC8wOCIsImV4cCI6MTY4MzA5NTA5MiwidHlwZSI6Im1mLTAuMTEuMCIsImlhdCI6MTY4MzA5NDE5MiwianRpIjoiMUU0MTlURkhJNkoyTEZCSUpaRzhONTlYSTFXSE1UOFZTRU44NFBKMFlHM0JCQjIxUjFZWDY0NTFGRTM0M0Y1MCIsImNvbnRlbnQiOnsicGF5bWVudEluZm9ybWF0aW9uIjp7ImNhcmQiOnsiZXhwaXJhdGlvblllYXIiOnsidmFsdWUiOiIyMDI3In0sIm51bWJlciI6eyJtYXNrZWRWYWx1ZSI6IlhYWFhYWFhYWFhYWDExMTEiLCJiaW4iOiI0MTExMTEifSwic2VjdXJpdHlDb2RlIjp7fSwiZXhwaXJhdGlvbk1vbnRoIjp7InZhbHVlIjoiMDQifSwidHlwZSI6eyJ2YWx1ZSI6IjAwMSJ9fX19fQ.L0TDU1tgG3nMMC06YIbqEfuL5Xq6qeQ1oOlXrG9hBNCq2lr5Y5nDEqzb5XKaNOnulpunaISvtmV1024bVY5BkbhPJpKBecPa-IJWob0uKBhrSPgISHMp3dt7ILFQbvQTNesVx8_s9vcLUL2FNYW9zh6Gbf-hklSLwBWOMnITjTS4otX8FJwZCICteHdmm9eXbLTxvtTzzVkVgSmOSWmh4UFLCsjoXeKSpIZ0nWaTj2SihJlN2FpLpYLWoyFJyWoYAqhKAea3j1_CbYlUxRHmJvQZkjYvBvLs6LjlElALlsrs5A8cbLT3PWGPF5DMs8EdZ5miDNBUCnXa1uJeazcGlg"
}
}

image.png
Response JSON (Success)
{
"_links": {
"self": {
"href": "/pts/v2/payments/6830959732236272403954",
"method": "GET"
},
"capture": {
"href": "/pts/v2/payments/6830959732236272403954/captures",
"method": "POST"
}
},
"id": "6830959732236272403954",
"submitTimeUtc": "2023-05-03T06:39:33Z",
"status": "AUTHORIZED",
"reconciliationId": "YZAB1H51JUGL",
"clientReferenceInformation": {
"code": "TC50171_3"
},
"processorInformation": {
"approvalCode": "831000",
"transactionId": "016150703802094",
"networkTransactionId": "016150703802094",
"responseCode": "85",
"avs": {
"code": "Y",
"codeRaw": "Y"
},
"merchantNumber": "000484111111111"
},
"issuerInformation": {},
"paymentAccountInformation": {
"card": {
"type": "001"
}
},
"paymentInformation": {
"card": {
"type": "001"
},
"tokenizedCard": {
"type": "001"
}
},
"orderInformation": {
"amountDetails": {
"authorizedAmount": "0.00",
"currency": "USD"
}
},
"pointOfSaleInformation": {
"terminalId": "04841111"
},
"tokenInformation": {
"instrumentidentifierNew": false,
"customer": {
"id": "FAC53D1EFB0B4F0CE053AF598E0A0412"
},
"paymentInstrument": {
"id": "6830959732236272403954"
},
"shippingAddress": {
"id": "FAC53DF818995803E053AF598E0A97CA"
},
"instrumentIdentifier": {
"id": "9503759000000014990",
"state": "ACTIVE"
}
}
}

Once the payment is success we will insert the payment log in payment transaction table
image.png
Stored Credit Card Details in Credit Card Profile table
image.png


TMS token types:
Four Token has store in our data base
Customer_Id: The customer token type represents data about the merchant's customer including email address, customer ID, shipping address (stored in a token), and other related fields
Payment_Instrument_Id: The payment instrument token type represents the complete billing details for the payment type including cardholder name, expiration date, and billing address.
Instrument_Identifier_Id: The instrument identifier token type represents the tokenized Primary Account Number (PAN) for card payments as well as the associated COF Network Token, or U.S. or Canadian bank account number and routing number
Payment_Response_Id: The payment Response id like payment Reference Id Each transaction have unique Payment_Response_Id. it use easily trace the transaction

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.