Team & Access

Team members, roles, and invitations for the merchant account.

Get member

POSThttps://api.gobtcpay.com/public/api/v1.2/merchant/users/get

Returns a single team member identified by membershipId. The response member includes userId, email, displayName, role, status, and createdAt.

Authorization: merchantAuth

Body required

application/json
membershipIdstringrequired
Example:3fa85f64-5717-4562-b3fc-2c963f66afa6

Responses

idstringrequired
Example:3fa85f64-5717-4562-b3fc-2c963f66afa6
resultobjectrequired
POST /merchant/users/get
cURL
curl -X POST "$BASE_URL/merchant/users/get" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -d '{
  "membershipId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}'
200 Successful response
JSON
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "result": {
    "$case": "success",
    "success": {
      "member": {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "userId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "merchantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "role": "admin",
        "status": "active",
        "email": "string",
        "displayName": "Satoshi Coffee",
        "createdAt": 1718012345,
        "access": {
          "stores": [
            "string"
          ],
          "posTerminals": [
            "string"
          ]
        }
      }
    }
  }
}

List members

POSThttps://api.gobtcpay.com/public/api/v1.2/merchant/users/list

Lists team members for the active merchant. Supports pagination (limit, skip) and filters by role, status, and a free-text query. Returns items (each member with email, role, status) and totalCount.

Authorization: merchantAuth

Body required

application/json
paginationobject
filtersobject

Responses

idstringrequired
Example:3fa85f64-5717-4562-b3fc-2c963f66afa6
resultobjectrequired
POST /merchant/users/list
cURL
curl -X POST "$BASE_URL/merchant/users/list" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -d '{
  "pagination": {
    "limit": 20,
    "skip": 0
  },
  "filters": {
    "role": "admin",
    "status": "active",
    "query": "string"
  }
}'
200 Successful response
JSON
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "result": {
    "$case": "success",
    "success": {
      "items": [
        {
          "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "userId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "merchantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "role": "admin",
          "status": "active",
          "email": "string",
          "displayName": "Satoshi Coffee",
          "createdAt": 1718012345,
          "access": {
            "stores": [],
            "posTerminals": []
          }
        }
      ],
      "totalCount": 0
    }
  }
}

Invite member

POSThttps://api.gobtcpay.com/public/api/v1.2/merchant/users/invite

Invites a user to the active merchant by email with the given role. Returns the created invite including its id, email, role, status, and expiresAt.

Authorization: merchantAuth

Body required

application/json
emailstringrequired
Example:string
roleenumrequired
adminmanager
Example:admin
accessobject

Responses

idstringrequired
Example:3fa85f64-5717-4562-b3fc-2c963f66afa6
resultobjectrequired
POST /merchant/users/invite
cURL
curl -X POST "$BASE_URL/merchant/users/invite" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -d '{
  "email": "string",
  "role": "admin",
  "access": {
    "stores": [
      "string"
    ],
    "posTerminals": [
      "string"
    ]
  }
}'
200 Successful response
JSON
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "result": {
    "$case": "success",
    "success": {
      "invite": {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "merchantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "email": "string",
        "role": "admin",
        "status": "pending",
        "expiresAt": 1718012345,
        "createdAt": 1718012345
      }
    }
  }
}

Accept invite

POSThttps://api.gobtcpay.com/public/api/v1.2/merchant/users/invite/accept

Accepts a pending invitation using the invite token. Returns the created or activated member for the current user, including its role, status, and email.

Body required

application/json
tokenstringrequired
Example:eyJhbGciOiJFUzI1NiIsImtpZCI6ImFjY2VzcyJ9.eyJwa2giOiIwMmExNjMzYyIsImNpZCI6IjNmYTg1ZjY0IiwiaWF0IjoxNzE4MDEyMzQ1fQ.MEQCIE3a…

Responses

idstringrequired
Example:3fa85f64-5717-4562-b3fc-2c963f66afa6
resultobjectrequired
POST /merchant/users/invite/accept
cURL
curl -X POST "$BASE_URL/merchant/users/invite/accept" \
  -H "Content-Type: application/json" \
  -d '{
  "token": "eyJhbGciOiJFUzI1NiIsImtpZCI6ImFjY2VzcyJ9.eyJwa2giOiIwMmExNjMzYyIsImNpZCI6IjNmYTg1ZjY0IiwiaWF0IjoxNzE4MDEyMzQ1fQ.MEQCIE3aGoQk0vY9c5kq"
}'
200 Successful response
JSON
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "result": {
    "$case": "success",
    "success": {
      "member": {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "userId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "merchantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "role": "admin",
        "status": "active",
        "email": "string",
        "displayName": "Satoshi Coffee",
        "createdAt": 1718012345,
        "access": {
          "stores": [
            "string"
          ],
          "posTerminals": [
            "string"
          ]
        }
      }
    }
  }
}

Get invite info

POSThttps://api.gobtcpay.com/public/api/v1.2/merchant/users/invite/info

Reads a pending invitation by its token without accepting it. Returns the inviting merchant (merchantName, merchantLogoUrl), the invited email, the offered role, the current status and expiresAt, so the invite screen can show who is inviting before the user commits.

Body required

application/json
tokenstringrequired
Example:eyJhbGciOiJFUzI1NiIsImtpZCI6ImFjY2VzcyJ9.eyJwa2giOiIwMmExNjMzYyIsImNpZCI6IjNmYTg1ZjY0IiwiaWF0IjoxNzE4MDEyMzQ1fQ.MEQCIE3a…

Responses

idstringrequired
Example:3fa85f64-5717-4562-b3fc-2c963f66afa6
resultobjectrequired
POST /merchant/users/invite/info
cURL
curl -X POST "$BASE_URL/merchant/users/invite/info" \
  -H "Content-Type: application/json" \
  -d '{
  "token": "eyJhbGciOiJFUzI1NiIsImtpZCI6ImFjY2VzcyJ9.eyJwa2giOiIwMmExNjMzYyIsImNpZCI6IjNmYTg1ZjY0IiwiaWF0IjoxNzE4MDEyMzQ1fQ.MEQCIE3aGoQk0vY9c5kq"
}'
200 Successful response
JSON
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "result": {
    "$case": "success",
    "success": {
      "invite": {
        "merchantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "merchantName": "Satoshi Coffee",
        "merchantLogoUrl": "string",
        "email": "string",
        "role": "admin",
        "status": "pending",
        "expiresAt": 1718012345,
        "createdAt": 1718012345
      }
    }
  }
}

List invites

POSThttps://api.gobtcpay.com/public/api/v1.2/merchant/users/invite/list

Lists invitations for the active merchant. Supports pagination (limit, skip) and a status filter. Returns items (each invite with email, role, status, expiresAt) and totalCount.

Authorization: merchantAuth

Body required

application/json
paginationobject
filtersobject

Responses

idstringrequired
Example:3fa85f64-5717-4562-b3fc-2c963f66afa6
resultobjectrequired
POST /merchant/users/invite/list
cURL
curl -X POST "$BASE_URL/merchant/users/invite/list" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -d '{
  "pagination": {
    "limit": 20,
    "skip": 0
  },
  "filters": {
    "status": "pending"
  }
}'
200 Successful response
JSON
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "result": {
    "$case": "success",
    "success": {
      "items": [
        {
          "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "merchantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "email": "string",
          "role": "admin",
          "status": "pending",
          "expiresAt": 1718012345,
          "createdAt": 1718012345
        }
      ],
      "totalCount": 0
    }
  }
}

Revoke invite

POSThttps://api.gobtcpay.com/public/api/v1.2/merchant/users/invite/revoke

Revokes a pending invitation identified by inviteId. Returns { ok }.

Authorization: merchantAuth

Body required

application/json
inviteIdstringrequired
Example:3fa85f64-5717-4562-b3fc-2c963f66afa6

Responses

idstringrequired
Example:3fa85f64-5717-4562-b3fc-2c963f66afa6
resultobjectrequired
POST /merchant/users/invite/revoke
cURL
curl -X POST "$BASE_URL/merchant/users/invite/revoke" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -d '{
  "inviteId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}'
200 Successful response
JSON
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "result": {
    "$case": "success",
    "success": {
      "ok": true
    }
  }
}

Remove member

POSThttps://api.gobtcpay.com/public/api/v1.2/merchant/users/remove

Removes the membership identified by membershipId from the active merchant. Returns { ok }.

Authorization: merchantAuth

Body required

application/json
membershipIdstringrequired
Example:3fa85f64-5717-4562-b3fc-2c963f66afa6

Responses

idstringrequired
Example:3fa85f64-5717-4562-b3fc-2c963f66afa6
resultobjectrequired
POST /merchant/users/remove
cURL
curl -X POST "$BASE_URL/merchant/users/remove" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -d '{
  "membershipId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}'
200 Successful response
JSON
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "result": {
    "$case": "success",
    "success": {
      "ok": true
    }
  }
}

Update member role

POSThttps://api.gobtcpay.com/public/api/v1.2/merchant/users/update-role

Updates the role of the membership identified by membershipId. Returns the updated member.

Authorization: merchantAuth

Body required

application/json
membershipIdstringrequired
Example:3fa85f64-5717-4562-b3fc-2c963f66afa6
roleenumrequired
adminmanager
Example:admin

Responses

idstringrequired
Example:3fa85f64-5717-4562-b3fc-2c963f66afa6
resultobjectrequired
POST /merchant/users/update-role
cURL
curl -X POST "$BASE_URL/merchant/users/update-role" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -d '{
  "membershipId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "role": "admin"
}'
200 Successful response
JSON
{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "result": {
    "$case": "success",
    "success": {
      "member": {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "userId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "merchantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "role": "admin",
        "status": "active",
        "email": "string",
        "displayName": "Satoshi Coffee",
        "createdAt": 1718012345,
        "access": {
          "stores": [
            "string"
          ],
          "posTerminals": [
            "string"
          ]
        }
      }
    }
  }
}