Represented businesses

Set or Replace Represented Business NRS QR Material

Store both optional NRS QR values for one represented business, or replace a pair stored earlier. Gateway freshly authorizes the exact parent, domain state, and child, hashes the opaque strings, and sends a short-lived signed proof plus the values to Spend for storage. It does not call NRS or validate certificate structure, dates, RSA key size, or a certificate/key match.

The QR generator interprets the stored public key only when QR generation is attempted. Missing or unusable QR material is not an onboarding, validation, signing, or transmission precondition. A foreign or unknown represented-business ID returns the same not-found result and does not reveal another tenant's data.

POST
/sub-businesses/{gatewaySubBusinessId}/nrs-crypto-material
x-api-key<token>

The API key generated for your business in Duplo Dashboard.

In: header

Path Parameters

gatewaySubBusinessId*string

The gatewaySubBusinessId returned when the represented business was onboarded.

Formatuuid

Header Parameters

x-idempotency-key*string

Stable key identifying one logical command. Gateway management keys contain 8–128 letters, digits, dots, underscores, colons, or hyphens. For onboarding, the key binds the normalized optional profile; a completed replay may omit NRS credentials and QR material.

Match^[A-Za-z0-9._:-]+$
Length8 <= length <= 128

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/sub-businesses/44444444-4444-4444-8444-444444444444/nrs-crypto-material" \  -H "x-idempotency-key: command-acme-retail-0001" \  -H "Content-Type: application/json" \  -d '{    "nrsCryptoKeys": {      "certificate": "nrs-issued-certificate-value",      "publicKey": "-----BEGIN PUBLIC KEY-----\\n...\\n-----END PUBLIC KEY-----\\n"    }  }'
{
  "gatewaySubBusinessId": "44444444-4444-4444-8444-444444444444",
  "cryptoVersion": 1,
  "rotatedAt": "2026-08-31T15:20:36.000Z"
}
{
  "message": "nrsCryptoKeys.privateKey is not supported",
  "error": "Bad Request",
  "statusCode": 400
}
{
  "message": "string",
  "error": "string",
  "statusCode": 0
}
{
  "message": "string",
  "error": "string",
  "statusCode": 0
}
{
  "message": "Sub-business not found for this account"
}
{
  "message": "string",
  "error": "string",
  "statusCode": 0
}
{
  "message": "string",
  "error": "string",
  "statusCode": 0
}
{
  "message": "string",
  "error": "string",
  "statusCode": 0
}
{
  "message": "string",
  "error": "string",
  "statusCode": 0
}
{
  "message": "string",
  "error": "string",
  "statusCode": 0
}

How is this guide?

Last updated on