---
title: "Grant Account Access"
method: POST
path: "/distribution-wallets/{id}/memberships"
tags: ["Distribution Wallets"]
---

# Grant Account Access

`POST /distribution-wallets/{id}/memberships`

Grants a user a role on a distribution account. Owner only.

The Owner role cannot be granted here, since it is always tenant-wide. An archived account takes no new grants.

## Path parameters

- `id` string, required

## Request body

- WalletMembershipRequest
  - `user_id` string, required — The user being granted access
  - `role` 'financial_controller' | 'developer' | 'business' | 'initiator' | 'approver', required — The role to grant on this account. `owner` is rejected, since Owner is always tenant-wide.

## Response `201`

Access granted successfully

- WalletMembership — Grants one user one role on one distribution account.
  - `id` string
  - `user_id` string
  - `wallet_id` string
  - `role` 'financial_controller' | 'developer' | 'business' | 'initiator' | 'approver' — The role the user holds on this account. Owner is always tenant-wide and never appears here.
  - `granted_by` string — ID of the Owner who granted the access
  - `created_at` string, date-time
  - `updated_at` string, date-time

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — The user already has access to this account, or the account is archived

## Changes

- **2026-08-31** `7588d8d2a3c7` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/stellar/apis/stellar-disbursement-platform-api/changes/distribution-wallets/:id/memberships/post.md)

---

[API](https://skmtc.dev/stellar/apis/stellar-disbursement-platform-api.md) · [All operations](https://skmtc.dev/stellar/apis/stellar-disbursement-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/stellar/stellar-disbursement-platform-api/revisions/7588d8d2a3c7/schema)
