Virtual Card Sensitive Data

You can subscribe to the Virtual Card Sensitive Data webhook to receive details your newly created virtual cards. Card data, including the 16 digit PAN and CVV2, is sensitive data. Do not store the data contained in this webook. You can retrieve the card data at any point by using POST /VirtualCard/Data to request a resend of the webhook. Note that when using the /VirtualCard/Data endpoint, you can only request webhook data for one virtual card at a time.

  • CardNumber is 16 digits without dashes
  • ExpirationDate is in a Date and Time format, you can convert 2020-01-31T00:00:00.00 Into January 2020
  • Security Code or CVV or CVV2 is 3 digits
  • Status is either active or inactive and reflects the current state of the card
  • Balance reflects the current balance on the card. If card has not been used, then it reflects the funding amount initially placed on the card
  • Sample Response:

    {
    "CallbackTime": "2017-12-27T05:35:52.4142456-05:00",
    "Data": {
    "AccountId": 12343,
    "AccountNumber": "10000000353902",
    "FirstName": "Jon",
    "LastName": "Snow",
    "CardNumber": "4111123412341234",
    "ExpirationDate": "2020-12-31T00:00:00",
    "CVV2": "123",
    "Status": "ACTIVE",
    "Balance": 400.0,
    "VirtualCardOrderId": 13232,
    "OrderDateTime": "2017-12-27T05:35:25.847",
    "Errors": [],
    "Message": "Account Creation Successful"
    }
    }

    "Errors" and "Message" are only present for the webhook associated with the original order (POST/VirtualCard/Order). In the re-sent callback message (i.e. POST/VirtualCard/Data) they are always empty. This is so because, funding, activation or any other successful or failed event associated with a virtual card order can be updated manually via other API calls.

    Within the “Errors” array are the following values:
    "Card"
    "Group"
    "Ruleset"
    "Activation"
    "Funding"

    The virtual card order process is asynchronous so theoretically a variety of errors could occur. Below are a few examples and how “Errors” and “Messages” would appear in the original callback:

    completely successful, no errors
    {
    "Errors": [],
    "Message": "Account Creation Successful"
    }

    completely failed - card was not created
    {
    "Errors": [ "Card" ],
    "Message": "Failed: Card Creation"
    }


    partial fail of some post card creation actions (group or ruleset or activation or funding)
    {
    "Errors": [ "Group", "Ruleset", "Activation", "Funding" ],
    "Message": "Failed: Set Group, Set Ruleset, Activation, Funding"
    }