Card RTA Webhooks

Information related to Solid’s Real-Time Authorization (RTA) for cards
Cards
Card RTA Webhooks
 last updated: 
November 30, 2023

Card RTA (Real Time Authorization) can be set and enabled in the Developer > Real Time Authorization section of the dashboard. The card RTA webhook event card.auth.request is sent on any card authorization request. When enabled, the receiver must respond within 2 seconds with an approved or declined response. If the call times out or responds with a non-2xx status code, then stand-in processing rules will apply based on the RTA setup.

All RTA webhook requests are signed with a sd-webhook-sha256-signature header. The secret key is available in the dashboard in the Developer > Real Time Authorization section.

Sample Request

  1. {
  2.   "eventType": "card.auth.request",
  3.   "programId": "prg-d4fb72d0-4f99-46b5-b137-91af779827b7",
  4.   "env": "staging",
  5.   "data": {
  6.     "id": "car-6603e6d5-164b-4e05-8ae3-cff5203dc9c1",
  7.     "amount": "6.00",
  8.     "merchant": {
  9.       "merchantName": "CVS PHARMACY",
  10.       "merchantCity": "SAN JOSE",
  11.       "merchantState": "CA",
  12.       "merchantCountry": "USA",
  13.       "postalCode": "",
  14.       "merchantCategory": "Bakeries",
  15.       "merchantCategoryCode": "5462",
  16.       "merchantId": "CRD ACCEPTOR ID"
  17.     },
  18.     "status": "pending",
  19.     "Account": {
  20.       "id": "acc-be9a1613-5768-4cd9-bd41-4b93b9cca515",
  21.       "label": "personalChecking",
  22.       "type": "personalChecking",
  23.       "balance": "614.00",
  24.       "currency": "USD",
  25.       "metadata": null
  26.     },
  27.     "Card": {
  28.       "id": "crd-54ca16db-ddcf-42f0-b738-13b7672669cb",
  29.       "label": "virtual",
  30.       "bin": "credit",
  31.       "type": "virtual",
  32.       "theme": "",
  33.       "limitAmount": "100.00",
  34.       "limitInterval": "allTime",
  35.       "metadata": {
  36.         "externalId": "buff_user_001"
  37.       }
  38.     },
  39.     "createdAt": "2022-10-21T10:34:07Z",
  40.     "authMethod": "swipe",
  41.     "Ach": null,
  42.     "wallet": null,
  43.     "personId": "per-f846dc89-4d8b-47a7-8353-1b6007039020",
  44.     "programId": "prg-d4fb72d0-4f99-46b5-b137-91af779827b7",
  45.     "localTransactionAmount": "6.00",
  46.     "localTransactionCurrency": "USD",
  47.     "currencyConversionRate": "1.000000000",
  48.     "rtaType": "partialAuth"
  49.   }
  50. }

Sample Responses

Response status can be approved or declined with a 200 OK status code. In the case of "rtaType": "partialAuth" the optional "approvedBalance" response will instruct the Solid platform how much to authorize.

  1. {
  2.   "status": "approved",
  3.   "approvedBalance": "1000.00"
  4. }

For declined Card RTA responses, we also support sending an optional declineCode of insufficientFunds. If the declineCode is not included, or is an unsupported code, it will default to the generic decline code doNotHonor.

  1. {
  2.   "status": "declined",
  3.   "declineCode": "insufficientFunds",
  4.   "approvedBalance": "1000.00"
  5. }
  1. {
  2.   "status": "declined",
  3.   "declineCode": "doNotHonor",
  4.   "approvedBalance": "1000.00"
  5. }