Skip to main content

Users

Users are individuals who will access and operate the account. Each user is assigned a role that determines their level of access and what actions they can perform.

note

Users can only be added after the application has been approved (APPLICATION_APPROVED) or is active (ACTIVE).

User roles

RoleDescription
OwnerFull account access. Can manage users (create, update roles, deactivate), accept terms and conditions, and approve their own transactions. Every account must have at least one Owner.
AdminFull operational access. Can create, approve, and execute payments, transfers, and FX orders. Can approve their own transactions (bypasses segregation of duties). Cannot manage users or accept terms and conditions.
ExecutorCan create and approve payments, transfers, and FX orders. Cannot approve transactions they created themselves (segregation of duties enforced). Acts as the "checker" in a maker-checker workflow.
PreparerCan draft and prepare payments, create beneficiaries, and manage receivables. Cannot confirm, submit, or approve transactions. Acts as the "maker" in a maker-checker workflow. Can only create payment instructions when maker-checker is enabled for the account.
ViewerRead-only access. Can view account data, transactions, and balances but cannot create or modify anything.

Role permissions summary

CapabilityOwnerAdminExecutorPreparerViewer
View account data and transactionsYesYesYesYesYes
Create and manage beneficiariesYesYesYesYesNo
Create and manage receivablesYesYesYesYesNo
Draft and prepare payment ordersYesYesYesYesNo
Approve and execute paymentsYesYesYesNoNo
Create international transfersYesYesYesNoNo
Create FX ordersYesYesYesNoNo
Approve own transactionsYesYesNoNoNo
Manage usersYesNoNoNoNo
Accept terms and conditionsYesNoNoNoNo

Adding a user

To add a user to the account, use the Invite User API to send an invite link. The invited user completes a self sign-up process — they set up their own credentials and verify their email before being linked to the account.

An invite requires the user's email, full name, and role.

curl -X POST https://sandbox-api.hubpay.io/v1/account/users/invite \
-H "Authorization: Bearer $TOKEN" \
-H "AccountId: $ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{
"email": "jane.doe@example.com",
"fullName": "Jane Doe",
"role": "EXECUTOR"
}'

The response includes an inviteUrl that you forward to the user through your own communication channel (email, in-app notification, etc.). Invite links expire after 14 days.

tip

You can send the invite directly to your users through your own platform. To disable Hubpay from emailing the invite or any other onboarding emails directly to the user, contact your account manager.

Resending an invite

If an invite has expired or the user lost the link, use the Resend Invite API to generate a new invite URL. This revokes the previous invite and creates a fresh one.

curl -X POST https://sandbox-api.hubpay.io/v1/account/users/invite/{inviteId}/resend \
-H "Authorization: Bearer $TOKEN" \
-H "AccountId: $ACCOUNT_ID"

Checking invite status

Use the Get Invite API to check the current status of an invite.

StatusDescription
PENDINGInvite has been created and is waiting for the user to accept.
COMPLETEDInvite has been accepted and the user has been linked to the account.
REVOKEDInvite was revoked because a new invite was issued via resend.
EXPIREDInvite has passed its 14-day expiry window and can no longer be used.
LOCKEDInvite is locked due to too many failed email verification attempts.

Managing users

Once users are added, you can:

  • List users — retrieve all active users linked to the account
  • Update user — change a user's display name or block/unblock them
  • Update role — change a user's role within the account
  • Delete user — deactivate a user's access to the account

See the Users API reference for the full list of available operations.