Evervault API

REST API for encryption/decryption, Functions, Relays, webhooks, and payments primitives (network tokens, 3D Secure, card insights, BIN lookup, merchants, acquirers, card account updates). OpenAPI 3.1, 44 operations across 12 tags; RFC 9457 problem+json errors.

OpenAPI Specification

evervault-openapi-original.json Raw ↑
{
  "openapi": "3.1.0",
  "info": {
    "title": "Evervault API",
    "version": "0.0.1",
    "description": "The Evervault API allows developers to interact programmatically with their Evervault apps using HTTP requests.",
    "contact": {
      "email": "support@evervault.com",
      "name": "Evervault Support Team",
      "url": "https://evervault.com"
    }
  },
  "servers": [
    {
      "url": "https://api.evervault.com",
      "description": "The Evervault API server"
    }
  ],
  "tags": [
    {
      "name": "Core",
      "x-category": true
    },
    {
      "name": "Payments",
      "x-category": true
    },
    {
      "name": "Webhooks",
      "x-category": true
    },
    {
      "name": "Insights",
      "description": "The Evervault API provides several endpoints which can be used to retrieve additional information for cards and bin ranges. This can be used for tasks such as fraud detection and payment routing.\n"
    },
    {
      "name": "3D Secure",
      "description": "3D Secure is a security protocol designed to prevent fraud in online card transactions. It adds an additional layer of authentication during the payment process.\n"
    },
    {
      "name": "Network Tokens"
    },
    {
      "name": "Card Account Updates",
      "description": "If your account has access to [Card Account Updater](/cards/card-account-updater) you can use the Card Account Updater API to register cards for automatic updates. If an update is available for a card, the `replacement` field will be populated with the identifier of the new card.\n"
    },
    {
      "name": "Merchants"
    },
    {
      "name": "Acquirers",
      "description": "The Acquirer API allows you to enroll Acquirer details with Card Networks to enable use of other payment APIs such as [3D Secure](#3d-secure).\n"
    },
    {
      "name": "Relays",
      "description": "Relay is a network proxy that can be configured to encrypt or decrypt sensitive data as it passes between a client and a destination server. Relay can be used with your own API or with third-party APIs. It is designed to be easy to use and requires minimal changes to your existing code.\n"
    },
    {
      "name": "Functions",
      "description": "Evervault [Functions](/functions) are secure serverless functions which allow you to process data encrypted by Evervault products. When you pass encrypted data to a Function, it is automatically decrypted. You can then process this data by running custom logic written in Node.js or Python as you usually would, but without ever handling it in plaintext on your infrastructure.\n"
    },
    {
      "name": "Client Tokens",
      "description": "Client-Side Tokens are short-lived tokens that can be used to perform actions from your frontend applications.\n"
    }
  ],
  "paths": {
    "/encrypt": {
      "post": {
        "x-section": "Core",
        "summary": "Encrypt",
        "description": "The encrypt endpoint can be used to encrypt the values of a JSON object, or file. When encrypting the values of a JSON object the `Content-Type` header should be set to `application/json`, when encrypting files it should be set to `application/octet-stream`.\n",
        "operationId": "encrypt",
        "security": [
          {
            "ApiKey": []
          }
        ],
        "tags": [
          "Core"
        ],
        "requestBody": {
          "description": "A JSON value or file to be encrypted. This can be any valid JSON\nvalue: Objects, Arrays, Numbers, Boolean or Strings (strings should\nbe enclosed in double quotes).\n",
          "x-content": "A JSON value or file to be encrypted. This can be any valid JSON\nvalue: Objects, Arrays, Numbers, Boolean or Strings (strings should\nbe enclosed in double quotes).\n",
          "content": {
            "application/json": {
              "schema": {
                "type": [
                  "object",
                  "array",
                  "string",
                  "number",
                  "boolean"
                ],
                "description": "The JSON value to be encrypted. This can be any valid JSON value: Dictionaries, Arrays, Numbers, Boolean or Strings (strings should be enclosed in double quotes)."
              },
              "examples": {
                "Object": {
                  "value": {
                    "phoneNumber": "555-2368"
                  }
                },
                "String": {
                  "value": "555-2368"
                },
                "Number": {
                  "value": 17185550123
                },
                "Boolean": {
                  "value": true
                },
                "Array": {
                  "value": [
                    "555-2368",
                    1138,
                    true,
                    [
                      "555-2368"
                    ],
                    {
                      "phoneNumber": "555-2368"
                    }
                  ]
                }
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary",
                "description": "Encrypts a file/bytes."
              }
            }
          }
        },
        "responses": {
          "200": {
            "x-content": "An encrypted JSON object or file. For JSON requests, The payload structure will be the same as the one in the request payload, with all of the values encrypted.\n",
            "description": "An encrypted JSON object or file",
            "content": {
              "application/json": {
                "schema": {
                  "type": [
                    "object",
                    "array",
                    "string"
                  ],
                  "description": "The encrypted JSON value."
                },
                "examples": {
                  "Object": {
                    "value": {
                      "phoneNumber": "ev:debug:Tk9D:GWgxSXezEFNw10b/:A6JZWe29uiZpP72w+nc0RXOdWdvgCulNqJv8aJpLE/gH:3V/PD54obBv0j+EJMaNNa/ny2tmZq7QM:$"
                    }
                  },
                  "String": {
                    "value": "ev:debug:Tk9D:GWgxSXezEFNw10b/:A6JZWe29uiZpP72w+nc0RXOdWdvgCulNqJv8aJpLE/gH:3V/PD54obBv0j+EJMaNNa/ny2tmZq7QM:$"
                  },
                  "Number": {
                    "value": "ev:debug:Tk9D:number:Q+G8owQ5a0F8LfsM:A1iW9YmGNQjDOJ1N6KcdEoXwlORLnByhzCqJ52IIzUAn:iDmfDVHJezf/HsBUk+97HoZxI6Y=:$"
                  },
                  "Boolean": {
                    "value": "ev:debug:Tk9D:boolean:4tbwx0c6+mItTWRw:Au17EvAAE25NQqBwoeKgjxlGodhEoFqT2HUDZba9UMc1:hiG9MaMSmErtV36EkiwdncN6irM=:$"
                  },
                  "Array": {
                    "value": [
                      "ev:debug:Tk9D:GWgxSXezEFNw10b/:A6JZWe29uiZpP72w+nc0RXOdWdvgCulNqJv8aJpLE/gH:3V/PD54obBv0j+EJMaNNa/ny2tmZq7QM:$",
                      "ev:debug:Tk9D:number:Q+G8owQ5a0F8LfsM:A1iW9YmGNQjDOJ1N6KcdEoXwlORLnByhzCqJ52IIzUAn:iDmfDVHJezf/HsBUk+97HoZxI6Y=:$",
                      "ev:debug:Tk9D:boolean:4tbwx0c6+mItTWRw:Au17EvAAE25NQqBwoeKgjxlGodhEoFqT2HUDZba9UMc1:hiG9MaMSmErtV36EkiwdncN6irM=:$",
                      [
                        "ev:debug:Tk9D:ZV4ziNgNR7GEBnaD:AwF7SWjkTpAb0fQp5PvDHNMKE31HfXRDi75m+Xih8RjJ:4yqHe3WIAyWv55oblxnGwpxFKUBokYlN:$"
                      ],
                      {
                        "phoneNumber": "ev:debug:Tk9D:lAYux5azj+mjNLCp:AxGGQwASV58EKzpqVvHDnnHrjnkgssOU9wEI58edihbN:FRbTkv/Kf1R4WsSrRF3mshNgGx517XKd:$"
                      }
                    ]
                  }
                }
              },
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary",
                  "description": "The encrypted file/bytes"
                }
              }
            }
          }
        }
      }
    },
    "/decrypt": {
      "post": {
        "x-section": "Core",
        "summary": "Decrypt",
        "description": "The decrypt endpoint can be used to decrypt the values of a JSON object, or file. When decrypting the values of a JSON object the `Content-Type` header should be set to `application/json`, when decrypting files it should be set to `application/octet-stream`.\n",
        "operationId": "decrypt",
        "security": [
          {
            "ApiKey": [
              "api:decrypt"
            ]
          },
          {
            "ClientSideToken": [
              "api:decrypt"
            ]
          }
        ],
        "tags": [
          "Core"
        ],
        "requestBody": {
          "description": "A JSON value or file to be decrypted. This can be any valid JSON\nvalue: Objects, Arrays, Numbers, Boolean or Strings (strings should\nbe enclosed in double quotes).\n",
          "x-content": "A JSON value or file to be decrypted. This can be any valid JSON\nvalue: Objects, Arrays, Numbers, Boolean or Strings (strings should\nbe enclosed in double quotes).\n",
          "content": {
            "application/json": {
              "schema": {
                "type": [
                  "object",
                  "array",
                  "string"
                ],
                "description": "The JSON value to be decrypted. This can be any valid JSON value: Dictionaries, Arrays or Strings (strings should be enclosed in double quotes). Non-encrypted values are returned unaltered."
              },
              "examples": {
                "Object": {
                  "value": {
                    "phoneNumber": "ev:debug:Tk9D:cvuknWyEBK9VT1Dv:AzyAK0mI+KP8PU5SqjRHqVSXxTkWUDwotj7qht9/Y8X6:5azjL53LkeIMdfwp4zJoApNpWJ2hJ8NKhSF5OdGejexerv8Pz7i7WDo=:$"
                  }
                },
                "String": {
                  "value": "ev:debug:Tk9D:cvuknWyEBK9VT1Dv:AzyAK0mI+KP8PU5SqjRHqVSXxTkWUDwotj7qht9/Y8X6:5azjL53LkeIMdfwp4zJoApNpWJ2hJ8NKhSF5OdGejexerv8Pz7i7WDo=:$"
                },
                "Number": {
                  "value": "ev:debug:Tk9D:cvuknWyEBK9VT1Dv:AzyAK0mI+KP8PU5SqjRHqVSXxTkWUDwotj7qht9/Y8X6:5azjL53LkeIMdfwp4zJoApNpWJ2hJ8NKhSF5OdGejexerv8Pz7i7WDo=:$"
                },
                "Boolean": {
                  "value": "ev:debug:Tk9D:cvuknWyEBK9VT1Dv:AzyAK0mI+KP8PU5SqjRHqVSXxTkWUDwotj7qht9/Y8X6:5azjL53LkeIMdfwp4zJoApNpWJ2hJ8NKhSF5OdGejexerv8Pz7i7WDo=:$"
                },
                "Array": {
                  "value": [
                    "ev:debug:Tk9D:cvuknWyEBK9VT1Dv:AzyAK0mI+KP8PU5SqjRHqVSXxTkWUDwotj7qht9/Y8X6:5azjL53LkeIMdfwp4zJoApNpWJ2hJ8NKhSF5OdGejexerv8Pz7i7WDo=:$",
                    "ev:debug:Tk9D:number:VgghOI6CiNwopB5a:A36bghlqi552fAQe+FIGm6xQOTDXqT7aZ6Y8T8BL78OM:IQE9kOqjWNZ224RW2/aTVsohXsA=:$",
                    "ev:debug:Tk9D:boolean:tJhxI4I9P2hZTask:AllHDCO297G2syVEbbsyoxOJI9XhgMGDDMaZYiq1H3w9:cvAGst7Y3/4aiS4xg9r/i4z5Vkg=:$",
                    [
                      "ev:debug:Tk9D:cvuknWyEBK9VT1Dv:AzyAK0mI+KP8PU5SqjRHqVSXxTkWUDwotj7qht9/Y8X6:5azjL53LkeIMdfwp4zJoApNpWJ2hJ8NKhSF5OdGejexerv8Pz7i7WDo=:$"
                    ],
                    {
                      "phoneNumber": "ev:debug:Tk9D:cvuknWyEBK9VT1Dv:AzyAK0mI+KP8PU5SqjRHqVSXxTkWUDwotj7qht9/Y8X6:5azjL53LkeIMdfwp4zJoApNpWJ2hJ8NKhSF5OdGejexerv8Pz7i7WDo=:$"
                    }
                  ]
                }
              }
            },
            "application/octet-stream": {
              "schema": {
                "type": "string",
                "format": "binary",
                "description": "Decrypts a file/bytes."
              }
            }
          }
        },
        "responses": {
          "200": {
            "x-content": "A decrypted JSON object or file. For JSON requests, The payload structure will be the same as the one in the request payload, with any encrypted values decrypted.\n",
            "description": "A decrypted JSON value or file.",
            "content": {
              "application/json": {
                "schema": {
                  "type": [
                    "object",
                    "array",
                    "string",
                    "number",
                    "boolean"
                  ],
                  "description": "The decrypted JSON value."
                },
                "examples": {
                  "Object": {
                    "value": {
                      "phoneNumber": "555-2368"
                    }
                  },
                  "String": {
                    "value": "0118 999 881 999 119 7253"
                  },
                  "Number": {
                    "value": 1138
                  },
                  "Boolean": {
                    "value": true
                  },
                  "Array": {
                    "value": [
                      "0118 999 881 999 119 7253",
                      1138,
                      true,
                      "0118 999 881 999 119 7253",
                      {
                        "phoneNumber": "0118 999 881 999 119 7253"
                      }
                    ]
                  }
                }
              },
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary",
                  "description": "The decrypted file/bytes"
                }
              }
            }
          }
        }
      }
    },
    "/inspect": {
      "post": {
        "x-section": "Core",
        "summary": "Inspect",
        "operationId": "inspect",
        "description": "Retrieve metadata for an encrypted value such as the time of encryption,\nthe type of data, the data role and category-specific metadata (e.g. card metadata)\nwithout accessing the plaintext value.\n",
        "tags": [
          "Core"
        ],
        "security": [
          {
            "ApiKey": [
              "api:inspect"
            ]
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string",
                    "description": "The encrypted data to be inspected.",
                    "example": "ev:debug:Tk9D:HBpzdbFWXbX/N2cC:AyjMY/SKO49SlkXcDPtCGs+DxnUn/F8/lAtajCYZ/xT7:KV7AUn9vJJkZDtL8PKdOc8Y11yTL2vZQasFuHqM=:$"
                  }
                },
                "required": [
                  "token"
                ]
              },
              "examples": {
                "Object": {
                  "value": {
                    "token": "ev:debug:Tk9D:HBpzdbFWXbX/N2cC:AyjMY/SKO49SlkXcDPtCGs+DxnUn/F8/lAtajCYZ/xT7:KV7AUn9vJJkZDtL8PKdOc8Y11yTL2vZQasFuHqM=:$"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The metadata of the encrypted data that was submitted for inspection.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "integer",
                        "float",
                        "boolean",
                        "string"
                      ],
                      "description": "The type of the encrypted value.",
                      "example": "string"
                    },
                    "category": {
                      "type": "string",
                      "enum": [
                        "card-number"
                      ],
                      "description": "The category or specific nature of the encrypted value.",
                      "example": "card-number"
                    },
                    "encryptedAt": {
                      "type": "integer",
                      "description": "The date and time when the value was encrypted. This is a Unix timestamp in milliseconds. This field is currently only populated for values encrypted with a Data Role.",
                      "example": 1700067122000
                    },
                    "role": {
                      "type": "string",
                      "description": "The data role of the encrypted value.",
                      "example": "payment-data"
                    },
                    "fingerprint": {
                      "type": "string",
                      "description": "A unique identifier for the encrypted value.",
                      "example": "WUlcOAgQcTN1GEUaoaKrLH1wL2PZrjsUS7byUGZyUEA"
                    },
                    "metadata": {
                      "description": "Further metadata about the encrypted value. Returns different information based on the category of the data.",
                      "oneOf": [
                        {
                          "$ref": "#/components/schemas/CardMetadata"
                        }
                      ]
                    }
                  }
                },
                "examples": {
                  "Encrypted Card Number": {
                    "value": {
                      "type": "string",
                      "category": "card-number",
                      "encryptedAt": 1700067122000,
                      "role": "payment-data",
                      "fingerprint": "WUlcOAgQcTN1GEUaoaKrLH1wL2PZrjsUS7byUGZyUEA",
                      "metadata": {
                        "bin": "424242",
                        "lastFour": "4242",
                        "brand": "visa",
                        "funding": "debit",
                        "segment": "consumer",
                        "country": "gb",
                        "currency": "gbp",
                        "issuer": "Gringotts Wizarding Bank and Trust Company"
                      }
                    }
                  },
                  "Encrypted String": {
                    "value": {
                      "type": "string",
                      "encryptedAt": 1700067122000,
                      "role": "sensitive-data",
                      "fingerprint": "WUlcOAgQcTN1GEUaoaKrLH1wL2PZrjsUS7byUGZyUEA"
                    }
                  },
                  "Encrypted Boolean": {
                    "value": {
                      "type": "boolean",
                      "encryptedAt": 1700067122000,
                      "role": "sensitive-data",
                      "fingerprint": "WUlcOAgQcTN1GEUaoaKrLH1wL2PZrjsUS7byUGZyUEA"
                    }
                  },
                  "Encrypted Integer": {
                    "value": {
                      "type": "integer",
                      "encryptedAt": 1700067122000,
                      "role": "sensitive-data",
                      "fingerprint": "WUlcOAgQcTN1GEUaoaKrLH1wL2PZrjsUS7byUGZyUEA"
                    }
                  },
                  "Encrypted Float": {
                    "value": {
                      "type": "float",
                      "encryptedAt": 1700067122000,
                      "role": "sensitive-data",
                      "fingerprint": "WUlcOAgQcTN1GEUaoaKrLH1wL2PZrjsUS7byUGZyUEA"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/functions/{function_name}/runs": {
      "post": {
        "x-section": "Functions",
        "summary": "Run a Function",
        "operationId": "createFunctionRun",
        "description": "The Function run endpoint lets you invoke an [Evervault Function](/primitives/functions). The body of the request should contain a payload, the value of which will be decrypted and passed as an argument to the Function.\n",
        "tags": [
          "Core",
          "Functions"
        ],
        "security": [
          {
            "ApiKey": []
          },
          {
            "TokenAuth": []
          }
        ],
        "parameters": [
          {
            "name": "function_name",
            "in": "path",
            "description": "The name of the Function to be executed.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "payload": {
                    "type": "object",
                    "description": "The data payload that the Function will use during its execution. Any encrypted values will be decrypted before being passed to the function.",
                    "example": {
                      "name": "ev:debug:Tk9D:oVPHsPvwFHNk73DU:AglNWOgZekolcrxdxSpZJOusBgE+C9eWSapGIZkgTsUj:JKeSkdhVE9SCXqQINID4oBRCE/VhTb56VWGqyObP:$"
                    }
                  },
                  "async": {
                    "type": "boolean",
                    "description": "If you want your Function to run asynchronously and notify a callback URL, this can be set to `true` and the API will queue your Function run and return a `202` response code.",
                    "example": false
                  }
                },
                "required": [
                  "payload"
                ]
              },
              "examples": {
                "SimpleExample": {
                  "value": {
                    "payload": {
                      "name": "ev:Tk9D:oVPHsPvwFHNk73DU:AglNWOgZekolcrxdxSpZJOusBgE+C9eWSapGIZkgTsUj:JKeSkdhVE9SCXqQINID4oBRCE/VhTb56VWGqyObP:$"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The Function run has completed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FunctionRun"
                },
                "examples": {
                  "SuccessfulRun": {
                    "summary": "Successful Run",
                    "value": {
                      "id": "func_run_eead1d640d7c",
                      "status": "success",
                      "result": {
                        "message": "Hello from a Function! It seems you have 14 letters in your name"
                      },
                      "createdAt": 1692972623233
                    },
                    "description": "The Function ran successfully"
                  },
                  "FailedRun": {
                    "summary": "Failed Run",
                    "value": {
                      "id": "func_run_b4b2afe37083",
                      "status": "failure",
                      "error": {
                        "message": "Some error message",
                        "stack": "Error: Some error message!\\n    at exports.handler (/runtime/app/index.js:5:11)\\n    at /runtime/index.js:64:26\\n    at new Promise (<anonymous>)\\n    at /runtime/index.js:51:16"
                      },
                      "createdAt": 1692972623233
                    },
                    "description": "An error occurred during Function execution"
                  }
                }
              }
            }
          },
          "202": {
            "description": "The asynchronous Function invocation has been queued.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FunctionRun"
                },
                "examples": {
                  "QueuedRun": {
                    "summary": "Queued Run",
                    "value": {
                      "status": "scheduled"
                    }
                  }
                }
              }
            }
          },
          "408": {
            "description": "The request has timed out.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "RequestTimeout": {
                    "summary": "Request Timeout",
                    "value": {
                      "code": "functions/request-timeout",
                      "title": "Request Timeout",
                      "status": 408,
                      "detail": "Function execution exceeded the allotted time and has timed out. Please review your code to ensure it finishes within the time limit set in function.toml."
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "The Function is not ready to be invoked yet. This can occur when\nit hasn't been executed in a while. Retrying to run the Function after a short\ntime should resolve this.\n",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                },
                "examples": {
                  "FunctionNotReady": {
                    "summary": "Function Not Ready",
                    "value": {
                      "code": "functions/function-not-ready",
                      "title": "Function Not Ready",
                      "status": 409,
                      "detail": "The Function is not ready to be invoked yet. This can occur when it hasn't been executed recently. Please try again shortly."
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/client-side-tokens": {
      "post": {
        "summary": "Create a Client Token",
        "operationId": "create-client-side-token",
        "description": "Client-Side Tokens are restricted to specific payloads. By default, a Client-Side Token will expire after 5 minutes. The maximum expiration time of a token is 10 minutes. When using the REST API, the expiry field must be in epoch milliseconds.\n",
        "tags": [
          "Core",
          "Client Tokens"
        ],
        "security": [
          {
            "ApiKey": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "api:decrypt"
                    ],
                    "description": "The action that the token should permit"
                  },
                  "payload": {
                    "type": "object",
                    "description": "The payload that the token must be used with",
                    "example": {
                      "name": "ev:debug:Tk9D:OJzdN+H2FxM86+Oa:AuUCGfKH8yYkzUvg0EjFgBOI/95D3RDZp5nwz3f2eqwJ:Zg7lsCwr2liYQOkjaRI6mwHScyn4f/Y2cxlayglTTYk1VmmDxBa5:$"
                    }
                  },
                  "expiry": {
                    "type": "integer",
                    "description": "The expiry of the token in milliseconds format. Must be less than 10 minutes from now.",
                    "example": 1619712000000
                  }
                }
              },
              "examples": {
                "Decrypt": {
                  "value": {
                    "action": "api:decrypt",
                    "payload": {
                      "phoneNumber": "ev:Tk9D:GWgxSXezEFNw10b/:A6JZWe29uiZpP72w+nc0RXOdWdvgCulNqJv8aJpLE/gH:3V/PD54obBv0j+EJMaNNa/ny2tmZq7QM:$"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "A client side token and its expiry",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientSideToken"
                },
                "examples": {
                  "Decrypt": {
                    "summary": "Decrypt Token",
                    "value": {
                      "id": "client_side_token_TDbEef6lgIs",
                      "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJhcHBfdXVpZCI6ImFwcF82YWJlZDM1ZDc2YjkiLCJ0ZWFtX3V1aWQiOiJ0ZWFtX2FiZjU1YTk5MTY0NSIsImp0aSI6ImNsaWVudF9zaWRlX3Rva2VuX1REYkVlZjZsZ0lzIiwiZXhwIjoxNzA3MjMzODQxOTgxLCJhY3Rpb24iOiJhcGk6ZGVjcnlwdCIsInJlc291cmNlIjpudWxsLCJoYXNoZWRfYm9keSI6IlJCTnZvMVd6WjRvUlJxMFc5LWhrbnBUN1Q4SWY1MzZERU1CZzloeXFfNG8iLCJjbGllbnRfaXAiOm51bGx9.ea1w3TlZ7p-OLVs-NOAUMij4V5w-9vMAD8W2WEoklsDwwgy8HANXP4e8eAjTA0CkELoUL2FgNesS6S77Z-coG1Yw9TGnkEchgkA6RAXqF65t1bLrW0rvl2AzwFZNwJpEbJc37YqyC2xGeermmYKZCu6in97_fe4rAXSYQiuVtN6V8uLSlAgP9Mr0BmNIf49fnskbc0y2-2qewvZfRM7mPQ6NXcQE_jhUjy3OhaohdvU1FpaLs3OrzW2Ej8wE1hOjc5hRtT2cslaY4Bl2x4YNMRVObWg7GYCdETG280ilXTUu9jIPmkXt8QBzouZOP5nuhCjYxFJ2fYZMLj7vYukwdiyBtiUADXDzmnFyh7icAWib76z_hW3VLRjQSlq-fgvQJfM71j5RGBEmLrQNAPRREYjCiM8cwmOh5sFaLdmu4wM6-lgPn8dvHSqENwggs_nfxPyavHChNn8KOo4FS64YYeB28hqSvBAMT-umCdv7n2I-YF6fJOpgJrQOK35MPt4kKfqULJ45wpSnzsSpT9kTrLw0-9-6JpMtsQio0UJ27aXHMPErFcNMcW2hEhPdNsjSfIEmK7lCaUOed-wETkkfIaoTe5ly051baj-VWbAbNXH2jduia2rCZoofXTABADRzeBrFyDNRZXNQ205n0xh3PpIcazKw_vCAD_EDXmcCsFo",
                      "expiry": 1707233841981,
                      "createdAt": 1707233541981
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/insights/cards": {
      "post": {
        "summary": "Card Insights",
        "description": "The Card Insights API allows you to perform address verification (AVS), name verification (ANI), and CVV verification checks. You can also check the card's push and pull transaction capabilities.\n",
        "operationId": "createCardInsight",
        "tags": [
          "Payments",
          "Insights"
        ],
        "security": [
          {
            "ApiKey": [
              "insights:create"
            ]
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "card": {
                    "type": "object",
                    "description": "The card details.",
                    "properties": {
                      "number": {
                        "type": "string",
                        "description": "The card number. This should be a valid Evervault encrypted card number or a valid plaintext card number.",
                        "example": "4111111111111111"
                      },
                      "expiry": {
                        "type": "object",
                        "description": "The card expiry. Required if the `address`, `cardholder`, or `cvv` extensions are requested.",
                        "properties": {
                          "month": {
                            "type": "string",
                            "description": "The card expiry month",
                            "example": "12"
                          },
                          "year": {
                            "type": "string",
                            "description": "The card expiry year",
                            "example": "29"
                          }
                        }
                      },
                      "cvv": {
                        "type": "string",
                        "description": "The card security code. This should be a valid Evervault encrypted CVV or a valid plaintext CVV. Required if the `cvv` extension is requested.",
                        "example": "123"
                      }
                    },
                    "required": [
                      "number"
                    ]
                  },
                  "extensions": {
                    "type": "array",
                    "description": "The extensions to the card insight request.",
                    "items": {
                      "type": "string",
                      "description": "The extensions",
                      "enum": [
                        "capabilities",
                        "cvv",
                        

# --- truncated at 32 KB (335 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/evervault/refs/heads/main/openapi/evervault-openapi-original.json