Kard’s Transaction CLO Matching functionality allows the platform to ingest all issuer transactions in near real-time, to automatically identify redeemable CLOs for reward program cardholders. The multi-tiered matching algorithm is built to continually increase its dataset of known transactional data, allowing for a seamless end user experience when they use their card at the point of sale and receive a notification of rewards back to their account.
Our recommendation is to provide all consumer transactions via the Kard API. Batch is possible, if needed, and please contact a Kard account manager to discuss further.
Included Features
Ingest Transactions via API or Batch
The Kard platform is capable of ingesting transactions in a variety of avenues, finding the best route for your rewards program.
Real-time API (Recommended) - The Kard API allows issuers to send transactions in real-time to the platform. Multiple transactions can be sent per request. Kard recommends this route so that your cardholders can have the experience of receiving a notification of a successful redemption in near real-time.
Batch - Transactions can be sent in batch to the Kard platform at a regular cadence.
Near Real-time Matching
Kard’s matching multi-tiered matching algorithm automatically identifies valid offers a cardholder has redeemed in using their registered card. The vast majority of valid transactions are identified and a notification is sent to the cardholder within 60 seconds of Kard ingestion.
Additional Review - To manage inconsistent data, the matching algorithm is able to flag transactions for review. Once reviewed in a standard fashion by Kard, transactions with similar data points will automatically be accepted or rejected going forward. This allows the algorithm to constantly increase its data set of known transactional data points.
Matching Notifications
Notification of a redeemed CLO or Affiliate offer allows cardholders to feel the benefit of a rewards program. Kard provides two avenues to ensure issuers can provide their end users a connection to the brand and its reward.
Near Real-time Notification - Notify cardholders of a redeemed offer as soon as it is processed through the platform. Notifications can be provided on authorized, settled, or both transaction events. This webhook will be retried four times if not received properly on the first attempt.
Daily Reconciliation - Kard also provides a daily JSON file of all redeemed transactions to the issuer, allowing for confirmation of all notifications to the program’s cardholders.
Fraud Detection
Hold Transactions
Fraud happens and Kard wants to ensure that we don’t notify customers of rewards that may not be accurate. To prevent this case, the platform has transaction amount limits for all merchants within the rewards ecosystem. If a limit is exceeded, Kard does not notify the issuer of a redeemed offer until the transaction is settled.
Transaction Monitoring
Kard conducts internal fraud detection to identify suspicious behavior through abnormal transaction amounts and high volume transactions or returns per cardholder on a daily basis. We then notify Issuers of any potential fraud to be investigated if it is found.
Transaction Audit Support
Kard is continuing to iterate on its matching algorithm and additional features. We realize that integrations can change and produce errors. The Transaction Support Audit feature allows issuers to submit transactions that are believed to be incorrect within the Kard platform. For example, if a cardholder believes they should have received a reward and did not. Submission is available via two routes.
Kard API (Recommended) - Submit to the Kard platform directly, we recommend integrating this endpoint to your helpdesk or customer support flow.
Web Form - Submit a transaction for audit via the Kard Issuer Portal.
Implementation Details
Send Transactions to the Kard Platform for CLO Redemption
Below are notes on what is required to correctly send transactional data to the Kard platform for CLO Redemption.
Real-time Transaction Ingestion - The Incoming Transaction endpoint provides an avenue for you to send cardholder transactions via the Kard API. Additional notes: a. This call is asynchronous and provides a response that the transactions have been successfully ingested to the platform and are awaiting processing. b. This call can ingest arrays, so depending on your implementation, multiple transactions can be sent per call, reducing the calls required.
Batch Transaction Ingestion - If integration to an API is not feasible, Kard offers batch processing for transaction ingestion. This route is provided via direct access to a specific AWS S3 location. Access is granted via IAM security policies. Additional notes: a. Work with a Kard Account Manager to view the .csv format of ingesting transactions via batch. b. At a minimum, transactions must be sent in once a day and the platform can ingest transactions via batch once an hour.
Transaction Status Details - Kard requires two transaction statuses for CLO redemption, “authorized” and “settled”. a. All transaction statuses are tracked as separate events within Kard, with a linking transaction ID. A transaction event is considered unique by the combination of Transaction ID, Status, and Transaction Date. b. The transaction timestamp associated with each transaction is the timestamp of the status identified per event. c. It is acceptable to send only a “settled” transaction that also includes the “authorized” date. d. Kard also accepts other statuses and recommends sending each transaction event. You can see the full list of events in the API documentation.
Duplicate Transactions - A transaction is considered a duplicate if the transaction ID, status, and timestamp are all identical. If that is the case, the transaction will not be ingested into the Kard platform.
Reversal Transactions - For reversed transactions that occur before settlement, rewards are not paid to the issuer and cardholder. For returned transactions that occur after settlement, Kard will honor the reward. Note: Kard actively monitors incoming transactions to identify bad actors attempting to “game the system”. Cardholders who make an inordinate amount of returns on rewarded transactions will be flagged and possibly removed from the rewards program.
Redeem a CLO and Notify Cardholders
Below are notes on what is required for a reward program cardholder to redeem a CLO and be notified of a redemption.
Information Required to Redeem a CLO - The below information is required within a transaction for Kard to identify redeemed CLOs. a. Registered Cardholder - User ID, BIN, Last 4 of a cardholder registered within the Kard platform. b. MID - required for Local CLOs.
Webhook Setup - To set up the notification of a redeemed reward to your cardholders, provide a URL to a Kard Account Manager where you want the Earned Reward Webhook sent. a. For the webhook signature, there is a webhook key that you will be provided, once the URL is configured in the Kard platform. The key is used to generate an HMAC of the webhook body. We calculate the HMAC and send it in the header. On your side, you generate the HMAC with the body and the key, and compare it to the HMAC in the header, to validate the message. b. HMAC generation is based on Sha256 hmac with base64 encoding.
Notification Requirements - Notification requirements include: a. The rewards program cardholder must be notified of a redeemed reward within 24 hours of the transaction. b. The cardholder must be notified of the merchant that provided the reward. c. (Local CLOs only) The cardholder must have the option to complete a survey of their experience with the merchant. This is the “postDineInLinkURL” within the Earned Reward Webhook.
Daily Redeemed Offer Reconciliation
Daily reconciliation is provided in JSON format. You can see an example at the end of this section. This route is offered via direct access to a specific AWS S3 location. Access is granted via IAM security policies. Work with a Kard Account Manager to set up this feature during integration.
Kard recommends cross checking this file with all earned reward webhooks received from the platform in the last day to confirm your cardholders are receiving near real-time feedback for their use of the rewards program. This file is generated daily at 9am EST.
Example daily reconciliation file in JSON format: {"data":[{"user":{"referringPartnerUserId":"123456789"},"card":{"bin":"123456","last4":"7890","network":"MASTERCARD"},"reward":{"merchantId":"60ef539be9039cf925728afd","name":"Popeyes","commissionToIssuer":55,"status":"APPROVED","type":"CARDLINKED"},"transaction":{"issuerTransactionId":"6789506067945","status":"APPROVED","transactionAmountInCents":2496,"transactionTimeStamp":"2021-09-05T23:45:57.000Z"},{"user":{"referringPartnerUserId":"123456123"},"card":{"bin":"123456","last4":"8123","network":"MASTERCARD"},"reward":{"merchantId":"60e4a4ee1c7ea11a4fd9ec86","name":"Advance Auto Parts","commissionToIssuer":164,"status":"APPROVED","type":"CARDLINKED"},"transaction":{"issuerTransactionId":"6789506067956","status":"SETTLED","transactionAmountInCents":4479,"transactionTimeStamp":"2021-09-05T15:00:00.000Z"}, {"user":{"referringPartnerUserId":"123456456"},"card":{"bin":"123456","last4":"1234","network":"MASTERCARD"},"reward":{{"merchantId":"60e4a4191c7ea11a4fd9e4fc","name":"Qdoba","commissionToIssuer":38,"status":"APPROVED","type":"CARDLINKED"},"transaction":{"issuerTransactionId":"6789506077945","status":"SETTLED","transactionAmountInCents":1017,"transactionTimeStamp":"2021-09-05T12:00:00.000Z"}}]}
Reward Funding
Kard does not provide real-time reward funds. We work with the merchants within our rewards ecosystem to reconcile redeemed CLOs and provide funds to our reward program partners on a monthly basis. For questions regarding funds, please contact a Kard Account Manager.