Skip to main content

External Members

Learn how to create external members using your own internal IDs — without requiring an email invitation. The API automatically creates an account, issues an access URL, and sets up the member in one step.

Overview

External members allow you to onboard users into your business programmatically using your own identifier (externalId). Unlike regular members who are invited by email, external members are created instantly with:

  • An active membership
  • A USDC account
  • An access URL for the member to use Brighty services

This is ideal for platforms that manage their own user base and want to provide Brighty financial services (cards, accounts, crypto) to their users without requiring them to sign up separately.

Prerequisites

Before creating external members, ensure you have:

  • A verified business account on Brighty
  • Valid API token with member management permissions
  • Business owner or admin role

External Member Workflow

Step 1: Create External Member

Create a new external member by providing your internal identifier:

curl -X POST https://api.brighty.codes/business/v1/members/external \
-H "Authorization: Bearer ${BRIGHTY_API_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"externalId": "user_12345"
}'

The externalId must be unique within your business. It can contain letters, digits, _, and -, with a maximum length of 100 characters.

Response:

{
"membership": {
"memberId": "f8a1e626-78cc-4ed7-bba6-8b47a842dc87",
"role": "MEMBER",
"state": "ACTIVE"
},
"access": {
"url": "https://ext.brighty.codes#memberToken=eyJhbGciOiJSUz...",
"validUntil": "2026-03-16T15:36:25.886Z"
},
"account": {
"id": "797d325e-f578-4ed7-a4bd-5add35b4af3d",
"ownerId": "fac781d3-8a6b-4f2c-881f-5f165cffef58",
"holderId": "990a8dd2-8458-498b-b3dd-6ebbc2fb7070",
"name": "USDC Account",
"balance": {
"amount": "0.00",
"currency": "USDC"
},
"type": "CURRENT",
"openedAt": "2026-02-16T23:59:59.111Z"
}
}

The response contains three key objects:

  • membership — the member's ID, role (MEMBER), and state (ACTIVE)
  • access — the access URL and its expiration timestamp
  • account — a USDC account automatically created for the member

Save the membership.memberId and account.id for subsequent API calls.

Step 2 (Optional): Retrieve Crypto Account Address

A crypto address is generated automatically when an external member is created. However, the generation happens asynchronously, so the address may not be available immediately. To retrieve it, poll the account addresses endpoint:

curl -X GET https://api.brighty.codes/business/v1/accounts/797d325e-f578-4ed7-a4bd-5add35b4af3d/addresses \
-H "Authorization: Bearer ${BRIGHTY_API_TOKEN}"

Response:

{
"addresses": [
{
"id": "a3079192-61e0-49f0-81db-165040684729",
"type": "TRC20",
"designation": "UNIVERSAL",
"cryptoAccount": "TXaB3kRfGqVMn7E5PuLjWzG8DhQx..."
}
]
}
note

If the addresses array is empty or the cryptoAccount field is null, the address is still being generated. Retry the request after a short interval (e.g., 1–2 seconds). See the Get account addresses API reference for details.

Access URL

The access URL returned when creating an external member allows the user to access Brighty services directly. The URL format is:

  • Sandbox: https://ext.brighty.codes#memberToken=<token>
  • Production: https://ext.brighty.app#memberToken=<token>

Through this URL, the member can:

  • View their account balance
  • See their crypto deposit addresses (if created)
  • Manage their card (if issued)
  • Confirm 3DS transactions

The access URL has an expiration date (validUntil). When it expires, you can issue a new one using the Member Access guide.

tip

The access URL can be embedded in an iframe within your application to provide a seamless user experience. See the Member Access guide for embedding details.