/projects/{id}/qualifications

An unknown id is a 400 that changes nothing, naming the bad ids. Rejecting rather than silently dropping is deliberate: a stored id the bank does not contain vanishes from every read, leaving the caller believing their project asks a question it does not.

The response is the resulting selection read back through the same path a GET uses, so the caller sees bank order and sees immediately if something it sent has since left the bank.

PUThttps://dashboard.a2bsample.com/api/developer/playground/client/projects/{projectId}/qualifications
RequiresAuthorizationandX-Api-Tokenas headers.
Client
Client·Qualifications·PUT/projects/{id}/qualifications
PUThttps://dashboard.a2bsample.com/api/developer/playground/client/projects/{projectId}/qualifications
Request body

missing projectId

Response

Send a request to see the response.

Example request

Request
curl --request PUT \  --url 'https://dashboard.a2bsample.com/api/developer/playground/client/projects/{projectId}/qualifications' \  --header 'Authorization: Bearer $A2B_BEARER_TOKEN' \  --header 'X-Api-Token: $A2B_API_TOKEN' \  --header 'Accept: application/json' \  --header 'Content-Type: application/json' \  --data '{"qualificationIds":[]}'

Request

Headers4

Authorizationstringrequired

The secret half. A client token starts clt_ — the four-character prefix says which table to resolve it in, so the row it matches is the caller. A vnd_… token on this prefix is a 403, not a 404.

example: Bearer clt_4c8ea1f52d6b8e0c4a919f1c4e2a7b3d
X-Api-Tokenstringrequired

The identity half — this client's own 40-hex apiToken, the value GET /api/developer/me echoes back. Compared in constant time against the bearer token's own row, so a bearer token lifted on its own is not enough to call the playground.

example: 3c7a1b905e424d189f637a2c5e1b8d40b1d9f4e6
Content-Typestringrequired

Request media type.

default: application/json
Acceptstringoptional

Response media type.

default: application/json

Path parameters1

projectIdstring<uuid>required

Project identifier. Ownership-checked in the service, never trusted from the URL.

Body1

qualificationIdsarray<string<uuid>>required

What this list holds is what the project asks afterwards. [] is meaningful — it clears the selection so the project asks nothing; it does not mean "ask the whole bank". An absent or null list is a 400. Order is not stored; reads always come back in bank order.

Request body

JSONapplication/json
{  "qualificationIds": []}

Responses

200OK

The resulting selection, in bank order.

successboolean
Whether the call succeeded.
messagestring
qualificationsarray<object>
totalinteger
Example response
{  "success": true,  "message": "Qualifications updated.",  "qualifications": [    {      "id": "7a2c5e1b-8d40-4c35-97e1-3c7a1b905e42",      "question": "What is your household income?",      "questionType": "single_choice",      "options": [        "Under 25k",        "25k–50k",        "50k+"      ],      "required": true,      "helpText": "string",      "allowOther": false,      "minValue": 0,      "maxValue": 0    }  ],  "total": 1}