Organization membership API reference
Add a user to the active organization with a member or owner role through the DALP Platform API, including the permission, onboarding, and owner-grant rules and the exact error codes.
A bank that runs tokenized assets keeps a tight grip on who can act inside each tenant. The organization membership endpoint adds a user to the active tenant and assigns the role they act under, so an operator can grant access programmatically instead of through the Console. Membership is the gate in front of every organization-scoped operation, so the platform checks who you are, whether the tenant is ready, and whether you may grant the requested role before it writes anything.
This write adds an existing platform user to your active organization and sets the role they act under. It does not create users, send invitations, or change a member's role after they join. For the invitation flow that brings an outside user in, see Role invitations. To read who already holds administrative authority, see Organization admins.
Endpoint
| Endpoint | Use it for |
|---|---|
POST /api/v2/organizations/members | Add a platform user to the active organization with a role. |
The endpoint writes to the active organization in the session. It never spans tenants: the user joins the organization you are acting in, never another one. Set the participant and wallet context with the standard request headers before you call it. See Request headers.
Required roles
| Operation | Roles (any of) |
|---|---|
| Add a member | identityManager |
Add a member with the owner role | identityManager system role plus the owner organization role |
Adding a member needs the identityManager system role, the same authority that governs identity management for the active system. Granting the owner role adds a second check: the caller must already hold the owner role in the organization. A caller with identityManager but not organization ownership can add members, but only with the member role. For the role model, see System account roles.
Request fields
| Field | Type | Required | Description |
|---|---|---|---|
userId | string | Yes | The platform user to add to the active organization. |
role | string | Yes | The role to assign. Accepted values are member and owner. |
The user must already exist on the platform. To resolve a user's userId from their national ID, wallet address, or internal ID, use User lookup.
Response fields
A successful add returns a single-resource envelope. The data object describes the new membership.
| Field | Type | Description |
|---|---|---|
memberId | string | The identifier of the membership record. |
userId | string | The user that was added. |
organizationId | string | The organization the user joined. |
role | string | The role the user holds in the organization. |
Add a member
POST /api/v2/organizations/members adds the named user to the active organization with the requested role.
curl -X POST "https://your-platform.example.com/api/v2/organizations/members" \
-H "X-Api-Key: YOUR_DALP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userId": "user_018f6d3e89ab7cde8123abcdefabcdef",
"role": "member"
}'{
"data": {
"memberId": "mem_018f6d3e89ab7cde8123abcdefabcdef",
"userId": "user_018f6d3e89ab7cde8123abcdefabcdef",
"organizationId": "org_018f6d3e89ab7cde8123abcdefabcdef",
"role": "member"
},
"links": { "self": "/v2/organizations/members" }
}To grant organization ownership, send "role": "owner" from a caller that already holds the owner role.
curl -X POST "https://your-platform.example.com/api/v2/organizations/members" \
-H "X-Api-Key: YOUR_DALP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userId": "user_018f6d3e89ab7cde8123abcdefabcdef",
"role": "owner"
}'How the platform checks the request
The platform runs the checks in order and stops at the first one that fails, so the error you get back names the first unmet condition.
- An active organization is selected for the session. Without one, the request cannot resolve which organization to write to.
- The organization has finished onboarding. Member management stays locked until the organization's deployment completes.
- The role grant is allowed. A request to grant
ownerneeds the caller to hold theownerrole already. - The user is added. A rejected add, such as a user that already belongs to the organization or a user identifier that resolves to nothing, fails at this final step.
Because the checks run before the write, a failed request changes nothing. Fix the named condition and send the request again.
Errors
Each error below is terminal: the same request fails the same way until you change the request or the organization state. None of them are safe to retry unchanged. For the full catalog of platform error codes, see the Platform API error reference.
| Error | Status | What the platform observed | What to do |
|---|---|---|---|
DALP-0040 | 403 | The session has no active organization, so the request cannot resolve a target organization. | Select an organization, refresh the session, and send the request again. |
DALP-9075 | 403 | The active organization has not finished onboarding, and member management is still locked. | Wait for the organization's deployment to finish, then add the member. |
DALP-9076 | 403 | A request to grant the owner role came from a caller that does not hold the owner role. | Send the request from an organization owner, or add the member with the member role. |
DALP-9074 | 409 | The add was rejected. The user may already belong to the organization, or the user may not exist. | Confirm the user identifier, and check whether the user is already a member. |
A caller that lacks the identityManager role is rejected on permission grounds before these checks run. Confirm the calling account holds identityManager for the active system when an add fails on authority rather than on one of the conditions above.
Related references
Organization settings
Read, list, create, update, and delete an organization's key-value settings through the DALP Platform API, including the base currency, system address, target currencies, and account abstraction toggle.
System account roles API
Read the system access-control register through the DALP Platform API, listing every account and the roles it holds and reading the roles for a single account address.