curl --request POST \
--url https://robodialer-service-api-9nc4t1p9.uc.gateway.dev/v1/schemas/{schemaId}/required-payer-inputs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"payerNames": [
"Sample Insurance Co",
"Unknown Payer"
]
}
'import requests
url = "https://robodialer-service-api-9nc4t1p9.uc.gateway.dev/v1/schemas/{schemaId}/required-payer-inputs"
payload = { "payerNames": ["Sample Insurance Co", "Unknown Payer"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({payerNames: ['Sample Insurance Co', 'Unknown Payer']})
};
fetch('https://robodialer-service-api-9nc4t1p9.uc.gateway.dev/v1/schemas/{schemaId}/required-payer-inputs', 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://robodialer-service-api-9nc4t1p9.uc.gateway.dev/v1/schemas/{schemaId}/required-payer-inputs",
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([
'payerNames' => [
'Sample Insurance Co',
'Unknown Payer'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://robodialer-service-api-9nc4t1p9.uc.gateway.dev/v1/schemas/{schemaId}/required-payer-inputs"
payload := strings.NewReader("{\n \"payerNames\": [\n \"Sample Insurance Co\",\n \"Unknown Payer\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://robodialer-service-api-9nc4t1p9.uc.gateway.dev/v1/schemas/{schemaId}/required-payer-inputs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"payerNames\": [\n \"Sample Insurance Co\",\n \"Unknown Payer\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://robodialer-service-api-9nc4t1p9.uc.gateway.dev/v1/schemas/{schemaId}/required-payer-inputs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"payerNames\": [\n \"Sample Insurance Co\",\n \"Unknown Payer\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"schemaId": "fWxzG4nqtpHsJxS5Lm3q",
"requiredInputs": {
"fields": [
"beginningDateOfService",
"billingProviderName",
"billingProviderTaxId",
"claimChargeAmount",
"memberId",
"patientDateOfBirth",
"patientFirstName",
"patientLastName",
"payerName",
"phoneNumber",
"renderingProviderName",
"renderingProviderNpi"
]
},
"optionalInputs": {
"fields": [
"memberId2"
]
},
"payers": [
{
"inputPayerName": "Sample Insurance Co",
"matchedPayerName": "Sample Insurance Company, Inc.",
"payerRequiredInputs": {
"fields": [
"claimNumber"
]
}
},
{
"inputPayerName": "Unknown Payer",
"errorCode": "PAYER_NOT_FOUND",
"message": "No canonical payer matched 'Unknown Payer'."
}
]
}Resolve payer names against a schema's required inputs
Given a schema and a batch of payer names, returns the schema’s own required/optional inputs plus the per-payer required inputs for each name, so you can assemble the complete input set for a specific payer before calling POST /v1/requests, instead of discovering a payer-specific field from an INVALID_INPUTS rejection. The schema-level requiredInputs/optionalInputs are identical in shape and meaning to GET /v1/schemas/{schemaId}/required-inputs; payers adds the per-payer detail.
The response carries one payers entry per payerNames entry, in input order, with no de-duplication (positionally aligned 1:1 with the request array). Each entry is either matched (inputPayerName, matchedPayerName, payerRequiredInputs.fields) or a per-payer error (inputPayerName, errorCode, message). Discriminate on the presence of errorCode. A per-payer failure never fails the whole request; whole-request failures use the uniform {error, message} envelope.
Opt-in. Gated on the enforcePayerRequiredInputs account feature. When it is off the endpoint returns 403 PAYER_REQUIRED_INPUTS_DISABLED. This is the schema-keyed twin of POST /v1/scripts/{scriptId}/required-payer-inputs. See the Per-Payer Required Inputs guide.
curl --request POST \
--url https://robodialer-service-api-9nc4t1p9.uc.gateway.dev/v1/schemas/{schemaId}/required-payer-inputs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"payerNames": [
"Sample Insurance Co",
"Unknown Payer"
]
}
'import requests
url = "https://robodialer-service-api-9nc4t1p9.uc.gateway.dev/v1/schemas/{schemaId}/required-payer-inputs"
payload = { "payerNames": ["Sample Insurance Co", "Unknown Payer"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({payerNames: ['Sample Insurance Co', 'Unknown Payer']})
};
fetch('https://robodialer-service-api-9nc4t1p9.uc.gateway.dev/v1/schemas/{schemaId}/required-payer-inputs', 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://robodialer-service-api-9nc4t1p9.uc.gateway.dev/v1/schemas/{schemaId}/required-payer-inputs",
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([
'payerNames' => [
'Sample Insurance Co',
'Unknown Payer'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://robodialer-service-api-9nc4t1p9.uc.gateway.dev/v1/schemas/{schemaId}/required-payer-inputs"
payload := strings.NewReader("{\n \"payerNames\": [\n \"Sample Insurance Co\",\n \"Unknown Payer\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://robodialer-service-api-9nc4t1p9.uc.gateway.dev/v1/schemas/{schemaId}/required-payer-inputs")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"payerNames\": [\n \"Sample Insurance Co\",\n \"Unknown Payer\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://robodialer-service-api-9nc4t1p9.uc.gateway.dev/v1/schemas/{schemaId}/required-payer-inputs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"payerNames\": [\n \"Sample Insurance Co\",\n \"Unknown Payer\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"schemaId": "fWxzG4nqtpHsJxS5Lm3q",
"requiredInputs": {
"fields": [
"beginningDateOfService",
"billingProviderName",
"billingProviderTaxId",
"claimChargeAmount",
"memberId",
"patientDateOfBirth",
"patientFirstName",
"patientLastName",
"payerName",
"phoneNumber",
"renderingProviderName",
"renderingProviderNpi"
]
},
"optionalInputs": {
"fields": [
"memberId2"
]
},
"payers": [
{
"inputPayerName": "Sample Insurance Co",
"matchedPayerName": "Sample Insurance Company, Inc.",
"payerRequiredInputs": {
"fields": [
"claimNumber"
]
}
},
{
"inputPayerName": "Unknown Payer",
"errorCode": "PAYER_NOT_FOUND",
"message": "No canonical payer matched 'Unknown Payer'."
}
]
}Authorizations
Bearer token obtained from the /v1/auth endpoint
Path Parameters
The schema ID (from GET /v1/schemas). Must be non-blank, ≤1500 characters, contain no /, and must not start with _ or ..
Body
Request body for POST /v1/schemas/{schemaId}/required-payer-inputs.
Payer names to resolve, 1–50 per request. Resolved independently, in order, with no de-duplication. The response's payers array is positionally aligned 1:1 with this array. More than 50 entries returns 400 INVALID_REQUEST (no truncation). A blank/whitespace-only entry is not a whole-request error. It comes back as a per-payer INVALID_PAYER_NAME entry in payers.
1 - 50 elementsResponse
Schema required/optional inputs plus one payers entry per requested name.
Success body from POST /v1/schemas/{schemaId}/required-payer-inputs. Carries the schema's own requiredInputs/optionalInputs (identical shape and semantics to GET /v1/schemas/{schemaId}/required-inputs) plus a payers array with one entry per requested name.
Echoes the path parameter.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
One entry per payerNames entry, in input order, with no de-duplication (positionally aligned 1:1 with the request). Each item is either a MatchedPayerEntry or a PayerInputError. Discriminate on the presence of errorCode.
A payers[] entry for a name that resolved to a canonical payer. The resolved phone number is intentionally omitted: dialing happens server-side and is never echoed back.
- Option 1
- Option 2
Show child attributes
Show child attributes