Skip to main content

Smart Routing

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, Cascading details, Amount Limit config, etc.

note

Please reach out to the Netvalve Admin to enable Smart Routing configurations. For further information, please refer to the Smart Routing Configuration document.

Integration Steps

We require the addition of a new parameter (siteId) in the following APIs.

Example Usage
"siteId": "0b81bdb1-d33b-48aa-8c48-a38f5cffd558"

Contact NetValve Admin/Support to get siteId and add that in your configuration the same way you use midId and netvalveMidId.

warning

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 those parameters, and smart routing will not be utilized.

Sale / Authorization API: added siteId instead of midId/netvalveMidId

API URL: paymentApiUrl /sale AND paymentApiUrl /authorize
HTTP Method: POST
Request Body: JSON

Request Body
{
"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 the response JSON received.

Hosted payment page to create order API: added siteId instead of midId/netvalveMidId

API URL: hppApiUrl /hpp/order
HTTP Method: POST
Request Body: JSON

Request Body
{
"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 the response JSON received.

3DS Standalone API

  1. 3DS initialization: Added siteId instead of midId/netvalveMidId

API URL: paymentApiUrl /3ds/v2/initialization
HTTP Method: POST
Request Body: JSON

Request Body
{
"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 the response JSON received.

  1. 3DS authentication: Removed midId/netvalveMidId

API URL: paymentApiUrl /3ds/authentication
HTTP Method: POST
Request Body: JSON

Request Body
{
"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 the response JSON received.

  1. 3DS result: Removed midId/netvalveMidId

API URL: paymentApiUrl /3ds/result
HTTP Method: POST
Request Body: JSON

Request Body
{
"transID": "string"
}

There is no change in the response JSON received.