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..."
}
]
}
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.
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.