Integration Best Practices

This page contains best practices to consider when integrating with our APIs.

Including Address Verification with Sales Request

Including Address information (“Address1” and “Zip”) in the Card. Customer object when processing an online sale optimizes the interchange expense. The card brands (Visa, Mastercard, Discover, and American Express) consider transactions that include this information to be less risky transactions and therefore don’t charge as high a fee as when the Address information is not included.

Including unique Order Numbers for Sales and Issue Card

Order Number in our system is the universal ID to search and a great way to tie Sales and Purchases. They even come through in the Chargeback Management System to allow chargebacks to be tied to the original sale. Without the Order Number, it becomes a bit of a challenge to match.

Even though this is an optional field in the API, it is highly encouraged to include.

Including Risk Data and Flight Data in Sale Request

In order to make the best use of our fraud monitoring solution, the more data that is submitted, the better and more accurate the results are. These are not required fields but highly recommended in order to best utilize our risk mitigation tool.

Setting the Correct Expected Payments in Sale Request

The Expected Payments property in the Sales API tells us how many VCCs you intend to create from the one sale. This is important to set correctly for a couple of reasons:

  • You plan on creating more than one VCC. By indicating the number of VCCs to be created, you tell us to keep the sale open until all have been created.

  • The daily funding calculations do not kick until either the total issued amount is equal to the sale amount OR the number of VCCs created is equal to the expected payments indicated. There will be times where you will create a VCC for less than the sale amount. By telling us you will only create one VCC we know that the sale is complete and we can go ahead and calculate your daily margin.

Setting the correct UsageLimit when issuing Virtual Credit Cards

The UsageLimit is a required parameter in the Issue Card request that controls how many times the VCC can be authorized. This is a critical parameter to pay attention to as it can result in unintended declines when the Supplier runs the VCC. Even though many times the VCC is considered a “one-time-use” card, many clients will simply default this value to 10 (even though the majority of the time they only expect one authorization). The reason for this is depending on the supplier accepting the VCC, they may split up the VCC payments and process multiple authorizations vs one large authorization. Many airlines for example split up the VCC authorizations based on the number of tickets purchased. If the Usage Limit is set to 1, the first transaction on the VCC will be approved, however, the subsequent attempts will result in a decline back to the Supplier.

Setting the proper VCC Expiration Date

Expiration Dates serve two purposes for us. They trigger when the VCC can no longer be used. And they also indicate to us when to pay out “Residual Margin” (which is the difference between what was issued and what was settled on the virtual card).

We recommend setting the expiration date to be a year or two, and simply terminate the virtual card when you know the supplier has already used the VCC. This is especially useful if you are concerned the supplier may consider the transaction to be risky since the expiration date is so soon. We’ve also heard of travel suppliers not accepting VCCs when the expiration date is prior to the date of travel.

If you are not concerned about acceptance or prefer not adding an extra API call to terminate the VCC later, you can set the Expiration Date to about 5 days after the virtual card is expected to settle. This will allow for any delay on the Supplier’s side when accepting these VCCs. We’ll store a specific date in our system - which when reached will trigger Residual Margin payout. But when creating the VCC, we’ll convert that date to a traditional month and year format (dropping the specific day) that all credit cards have.

Including SupplierId when issuing Virtual Credit Cards

We’ve built out a robust decisioning engine that can systematically determine what cards should be accepted and also what VCCs should be issued in order to maximize acceptance and rebates. Including a SupplerId in your Issue Card request allows our system to a) learn which SupplierId maps to what merchant and b) make better decisions on issuing in the future when creating a VCC for that same Supplier. You can find more details about IPR (Intelligent Purchases Routing) on this page.

Including unique Sequence Numbers for Sales and Issue Card

Unfortunately, in technology, there are occasional issues that prevent API responses from getting back to the requester for one reason or another. Or, times where the request doesn’t get sent from the requester.

Optimally you want the transaction to go through (or else you wouldn’t have sent it in the first place). So instead of having different API routes to check the status of whichever request you submitted or having offline processes that slow things down and create potentially undesired customer experiences, we suggest sending the same request back to us with the same SequenceNumber included in both requests. When we receive a request that is the same payload and specifically includes the same SequenceNumber, we will either:

  • Return the same response as the original request if we’ve already seen this request (new Sale will NOT be processed and new VCC will NOT be issued since it was issued in the original request) or,

  • Process the sale or issue a new VCC and respond with those Sale or VCC details as if we’ve never seen this request before

📘

Voiding/Cancelling Sales when IssueCard Fails
When a Sale (on a credit card) is processed but the IssueCard call fails, the IssueCard call should be attempted again (discussed in the SequenceNumber functionality section above). If the second IssueCall fails or is not attempted, the credit card should be voided if there are no plans to actually proceed with the transaction. Failing to void a customer’s credit card usually results in unhappy customers and sometimes ends in a time-consuming chargeback process.

Sending a useful Statement Descriptor in the Sale Request

The Statement Descriptor (“StatementDescription” in Sales API) is a dynamic field that you can pass in the Sale request and it’s the name that will appear on you customer’s cardholder statement. It’s important to send Statement Descriptors that are very descriptive so that the customer knows exactly what the transaction was for. Using vague Statement Descriptors can lead to increased chargebacks as customers may not realize what a transaction was for if not described properly.

Utilize Kount’s Device Collector for Better Risk Management

We highly suggest using Kount’s Device Collector on your site to collect more useful information about the cardholder. This additional data will give Kount better information to provide a more accurate decision on the risk of accepting a Sale. You can find more information here.

Other Considerations

Take a look at how you can issue a VCC for more than the sale amount with Tolerances.

You can supplement your data with ours by sending Addendum information tied to a specific VCC.

If there was a mistake and/or you need to add more money to the VCC, we offer the ability to Reload a VCC.

Utilize our card tokens instead of storing credit card information on your servers to reduce your PCI scope.


Did this page help you?