ID Links
Resend ID Link
Deliver an existing verification link again by email or SMS
POST
/
customers
/
api
/
id-links
/
{linkId}
/
resend
curl -X POST "https://api.trusset.org/customers/api/id-links/cmg6b2t9x0001lb08q4w7k3fz/resend" \
-H "Content-Type: application/json" \
-H "X-API-Key: trusset_your_key_here" \
-d '{ "channels": ["email", "sms"] }'
const response = await fetch(
'https://api.trusset.org/customers/api/id-links/cmg6b2t9x0001lb08q4w7k3fz/resend',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': 'trusset_your_key_here'
},
body: JSON.stringify({ channels: ['email', 'sms'] })
}
);
const { success, data, error } = await response.json();
{
"success": true,
"data": {
"verificationUrl": "https://verify.trusset.org/link/5cd9b10d804ba5fb5b4da94181cd0b57099f0dd4e956fc7ac7ec51ebe7fc8a22",
"delivery": {
"email": { "sent": true },
"sms": { "sent": false, "error": "Invalid phone number: +49151" }
}
},
"metadata": {
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-09-30T10:00:00.000Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_INPUT",
"message": "channels array is required"
},
"metadata": {
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-09-30T10:00:00.000Z"
}
}
Sends an existing link to its recipient again. The URL is the same one, and the link’s expiry does not move.
A link past its
The email states the days left before the link expires, rounded up and never below one. The SMS uses the link’s
expiresAt that was never revoked still reads PENDING, and it is re-sent although the hosted page refuses it. Check expiresAt first, and create a new link if it has passed.
Path Parameters
string
required
The link
id, not the token.Body Parameters
string[]
required
A non-empty array of
email, sms, or both. Email goes to the link’s recipientEmail and SMS to its recipientPhone. A channel whose recipient is missing is skipped, and other values are ignored, so the call can succeed with nothing sent.customMessage when it has one.
Response Fields
object
curl -X POST "https://api.trusset.org/customers/api/id-links/cmg6b2t9x0001lb08q4w7k3fz/resend" \
-H "Content-Type: application/json" \
-H "X-API-Key: trusset_your_key_here" \
-d '{ "channels": ["email", "sms"] }'
const response = await fetch(
'https://api.trusset.org/customers/api/id-links/cmg6b2t9x0001lb08q4w7k3fz/resend',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': 'trusset_your_key_here'
},
body: JSON.stringify({ channels: ['email', 'sms'] })
}
);
const { success, data, error } = await response.json();
{
"success": true,
"data": {
"verificationUrl": "https://verify.trusset.org/link/5cd9b10d804ba5fb5b4da94181cd0b57099f0dd4e956fc7ac7ec51ebe7fc8a22",
"delivery": {
"email": { "sent": true },
"sms": { "sent": false, "error": "Invalid phone number: +49151" }
}
},
"metadata": {
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-09-30T10:00:00.000Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_INPUT",
"message": "channels array is required"
},
"metadata": {
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-09-30T10:00:00.000Z"
}
}
Error Codes
| Code | HTTP | Cause |
|---|---|---|
INVALID_INPUT | 400 | channels is missing, not an array, or empty |
NOT_FOUND | 404 | No link with this ID exists on your instance |
INVALID_STATE | 400 | The link was consumed, is COMPLETED, or was revoked |
RESEND_FAILED | 500 | The link could not be read. A failed send is reported in delivery instead |
⌘I
curl -X POST "https://api.trusset.org/customers/api/id-links/cmg6b2t9x0001lb08q4w7k3fz/resend" \
-H "Content-Type: application/json" \
-H "X-API-Key: trusset_your_key_here" \
-d '{ "channels": ["email", "sms"] }'
const response = await fetch(
'https://api.trusset.org/customers/api/id-links/cmg6b2t9x0001lb08q4w7k3fz/resend',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': 'trusset_your_key_here'
},
body: JSON.stringify({ channels: ['email', 'sms'] })
}
);
const { success, data, error } = await response.json();
{
"success": true,
"data": {
"verificationUrl": "https://verify.trusset.org/link/5cd9b10d804ba5fb5b4da94181cd0b57099f0dd4e956fc7ac7ec51ebe7fc8a22",
"delivery": {
"email": { "sent": true },
"sms": { "sent": false, "error": "Invalid phone number: +49151" }
}
},
"metadata": {
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-09-30T10:00:00.000Z"
}
}
{
"success": false,
"error": {
"code": "INVALID_INPUT",
"message": "channels array is required"
},
"metadata": {
"requestId": "550e8400-e29b-41d4-a716-446655440000",
"timestamp": "2026-09-30T10:00:00.000Z"
}
}
