curl --request POST \
--url https://api.byblend.com/api/v1/exceptions/{exception_id}/responses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"text": "The patient's corrected address is on the order now.",
"first_name": "Charlie",
"last_name": "Customer"
}
EOFimport requests
url = "https://api.byblend.com/api/v1/exceptions/{exception_id}/responses"
payload = {
"text": "The patient's corrected address is on the order now.",
"first_name": "Charlie",
"last_name": "Customer"
}
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({
text: 'The patient\'s corrected address is on the order now.',
first_name: 'Charlie',
last_name: 'Customer'
})
};
fetch('https://api.byblend.com/api/v1/exceptions/{exception_id}/responses', 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.byblend.com/api/v1/exceptions/{exception_id}/responses",
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([
'text' => 'The patient\'s corrected address is on the order now.',
'first_name' => 'Charlie',
'last_name' => 'Customer'
]),
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://api.byblend.com/api/v1/exceptions/{exception_id}/responses"
payload := strings.NewReader("{\n \"text\": \"The patient's corrected address is on the order now.\",\n \"first_name\": \"Charlie\",\n \"last_name\": \"Customer\"\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://api.byblend.com/api/v1/exceptions/{exception_id}/responses")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"text\": \"The patient's corrected address is on the order now.\",\n \"first_name\": \"Charlie\",\n \"last_name\": \"Customer\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.byblend.com/api/v1/exceptions/{exception_id}/responses")
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 \"text\": \"The patient's corrected address is on the order now.\",\n \"first_name\": \"Charlie\",\n \"last_name\": \"Customer\"\n}"
response = http.request(request)
puts response.read_body{
"id": "5b1f7f0e-2f6c-4c1e-9a55-0f3f4b0c9a21",
"exception_id": "0227d1e5-ba9a-42b5-8fe2-38882aa65708",
"text": "The patient's corrected address is on the order now.\n\n[Response from: Charlie Customer]",
"created_at": "2026-09-30T18:04:00",
"author": {
"first_name": "Charlie",
"last_name": "Customer",
"type": "customer"
}
}Respond to an exception
Reply to Blend on a stuck order or prescription. The response is added to the exception’s discussion and returns the exception to the Blend pharmacy team’s queue. Responding does not resolve the exception; it clears once Blend resolves it or the missing data arrives. Blend’s replies are sent to you with the order.stuck_response webhook.
Include the first and last name of the person responding. For regulatory purposes, Blend must identify and keep a record of the authorized person behind every response.
curl --request POST \
--url https://api.byblend.com/api/v1/exceptions/{exception_id}/responses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"text": "The patient's corrected address is on the order now.",
"first_name": "Charlie",
"last_name": "Customer"
}
EOFimport requests
url = "https://api.byblend.com/api/v1/exceptions/{exception_id}/responses"
payload = {
"text": "The patient's corrected address is on the order now.",
"first_name": "Charlie",
"last_name": "Customer"
}
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({
text: 'The patient\'s corrected address is on the order now.',
first_name: 'Charlie',
last_name: 'Customer'
})
};
fetch('https://api.byblend.com/api/v1/exceptions/{exception_id}/responses', 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.byblend.com/api/v1/exceptions/{exception_id}/responses",
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([
'text' => 'The patient\'s corrected address is on the order now.',
'first_name' => 'Charlie',
'last_name' => 'Customer'
]),
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://api.byblend.com/api/v1/exceptions/{exception_id}/responses"
payload := strings.NewReader("{\n \"text\": \"The patient's corrected address is on the order now.\",\n \"first_name\": \"Charlie\",\n \"last_name\": \"Customer\"\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://api.byblend.com/api/v1/exceptions/{exception_id}/responses")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"text\": \"The patient's corrected address is on the order now.\",\n \"first_name\": \"Charlie\",\n \"last_name\": \"Customer\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.byblend.com/api/v1/exceptions/{exception_id}/responses")
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 \"text\": \"The patient's corrected address is on the order now.\",\n \"first_name\": \"Charlie\",\n \"last_name\": \"Customer\"\n}"
response = http.request(request)
puts response.read_body{
"id": "5b1f7f0e-2f6c-4c1e-9a55-0f3f4b0c9a21",
"exception_id": "0227d1e5-ba9a-42b5-8fe2-38882aa65708",
"text": "The patient's corrected address is on the order now.\n\n[Response from: Charlie Customer]",
"created_at": "2026-09-30T18:04:00",
"author": {
"first_name": "Charlie",
"last_name": "Customer",
"type": "customer"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Unique identifier for the exception (exception_id in the order.stuck webhook)
Body
Response text
"The patient's corrected address is on the order now."
First name of the authorized person responding. Required for regulatory record-keeping, since API credentials are often shared and the account name doesn't identify who replied.
2"Charlie"
Last name of the authorized person responding
2"Customer"
Response
Response created
Unique identifier for the response
"5b1f7f0e-2f6c-4c1e-9a55-0f3f4b0c9a21"
ID of the exception this response belongs to
"0227d1e5-ba9a-42b5-8fe2-38882aa65708"
Response text. Responses posted through the API end with the responder's name, as [Response from: First Last].
"The patient's corrected address is on the order now.\n\n[Response from: Charlie Customer]"
Date and time the response was posted
"2026-09-30T18:04:00"
Show child attributes
Show child attributes