Marqeta + Kard Integration
Purpose
This document outlines the steps required for an Issuer to complete an integration with the Marqeta + Kard partnership.
Marqeta APIs and webhook events are referenced in this document. This information can be found in the Marqeta Docs section.
Partnership Overview
Kard has completed an integration to Marqeta’s APIs for the purpose of significantly reducing the integration effort required by an Issuer to add Kard’s services to their offering. Via the integration, Kard and Marqeta take ownership of tracking and communicating cardholder, card, and transaction data, so this data is not required to be passed from the Issuer to Kard.
Integration
This integration works with the existing Kard implementation to reduce the workload on the Issuer. This does not cover all integration pieces required to run a rewards program powered by Kard. Specifically, this integration does not cover the merchant offers that will be displayed in your rewards program. Please review the Kard documentation for a full sense of an integration and what is required.
Prerequisites
To utilize this integration, you must:
- Utilize Marqeta as your card processing solution or plan to.
- Design the UX of the Rewards program, including integration with the merchant offers from Kard’s API and displaying in your application.
Integration Steps
- Issuer provides permission to Kard to utilize the Issuer’s Marqeta sandbox environment credentials.
- Kard configures the Issuer’s Marqeta sandbox environment to receive events from Marqeta’s webhook.
a. Note Marqeta currently allows a maximum of 5 active webhooks per Issuer environment. The Issuer must ensure there is at least 1 webhook available for Kard to utilize.
- Kard works with the Issuer to validate that all transaction data received from Marqeta is identical to what the Issuer receives.
- Kard works with the Issuer to validate that all card and cardholder data received from Marqeta is identical to what the Issuer sends Marqeta.
- Issuer integrates with Kard’s Earned Reward Webhook and daily reconciliation file to accurately notify cardholders when they redeem a reward.
- Issuer integrates with the Rewards endpoints to display the merchant offers available to their cardholders.
- Issuer works with Kard to validate that the full solution works in the sandbox environment.
- Issuer provides permission to Kard to utilize the Issuer’s Marqeta production environment credentials.
- Kard stands up the same integration for Production as above and validates with the Issuer, finalizing the implementation.
Data Mapping
The below tables outline the data that Kard uses from Marqeta to enable the Issuer’s rewards program. Not all fields returned in Kard’s API will be sourced from Marqeta and they are not shown in the tables.
User Events
Kard receives all Marqeta Account Holder transition event types.
Marqeta Field
Marqeta Users, for reference
|
Kard Field
User Endpoints, for reference
|
user_token |
referringPartnerUserId |
email |
email |
first_name |
firstName |
last_name |
lastName |
postal_code |
zipCode |
Card Events
Kard currently receives the following card transition event types from Marqeta:
- state.activated
- state.reinstated
- state.suspended
- state.terminated
Marqeta Field
Marqeta Cards, for reference
|
Kard Field
Add Card, for reference
|
user_token |
referringPartnerUserId |
last_four |
card.last4 |
pan |
card.bin |
last_name |
lastName |
postal_code |
zipCode |
Transaction Events
Kard currently receives the following transaction event types from Marqeta:
- authorization
- authorization.clearing
- pindebit
Note: The data mapping for the transaction events below also apply to Kard’s Earned Rewards Webhook.
Marqeta Field
Marqeta Transactions, for reference
|
Kard Field
Incoming Transaction, for reference
|
token |
transactionId |
user_token |
referringPartnerUserId |
user_transaction_time |
transactionDate, authorizationDate
Note: Depending on status of transaction
|
settlement_date |
settledDate |
amount |
amount |
state |
status |
preceding_related_transaction_token |
transactionId
Note: valid for transactions after the first transaction event
|
card_acceptor.mcc |
mcc |
card_acceptor.name |
merchantName |
card_acceptor.street_address |
merchantAddrStreet |
card_acceptor.city |
merchantAddrCity |
card_acceptor.state |
merchantAddrState |
card_acceptor.zip |
merchantAddrZipcode |
card.last_four |
cardLastFour |
card.pan |
cardBIN
Note: Kard receives a masked PAN, only showing BIN and Last 4.
|
currency_code |
currency |
card_acceptor.mid |
merchantId |
card_acceptor.name |
description |
network_reference_id |
transactionId
Note: This is relevant for specific integrations. Consult your Kard Account Manager with questions.
|