Create a workspace task
Tasks are scoped to the authenticated organization and accessible related records. Managing task content, deletion or reassignment requires task management access; completion may also be allowed for the assigned staff member. Expected version or updated timestamp protects changes from stale data and returns 422 on conflict. CSV and calendar exports use the same visibility and filter rules; calendar exports include only dated tasks.
curl --request POST \
--url https://api.gratona.com/v1/admin/tasks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "Follow up with trip participants",
"body_json": {},
"due_date": "2026-10-20",
"assigned_to_user_id": 1,
"source": "<string>",
"expected_updated_at": "2026-10-20T09:00:00Z",
"expected_version": 1,
"links": [
{
"record_type": "donor",
"record_id": 1,
"related_type": "donor",
"related_id": 1
}
],
"records": [
{
"record_type": "donor",
"record_id": 1,
"related_type": "donor",
"related_id": 1
}
],
"mentions": [
{
"mention_type": "user",
"user_id": 1,
"record_type": "donor",
"record_id": 1,
"related_type": "donor",
"related_id": 1,
"label": "<string>"
}
],
"collaboration_attachment_ids": [
2
],
"collaboration_draft_context_id": "b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605",
"idempotency_key": "b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605"
}
'import requests
url = "https://api.gratona.com/v1/admin/tasks"
payload = {
"title": "Follow up with trip participants",
"body_json": {},
"due_date": "2026-10-20",
"assigned_to_user_id": 1,
"source": "<string>",
"expected_updated_at": "2026-10-20T09:00:00Z",
"expected_version": 1,
"links": [
{
"record_type": "donor",
"record_id": 1,
"related_type": "donor",
"related_id": 1
}
],
"records": [
{
"record_type": "donor",
"record_id": 1,
"related_type": "donor",
"related_id": 1
}
],
"mentions": [
{
"mention_type": "user",
"user_id": 1,
"record_type": "donor",
"record_id": 1,
"related_type": "donor",
"related_id": 1,
"label": "<string>"
}
],
"collaboration_attachment_ids": [2],
"collaboration_draft_context_id": "b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605",
"idempotency_key": "b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605"
}
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({
title: 'Follow up with trip participants',
body_json: {},
due_date: '2026-10-20',
assigned_to_user_id: 1,
source: '<string>',
expected_updated_at: '2026-10-20T09:00:00Z',
expected_version: 1,
links: [{record_type: 'donor', record_id: 1, related_type: 'donor', related_id: 1}],
records: [{record_type: 'donor', record_id: 1, related_type: 'donor', related_id: 1}],
mentions: [
{
mention_type: 'user',
user_id: 1,
record_type: 'donor',
record_id: 1,
related_type: 'donor',
related_id: 1,
label: '<string>'
}
],
collaboration_attachment_ids: [2],
collaboration_draft_context_id: 'b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605',
idempotency_key: 'b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605'
})
};
fetch('https://api.gratona.com/v1/admin/tasks', 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.gratona.com/v1/admin/tasks",
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([
'title' => 'Follow up with trip participants',
'body_json' => [
],
'due_date' => '2026-10-20',
'assigned_to_user_id' => 1,
'source' => '<string>',
'expected_updated_at' => '2026-10-20T09:00:00Z',
'expected_version' => 1,
'links' => [
[
'record_type' => 'donor',
'record_id' => 1,
'related_type' => 'donor',
'related_id' => 1
]
],
'records' => [
[
'record_type' => 'donor',
'record_id' => 1,
'related_type' => 'donor',
'related_id' => 1
]
],
'mentions' => [
[
'mention_type' => 'user',
'user_id' => 1,
'record_type' => 'donor',
'record_id' => 1,
'related_type' => 'donor',
'related_id' => 1,
'label' => '<string>'
]
],
'collaboration_attachment_ids' => [
2
],
'collaboration_draft_context_id' => 'b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605',
'idempotency_key' => 'b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605'
]),
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.gratona.com/v1/admin/tasks"
payload := strings.NewReader("{\n \"title\": \"Follow up with trip participants\",\n \"body_json\": {},\n \"due_date\": \"2026-10-20\",\n \"assigned_to_user_id\": 1,\n \"source\": \"<string>\",\n \"expected_updated_at\": \"2026-10-20T09:00:00Z\",\n \"expected_version\": 1,\n \"links\": [\n {\n \"record_type\": \"donor\",\n \"record_id\": 1,\n \"related_type\": \"donor\",\n \"related_id\": 1\n }\n ],\n \"records\": [\n {\n \"record_type\": \"donor\",\n \"record_id\": 1,\n \"related_type\": \"donor\",\n \"related_id\": 1\n }\n ],\n \"mentions\": [\n {\n \"mention_type\": \"user\",\n \"user_id\": 1,\n \"record_type\": \"donor\",\n \"record_id\": 1,\n \"related_type\": \"donor\",\n \"related_id\": 1,\n \"label\": \"<string>\"\n }\n ],\n \"collaboration_attachment_ids\": [\n 2\n ],\n \"collaboration_draft_context_id\": \"b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605\",\n \"idempotency_key\": \"b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605\"\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.gratona.com/v1/admin/tasks")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Follow up with trip participants\",\n \"body_json\": {},\n \"due_date\": \"2026-10-20\",\n \"assigned_to_user_id\": 1,\n \"source\": \"<string>\",\n \"expected_updated_at\": \"2026-10-20T09:00:00Z\",\n \"expected_version\": 1,\n \"links\": [\n {\n \"record_type\": \"donor\",\n \"record_id\": 1,\n \"related_type\": \"donor\",\n \"related_id\": 1\n }\n ],\n \"records\": [\n {\n \"record_type\": \"donor\",\n \"record_id\": 1,\n \"related_type\": \"donor\",\n \"related_id\": 1\n }\n ],\n \"mentions\": [\n {\n \"mention_type\": \"user\",\n \"user_id\": 1,\n \"record_type\": \"donor\",\n \"record_id\": 1,\n \"related_type\": \"donor\",\n \"related_id\": 1,\n \"label\": \"<string>\"\n }\n ],\n \"collaboration_attachment_ids\": [\n 2\n ],\n \"collaboration_draft_context_id\": \"b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605\",\n \"idempotency_key\": \"b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/admin/tasks")
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 \"title\": \"Follow up with trip participants\",\n \"body_json\": {},\n \"due_date\": \"2026-10-20\",\n \"assigned_to_user_id\": 1,\n \"source\": \"<string>\",\n \"expected_updated_at\": \"2026-10-20T09:00:00Z\",\n \"expected_version\": 1,\n \"links\": [\n {\n \"record_type\": \"donor\",\n \"record_id\": 1,\n \"related_type\": \"donor\",\n \"related_id\": 1\n }\n ],\n \"records\": [\n {\n \"record_type\": \"donor\",\n \"record_id\": 1,\n \"related_type\": \"donor\",\n \"related_id\": 1\n }\n ],\n \"mentions\": [\n {\n \"mention_type\": \"user\",\n \"user_id\": 1,\n \"record_type\": \"donor\",\n \"record_id\": 1,\n \"related_type\": \"donor\",\n \"related_id\": 1,\n \"label\": \"<string>\"\n }\n ],\n \"collaboration_attachment_ids\": [\n 2\n ],\n \"collaboration_draft_context_id\": \"b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605\",\n \"idempotency_key\": \"b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605\"\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"title": "<string>",
"status": "<string>",
"due_date": "2023-12-25",
"due_label": "<string>",
"due_state": "<string>",
"assigned_to_user_id": 123,
"created_by_user_id": 123,
"completed_at": "2023-11-07T05:31:56Z",
"source": "<string>",
"version": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"body_json": {},
"assigned_to": {
"id": 123,
"name": "<string>",
"email": "<string>"
},
"created_by": {
"id": 123,
"name": "<string>",
"email": "<string>"
},
"completed_by": {
"id": 123,
"name": "<string>",
"email": "<string>"
},
"links": [
{
"id": 123,
"record_type": "<string>",
"record_id": 123,
"related_type": "<string>",
"related_id": 123,
"type_label": "<string>",
"program_type": "<string>",
"label": "<string>",
"secondary": "<string>",
"url": "<string>",
"is_primary": true,
"visibility_required": true,
"is_accessible": true
}
],
"mentions": [
{
"id": 123,
"mention_type": "<string>",
"user_id": 123,
"record_type": "<string>",
"record_id": 123,
"related_type": "<string>",
"related_id": 123,
"type_label": "<string>",
"program_type": "<string>",
"label": "<string>",
"is_accessible": true
}
]
}{
"message": "Unauthorized",
"status": "error"
}{
"message": "Something went wrong. Please try again.",
"status": "error",
"error": "invalid_request",
"code": "DONOR_NOT_FOUND"
}{
"message": "Not Found",
"status": "error"
}{
"message": "Something went wrong. Please try again.",
"status": "error",
"error": "invalid_request",
"code": "DONOR_NOT_FOUND"
}{
"errors": {},
"status": "error",
"message": "The given data was invalid."
}{
"message": "Something went wrong. Please try again.",
"status": "error",
"error": "invalid_request",
"code": "DONOR_NOT_FOUND"
}Authorizations
Passport bearer token authentication for legacy admin sessions.
Body
Request fields accepted by this operation. Omitted optional properties retain the behavior described above.
Validation: required|string|min:1|max:1000.
1 - 1000"Follow up with trip participants"
Structured editor document, validated as an array.
Validation: nullable|date_format:Y-m-d.
"2026-10-20"
Active assignable staff member in this organization, or null to unassign. Required linked records must be visible to the assignee.
1
Validation: string|max:64.
64Validation: nullable|date.
"2026-10-20T09:00:00Z"
Validation: nullable|integer|min:1.
x >= 11
10Show child attributes
Show child attributes
Compatibility alias for related records.
10Show child attributes
Show child attributes
20Show child attributes
Show child attributes
10x >= 1Required draft UUID when attaching staged collaboration files.
"b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605"
Required request UUID when attaching staged collaboration files.
"b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605"
Response
Create a workspace task response.
Structured editor document; an empty document may be serialized as an array.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
curl --request POST \
--url https://api.gratona.com/v1/admin/tasks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "Follow up with trip participants",
"body_json": {},
"due_date": "2026-10-20",
"assigned_to_user_id": 1,
"source": "<string>",
"expected_updated_at": "2026-10-20T09:00:00Z",
"expected_version": 1,
"links": [
{
"record_type": "donor",
"record_id": 1,
"related_type": "donor",
"related_id": 1
}
],
"records": [
{
"record_type": "donor",
"record_id": 1,
"related_type": "donor",
"related_id": 1
}
],
"mentions": [
{
"mention_type": "user",
"user_id": 1,
"record_type": "donor",
"record_id": 1,
"related_type": "donor",
"related_id": 1,
"label": "<string>"
}
],
"collaboration_attachment_ids": [
2
],
"collaboration_draft_context_id": "b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605",
"idempotency_key": "b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605"
}
'import requests
url = "https://api.gratona.com/v1/admin/tasks"
payload = {
"title": "Follow up with trip participants",
"body_json": {},
"due_date": "2026-10-20",
"assigned_to_user_id": 1,
"source": "<string>",
"expected_updated_at": "2026-10-20T09:00:00Z",
"expected_version": 1,
"links": [
{
"record_type": "donor",
"record_id": 1,
"related_type": "donor",
"related_id": 1
}
],
"records": [
{
"record_type": "donor",
"record_id": 1,
"related_type": "donor",
"related_id": 1
}
],
"mentions": [
{
"mention_type": "user",
"user_id": 1,
"record_type": "donor",
"record_id": 1,
"related_type": "donor",
"related_id": 1,
"label": "<string>"
}
],
"collaboration_attachment_ids": [2],
"collaboration_draft_context_id": "b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605",
"idempotency_key": "b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605"
}
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({
title: 'Follow up with trip participants',
body_json: {},
due_date: '2026-10-20',
assigned_to_user_id: 1,
source: '<string>',
expected_updated_at: '2026-10-20T09:00:00Z',
expected_version: 1,
links: [{record_type: 'donor', record_id: 1, related_type: 'donor', related_id: 1}],
records: [{record_type: 'donor', record_id: 1, related_type: 'donor', related_id: 1}],
mentions: [
{
mention_type: 'user',
user_id: 1,
record_type: 'donor',
record_id: 1,
related_type: 'donor',
related_id: 1,
label: '<string>'
}
],
collaboration_attachment_ids: [2],
collaboration_draft_context_id: 'b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605',
idempotency_key: 'b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605'
})
};
fetch('https://api.gratona.com/v1/admin/tasks', 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.gratona.com/v1/admin/tasks",
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([
'title' => 'Follow up with trip participants',
'body_json' => [
],
'due_date' => '2026-10-20',
'assigned_to_user_id' => 1,
'source' => '<string>',
'expected_updated_at' => '2026-10-20T09:00:00Z',
'expected_version' => 1,
'links' => [
[
'record_type' => 'donor',
'record_id' => 1,
'related_type' => 'donor',
'related_id' => 1
]
],
'records' => [
[
'record_type' => 'donor',
'record_id' => 1,
'related_type' => 'donor',
'related_id' => 1
]
],
'mentions' => [
[
'mention_type' => 'user',
'user_id' => 1,
'record_type' => 'donor',
'record_id' => 1,
'related_type' => 'donor',
'related_id' => 1,
'label' => '<string>'
]
],
'collaboration_attachment_ids' => [
2
],
'collaboration_draft_context_id' => 'b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605',
'idempotency_key' => 'b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605'
]),
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.gratona.com/v1/admin/tasks"
payload := strings.NewReader("{\n \"title\": \"Follow up with trip participants\",\n \"body_json\": {},\n \"due_date\": \"2026-10-20\",\n \"assigned_to_user_id\": 1,\n \"source\": \"<string>\",\n \"expected_updated_at\": \"2026-10-20T09:00:00Z\",\n \"expected_version\": 1,\n \"links\": [\n {\n \"record_type\": \"donor\",\n \"record_id\": 1,\n \"related_type\": \"donor\",\n \"related_id\": 1\n }\n ],\n \"records\": [\n {\n \"record_type\": \"donor\",\n \"record_id\": 1,\n \"related_type\": \"donor\",\n \"related_id\": 1\n }\n ],\n \"mentions\": [\n {\n \"mention_type\": \"user\",\n \"user_id\": 1,\n \"record_type\": \"donor\",\n \"record_id\": 1,\n \"related_type\": \"donor\",\n \"related_id\": 1,\n \"label\": \"<string>\"\n }\n ],\n \"collaboration_attachment_ids\": [\n 2\n ],\n \"collaboration_draft_context_id\": \"b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605\",\n \"idempotency_key\": \"b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605\"\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.gratona.com/v1/admin/tasks")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Follow up with trip participants\",\n \"body_json\": {},\n \"due_date\": \"2026-10-20\",\n \"assigned_to_user_id\": 1,\n \"source\": \"<string>\",\n \"expected_updated_at\": \"2026-10-20T09:00:00Z\",\n \"expected_version\": 1,\n \"links\": [\n {\n \"record_type\": \"donor\",\n \"record_id\": 1,\n \"related_type\": \"donor\",\n \"related_id\": 1\n }\n ],\n \"records\": [\n {\n \"record_type\": \"donor\",\n \"record_id\": 1,\n \"related_type\": \"donor\",\n \"related_id\": 1\n }\n ],\n \"mentions\": [\n {\n \"mention_type\": \"user\",\n \"user_id\": 1,\n \"record_type\": \"donor\",\n \"record_id\": 1,\n \"related_type\": \"donor\",\n \"related_id\": 1,\n \"label\": \"<string>\"\n }\n ],\n \"collaboration_attachment_ids\": [\n 2\n ],\n \"collaboration_draft_context_id\": \"b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605\",\n \"idempotency_key\": \"b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/admin/tasks")
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 \"title\": \"Follow up with trip participants\",\n \"body_json\": {},\n \"due_date\": \"2026-10-20\",\n \"assigned_to_user_id\": 1,\n \"source\": \"<string>\",\n \"expected_updated_at\": \"2026-10-20T09:00:00Z\",\n \"expected_version\": 1,\n \"links\": [\n {\n \"record_type\": \"donor\",\n \"record_id\": 1,\n \"related_type\": \"donor\",\n \"related_id\": 1\n }\n ],\n \"records\": [\n {\n \"record_type\": \"donor\",\n \"record_id\": 1,\n \"related_type\": \"donor\",\n \"related_id\": 1\n }\n ],\n \"mentions\": [\n {\n \"mention_type\": \"user\",\n \"user_id\": 1,\n \"record_type\": \"donor\",\n \"record_id\": 1,\n \"related_type\": \"donor\",\n \"related_id\": 1,\n \"label\": \"<string>\"\n }\n ],\n \"collaboration_attachment_ids\": [\n 2\n ],\n \"collaboration_draft_context_id\": \"b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605\",\n \"idempotency_key\": \"b2e01bb7-6c5a-4bc6-9ee6-20b5a4295605\"\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"title": "<string>",
"status": "<string>",
"due_date": "2023-12-25",
"due_label": "<string>",
"due_state": "<string>",
"assigned_to_user_id": 123,
"created_by_user_id": 123,
"completed_at": "2023-11-07T05:31:56Z",
"source": "<string>",
"version": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"body_json": {},
"assigned_to": {
"id": 123,
"name": "<string>",
"email": "<string>"
},
"created_by": {
"id": 123,
"name": "<string>",
"email": "<string>"
},
"completed_by": {
"id": 123,
"name": "<string>",
"email": "<string>"
},
"links": [
{
"id": 123,
"record_type": "<string>",
"record_id": 123,
"related_type": "<string>",
"related_id": 123,
"type_label": "<string>",
"program_type": "<string>",
"label": "<string>",
"secondary": "<string>",
"url": "<string>",
"is_primary": true,
"visibility_required": true,
"is_accessible": true
}
],
"mentions": [
{
"id": 123,
"mention_type": "<string>",
"user_id": 123,
"record_type": "<string>",
"record_id": 123,
"related_type": "<string>",
"related_id": 123,
"type_label": "<string>",
"program_type": "<string>",
"label": "<string>",
"is_accessible": true
}
]
}{
"message": "Unauthorized",
"status": "error"
}{
"message": "Something went wrong. Please try again.",
"status": "error",
"error": "invalid_request",
"code": "DONOR_NOT_FOUND"
}{
"message": "Not Found",
"status": "error"
}{
"message": "Something went wrong. Please try again.",
"status": "error",
"error": "invalid_request",
"code": "DONOR_NOT_FOUND"
}{
"errors": {},
"status": "error",
"message": "The given data was invalid."
}{
"message": "Something went wrong. Please try again.",
"status": "error",
"error": "invalid_request",
"code": "DONOR_NOT_FOUND"
}