curl --request POST \
--url https://api.example.com/v1/verification-of-benefits \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"patient_id": "<string>",
"patient_policy_id": "<string>",
"specialties": [
{
"credentialing_id": "<string>",
"cpt_codes": [
"<string>"
],
"service_locations": [],
"icd_codes": [
"<string>"
]
}
],
"priority": false
}
'import requests
url = "https://api.example.com/v1/verification-of-benefits"
payload = {
"patient_id": "<string>",
"patient_policy_id": "<string>",
"specialties": [
{
"credentialing_id": "<string>",
"cpt_codes": ["<string>"],
"service_locations": [],
"icd_codes": ["<string>"]
}
],
"priority": False
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
patient_id: '<string>',
patient_policy_id: '<string>',
specialties: [
{
credentialing_id: '<string>',
cpt_codes: ['<string>'],
service_locations: [],
icd_codes: ['<string>']
}
],
priority: false
})
};
fetch('https://api.example.com/v1/verification-of-benefits', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/verification-of-benefits",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'patient_id' => '<string>',
'patient_policy_id' => '<string>',
'specialties' => [
[
'credentialing_id' => '<string>',
'cpt_codes' => [
'<string>'
],
'service_locations' => [
],
'icd_codes' => [
'<string>'
]
]
],
'priority' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/verification-of-benefits"
payload := strings.NewReader("{\n \"patient_id\": \"<string>\",\n \"patient_policy_id\": \"<string>\",\n \"specialties\": [\n {\n \"credentialing_id\": \"<string>\",\n \"cpt_codes\": [\n \"<string>\"\n ],\n \"service_locations\": [],\n \"icd_codes\": [\n \"<string>\"\n ]\n }\n ],\n \"priority\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/v1/verification-of-benefits")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"patient_id\": \"<string>\",\n \"patient_policy_id\": \"<string>\",\n \"specialties\": [\n {\n \"credentialing_id\": \"<string>\",\n \"cpt_codes\": [\n \"<string>\"\n ],\n \"service_locations\": [],\n \"icd_codes\": [\n \"<string>\"\n ]\n }\n ],\n \"priority\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/verification-of-benefits")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"patient_id\": \"<string>\",\n \"patient_policy_id\": \"<string>\",\n \"specialties\": [\n {\n \"credentialing_id\": \"<string>\",\n \"cpt_codes\": [\n \"<string>\"\n ],\n \"service_locations\": [],\n \"icd_codes\": [\n \"<string>\"\n ]\n }\n ],\n \"priority\": false\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"patient_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_by_id": "<string>",
"version": 123,
"status": "<string>",
"patient_policy_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"priority": false,
"company_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"active": true,
"reviewer_user_id": "<string>",
"reviewed_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"completed_by_user_id": "<string>",
"missing_information_since": "2023-11-07T05:31:56Z",
"sla_paused_seconds": 0,
"backfilled": false,
"specialties": [],
"result_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"result": {},
"created_by": {
"id": "<string>",
"name": "<string>",
"email": "<string>",
"image": "<string>",
"user_type": "<string>"
},
"patient": {},
"missing_information_ask": {
"comment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"content": "<string>",
"created_at": "2023-11-07T05:31:56Z"
},
"missing_information_answered_at": "2023-11-07T05:31:56Z",
"auto_cancel_on": "2023-12-25",
"cancellation": {
"reason": "<string>",
"cancelled_at": "2023-11-07T05:31:56Z",
"cancelled_by": {
"id": "<string>",
"name": "<string>",
"email": "<string>",
"image": "<string>",
"user_type": "<string>"
}
}
}{
"type": "validation_error",
"code": "invalid_parameter",
"message": "Field validation failed",
"param": "phone_number"
}Create a verification of benefits
Requests a VOB of one active policy of one of your patients. Each specialty needs a service_type; its billing credential, CPT codes, places of service and ICD codes are taken from your company’s defaults when omitted (the NPI always comes from the credential). The response carries the resolved specialties and result: null. A policy has at most one open VOB (pending, in progress or missing information): a second one answers 409 with the open VOB’s id in details.open_vob_id. 422 when the policy is not an active policy of that patient, a credential is not an active one of your company, or a field can’t be resolved (param names it, e.g. specialties[0].cpt_codes). Creating a VOB moves the patient to your Needs VOB stage unless they are already on a verify-insurance stage.
curl --request POST \
--url https://api.example.com/v1/verification-of-benefits \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"patient_id": "<string>",
"patient_policy_id": "<string>",
"specialties": [
{
"credentialing_id": "<string>",
"cpt_codes": [
"<string>"
],
"service_locations": [],
"icd_codes": [
"<string>"
]
}
],
"priority": false
}
'import requests
url = "https://api.example.com/v1/verification-of-benefits"
payload = {
"patient_id": "<string>",
"patient_policy_id": "<string>",
"specialties": [
{
"credentialing_id": "<string>",
"cpt_codes": ["<string>"],
"service_locations": [],
"icd_codes": ["<string>"]
}
],
"priority": False
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
patient_id: '<string>',
patient_policy_id: '<string>',
specialties: [
{
credentialing_id: '<string>',
cpt_codes: ['<string>'],
service_locations: [],
icd_codes: ['<string>']
}
],
priority: false
})
};
fetch('https://api.example.com/v1/verification-of-benefits', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/verification-of-benefits",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'patient_id' => '<string>',
'patient_policy_id' => '<string>',
'specialties' => [
[
'credentialing_id' => '<string>',
'cpt_codes' => [
'<string>'
],
'service_locations' => [
],
'icd_codes' => [
'<string>'
]
]
],
'priority' => false
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/verification-of-benefits"
payload := strings.NewReader("{\n \"patient_id\": \"<string>\",\n \"patient_policy_id\": \"<string>\",\n \"specialties\": [\n {\n \"credentialing_id\": \"<string>\",\n \"cpt_codes\": [\n \"<string>\"\n ],\n \"service_locations\": [],\n \"icd_codes\": [\n \"<string>\"\n ]\n }\n ],\n \"priority\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/v1/verification-of-benefits")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"patient_id\": \"<string>\",\n \"patient_policy_id\": \"<string>\",\n \"specialties\": [\n {\n \"credentialing_id\": \"<string>\",\n \"cpt_codes\": [\n \"<string>\"\n ],\n \"service_locations\": [],\n \"icd_codes\": [\n \"<string>\"\n ]\n }\n ],\n \"priority\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/verification-of-benefits")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"patient_id\": \"<string>\",\n \"patient_policy_id\": \"<string>\",\n \"specialties\": [\n {\n \"credentialing_id\": \"<string>\",\n \"cpt_codes\": [\n \"<string>\"\n ],\n \"service_locations\": [],\n \"icd_codes\": [\n \"<string>\"\n ]\n }\n ],\n \"priority\": false\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"patient_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_by_id": "<string>",
"version": 123,
"status": "<string>",
"patient_policy_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"priority": false,
"company_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"active": true,
"reviewer_user_id": "<string>",
"reviewed_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"completed_by_user_id": "<string>",
"missing_information_since": "2023-11-07T05:31:56Z",
"sla_paused_seconds": 0,
"backfilled": false,
"specialties": [],
"result_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"result": {},
"created_by": {
"id": "<string>",
"name": "<string>",
"email": "<string>",
"image": "<string>",
"user_type": "<string>"
},
"patient": {},
"missing_information_ask": {
"comment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"content": "<string>",
"created_at": "2023-11-07T05:31:56Z"
},
"missing_information_answered_at": "2023-11-07T05:31:56Z",
"auto_cancel_on": "2023-12-25",
"cancellation": {
"reason": "<string>",
"cancelled_at": "2023-11-07T05:31:56Z",
"cancelled_by": {
"id": "<string>",
"name": "<string>",
"email": "<string>",
"image": "<string>",
"user_type": "<string>"
}
}
}{
"type": "validation_error",
"code": "invalid_parameter",
"message": "Field validation failed",
"param": "phone_number"
}Authorizations
Body
Create a VOB of one policy of one patient.
The patient the policy belongs to.
The active policy to verify.
At least one specialty; a service type may appear once.
1Show child attributes
Show child attributes
Flag the VOB as a priority request.
Response
Successful Response
One VOB as its own endpoints return it (get, create, update, cancel):
VobOut plus what the VOB's page shows beside the request.
Show child attributes
Show child attributes
The id of the VOB's result (result.id), on the list with or without include=result; null while it has none.
Show child attributes
Show child attributes
While the VOB is missing information: the latest comment in which Solum asked for it. Null in any other status, or while nobody has asked yet.
Show child attributes
Show child attributes
Your latest comment after that ask (your update notes included); null until you answer.
The date Solum will cancel the VOB if the ask stays unanswered, once Solum has warned. Null once you have answered (missing_information_answered_at is set): an answered VOB is not cancelled.
Set once the VOB is cancelled.
Show child attributes
Show child attributes

