Smart Routing is a feature of the Netvale payment gateway that directs transactions to specific payment processors/mids based on defined rules.
Clients/Accounts can be associated with multiple sites, each of which can have multiple routing rules based on Currency, Country, Card Type, and BIN. Each routing rule includes configurations for Primary Mid, Retry Mid, and Amount Limits.
To enable Smart Routing configurations, please contact the Netvalve Admin.
Below are the integration steps for using Netvalve APIs with the Smart Routing feature. Ensure that the Netvalve team has enabled Smart Routing before proceeding with these steps.
Prerequisites
Smart routing needs to be enabled at the Netvalve level:- By default, the global flag for smart routing is enabled within the Netvalve microservice.
Smart routing needs to be enabled at the Client/Account level:- Smart routing functionality is disabled by default for specific clients/accounts. To enable smart routing for a particular client/account, the flag needs to be set via the Back Office Portal by a Netvalve Admin. Please contact the Netvalve Admin to request the activation of smart routing for your client/account. more details here
Smart routing retry needs to be enabled at the Netvalve level:- The global flag for smart routing is set within the Netvalve microservice, and by default, it is disabled.
Smart routing retry needs to be enabled at the Client/Account level:- Smart routing for specific clients/accounts can be enabled via the Back Office Portal by a Netvale Admin. By default, this feature is disabled. Please reach out to the Netvalve Admin to request the activation of smart routing for your client/account.
Integration steps
We need to send a new parameter (siteId
) in the below-mentioned APIs
"siteId": "0b81bdb1-d33b-48aa-8c48-a38f5cffd558"
Contact Netvalve Admin/Support to get siteId
and add that in your configuration same as midId
and netvalveMidId
Note:- To process transactions using smart routing, you need to send the siteId
parameter. Do not include the parameters midId
or netvalveMidId
in the API request. If either midId
or netvalveMidId
is included in the request, the transaction will be processed using the provided midId
or netvalveMidId
, and smart routing will not be utilized.
Sale / Authorization API:- added
siteId
instead ofmidId
/netvalveMidId
POST {{paymentApiUrl}}/sale AND POST {{paymentApiUrl}}/authorize Request json :- { "amount": 100.00, "cardExpireMonth": "XX", "cardExpireYear": "XXXX", "cardHolderName": {{cardHolderName}}, "cardSecurityCode": "XXX", "cardNumber": {{cardNumber}}, "clientOrderId": {{clientOrderId}}, "currency": {{currency}}, "customerAddress": {{customerAddress}}, "customerCity": {{customerCity}}, "customerCountryCode": {{customerCountryCode}}, "customerEmail": {{customerEmail}}, "customerIp": "123.123.123.123", "customerName": {{customerEmail}}, "customerFirstName": {{customerFirstName}}, "customerLastName": {{customerLastName}}, "customerPhone": {{customerPhone}}, "customerState": {{customerState}}, "customerZipCode": {{customerZipCode}}, "siteId": "0b81bdb1-d33b-48aa-8c48-a38f5cffd558" } There is no change in response json
Hosted payment page to create order API:- added
siteId
instead ofmidId
/netvalveMidId
POST {{hppApiUrl}}/hpp/order Request Json :- { "siteId": "0b81bdb1-d33b-48aa-8c48-a38f5cffd558", "amount": 0, "currency": "string", "netvalveMidId": "string", "clientOrderId": "string", "orderDesc": "string", "successUrl": "string", "cancelUrl": "string", "failedUrl": "string", "slimMode": true, "isBillingAndShippingDetailsSame": true, "customerDetails": { "customerIp": "string", "customerEmail": "string", "customerName": "string", "customerLastName": "string", "customerAddress": "string", "customerZipCode": "string", "customerCity": "string", "customerState": "string", "customerCountryCode": "st", "customerPhone": "string" }, "billingDetails": { "billingAddress": "string", "billingZipCode": "string", "billingCity": "string", "billingState": "string", "billingCountryCode": "st" }, "shippingDetails": { "shippingAddress": "string", "shippingZipCode": "string", "shippingCity": "string", "shippingState": "string", "shippingCountryCode": "st" }, "additionalParameters": { "property1": "string", "property2": "string" } } There is no change in response json
3DS Standalone API
3DS initialization:- added
siteId
instead ofmidId
/netvalveMidId
POST {{paymentApiUrl}}/3ds/initialization request json :- { "siteId": "0b81bdb1-d33b-48aa-8c48-a38f5cffd558" "cardNumber": "string", "cardExpireMonth": "string", "cardExpireYear": "stri", "cardHolderName": "string", "amount": 0, "currency": "string", "merchantRedirectUrl": "string" } There is no change in response json
3DS authentication:- Removed
midId
/netvalveMidId
POST {{paymentApiUrl}}/3ds/authentication request json :- { "transID": "string", "amount": 0, "currency": "string", "cardNumber": "string", "cardExpireMonth": "string", "cardExpireYear": "stri", "cardHolderName": "string", "challengeIndicator": "string", "browserInfo": "string", "customerIp": "string", "customerEmail": "string", "customerName": "string", "customerLastName": "string", "customerAddress": "string", "customerZipCode": "string", "customerCity": "string", "customerState": "string", "customerCountryCode": "st", "customerPhone": "string", "dfReferenceId": "string", "acsWindowSize": 0 } There is no change in response json
3DS result:- Removed
midId
/netvalveMidId
POST {{paymentApiUrl}}/3ds/result request json :- { "transID": "string" } There is no change in response json
Swagger API documentation is also updated in the Netvale documentation link below