Link Money Initiate Payment
The Initialize Payment Authorization is the first API of Link Money Checkout Flow. It is used to initiate the Link Money authorization process. The Initialize Payment Authorization response message includes a session key, which the webstore uses to link the Customer's bank account with Link Money.
URI Summary
Action |
URI Template |
URI Example |
Non-URI Request |
Response |
---|---|---|---|---|
POST |
/v[M.m]/stores/[StoreID]/payments/authorization/initialize/[TenderCode].[format] |
/v1.0/stores/store123/payments/authorization/initialize/AH.xml |
XML |
200 + XML response |
Schema
The schema for Initialize Payment Authorization is Payment-Service-InitializePaymentAuthorization-1.0.xsd.
Request Example
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<InitializePaymentAuthorizationRequest xmlns="http://api.gsicommerce.com/schema/checkout/1.0">
<OrderId>123456789</OrderId>
<Amount currencyCode="USD">10.95</Amount>
<RedirectUrl>http://redirect.url</RedirectUrl>
<BillingInformation>
<ContactInformation>
<Person>
<Name>
<LastName>Smith</LastName>
<FirstName>John</FirstName>
</Name>
</Person>
<PrimaryPhoneNumber>55555555555</PrimaryPhoneNumber>
<PrimaryEmailAddress>no-reply@radial.com</PrimaryEmailAddress>
</ContactInformation>
<Address>
<Line1>935 First Ave</Line1>
<City>King of Prussia</City>
<MainDivisionCode>PA</MainDivisionCode>
<CountryCode>US</CountryCode>
<PostalCode>19406</PostalCode>
</Address>
</BillingInformation>
<ShippingInformation>
<ContactInformation>
<Person>
<Name>
<LastName>Smith</LastName>
<FirstName>Jane</FirstName>
</Name>
</Person>
<PrimaryPhoneNumber>4444444444</PrimaryPhoneNumber>
<PrimaryEmailAddress>jane.smith@radial.com</PrimaryEmailAddress>
</ContactInformation>
<Address>
<Line1>630 Allendale Rd</Line1>
<City>King of Prussia</City>
<MainDivisionCode>PA</MainDivisionCode>
<CountryCode>US</CountryCode>
<PostalCode>19426</PostalCode>
</Address>
</ShippingInformation>
<OriginatorIpAddress>127.0.0.1</OriginatorIpAddress>
<GuestCheckout>true</GuestCheckout>
<LineItems>
<LineItemsTotal currencyCode="USD">20.49</LineItemsTotal>
<ShippingTotal currencyCode="USD">0</ShippingTotal>
<TaxTotal currencyCode="USD">1.99</TaxTotal>
<LineItem>
<Name>Golden Fork</Name>
<ProductInformation>
<Type>Physical</Type>
</ProductInformation>
<SkuId>GF-001</SkuId>
<Discount>
<TotalAmount currencyCode="USD">1.50</TotalAmount>
</Discount>
<TotalAmount currencyCode="USD">18.50</TotalAmount>
<Quantity>8</Quantity>
<QuantityUnit>pcs</QuantityUnit>
<UnitAmount currencyCode="USD">2.50</UnitAmount>
</LineItem>
</LineItems>
<MerchantDescription>soft-descriptor</MerchantDescription>
<Promotions>
<PromotionsTotal currencyCode="USD">7.99</PromotionsTotal>
</Promotions>
</InitializePaymentAuthorizationRequest>
Request Elements
Element |
Optional/Required |
Description |
Type |
Restriction |
---|---|---|---|---|
OrderId |
Required |
Unique identifier for an order across all transactions of the same order |
String |
1-20 characters |
Amount |
Required |
Total value of the authorization. When line items are specified must match the sum of the individual line item total amounts |
Decimal |
Min 0.00
|
Amount@currencyCode |
Required |
The currency of the order amount |
ISO 4217 currency code |
|
BillingInformation |
Required |
Represents Billing Information of the order. Contains Customer Information and Address. |
ComplexType |
|
BillingInformation/ContactInformation/Person/Name/LastName |
Required |
The Last Name of the customer placing the order. |
String |
Min 1 Character. Alphabets(A-Z, a-z), hyphen(-), dot(.), single quote(') are allowed. |
BillingInformation/ContactInformation/Person/Name/FirstName |
Required |
The First Name of the customer placing the order. |
String |
Min 1 Character. Alphabets(A-Z, a-z), hyphen(-), dot(.), single quote(') are allowed. |
Amount@currencyCode |
Required |
The currency of the order amount |
ISO 4217 currency code |
|
RedirectUrl |
Required |
The url the webstore should be redirecting the customer to to finish the transaction |
String |
Must be secure HTTPS value |
BillingInformation/ContactInformation/PrimaryPhoneNumber |
Required |
Customer phone number used for order follow-up. |
String |
6-16 numbers. |
BillingInformation/ContactInformation/PrimaryEmailAddress |
Required |
Email address of the customer. |
String |
6-64 characters |
BillingInformation/Address/Line1 |
Required |
The Line1 components contain the street address. |
String |
Min 1 character |
BillingInformation/Address/City |
Required |
City of the Billing Address. |
String |
Min 1 character |
BillingInformation/Address/MainDivision |
Required |
Typically, a two- or three-digit postal abbreviation for the state or province.
|
String |
Max 30 characters |
BillingInformation/Address/CountryCode |
Required |
Two-digit ISO country code conforming to ISO 3166 alpha 2. |
String |
Min 2 characters
|
BillingInformation/Address/PostalCode |
Required |
Postal code of the Billing Address. |
String |
3-10 characters |
ShippingInformation |
Required |
Represents Shipping Information of the order. Contains Customer Information and Address. |
ComplexType |
|
ShippingInformation/ContactInformation/Person/Name/LastName |
Required |
The Last Name of the customer placing the order. |
String |
Min 1 Character. |
ShippingInformation/ContactInformation/Person/Name/FirstName |
Required |
The First Name of the customer placing the order. |
String |
Min 1 Character. |
ShippingInformation/ContactInformation/PrimaryPhoneNumber |
Required |
Customer phone number used for order follow-up. |
String |
6-16 numbers. |
ShippingInformation/ContactInformation/PrimaryEmailAddress |
Required |
Email address of the customer. |
String |
6-64 characters |
ShippingInformation/Address/Line1 |
Required |
The Line1 components contain the street address. |
String |
Min 1 character |
ShippingInformation/Address/City |
Required |
City of the Shipping Address. |
String |
Min 1 character |
ShippingInformation/Address/MainDivision |
Required |
Typically, a two- or three-digit postal abbreviation for the state or province.
|
String |
Max 30 characters |
ShippingInformation/Address/CountryCode |
Required |
Two-digit ISO country code conforming to ISO 3166 alpha 2. |
String |
Min 2 characters
|
ShippingInformation/Address/PostalCode |
Required |
Postal code of the Shipping Address. |
String |
3-10 characters |
OriginatorIpAddress |
Required |
An IP version 4 or version 6 address. |
String |
Max 39 characters |
GuestCheckout |
Required |
If this was a guest checkout |
Boolean |
true or false |
LineItems |
Recommended but not required |
Sequence of individual line items |
ComplexType |
|
LineItems/LineItemsTotal |
Required |
Total amount for all line items. Must be equal to the sum of individual line item total amounts. |
Decimal |
Min 0.00 Max 9 digits Fraction 2 digits |
LineItems/ShippingTotal |
Required |
Total shipping amount for all line items. Includes currencyCode attribute that contains the 3-letter currency code of the money amount. |
Decimal |
Min 0.00 Max 9 digits Fraction 2 digits |
LineItems/TaxTotal |
Required |
Total tax amount for all line items. Includes currencyCode attribute that contains the 3-letter currency code of the money amount. For NA sessions this must be the amount of the sales_tax type line item. For EU sessions this must be the sum of the line item tax total amounts. |
Decimal |
Min 0.00 Max 9 digits Fraction 2 digits |
LineItems/LineItem/Name |
Required |
Display name of the product |
String |
|
LineItems/LineItem/ProductInformation |
Required |
Descriptive information about the product. |
String |
|
LineItems/LineItem/ProductInformation/Type |
Required |
Whether the item is Digital or Physical |
String |
Physical / Digital |
LineItems/LineItem/Tax |
Required for EU Sessions |
Tax information for the line item. |
Complex type |
|
LineItems/LineItem/Tax/TotalAmount |
Required |
The total tax for the line item. This must be equal to (Total Amount * Rate / 100) / (1 + Rate / 100). |
amount |
Minimum 0, may include up to 2 fractional digits. |
LineItems/LineItem/Tax/Rate |
Required |
The tax rate charged for the item as a percentage e.g. 12.6. |
decimal |
Minimum 0, may include up to 2 fractional digits. |
LineItems/LineItem/Discount/TotalAmount |
Optional |
The discount applied to the total cost of the item. Includes currency code. |
amount |
Minimum 0, may include up to 2 fractional digits. |
LineItems/LineItem/TotalAmount |
Required |
The total amount for the line item. Must equal (unit amount * quantity) - discount. Includes currency code. |
amount |
Minimum 0, may include up to 2 fractional digits. |
LineItems/LineItem/Quantity |
Required |
The number of units of product. |
integer |
|
LineItems/LineItem/QuantityUnit |
Optional |
The units of product. |
string |
1-8 characters |
LineItems/LineItem/UnitAmount |
Required |
The value of a single unit of product, includes currency code. |
amount |
Minimum 0, may include up to 2 fractional digits. |
MerchantDescription |
Optional |
This is a short message shown at the customer's bank statement |
String |
1- 80 characters. A value of 22 characters is recommended and a maximum value of 80 characters are allowed. |
Promotions/PromotionsTotal |
Optional |
Total promotion amount for all line items. Includes currencyCode attribute that contains the 3-letter currency code of the money amount. |
amount |
Minimum 0, may include up to 2 fractional digits. |
Response Examples
Success Response
<?xml version="1.0" encoding="UTF-8"?>
<InitializePaymentAuthorizationReply xmlns:payment="http://schema.gsicommerce.com/payments/types/1.0/"
xmlns="http://api.gsicommerce.com/schema/checkout/1.0">
<PaymentContext>
<OrderId>123456789</OrderId>
<TenderType>AH</TenderType>
</PaymentContext>
<ResponseCode>Success</ResponseCode>
<PaymentId>bem81ldsjr400</PaymentId>
<LinkMoneyPaymentData>
<SessionKey>7f7c2df3-875a-4c6d-bd80-74c256b35812</SessionKey>
<SessionUrl>https://client.link.money?redirect=redirect_url&version=web-v1.0.0&sessionKey=a5292de413e-2626d8244239-879a9-ffbdfa2</SessionUrl>
</LinkMoneyPaymentData>
<Amount currencyCode="USD">10.95</Amount>
</InitializePaymentAuthorizationReply>
Response Elements
Element |
Optional/Required |
Description |
Type |
Restriction |
---|---|---|---|---|
/InitializePaymentAuthorizationReply/PaymentContext |
Required |
Unique identifier of the payment transaction for the order. |
ComplexType |
|
/InitializePaymentAuthorizationReply/PaymentContext/OrderId |
Required |
Unique identifier of the order from the InitializePaymentAuthorizationRequest |
String |
Min 1 character
|
/InitializePaymentAuthorizationReply/PaymentContext/TenderType |
Required |
Identifies the tender type used for the transaction. |
String |
Min 2 character
|
/InitializePaymentAuthorizationReply/PaymentId |
Required |
The unique identifier for the created order. This must be used for subsequent calls. |
String |
Min 1 character
|
/InitializePaymentAuthorizationReply/LinkMoneyPaymentData/SessionKey |
Required |
Session Key returned from the Link Money Gateway. This session key is used to link the Customer's Bank account with Link Money. |
String |
Max 256 characters |
/InitializePaymentAuthorizationReply/LinkMoneyPaymentData/SessionUrl |
Required |
The URL of the LinkMoney session used for SDK JS integration |
String |
|
/InitializePaymentAuthorizationReply/Amount |
Required |
The order amount associated with the created session. |
Decimal |
Total dollar value of the authorization. Format as 0.00 and max 9 digits total.
|
/InitializePaymentAuthorizationReply/ResponseCode |
Required |
Response code of the Link Money authorization. Contains 'Success' or 'Fail' or 'Timeout'.
|
String |
|
GuestCheckout |
Required |
If this was a guest checkout |
Boolean |
true or false |
LineItems |
Recommended but not required |
Sequence of individual line items |
ComplexType |
|
LineItems/LineItemsTotal |
Required |
Total amount for all line items. Must be equal to the sum of individual line item total amounts. |
Decimal |
Min 0.00 Max 9 digits Fraction 2 digits |
LineItems/ShippingTotal |
Required |
Total shipping amount for all line items. Includes currencyCode attribute that contains the 3-letter currency code of the money amount. |
Decimal |
Min 0.00 Max 9 digits Fraction 2 digits |
LineItems/TaxTotal |
Required |
Total tax amount for all line items. Includes currencyCode attribute that contains the 3-letter currency code of the money amount. For NA sessions this must be the amount of the sales_tax type line item. For EU sessions this must be the sum of the line item tax total amounts. |
Decimal |
Min 0.00 Max 9 digits Fraction 2 digits |
LineItems/LineItem/Name |
Required |
Display name of the product |
String |
|
LineItems/LineItem/ProductInformation |
Required |
Descriptive information about the product. |
String |
|
LineItems/LineItem/ProductInformation/Type |
Required |
Whether the item is Digital or Physical |
String |
Physical / Digital |
LineItems/LineItem/Tax |
Required for EU Sessions |
Tax information for the line item. |
Complex type |
|
LineItems/LineItem/Tax/TotalAmount |
Required |
The total tax for the line item. This must be equal to (Total Amount * Rate / 100) / (1 + Rate / 100). |
amount |
Minimum 0, may include up to 2 fractional digits. |
LineItems/LineItem/Tax/Rate |
Required |
The tax rate charged for the item as a percentage e.g. 12.6. |
decimal |
Minimum 0, may include up to 2 fractional digits. |
LineItems/LineItem/Discount/TotalAmount |
Optional |
The discount applied to the total cost of the item. Includes currency code. |
amount |
Minimum 0, may include up to 2 fractional digits. |
LineItems/LineItem/TotalAmount |
Required |
The total amount for the line item. Must equal (unit amount * quantity) - discount. Includes currency code. |
amount |
Minimum 0, may include up to 2 fractional digits. |
LineItems/LineItem/Quantity |
Required |
The number of units of product. |
integer |
|
LineItems/LineItem/QuantityUnit |
Optional |
The units of product. |
string |
1-8 characters |
LineItems/LineItem/UnitAmount |
Required |
The value of a single unit of product, includes currency code. |
amount |
Minimum 0, may include up to 2 fractional digits. |
Promotions/PromotionsTotal |
Optional |
Total promotion amount for all line items. Includes currencyCode attribute that contains the 3-letter currency code of the money amount. |
amount |
Minimum 0, may include up to 2 fractional digits. |
Failure Response
In case of failure, the webstore should correct the request based on the response code and response code description, and retry the Initialize Payment Authorization Request.
<?xml version="1.0" encoding="UTF-8"?>
<InitializePaymentAuthorizationReply xmlns:payment="http://schema.gsicommerce.com/payments/types/1.0/"
xmlns="http://api.gsicommerce.com/schema/checkout/1.0">
<PaymentContext>
<OrderId>123456789</OrderId>
<TenderType>AH</TenderType>
</PaymentContext>
<ResponseCode>Fail</ResponseCode>
<ResponseCodeDescription>Please check the attribute : email</ResponseCodeDescription>
<PaymentId>bf81rogj5ds00</PaymentId>
<Amount currencyCode="USD">49.95</Amount>
</InitializePaymentAuthorizationReply>
Fault Response
In case of fault response, the webstore should retry the Initialize Payment Authorization Request. If the request consistently fails, reach out to Radial support for troubleshooting.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Fault xmlns="http://api.gsicommerce.com/schema/checkout/1.0">
<CreateTimestamp>2023-12-12T07:59:03.356Z</CreateTimestamp>
<Code>SystemProcessingError</Code>
<Description>A system error has occurred.</Description>
</Fault>
Timeout Response
In case of timeout response, the webstore should retry the Initialize Payment Authorization Request.
<?xml version="1.0" encoding="UTF-8"?>
<InitializePaymentAuthorizationReply xmlns="http://api.gsicommerce.com/schema/checkout/1.0"
xmlns:payment="http://schema.gsicommerce.com/payments/types/1.0/">
<PaymentContext>
<OrderId>123456789</OrderId>
<TenderType>AH</TenderType>
</PaymentContext>
<ResponseCode>Timeout</ResponseCode>
<PaymentId>b33j9ynrb400</PaymentId>
<Amount currencyCode="USD">0</Amount>
</InitializePaymentAuthorizationReply>
In case of timeout in Radial or webstore
If there is no response from Radial, or response timed out between webstore and Radial, or the webstore couldn't get a response from Radial for any reason, the webstore should retry the Initialize Payment Authorization Request.
Next Step
After the successful Initialize Payment Authorization call, the next step is a call to link the customer's bank account with Link Money .