Introduction

Rupay cards can be authenticated through 2 different methods.
Redirection Flow – a payment page is redirected to the Issuer’s authentication page to complete the authentication with an OTP (One Time Password)
Seamless Flow – authentication is performed within your website

Which of above authentication methods can be used depends on its availability on the issuers’ side. For card BINs supporting both methods a seamless authentication is usually preferred.
Rupay Authentication is initiated with a “Payerauth” request containing the following additional mandatory fields.
AuthenticateTransaction parameter to be set to “true”
TermUrl parameter represents the URL to which the result of the authentication is redirected.
CardHolderBrowserParameters containing BrowserAcceptHeader, BrowserIP, BrowserLanguage, BrowserUserAgent are mandatory

API response you receive from the Gateway from a payerauth request, will help you to identify which authentication method has been selected and is supported by the issuer.

Redirection Flow

In case the issuer supports Redirection method only, the Gateway returns the parameter AcsURL in the response.
You need to perform a redirect as a POST request to the AcsURL which is generally implemented as auto-submit form. The cardholder will be redirected to the issuer’s ACS and presented with the UI to collect the authentication details - to enter one-time-password (OTP).

In the first step you submit a payerauth request including all mandatory parameters as highlighted below.
The following XML document represents an example of a Payerauth transaction using the minimum set of elements and a response indicating, that the Redirection Flow is supported by the issuer:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:ipg="http://ipg-online.com/ipgapi/schemas/ipgapi" 
xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1" 
    
    <soapenv:Header/>
    <soapenv:Body>
        <ipg:IPGApiOrderRequest>
            <v1:Transaction>
                <v1:CreditCardTxType>
                    <v1:StoreId>{{storeid}}</v1:StoreId>
                    <v1:Type>payerauth</v1:Type>
                </v1:CreditCardTxType>
                <v1:CreditCardData>
                    <v1:CardNumber>{{rupay.cardnumber}}</v1:CardNumber>
                    <v1:ExpMonth>{{rupay.exp_mon}}</v1:ExpMonth>
                    <v1:ExpYear>{{rupay.exp_year}}</v1:ExpYear>
                    <v1:CardCodeValue>{{rupay.cvv}}</v1:CardCodeValue>
                    <v1:Brand>RUPAY</v1:Brand>
                </v1:CreditCardData>
                <v1:CreditCard3DSecure>
                    <v1:AuthenticateTransaction>true</v1:AuthenticateTransaction>
                    <v1:TermUrl> https://test.webshop/receiveAndProcess/validate</v1:TermUrl>
                    <v1:CardHolderBrowserParameters>
                        <v1:BrowserAcceptHeader>text/html,application/xhtml+xml,application</v1:BrowserAcceptHeader>
                        <v1:BrowserIP>127.0.0.1</v1:BrowserIP>
                        <v1:BrowserLanguage>en-US</v1:BrowserLanguage>
                        <v1:BrowserUserAgent>Mozilla/5.0 (</v1:BrowserUserAgent>
                    </v1:CardHolderBrowserParameters>
                </v1:CreditCard3DSecure>
                <v1:Payment>
                    <v1:ChargeTotal>15</v1:ChargeTotal>
                    <v1:Currency>INR</v1:Currency>
                </v1:Payment>
            </v1:Transaction>
        </ipg:IPGApiOrderRequest>
    </soapenv:Body>
</soapenv:Envelope>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header/>
    <SOAP-ENV:Body>
<ipgapi:IPGApiOrderResponse 
xmlns:a1="http://ipg-online.com/ipgapi/schemas/a1" 
xmlns:ipgapi="http://ipg-online.com/ipgapi/schemas/ipgapi" 
xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1">
<ipgapi:ApprovalCode>?:waiting authentication</ipgapi:ApprovalCode>
<ipgapi:Brand>RUPAY</ipgapi:Brand>
<ipgapi:Country>IND</ipgapi:Country>
<ipgapi:CommercialServiceProvider>IMS</ipgapi:CommercialServiceProvider>
<ipgapi:OrderId>A-3a0bb646-430e-43bb-ad3a-2170c61597b0</ipgapi:OrderId>
<ipgapi:IpgTransactionId>84438910651</ipgapi:IpgTransactionId>
<ipgapi:PaymentType>CREDITCARD</ipgapi:PaymentType>
<ipgapi:TDate>1685187954</ipgapi:TDate>
<ipgapi:TDateFormatted>2023.05.27 13:45:54 (CEST)</ipgapi:TDateFormatted>
<ipgapi:TransactionTime>1685187954</ipgapi:TransactionTime>
<ipgapi:Secure3DResponse>
<v1:Secure3DVerificationResponse>
<v1:VerificationRedirectResponse>
<v1:AcsURL>https://test/gateway/processing?rupayId=84438910651</v1:AcsURL>
<v1:TermUrl> https://test/webshop/receiveAndProcess/validate</v1:TermUrl>
</v1:VerificationRedirectResponse>
</v1:Secure3DVerificationResponse>
</ipgapi:Secure3DResponse>
</ipgapi:IPGApiOrderResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

The parameter AcsURL in the “VerificationRedirectResponse” represents the URL you need to redirect your consumers to, so that they are able to perform an authentication.

In the next step you need to POST data to the indicated AcsURL usually implemented as an auto-submit form. This needs to be implemented within your website. The cardholder will be redirected to the ACS and presented with the UI to collect the authentication details - enter one-time-password (OTP). After successful authentication the consumer is redirected back the URL you provided within TermUrl parameter.

It is recommended to perform the extended hash validation on the fields received in the response and inquiry order status, to ensure there were no data tampering in place.

In the next step you need to submit a “sale” request and include ipgTransactionId you have received in the first API response from out Gateway.

The following XML document represents an example of a SALE transaction using the minimum set of elements and a response:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header />
    <SOAP-ENV:Body>
        <ipgapi:IPGApiOrderRequest
xmlns:ipgapi="http://ipg-online.com/ipgapi/schemas/ipgapi" 
xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1">
            <v1:Transaction>
                <v1:CreditCardTxType>
                    <v1:StoreId>{{storeid}}</v1:StoreId>
                    <v1:Type>sale</v1:Type>
                </v1:CreditCardTxType>
                <v1:CreditCardData>
                    <v1:CardCodeValue>{{rupay.cvv}}</v1:CardCodeValue>
                </v1:CreditCardData>
                <v1:Payment>
                    <v1:ChargeTotal>15</v1:ChargeTotal>
                    <v1:Currency>356</v1:Currency>
                </v1:Payment>
                <v1:TransactionDetails>
                    <v1:IpgTransactionId>84438910651</v1:IpgTransactionId>
                </v1:TransactionDetails>
            </v1:Transaction>
        </ipgapi:IPGApiOrderRequest>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header/>
    <SOAP-ENV:Body>
        <SOAP-ENV:Fault>
            <faultcode>SOAP-ENV:Client</faultcode>
            <faultstring xml:lang="en">ProcessingException</faultstring>
            <detail>
<ipgapi:IPGApiOrderResponse 
xmlns:a1="http://ipg-online.com/ipgapi/schemas/a1" 
xmlns:ipgapi="http://ipg-online.com/ipgapi/schemas/ipgapi" 
xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1">
<ipgapi:ApprovalCode>Y:095120:4438510496:PPX :314609510495</ipgapi:ApprovalCode>
<ipgapi:AVSResponse>PPX</ipgapi:AVSResponse>
<ipgapi:Brand>RUPAY</ipgapi:Brand>
<ipgapi:Country>IND</ipgapi:Country>
<ipgapi:CommercialServiceProvider>IMS</ipgapi:CommercialServiceProvider>
<ipgapi:ErrorMessage>SGS-030052: Communication Error</ipgapi:ErrorMessage>
<ipgapi:OrderId>A-3a0bb646-430e-43bb-ad3a-2170c61597b0</ipgapi:OrderId>
<ipgapi:IpgTransactionId>84438910652</ipgapi:IpgTransactionId>
<ipgapi:PaymentType>CREDITCARD</ipgapi:PaymentType>
<ipgapi:ProcessorApprovalCode>095120</ipgapi:ProcessorApprovalCode>
<ipgapi:ProcessorReferenceNumber>314717910651</ipgapi:ProcessorReferenceNumber>
<ipgapi:ProcessorResponseCode>00</ipgapi:ProcessorResponseCode>
<ipgapi:ProcessorResponseMessage>success</ipgapi:ProcessorResponseMessage>
<ipgapi:SchemeTransactionId>100112023052600000000000220467</ipgapi:SchemeTransactionId>
<ipgapi:TDate>1685190028</ipgapi:TDate>
<ipgapi:TDateFormatted>2023.05.27 14:20:28 (CEST)</ipgapi:TDateFormatted>
<ipgapi:TerminalID>00001113</ipgapi:TerminalID>
<ipgapi:TransactionResult>APPROVED</ipgapi:TransactionResult>
<ipgapi:TransactionTime>1685190028</ipgapi:TransactionTime>
</ipgapi:IPGApiOrderResponse>
</detail>
        </SOAP-ENV:Fault>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Seamless Flow

In case the issuer supports Seamless flow, the Gateway returns the OtpVerificationResponse parameter after payerAuth request.
During the seamless flow, the cardholder’s authentication (OTP) is captured within your webside and OTP must be submitted to the Gateway in the next API request.

In the first step you submit a payerauth request including all mandatory parameters, e.g. AuthenticateTransaction, TermUrl, CardHolderBrowserParameters.

The following XML document represents an example of a Payerauth transaction using the minimum set of elements and a response containing parameter OtpVerificationResponse indicating, that the Seamless Flow is supported by the issuer:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:ipg="http://ipg-online.com/ipgapi/schemas/ipgapi" 
xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1" 
    <soapenv:Header/>
    <soapenv:Body>
        <ipg:IPGApiOrderRequest>
            <v1:Transaction>
                <v1:CreditCardTxType>
                    <v1:StoreId>{{storeid}}</v1:StoreId>
                    <v1:Type>payerauth</v1:Type>
                </v1:CreditCardTxType>
                <v1:CreditCardData>
                    <v1:CardNumber>{{rupay.cardnumber}}</v1:CardNumber>
                    <v1:ExpMonth>{{rupay.exp_mon}}</v1:ExpMonth>
                    <v1:ExpYear>{{rupay.exp_year}}</v1:ExpYear>
                    <v1:CardCodeValue>{{rupay.cvv}}</v1:CardCodeValue>
                    <v1:Brand>RUPAY</v1:Brand>
                </v1:CreditCardData>
                <v1:CreditCard3DSecure>
         <v1:AuthenticateTransaction>true</v1:AuthenticateTransaction>
         <v1:TermUrl> https://test.webshop/receiveAndProcess/validate</v1:TermUrl>
         <v1:CardHolderBrowserParameters>
              <v1:BrowserAcceptHeader>text/html,application/xhtml+xml,application</v1:BrowserAcceptHeader>
              <v1:BrowserIP>127.0.0.1</v1:BrowserIP>
              <v1:BrowserLanguage>en-US</v1:BrowserLanguage>
              <v1:BrowserUserAgent>Mozilla/5.0 (</v1:BrowserUserAgent>
         </v1:CardHolderBrowserParameters>
                </v1:CreditCard3DSecure>
                <v1:Payment>
                    <v1:ChargeTotal>123</v1:ChargeTotal>
                    <v1:Currency>INR</v1:Currency>
                </v1:Payment>
            </v1:Transaction>
        </ipg:IPGApiOrderRequest>
    </soapenv:Body>
</soapenv:Envelope>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header/>
    <SOAP-ENV:Body>
<ipgapi:IPGApiOrderResponse 
xmlns:a1="http://ipg-online.com/ipgapi/schemas/a1" 
xmlns:ipgapi="http://ipg-online.com/ipgapi/schemas/ipgapi" 
xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1">
<ipgapi:ApprovalCode>?:waiting authentication</ipgapi:ApprovalCode>
<ipgapi:Brand>RUPAY</ipgapi:Brand>
<ipgapi:Country>IND</ipgapi:Country>
<ipgapi:CommercialServiceProvider>IMS</ipgapi:CommercialServiceProvider>
<ipgapi:OrderId>A-7263bcdf-b2b7-4797-a5a6-691181cf0510</ipgapi:OrderId>
<ipgapi:IpgTransactionId>84439794295</ipgapi:IpgTransactionId>
<ipgapi:PaymentType>CREDITCARD</ipgapi:PaymentType>
<ipgapi:TDate>1685864722</ipgapi:TDate>
<ipgapi:TDateFormatted>2023.06.04 09:45:22 (CEST)</ipgapi:TDateFormatted>
<ipgapi:TransactionTime>1685864722</ipgapi:TransactionTime>
<ipgapi:Secure3DResponse>
<v1:OtpVerificationResponse>
<v1:OtpValidityInMinutes>1</v1:OtpValidityInMinutes>
</v1:OtpVerificationResponse>
</ipgapi:Secure3DResponse>
</ipgapi:IPGApiOrderResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

While receiving the OtpVerificationResponse, you must provide an option for your carholders to collect the authentication details, such as One-Time Password.

While capturing the OTP within your website, you must submit a payerauth request to the Gateway and include a parameter VerifyOtp.

The following XML document represents an example of a payerauth transaction using the minimum set of elements. In the response you receive a confirmation, if the OTP has been verified successfully.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:ipg="http://ipg-online.com/ipgapi/schemas/ipgapi" 
xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1"> 
    <soapenv:Header/>
    <soapenv:Body>
        <ipg:IPGApiOrderRequest>
            <v1:Transaction>
                <v1:CreditCardTxType>
                    <v1:StoreId>{{storeid}}</v1:StoreId>
                    <v1:Type>payerauth</v1:Type>
                </v1:CreditCardTxType>
                <v1:CreditCard3DSecure>
                    <v1:OtpVerificationRequest>
                        <v1:VerifyOtp>123456</v1:VerifyOtp>
                    </v1:OtpVerificationRequest>
                </v1:CreditCard3DSecure>
                <v1:Payment>
                    <v1:ChargeTotal>123</v1:ChargeTotal>
                    <v1:Currency>INR</v1:Currency>
                </v1:Payment>
                <v1:TransactionDetails>
                    <v1:IpgTransactionId>84439794295</v1:IpgTransactionId>
                </v1:TransactionDetails>
            </v1:Transaction>
        </ipg:IPGApiOrderRequest>
    </soapenv:Body>
</soapenv:Envelope>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header/>
    <SOAP-ENV:Body>
        <ipgapi:IPGApiOrderResponse xmlns:a1="http://ipg-online.com/ipgapi/schemas/a1" xmlns:ipgapi="http://ipg-online.com/ipgapi/schemas/ipgapi" xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1">
<ipgapi:ApprovalCode>Y:00:OTP verified successfully.</ipgapi:ApprovalCode>
<ipgapi:Brand>RUPAY</ipgapi:Brand>
<ipgapi:Country>IND</ipgapi:Country>
<ipgapi:CommercialServiceProvider>IMS</ipgapi:CommercialServiceProvider>
<ipgapi:OrderId>A-7263bcdf-b2b7-4797-a5a6-691181cf0510</ipgapi:OrderId>
<ipgapi:IpgTransactionId>84439794295</ipgapi:IpgTransactionId>
<ipgapi:PaymentType>CREDITCARD</ipgapi:PaymentType>
<ipgapi:TDate>1685864722</ipgapi:TDate>
<ipgapi:TDateFormatted>2023.06.04 09:45:22 (CEST)</ipgapi:TDateFormatted>
<ipgapi:TransactionResult>APPROVED</ipgapi:TransactionResult>
<ipgapi:TransactionTime>1685864722</ipgapi:TransactionTime>
<ipgapi:Secure3DResponse>
<v1:OtpVerificationResponse>
<v1:ResponseCode>00</v1:ResponseCode>
<v1:ResponseDescription>OTP verified successfully.</v1:ResponseDescription>
</v1:OtpVerificationResponse>
</ipgapi:Secure3DResponse>	
</ipgapi:IPGApiOrderResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

It is possible to regenerate OTP within your website with submitting the parameter RegenerateOtp for IpgTransactionId. The Gateway will perform a call to NPCI in the background.

Please note, that OtpVerificationRequest may be used for both OTP verification and regeneration. In cases you need to regenerate OTP, it is mandated to include your card details and CVV.

The following XML document represents an example of a 'Payerauth' transaction using the minimum set of elements and the response including OTP validity time:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:ipg="http://ipg-online.com/ipgapi/schemas/ipgapi" 
xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1"> 
    <soapenv:Header/>
    <soapenv:Body>
        <ipg:IPGApiOrderRequest>
            <v1:Transaction>
                <v1:CreditCardTxType>
                    <v1:StoreId>{{storeid}}</v1:StoreId>
                    <v1:Type>payerauth</v1:Type>
                </v1:CreditCardTxType>
                <v1:CreditCardData>
                    <v1:CardCodeValue>{{rupay.cvv}}</v1:CardCodeValue>
                </v1:CreditCardData>
                <v1:CreditCard3DSecure>
                    <v1:OtpVerificationRequest>
                        <v1:RegenerateOtp>true</v1:RegenerateOtp>
                    </v1:OtpVerificationRequest>
                </v1:CreditCard3DSecure>
                <v1:Payment>
                    <v1:ChargeTotal>123</v1:ChargeTotal>
                    <v1:Currency>INR</v1:Currency>
                </v1:Payment>
                <v1:TransactionDetails>
                    <v1:IpgTransactionId>84439794295</v1:IpgTransactionId>
                </v1:TransactionDetails>
            </v1:Transaction>
        </ipg:IPGApiOrderRequest>
    </soapenv:Body>
</soapenv:Envelope>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
 <SOAP-ENV:Header/>
 <SOAP-ENV:Body>
 <ipgapi:IPGApiOrderResponse
xmlns:a1="http://ipg-online.com/ipgapi/schemas/a1"
xmlns:ipgapi="http://ipg-online.com/ipgapi/schemas/ipgapi"
xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1">
<ipgapi:ApprovalCode>?:waiting authentication</ipgapi:ApprovalCode>
<ipgapi:Brand>RUPAY</ipgapi:Brand>
<ipgapi:Country>IND</ipgapi:Country>
<ipgapi:CommercialServiceProvider>IMS</ipgapi:CommercialServiceProvider>
<ipgapi:OrderId>A-7263bcdf-b2b7-4797-a5a6-691181cf0510</ipgapi:OrderId>
<ipgapi:IpgTransactionId>84439794295</ipgapi:IpgTransactionId>
<ipgapi:PaymentType>CREDITCARD</ipgapi:PaymentType>
<ipgapi:TDate>1685864722</ipgapi:TDate>
<ipgapi:TDateFormatted>2023.06.04 09:45:22 (CEST)</ipgapi:TDateFormatted>
<ipgapi:TransactionTime>1685864722</ipgapi:TransactionTime>
<ipgapi:Secure3DResponse>
<v1:OtpVerificationResponse>
<v1:OtpValidityInMinutes>1</v1:OtpValidityInMinutes>
</v1:OtpVerificationResponse>
</ipgapi:Secure3DResponse>
</ipgapi:IPGApiOrderResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

It is recommended to perform an inquiry call to ensure the authentication has been successful. In the next step you need to submit a sale request and include IpgTransactionId you have received in the first API response from the Gateway.

The following XML document represents an example of a sale transaction using the minimum set of
elements and a a response you receive from the Gateway:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header />
    <SOAP-ENV:Body>
        <ipgapi:IPGApiOrderRequest
      xmlns:ipgapi="http://ipg-online.com/ipgapi/schemas/ipgapi" 
xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1">
            <v1:Transaction>
                <v1:CreditCardTxType>
                    <v1:StoreId>{{storeid}}</v1:StoreId>
                    <v1:Type>sale</v1:Type>
                </v1:CreditCardTxType>
                <v1:CreditCardData>
                    <v1:CardCodeValue>{{rupay.cvv}}</v1:CardCodeValue>
                </v1:CreditCardData>
                <v1:Payment>
                    <v1:ChargeTotal>15</v1:ChargeTotal>
                    <v1:Currency>356</v1:Currency>
                </v1:Payment>
                <v1:TransactionDetails>
                    <v1:IpgTransactionId>84439794295</v1:IpgTransactionId>
                </v1:TransactionDetails>
            </v1:Transaction>
        </ipgapi:IPGApiOrderRequest>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Header/>
   <SOAP-ENV:Body>
<ipgapi:IPGApiOrderResponse
xmlns:a1="http://ipg-online.com/ipgapi/schemas/a1"
xmlns:ipgapi="http://ipg-online.com/ipgapi/schemas/ipgapi"
xmlns:v1="http://ipg-online.com/ipgapi/schemas/v1">
<ipgapi:ApprovalCode>Y:131636:4439794296:PPX :315513794295</ipgapi:ApprovalCode>
<ipgapi:AVSResponse>PPX</ipgapi:AVSResponse>
<ipgapi:Brand>RUPAY</ipgapi:Brand>
<ipgapi:Country>IND</ipgapi:Country>
<ipgapi:CommercialServiceProvider>IMS</ipgapi:CommercialServiceProvider>
<ipgapi:OrderId>A-7263bcdf-b2b7-4797-a5a6-691181cf0510</ipgapi:OrderId>
<ipgapi:IpgTransactionId>84439794296</ipgapi:IpgTransactionId>
<ipgapi:PaymentType>CREDITCARD</ipgapi:PaymentType>
<ipgapi:ProcessorApprovalCode>131636</ipgapi:ProcessorApprovalCode>
<ipgapi:ProcessorReferenceNumber>315513794295</ipgapi:ProcessorReferenceNumber>
<ipgapi:ProcessorResponseCode>00</ipgapi:ProcessorResponseCode>
<ipgapi:ProcessorResponseMessage>success</ipgapi:ProcessorResponseMessage>
<ipgapi:SchemeTransactionId>100122023060400000000000222691</ipgapi:SchemeTransactionId>
<ipgapi:TDate>1685864791</ipgapi:TDate>
<ipgapi:TDateFormatted>2023.06.04 09:46:31 (CEST)</ipgapi:TDateFormatted>
<ipgapi:TerminalID>00001113</ipgapi:TerminalID>
<ipgapi:TransactionResult>APPROVED</ipgapi:TransactionResult>
<ipgapi:TransactionTime>1685864791</ipgapi:TransactionTime>
        </ipgapi:IPGApiOrderResponse>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Rupay Network Token Provisioning with external Token Provider

This feature allows you to use your own token service provider and submit the token with cryptogram to the Gateway without provisioning request. The token you obtained from external token provider must be submitted in CardNumber element together with the token cryptogram.

The following XML document represents an example of a Sale transaction using the minimum set of elements:

<?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:IPGApiOrderRequest xmlns:ipgapi="http://ipgonline.com/ipgapi/schemas/ipgapi" xmlns:v1="http://ipgonline.com/ipgapi/schemas/v1">
            <v1:Transaction>
                <v1:CreditCardTxType>
                    <v1:StoreId>330821</v1:StoreId>
                    <v1:Type>sale</v1:Type>
                </v1:CreditCardTxType>
                <v1:CreditCardData>
                    <v1:CardNumber>630562XXXXXX9484</v1:CardNumber>
                    <v1:ExpMonth>12</v1:ExpMonth>
                    <v1:ExpYear>27</v1:ExpYear>
                    <v1:CardCodeValue>XXX</v1:CardCodeValue>
                </v1:CreditCardData>
                <v1:TokenCryptogram>AJkBA2VzYAAgIwUVFDgTAAAAAAA=</v1:TokenCryptogram>
                 <v1:Payment>
                     <v1:ChargeTotal>65.50</v1:ChargeTotal>
                     <v1:Currency>356</v1:Currency>
                 </v1:Payment>
                 <v1:TransactionDetails>
                     <v1:IpgTransactionId>84486024295</v1:IpgTransactionId>
                 </v1:TransactionDetails>
            </v1:Transaction>
         </ipgapi:IPGApiOrderRequest>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Want a quick overview?