Global Choice™ and Dynamic Pricing
With Fiserv’s Global Choice™, foreign customers have the choice to pay for goods and services purchased online in their home currency when using their Visa or MasterCard credit card for the payment. The currency conversion is quick and eliminates the need for customers to mentally calculate the estimated cost of the purchase in their home currency.
International Visa and MasterCard eCommerce customers can make informed decisions about their online purchases and eradicate any unexpected pricing or foreign exchange conversions on receipt of their monthly statements.
Another option for your foreign customers is to display all pricing within your online store in their home currency using our Dynamic Pricing solution. This solution removes the need for your company to set pricing in any other currency other than your home currency.
If your Store has been activated for one of these product options, you can use this Web Service API to request the currency exchange rates for such transactions.
1. Exchange rate requests for Global Choice™
The following example shows a request to the Web Service API to request a card-related exchange rate.
A successful response is shown in the following answer:
• The status is given by <ipgapi:successfully>true</ipgapi:successfully>
• The response is wrapped within <ipgapi:CardRateForDCC>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns5:IPGApiActionRequest xmlns:ns5="http://ipg-online.com/ipgapi/schemas/ipgapi" xmlns:ns2="http://ipg-online.com/ipgapi/schemas/v1" xmlns:ns3="http://ipg-online.com/ipgapi/schemas/a1">
<ns3:Action>
<ns3:RequestCardRateForDCC>
<ns3:StoreId>110994125</ns3:StoreId>
<ns3:BIN>402939</ns3:BIN>
<ns3:BaseAmount>100.5</ns3:BaseAmount>
</ns3:RequestCardRateForDCC>
</ns3:Action>
</ns5:IPGApiActionRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ipgapi:IPGApiActionResponse
xmlns:ipgapi="http://ipg-online.com/ipgapi/schemas/ipgapi" xmlns:a1="http://ipg-online.com/ipgapi/schemas/a1"
xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1">
<ipgapi:successfully>true</ipgapi:successfully>
<ipgapi:CardRateForDCC>
<v1:InquiryRateId>49150</v1:InquiryRateId>
<a1:ForeignCurrencyCode>978</a1:ForeignCurrencyCode>
<a1:ForeignAmount>130.33</a1:ForeignAmount>
<a1:ExchangeRate>1.2968</a1:ExchangeRate>
<a1:DccOffered>true</a1:DccOffered>
<a1:ExpirationTimestamp>2015-06-23T13:46:00.000+02:00</a1:ExpirationTimestamp>
<a1:MarginRatePercentage>3.0000</a1:MarginRatePercentage>
<a1:ExchangeRateSourceName>REUTERS WHOLESALE INTERBANK</a1:ExchangeRateSourceName>
<a1:ExchangeRateSourceTimestamp>2014-07-14T12:46:00.000+02:00</a1:ExchangeRateSourceTimestamp>
</ipgapi:CardRateForDCC>
</ipgapi:IPGApiActionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
2. Exchange rate requests for Dynamic Pricing
A successful response is shown in the following answer from IPG:
• The status is given by <ipgapi:successfully>true</ipgapi:successfully>
• The response is wrapped within <ipgapi:MerchantRateForDynamicPricing>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns5:IPGApiActionRequest xmlns:ns5="http://ipg-online.com/ipgapi/schemas/ipgapi" xmlns:ns2="http://ipg-online.com/ipgapi/schemas/v1" xmlns:ns3="http://ipg-online.com/ipgapi/schemas/a1">
<ns3:Action>
<ns3:RequestMerchantRateForDynamicPricing>
<ns3:StoreId>110994125</ns3:StoreId>
<ns3:ForeignCurrency>826</ns3:ForeignCurrency>
<ns3:BaseAmount>100.5</ns3:BaseAmount>
</ns3:RequestMerchantRateForDynamicPricing>
</ns3:Action>
</ns5:IPGApiActionRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ipgapi:IPGApiActionResponse xmlns:ipgapi="http://ipg-online.com/ipgapi/schemas/ipgapi" xmlns:a1="http://ipg-online.com/ipgapi/schemas/a1" xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1">
<ipgapi:successfully>true</ipgapi:successfully>
<ipgapi:MerchantRateForDynamicPricing>
<v1:InquiryRateId>49150</v1:InquiryRateId>
<a1:ForeignCurrencyCode>978</a1:ForeignCurrencyCode>
<a1:ForeignAmount>130.33</a1:ForeignAmount>
<a1:ExchangeRate>1.2968</a1:ExchangeRate>
<a1:DccOffered>true</a1:DccOffered>
<a1:ExpirationTimestamp>2015-06-23T13:46:00.000+02:00</a1:ExpirationTimestamp>
<a1:MarginRatePercentage>3.0000</a1:MarginRatePercentage>
<a1:ExchangeRateSourceName>REUTERS WHOLESALE INTERBANK</a1:ExchangeRateSourceName>
<a1:ExchangeRateSourceTimestamp>2014-07-14T12:46:00.000+02:00</a1:ExchangeRateSourceTimestamp>
</ipgapi:MerchantRateForDynamicPricing>
</ipgapi:IPGApiActionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
3. Exchange rate responses
All rate responses share the same XML data-type, they are just wrapped in different parent-tags.
Common fields for all requests are the following:
• Success-status: given with <ipgapi:successfully>true</ipgapi:successfully>
• The ID of the request, given with <v1:InquiryRateId>49150</v1:InquiryRateId>
The latter InquiryRateId
is later to be used to reference the rate request, when performing a transaction with a converted transaction amount.
4. Conversion offering
A rate request with an offering returned is shown with the following example.
• The offering is denoted with <a1:DccOffered>true</a1:DccOffered>
• Each offering has associated timestamps, given as xml:date-time.
o Source time <a1:ExchangeRateSourceTimestamp>2014-07-14T12:46:00.000+02:00</a1:ExchangeRateSourceTimestamp>
o Expiration time <a1:ExpirationTimestamp>2015-06-23T13:46:00.000+02:00</a1:ExpirationTimestamp>
• The source of the curreny-conversion is shown by
<a1:ExchangeRateSourceName>REUTERS WHOLESALE INTERBANK</a1:ExchangeRateSourceName>
• Finally, the currency conversion results are given by the following fields
o Foreign currency: <a1:ForeignCurrencyCode>978</a1:ForeignCurrencyCode>
o Foreign amount: <a1:ForeignAmount>130.33</a1:ForeignAmount>
o Exchange rate: <a1:ExchangeRate>1.2968</a1:ExchangeRate>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ipgapi:IPGApiActionResponse xmlns:ipgapi="http://ipg-online.com/ipgapi/schemas/ipgapi" xmlns:a1="http://ipg-online.com/ipgapi/schemas/a1" xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1">
<ipgapi:successfully>true</ipgapi:successfully>
<ipgapi:CardRateForDCC>
<v1:InquiryRateId>49150</v1:InquiryRateId>
<a1:ForeignCurrencyCode>978</a1:ForeignCurrencyCode>
<a1:ForeignAmount>130.33</a1:ForeignAmount>
<a1:ExchangeRate>1.2968</a1:ExchangeRate>
<a1:DccOffered>true</a1:DccOffered>
<a1:ExpirationTimestamp>2015-06-23T13:46:00.000+02:00</a1:ExpirationTimestamp>
<a1:MarginRatePercentage>3.0000</a1:MarginRatePercentage>
<a1:ExchangeRateSourceName>REUTERS WHOLESALE INTERBANK</a1:ExchangeRateSourceName>
<a1:ExchangeRateSourceTimestamp>2014-07-14T12:46:00.000+02:00</a1:ExchangeRateSourceTimestamp>
</ipgapi:CardRateForDCC>
</ipgapi:IPGApiActionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
5. Declined rate request
A rate request with a declined offering is shown with the following example.
• The declined offering is denoted with <a1:DccOffered>false</a1:DccOffered>
• Also for declined offerings an ID is returned: <v1:InquiryRateId>4051</v1:InquiryRateId>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ipgapi:IPGApiActionResponse xmlns:ipgapi="http://ipg-online.com/ipgapi/schemas/ipgapi" xmlns:a1="http://ipg-online.com/ipgapi/schemas/a1" xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1">
<ipgapi:successfully>true</ipgapi:successfully>
<ipgapi:MerchantRateForDynamicPricing>
<v1:InquiryRateId>4051</v1:InquiryRateId>
<a1:DccOffered>false</a1:DccOffered>
</ipgapi:MerchantRateForDynamicPricing>
</ipgapi:IPGApiActionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
6. Failed rate request
A rate request which couldn’t be processed successfully is shown by the following example:
• Failure-status: given with <ipgapi:successfully>false</ipgapi:successfully>
• The error-element:
o The error-code by the Code attribute: <a1:Error Code="SGS-27440">
o The human readable message:
<a1:ErrorMessage>no amount given</a1:ErrorMessage>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ipgapi:IPGApiActionResponse xmlns:ipgapi="http://ipg-online.com/ipgapi/schemas/ipgapi" xmlns:a1="http://ipg-online.com/ipgapi/schemas/a1" xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1">
<ipgapi:successfully>false</ipgapi:successfully>
<a1:Error Code="SGS-27440">
<a1:ErrorMessage>no amount given</a1:ErrorMessage>
</a1:Error>
</ipgapi:IPGApiActionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
7. Global Choice™ transactions
For compliance reasons Fiserv’s Global Choice can only be offered on transactions that take place in full at that time (e.g. Sale, Refund) and not on any delayed settlement (e.g. pre/post auth, recurring) due to the fluctuation of the rate of exchange.
Performing transactions with a converted amount involves the following steps
- Perform a rate request as described in the sections above.
- Use the returned InquiryRateId to reference the conversion in the payment transaction message. Use the field
DccApplied
to denote whether the user has chosen to use the proposed conversion or not.
Please note:
An
InquiryRateId
may be used only once.After each transaction request, whether successful or not, regardless of the dccApplied setting used, a new rate has to be requested. Re-using a conversion-rate will result in an error message CORE-DCC-10, since the rate-inquiry is already associated with another transaction.
Step 1: Rate request
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns5:IPGApiActionRequest xmlns:ns5="http://ipg-online.com/ipgapi/schemas/ipgapi" xmlns:ns2="http://ipg-online.com/ipgapi/schemas/v1" xmlns:ns3="http://ipg-online.com/ipgapi/schemas/a1">
<ns3:Action>
<ns3:RequestCardRateForDCC>
<ns3:StoreId>110994125</ns3:StoreId>
<ns3:BIN>419681</ns3:BIN>
<ns3:BaseAmount>202.02</ns3:BaseAmount>
</ns3:RequestCardRateForDCC>
</ns3:Action>
</ns5:IPGApiActionRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
The order to be used in a later transaction, the request has to be
• Successful: <ipgapi:successfully>true</ipgapi:successfully>
• With a returned conversion offering <a1:DccOffered>true</a1:DccOffered>
• Not expired <a1:ExpirationTimestamp>2015-06-23T12:46:00.000+02:00</a1:ExpirationTimestamp>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns5:IPGApiActionRequest xmlns:ns5="http://ipg-online.com/ipgapi/schemas/ipgapi" xmlns:ns2="http://ipg-online.com/ipgapi/schemas/v1" xmlns:ns3="http://ipg-online.com/ipgapi/schemas/a1">
<ns3:Action>
<ns3:RequestCardRateForDCC>
<ns3:StoreId>110994125</ns3:StoreId>
<ns3:BIN>419681</ns3:BIN>
<ns3:BaseAmount>202.02</ns3:BaseAmount>
</ns3:RequestCardRateForDCC>
</ns3:Action>
</ns5:IPGApiActionRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Step 2: Using the conversion rate for the payment transaction
The Global Choice™ feature is selected by the element <ns2:InquiryRateReference>.
o The rate-id is used to reference the conversion rate: <ns2:InquiryRateId>8391</ns2:InquiryRateId>
o The users choice whether to apply the proposed rate is specified by: <ns2:DccApplied>true</ns2:DccApplied>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns5:IPGApiOrderRequest xmlns:ns5="http://ipg-online.com/ipgapi/schemas/ipgapi" xmlns:ns2="http://ipg-online.com/ipgapi/schemas/v1" xmlns:ns3="http://ipg-online.com/ipgapi/schemas/a1">
<ns2:Transaction>
<ns2:CreditCardTxType>
<ns2:StoreId>110994125</ns2:StoreId>
<ns2:Type>return</ns2:Type>
</ns2:CreditCardTxType>
<ns2:Payment>
<ns2:ChargeTotal>202.02</ns2:ChargeTotal>
<ns2:Currency>826</ns2:Currency>
</ns2:Payment>
<ns2:TransactionDetails>
<ns2:OrderId>API-Test</ns2:OrderId>
<ns2:InquiryRateReference>
<ns2:InquiryRateId>8391</ns2:InquiryRateId>
<ns2:DccApplied>true</ns2:DccApplied>
</ns2:InquiryRateReference>
</ns2:TransactionDetails>
</ns2:Transaction>
</ns5:IPGApiOrderRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ipgapi:IPGApiOrderResponse
xmlns:ipgapi="http://ipg-online.com/ipgapi/schemas/ipgapi"
xmlns:a1="http://ipg-online.com/ipgapi/schemas/a1"
xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1"> <ipgapi:ApprovalCode>Y:000000:0014746213:PPXM:0000</ipgapi:ApprovalCode>
<ipgapi:AVSResponse>PPX</ipgapi:AVSResponse>
<ipgapi:Brand>VISA</ipgapi:Brand>
<ipgapi:Country>MLT</ipgapi:Country> <ipgapi:CommercialServiceProvider>BOSMS</ipgapi:CommercialServiceProvider>
<ipgapi:OrderId>API-Test</ipgapi:OrderId>
<ipgapi:PaymentType>CREDITCARD</ipgapi:PaymentType>
<ipgapi:ProcessorApprovalCode>000000</ipgapi:ProcessorApprovalCode>
<ipgapi:ProcessorCCVResponse>M</ipgapi:ProcessorCCVResponse>
<ipgapi:ProcessorResponseCode>00</ipgapi:ProcessorResponseCode> <ipgapi:ProcessorResponseMessage>Authorised</ipgapi:ProcessorResponseMessage>
<ipgapi:ReferencedTDate>1407154820</ipgapi:ReferencedTDate>
<ipgapi:TDate>1407154821</ipgapi:TDate>
<ipgapi:TDateFormatted>2014.08.04 14:20:21 (CEST)</ipgapi:TDateFormatted>
<ipgapi:TerminalID>80000012</ipgapi:TerminalID>
<ipgapi:TransactionResult>APPROVED</ipgapi:TransactionResult>
<ipgapi:TransactionTime>1407154821</ipgapi:TransactionTime>
</ipgapi:IPGApiOrderResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Updated about 2 months ago