Registrations
Request more information
Return a registration to the submitter with a request for additional information or evidence.
POST
/
v1
/
operator-registrations
/
{registration_id}
/
request-info
Request more information
curl --request POST \
--url https://api.example.com/v1/operator-registrations/{registration_id}/request-info \
--header 'Content-Type: application/json' \
--data '
{
"fields_requested": [
{}
],
"detail": "<string>",
"notes": "<string>"
}
'import requests
url = "https://api.example.com/v1/operator-registrations/{registration_id}/request-info"
payload = {
"fields_requested": [{}],
"detail": "<string>",
"notes": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({fields_requested: [{}], detail: '<string>', notes: '<string>'})
};
fetch('https://api.example.com/v1/operator-registrations/{registration_id}/request-info', 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/operator-registrations/{registration_id}/request-info",
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([
'fields_requested' => [
[
]
],
'detail' => '<string>',
'notes' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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.example.com/v1/operator-registrations/{registration_id}/request-info"
payload := strings.NewReader("{\n \"fields_requested\": [\n {}\n ],\n \"detail\": \"<string>\",\n \"notes\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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/operator-registrations/{registration_id}/request-info")
.header("Content-Type", "application/json")
.body("{\n \"fields_requested\": [\n {}\n ],\n \"detail\": \"<string>\",\n \"notes\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/operator-registrations/{registration_id}/request-info")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"fields_requested\": [\n {}\n ],\n \"detail\": \"<string>\",\n \"notes\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"data": {
"id": "opreg_a1b2c3d4",
"sender_id": "TrackFast",
"status": "info_requested",
"info_request": {
"fields_requested": [
"Sample message content for each use case category",
"Estimated monthly message volume",
"Confirmation of opt-in collection method"
],
"detail": "Registration cannot be assessed without sample message content and volume estimates. Please also confirm how recipient consent is collected."
},
"info_requested_at": "2026-07-17T15:20:00+10:00",
"info_requested_by": "operator_api_key"
},
"meta": {
"request_id": "req_op005",
"timestamp": "2026-07-17T15:20:00+10:00"
}
}
Required permission:
operator:write
Returns a registration to the submitter for amendment. The registration status moves to info_requested. The submitter is notified with the specific information required and can resubmit, at which point the status moves to resubmitted and returns to the operator’s review queue.
Returns 409 Conflict if the registration is not in pending_operator_review or resubmitted status.
Path parameters
string
required
The operator registration ID (e.g.
opreg_a1b2c3d4).Request body
array
required
List of specific items the operator requires. Each item should clearly describe what is needed.
string
required
Human-readable summary of what is needed and why. This is shared with the submitting brand or aggregator.
string
Optional internal notes. Not visible to the submitting brand or aggregator.
Example
curl -X POST https://api.senderz.ai/v1/operator-registrations/opreg_a1b2c3d4/request-info \
-H "Authorization: Bearer sz_live_xxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"fields_requested": [
"Sample message content for each use case category",
"Estimated monthly message volume",
"Confirmation of opt-in collection method"
],
"detail": "Registration cannot be assessed without sample message content and volume estimates. Please also confirm how recipient consent is collected.",
"notes": "Brand looks legitimate but use case is too vague for compliance sign-off."
}'
Response
{
"ok": true,
"data": {
"id": "opreg_a1b2c3d4",
"sender_id": "TrackFast",
"status": "info_requested",
"info_request": {
"fields_requested": [
"Sample message content for each use case category",
"Estimated monthly message volume",
"Confirmation of opt-in collection method"
],
"detail": "Registration cannot be assessed without sample message content and volume estimates. Please also confirm how recipient consent is collected."
},
"info_requested_at": "2026-07-17T15:20:00+10:00",
"info_requested_by": "operator_api_key"
},
"meta": {
"request_id": "req_op005",
"timestamp": "2026-07-17T15:20:00+10:00"
}
}
⌘I
Request more information
curl --request POST \
--url https://api.example.com/v1/operator-registrations/{registration_id}/request-info \
--header 'Content-Type: application/json' \
--data '
{
"fields_requested": [
{}
],
"detail": "<string>",
"notes": "<string>"
}
'import requests
url = "https://api.example.com/v1/operator-registrations/{registration_id}/request-info"
payload = {
"fields_requested": [{}],
"detail": "<string>",
"notes": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({fields_requested: [{}], detail: '<string>', notes: '<string>'})
};
fetch('https://api.example.com/v1/operator-registrations/{registration_id}/request-info', 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/operator-registrations/{registration_id}/request-info",
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([
'fields_requested' => [
[
]
],
'detail' => '<string>',
'notes' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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.example.com/v1/operator-registrations/{registration_id}/request-info"
payload := strings.NewReader("{\n \"fields_requested\": [\n {}\n ],\n \"detail\": \"<string>\",\n \"notes\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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/operator-registrations/{registration_id}/request-info")
.header("Content-Type", "application/json")
.body("{\n \"fields_requested\": [\n {}\n ],\n \"detail\": \"<string>\",\n \"notes\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/operator-registrations/{registration_id}/request-info")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"fields_requested\": [\n {}\n ],\n \"detail\": \"<string>\",\n \"notes\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"data": {
"id": "opreg_a1b2c3d4",
"sender_id": "TrackFast",
"status": "info_requested",
"info_request": {
"fields_requested": [
"Sample message content for each use case category",
"Estimated monthly message volume",
"Confirmation of opt-in collection method"
],
"detail": "Registration cannot be assessed without sample message content and volume estimates. Please also confirm how recipient consent is collected."
},
"info_requested_at": "2026-07-17T15:20:00+10:00",
"info_requested_by": "operator_api_key"
},
"meta": {
"request_id": "req_op005",
"timestamp": "2026-07-17T15:20:00+10:00"
}
}
.jpg?fit=max&auto=format&n=IhWYk8R5R6sdJ_7C&q=85&s=7e3194d82fa9653ad2a2449b4f1a3073)