Client VCC Decisioning
Client VCC Decisioning is designed to allow ConnexPay clients with proper permissions to have the ability to decision authorizations directed to them, rather than Connexpay decisioning the authorizations.
What is Client VCC Decisioning?
Client VCC Decisioning uses a synchronous webhook, to allow clients to approve or decline authorization requests in real time. This functionality is only available for clients using Central or MVB Bank.
Client VCC Decisioning Setup
As a client, you will need to provide a webhook endpoint that can be added within your account settings. You can navigate to your account settings by logging into Bridge and clicking the gear icon in the upper right-hand corner, then clicking on VCC Decisioning (this section will only be visible if the permission has been granted to your account) within the account settings options. When a card is used to make a purchase, we will send the authorization request to the provided endpoint for your authorization decision.
Within the account settings, you will also need to choose your timeout handling. If we don't receive your response within 3 seconds, we will use the timeout handling selection to automatically decision the authorization. Your options will be to automatically Approve or Decline the authorization.
Additionally, you will be required to create a username and password in your account settings that we will use for basic authentication on the webhook. This username and password will be sent in the header of the request, so that you can verify our identity. Below is a code example for decoding the basic Authorization.
var authHeader = AuthenticationHeaderValue.Parse(context.Request.Headers["Authorization"]);
var credentialBytes = Convert.FromBase64String(authHeader.Parameter);
var credentials = Encoding.UTF8.GetString(credentialBytes).Split(':', 2);
var username = credentials[0];
var password = credentials[1];
Prior to submitting this data, we will need to open up access and confirm connectivity to your provided endpoint.
Authorization requests
We will send the authorization request to your provided endpoint.
Field | Type | Description |
---|---|---|
amount | decimal | Amount of transaction |
cardGuid | string | Unique token that represents the issued card brand and type |
currencyCode | string | Type of currency |
network | string | Visa or MasterCard |
cardAcceptorName | string | Card acceptor merchant name |
cardAcceptorMid | string | Unique identifier for acceptor merchant |
cardAcceptorMcc | string | Merchant category code (MCC) |
cardAcceptorCity | string | Card acceptor city |
cardAcceptorState | string | Card acceptor state |
cardAcceptorZip | string | Card acceptor zip |
cardAcceptorCountry | string | Card acceptor country |
availableBalance | decimal | Amount remaining on the card after the specific auth event |
transactionCurrencyCode | string | Type of currency where auth originated |
authType | string | Auth or Refund Auth |
CVVMatch | boolean | True or False if there is a CVV Match |
AVS | string | Street Address and Zip Code/Postal Code |
localTransactionAmount | decimal | Amount of transaction in the local currency where the auth originated |
retirevalReferenceNumber | string | Unique identifier generated by the Card Network |
transactionId | string | Unique identifier that will tie to the id in subsequent webhook events |
{
"amount": 132.23,
"cardGuid": "ss322d33-1sd3-32sd-d2dd-21s32ddwdss233",
"currencyCode": "840",
"network": "VISA",
"cardAcceptorName": "SPIRIT AIR VISA",
"cardAcceptorMid": "1234567890",
"cardAcceptorMcc": "3260",
"cardAcceptorCity": "ALPHARETTA",
"cardAcceptorState": "GA",
"cardAcceptorZip": "30005",
"cardAcceptorCountry": "US",
"availableBalance": 232.23,
"transactionCurrencyCode":"840",
"authType":"Auth",
"CVVMatch":false,
"AVS":"91001 1521 BURTON AVE.",
"localTransactionAmount":5,
"retrievalReferenceNumber":"043340",
"transactionID": "97a0fd5b-3e82-acde-0d3599006234"
}
Authorization response
Our webhook accepts JSON responses with the following parameters:
Field | Type | Description |
---|---|---|
approved | boolean | Field will require a true or false response |
{
"approved": false,
}
{
"approved": true,
}
Updated 13 days ago