Quick links

Quickstart GuideAPI reference 66 endpointsAuthentication GuideScopes & presets 32 scopesToken lifecycle GuideErrors ReferenceToken console Tool
Documentation menu
QuickstartAuthenticationScopes & presetsToken lifecycleErrorsSecurityJWT & other authAPI referenceToken console

Vouchers endpoint

Nudge a voucher recipient.

POST /merchant/nudge/:voucherId requires the explicit vouchers:communicate scope when called with a merchant API token.

POST/merchant/nudge/:voucherIdTry it

Request

Nudge a voucher recipient. The path is relative to the global /api/v1 prefix.

MethodPOST
AuthenticationAPI token or JWT
Required token scopevouchers:communicate
ResourceVouchers

Authorization

Vouchers communicatevouchers:communicate

Broadcast or nudge voucher recipients.

Scope is only one layer.The underlying merchant permission guard remains active; the scope cannot override a missing merchant permission.

Interactive JWT requests bypass API-token scope metadata, but continue through the normal role, merchant, and permission guards. API tokens are denied on routes without an explicit token policy.

Parameters & body

NameLocationRequiredDescription
voucherIdPathYesResource identifier supplied in the documented route path.
Request schema not published

API.md confirms this route, its scope, and security boundaries, but delegates feature-specific request bodies to the current backend service contract. The docs do not fabricate field names.

Examples

Replace each :parameter segment and provide a server-side environment variable for the bearer credential.

cURL

cURL
curl -X POST 'https://api.usevouchify.com/api/v1/merchant/nudge/:voucherId' \
  -H "Authorization: Bearer $VOUCHIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  --data '<request-body-from-feature-contract>'

JavaScript

Node.js
const response = await fetch(
  'https://api.usevouchify.com/api/v1/merchant/nudge/:voucherId',
  {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${process.env.VOUCHIFY_TOKEN}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(requestBody)
  }
);

if (!response.ok) {
  throw new Error(`Vouchify request failed: ${response.status}`);
}

const contentType = response.headers.get('content-type') || '';
const responseBody = await response.text();
const result = responseBody && contentType.includes('application/json')
  ? JSON.parse(responseBody)
  : responseBody || null;

Response contract

API.md states that response bodies are produced by existing feature services; their resource-specific schemas are authoritative. The merchant-token document does not publish a stable success schema or feature-specific error list for this route.

Authentication errors

401 for invalid/inactive credentials; 403 for missing scopes, blocked routes, or inactive merchant state.

Feature errors

Validation, not-found, and conflict errors are owned by the underlying feature service and are not enumerated in API.md.