The specialties
GET /v1/specialties returns this list with each specialty’s label and group (behavioral_health, therapy or imaging). It is the same for every company, so you can cache it.
Your company’s specialties
Your company keeps two lists:- Specialties, under Settings → General: what your team can request. Only these appear in the specialty dropdowns (the Create VOB form, a VOB’s services, a prior authorization’s Specialty Type), and the API refuses a VOB request for any other. Anyone on your team can add one.
- Default specialties, under Settings → Eligibility: what Solum requests when a VOB is created without naming any, for example from your intake integration, a form submission or a fax. You can replace them for patients in a given state with Default specialties by state.
Requesting specialties through the API
Each item ofspecialties on POST /v1/verification-of-benefits, PATCH /v1/verification-of-benefits/{id} and POST /v1/verification-of-benefits/resolve takes a required specialty:
credentialing_id, cpt_codes, service_locations or icd_codes to take your company’s default for that specialty. A VOB lists each specialty once. Two specialties the payer answers the same way, such as ABA and Mental health, can be on one VOB, and each gets its own result.
Leave specialties out of POST /v1/verification-of-benefits/resolve and it returns the specialties Solum would request for the policy, each resolved from your defaults. When none derive because your company has no specialties set up, it answers 200 with an empty list and company_has_no_specialties: true.
Responses carry specialty, never a payer code: each requested specialty of a VOB, result.services[] (include=result) and current_version.services[] on the policies of GET /v1/patients/{id}?expand[]=policies.
Solum chooses the payer code
For each specialty, Solum asks the payer with the service type code payers use for it. ABA and Mental health, for example, are asked the same way. Specialties asked the same way that share the billing NPI and the place of service are answered by one eligibility check, and its answer is written to each of them. When a payer only answers at the plan level, the answer is still recorded under the specialty you requested. See Automatic Eligibility Checks. The Eligibility Checks page and batch uploads still take service type codes: see Eligibility Service Type Codes.Errors
OnPOST /v1/verification-of-benefits, PATCH /v1/verification-of-benefits/{id} and POST /v1/verification-of-benefits/resolve, a request with a specialty Solum can’t use fails with 422, naming the specialty:
The first three are checked before anything else:
details.errors, and details.specialties lists what each requested specialty resolved to (null for each field that did not):

