Skip to content

PERS-api Documentation (2.2.2)

PERS API Documentation

This RESTful API enables seamless integration of Web3 loyalty, token management, and engagement features into your applications.

Usage Guidelines:

  • RESTful Design: Resources are accessed via standard HTTP methods (GET, POST, PUT, DELETE) with predictable, resource-oriented URLs.
  • Authentication: Secure access is enforced via Bearer Tokens (JWT) and Project Keys (defining the Tenant context).
  • Data Format: All requests and responses utilize standard JSON formatting.

Explore the modules below for detailed endpoint specifications, schemas, and testing capabilities.

Download OpenAPI description
Overview
Languages
Servers
Mock server
https://docs.pers.ninja/_mock/swagger
https://api.pers.ninja/v2
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations

Partner Ecosystem Management

Business partner management for multi-stakeholder loyalty programs. Handles partner onboarding, collaboration frameworks, and performance tracking within the reward ecosystem.
Partner Management:

•
Partner Onboarding:
Register and configure business partners in the ecosystem

•
Collaboration Tools:
Facilitate joint campaigns and cross-partner rewards

•
Performance Analytics:
Track partner engagement and contribution metrics

•
Incentive Structures:
Configure partner-specific reward and commission models

•
Community Building:
Foster collaborative relationships between ecosystem partners

Request

Get business info with current token balances (business authentication required)

Security
projectKey or authJWT
curl -i -X GET \
  https://docs.pers.ninja/_mock/swagger/businesses/me \
  -H 'x-project-key: YOUR_API_KEY_HERE'

Responses

Business found

Bodyapplication/json
idstringrequired

The id of the business, this is unique and will be used to identify the business.

emailobject or nullrequired

The email of the business, this is unique and will be used to identify the business.

currentSigningAccountIdobject or nullrequired

Current active signing account ID for external wallet operations

walletsArray of objects(PublicWalletDTO)required

Business-owned counterfactual smart contract wallets that can receive tokens

wallets[].​idstringrequired

Unique identifier for the internal wallet

wallets[].​ownerTypenumberrequired

Owner type for polymorphic ownership

Value{"USER":"user","BUSINESS":"business","TENANT":"tenant","SYSTEM":"system","EXTERNAL":"external"}
Example: "user"
wallets[].​ownerIdstringrequired

Owner ID for polymorphic ownership

Example: "user_123"
wallets[].​walletManagementTypenumberrequired

Type of internal wallet

Value{"CUSTODIAL":"custodial","NON_CUSTODIAL":"non-custodial"}
wallets[].​addressstringrequired

CREATE2 generated address that can receive tokens

wallets[].​chainIdnumberrequired

Blockchain network chain identifier

wallets[].​statusnumberrequired

Current status of the wallet

Value{"PENDING":"pending","ACTIVE":"active","SUSPENDED":"suspended","ARCHIVED":"archived"}
wallets[].​ownerSigningAccountIdobject or null

ID of signing account that owns this internal wallet

wallets[].​tagsArray of stringsrequired

Tags associated with the wallet for categorization

wallets[].​createdAtstring(date-time)required

Timestamp when the wallet was created

wallets[].​updatedAtstring(date-time)required

Timestamp when the wallet was last updated

businessLegalNameobject or nullrequired

The legal name of the business, this is the name that will be used for legal purposes.

displayNameobject or nullrequired

The display name of the business, this is the name that will be shown to the public.

descriptionobject or nullrequired

The description of the business, this is the description that will be shown to the public.

shortDescriptionobject or nullrequired

The short description of the business, this is the description that will be shown to the public.

websiteUrlobject or nullrequired

The website of the business, this is the website that will be shown to the public.

imageUrlobject or nullrequired

The image of the business, this is the image that will be shown to the public.

streetAddressobject or nullrequired

The address of the business, this is the address that will be shown to the public.

cityobject or nullrequired

The city of the business, this is the city that will be shown to the public.

postalCodeobject or nullrequired

The postal code of the business, this is the postal code that will be shown to the public.

coordsLatitudeobject or nullrequired

The latitude of the business, this is the latitude that will be shown to the public.

coordsLongitudeobject or nullrequired

The longitude of the business, this is the longitude that will be shown to the public.

businessTypeobject or nullrequired

The business type of the business, this is the business type that will be shown to the public.

businessType.​idnumber

Business type id

businessType.​namestring or nullrequired

Business type name

businessType.​descriptionstring or nullrequired

Business type description

businessType.​codestring or nullrequired

Business type code

businessType.​iconUrlstring or nullrequired

Business type icon url

isActivebooleanrequired

The status of the business, this is the status that will be shown to the public.

canMintTokenbooleanrequired

The ability to mint token for the business, this is the ability that will be shown to the public.

canChargeTokenbooleanrequired

The ability to charge token for the business, this is the ability that will be shown to the public.

canManageUsersbooleanrequired

The ability to manage users for the business, this is the ability that will be shown to the public.

canReceiveDonationbooleanrequired

The ability to receive donation for the business, this is the ability that will be shown to the public.

tokenBalancesArray of objects(TokenBalanceDTO)required

The token balances of the business, this is the token balances that will be shown to the public.

tokenBalances[].​contractAddressstringrequired
tokenBalances[].​chainIdnumberrequired
tokenBalances[].​balancenumberrequired
tokenBalances[].​tokenNamestring
tokenBalances[].​tokenSymbolstring
tokenBalances[].​tokenTypestringrequired
tokenBalances[].​tokenIdstring or nullrequired
tokenBalances[].​metadataUristring or nullrequired
accountAddressobject or nullDeprecatedrequired

The address of the business, this is the address that will be shown to the public.

Response
application/json
{ "id": "string", "email": {}, "accountAddress": {}, "currentSigningAccountId": {}, "wallets": [ { … } ], "businessLegalName": {}, "displayName": {}, "description": {}, "shortDescription": {}, "websiteUrl": {}, "imageUrl": {}, "streetAddress": {}, "city": {}, "postalCode": {}, "coordsLatitude": {}, "coordsLongitude": {}, "businessType": { "id": 0, "name": "string", "description": "string", "code": "string", "iconUrl": "string" }, "isActive": true, "canMintToken": true, "canChargeToken": true, "canManageUsers": true, "canReceiveDonation": true, "tokenBalances": [ { … } ] }

Request

Get all businesses. Use pagination parameters (page & limit) for optimal performance. Legacy support: returns array without params (deprecated - will be removed in future). Project API key users get active businesses only. Admin users (with valid JWT) get full access with query parameters.

Security
authJWT or projectKey
Query
activestring

Filter by active status (admin only for inactive)

sanitizestring

Sanitize user models: soft checks for current wallet address, hard overwrites wallet in case of update (use with caution, admin only)

pagenumber

Page number (1-based)

limitnumber

Items per page

curl -i -X GET \
  'https://docs.pers.ninja/_mock/swagger/businesses?active=string&sanitize=string&page=0&limit=0' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Businesses found

Bodyapplication/jsonArray [
idstringrequired

The id of the business, this is unique and will be used to identify the business.

emailobject or nullrequired

The email of the business, this is unique and will be used to identify the business.

currentSigningAccountIdobject or nullrequired

Current active signing account ID for external wallet operations

walletsArray of objects(PublicWalletDTO)required

Business-owned counterfactual smart contract wallets that can receive tokens

wallets[].​idstringrequired

Unique identifier for the internal wallet

wallets[].​ownerTypenumberrequired

Owner type for polymorphic ownership

Value{"USER":"user","BUSINESS":"business","TENANT":"tenant","SYSTEM":"system","EXTERNAL":"external"}
Example: "user"
wallets[].​ownerIdstringrequired

Owner ID for polymorphic ownership

Example: "user_123"
wallets[].​walletManagementTypenumberrequired

Type of internal wallet

Value{"CUSTODIAL":"custodial","NON_CUSTODIAL":"non-custodial"}
wallets[].​addressstringrequired

CREATE2 generated address that can receive tokens

wallets[].​chainIdnumberrequired

Blockchain network chain identifier

wallets[].​statusnumberrequired

Current status of the wallet

Value{"PENDING":"pending","ACTIVE":"active","SUSPENDED":"suspended","ARCHIVED":"archived"}
wallets[].​ownerSigningAccountIdobject or null

ID of signing account that owns this internal wallet

wallets[].​tagsArray of stringsrequired

Tags associated with the wallet for categorization

wallets[].​createdAtstring(date-time)required

Timestamp when the wallet was created

wallets[].​updatedAtstring(date-time)required

Timestamp when the wallet was last updated

businessLegalNameobject or nullrequired

The legal name of the business, this is the name that will be used for legal purposes.

displayNameobject or nullrequired

The display name of the business, this is the name that will be shown to the public.

descriptionobject or nullrequired

The description of the business, this is the description that will be shown to the public.

shortDescriptionobject or nullrequired

The short description of the business, this is the description that will be shown to the public.

websiteUrlobject or nullrequired

The website of the business, this is the website that will be shown to the public.

imageUrlobject or nullrequired

The image of the business, this is the image that will be shown to the public.

streetAddressobject or nullrequired

The address of the business, this is the address that will be shown to the public.

cityobject or nullrequired

The city of the business, this is the city that will be shown to the public.

postalCodeobject or nullrequired

The postal code of the business, this is the postal code that will be shown to the public.

coordsLatitudeobject or nullrequired

The latitude of the business, this is the latitude that will be shown to the public.

coordsLongitudeobject or nullrequired

The longitude of the business, this is the longitude that will be shown to the public.

businessTypeobject or nullrequired

The business type of the business, this is the business type that will be shown to the public.

businessType.​idnumber

Business type id

businessType.​namestring or nullrequired

Business type name

businessType.​descriptionstring or nullrequired

Business type description

businessType.​codestring or nullrequired

Business type code

businessType.​iconUrlstring or nullrequired

Business type icon url

isActivebooleanrequired

The status of the business, this is the status that will be shown to the public.

canMintTokenbooleanrequired

The ability to mint token for the business, this is the ability that will be shown to the public.

canChargeTokenbooleanrequired

The ability to charge token for the business, this is the ability that will be shown to the public.

canManageUsersbooleanrequired

The ability to manage users for the business, this is the ability that will be shown to the public.

canReceiveDonationbooleanrequired

The ability to receive donation for the business, this is the ability that will be shown to the public.

accountAddressobject or nullDeprecatedrequired

The address of the business, this is the address that will be shown to the public.

]
Response
application/json
[ { "id": "string", "email": {}, "accountAddress": {}, "currentSigningAccountId": {}, "wallets": [ … ], "businessLegalName": {}, "displayName": {}, "description": {}, "shortDescription": {}, "websiteUrl": {}, "imageUrl": {}, "streetAddress": {}, "city": {}, "postalCode": {}, "coordsLatitude": {}, "coordsLongitude": {}, "businessType": { … }, "isActive": true, "canMintToken": true, "canChargeToken": true, "canManageUsers": true, "canReceiveDonation": true } ]

Request

Create a new business account, will be inactive until activated by admin

Security
authJWT
Bodyapplication/jsonrequired
emailobject

The email of the business, this is unique and will be used to identify the business.

businessLegalNameobject

The legal name of the business, this is the name that will be used for legal purposes.

displayNameobject

The display name of the business, this is the name that will be shown to the public.

descriptionobject

The description of the business, this is the description that will be shown to the public.

shortDescriptionobject

The short description of the business, this is the description that will be shown to the public.

websiteUrlobject

The website of the business, this is the website that will be shown to the public.

imageUrlobject

The image of the business, this is the image that will be shown to the public.

streetAddressobject

The address of the business, this is the address that will be shown to the public.

cityobject

The city of the business, this is the city that will be shown to the public.

postalCodeobject

The postal code of the business, this is the postal code that will be shown to the public.

coordsLatitudeobject

The latitude of the business, this is the latitude that will be shown to the public.

coordsLongitudeobject

The longitude of the business, this is the longitude that will be shown to the public

businessTypeIdobject

The business type of the business, this is the business type that will be shown to the public.

curl -i -X POST \
  https://docs.pers.ninja/_mock/swagger/businesses \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "email": {},
    "businessLegalName": {},
    "displayName": {},
    "description": {},
    "shortDescription": {},
    "websiteUrl": {},
    "imageUrl": {},
    "streetAddress": {},
    "city": {},
    "postalCode": {},
    "coordsLatitude": {},
    "coordsLongitude": {},
    "businessTypeId": {}
  }'

Responses

Business created

Bodyapplication/json
idstringrequired

The id of the business, this is unique and will be used to identify the business.

emailobject or nullrequired

The email of the business, this is unique and will be used to identify the business.

currentSigningAccountIdobject or nullrequired

Current active signing account ID for external wallet operations

walletsArray of objects(PublicWalletDTO)required

Business-owned counterfactual smart contract wallets that can receive tokens

wallets[].​idstringrequired

Unique identifier for the internal wallet

wallets[].​ownerTypenumberrequired

Owner type for polymorphic ownership

Value{"USER":"user","BUSINESS":"business","TENANT":"tenant","SYSTEM":"system","EXTERNAL":"external"}
Example: "user"
wallets[].​ownerIdstringrequired

Owner ID for polymorphic ownership

Example: "user_123"
wallets[].​walletManagementTypenumberrequired

Type of internal wallet

Value{"CUSTODIAL":"custodial","NON_CUSTODIAL":"non-custodial"}
wallets[].​addressstringrequired

CREATE2 generated address that can receive tokens

wallets[].​chainIdnumberrequired

Blockchain network chain identifier

wallets[].​statusnumberrequired

Current status of the wallet

Value{"PENDING":"pending","ACTIVE":"active","SUSPENDED":"suspended","ARCHIVED":"archived"}
wallets[].​ownerSigningAccountIdobject or null

ID of signing account that owns this internal wallet

wallets[].​tagsArray of stringsrequired

Tags associated with the wallet for categorization

wallets[].​createdAtstring(date-time)required

Timestamp when the wallet was created

wallets[].​updatedAtstring(date-time)required

Timestamp when the wallet was last updated

businessLegalNameobject or nullrequired

The legal name of the business, this is the name that will be used for legal purposes.

displayNameobject or nullrequired

The display name of the business, this is the name that will be shown to the public.

descriptionobject or nullrequired

The description of the business, this is the description that will be shown to the public.

shortDescriptionobject or nullrequired

The short description of the business, this is the description that will be shown to the public.

websiteUrlobject or nullrequired

The website of the business, this is the website that will be shown to the public.

imageUrlobject or nullrequired

The image of the business, this is the image that will be shown to the public.

streetAddressobject or nullrequired

The address of the business, this is the address that will be shown to the public.

cityobject or nullrequired

The city of the business, this is the city that will be shown to the public.

postalCodeobject or nullrequired

The postal code of the business, this is the postal code that will be shown to the public.

coordsLatitudeobject or nullrequired

The latitude of the business, this is the latitude that will be shown to the public.

coordsLongitudeobject or nullrequired

The longitude of the business, this is the longitude that will be shown to the public.

businessTypeobject or nullrequired

The business type of the business, this is the business type that will be shown to the public.

businessType.​idnumber

Business type id

businessType.​namestring or nullrequired

Business type name

businessType.​descriptionstring or nullrequired

Business type description

businessType.​codestring or nullrequired

Business type code

businessType.​iconUrlstring or nullrequired

Business type icon url

isActivebooleanrequired

The status of the business, this is the status that will be shown to the public.

canMintTokenbooleanrequired

The ability to mint token for the business, this is the ability that will be shown to the public.

canChargeTokenbooleanrequired

The ability to charge token for the business, this is the ability that will be shown to the public.

canManageUsersbooleanrequired

The ability to manage users for the business, this is the ability that will be shown to the public.

canReceiveDonationbooleanrequired

The ability to receive donation for the business, this is the ability that will be shown to the public.

accountAddressobject or nullDeprecatedrequired

The address of the business, this is the address that will be shown to the public.

Response
application/json
{ "id": "string", "email": {}, "accountAddress": {}, "currentSigningAccountId": {}, "wallets": [ { … } ], "businessLegalName": {}, "displayName": {}, "description": {}, "shortDescription": {}, "websiteUrl": {}, "imageUrl": {}, "streetAddress": {}, "city": {}, "postalCode": {}, "coordsLatitude": {}, "coordsLongitude": {}, "businessType": { "id": 0, "name": "string", "description": "string", "code": "string", "iconUrl": "string" }, "isActive": true, "canMintToken": true, "canChargeToken": true, "canManageUsers": true, "canReceiveDonation": true }

Request

Get business info by account address

Security
projectKey
Path
accountAddressstringrequired
curl -i -X GET \
  'https://docs.pers.ninja/_mock/swagger/businesses/account/{accountAddress}' \
  -H 'x-project-key: YOUR_API_KEY_HERE'

Responses

Business found

Bodyapplication/json
idstringrequired

The id of the business, this is unique and will be used to identify the business.

emailobject or nullrequired

The email of the business, this is unique and will be used to identify the business.

currentSigningAccountIdobject or nullrequired

Current active signing account ID for external wallet operations

walletsArray of objects(PublicWalletDTO)required

Business-owned counterfactual smart contract wallets that can receive tokens

wallets[].​idstringrequired

Unique identifier for the internal wallet

wallets[].​ownerTypenumberrequired

Owner type for polymorphic ownership

Value{"USER":"user","BUSINESS":"business","TENANT":"tenant","SYSTEM":"system","EXTERNAL":"external"}
Example: "user"
wallets[].​ownerIdstringrequired

Owner ID for polymorphic ownership

Example: "user_123"
wallets[].​walletManagementTypenumberrequired

Type of internal wallet

Value{"CUSTODIAL":"custodial","NON_CUSTODIAL":"non-custodial"}
wallets[].​addressstringrequired

CREATE2 generated address that can receive tokens

wallets[].​chainIdnumberrequired

Blockchain network chain identifier

wallets[].​statusnumberrequired

Current status of the wallet

Value{"PENDING":"pending","ACTIVE":"active","SUSPENDED":"suspended","ARCHIVED":"archived"}
wallets[].​ownerSigningAccountIdobject or null

ID of signing account that owns this internal wallet

wallets[].​tagsArray of stringsrequired

Tags associated with the wallet for categorization

wallets[].​createdAtstring(date-time)required

Timestamp when the wallet was created

wallets[].​updatedAtstring(date-time)required

Timestamp when the wallet was last updated

businessLegalNameobject or nullrequired

The legal name of the business, this is the name that will be used for legal purposes.

displayNameobject or nullrequired

The display name of the business, this is the name that will be shown to the public.

descriptionobject or nullrequired

The description of the business, this is the description that will be shown to the public.

shortDescriptionobject or nullrequired

The short description of the business, this is the description that will be shown to the public.

websiteUrlobject or nullrequired

The website of the business, this is the website that will be shown to the public.

imageUrlobject or nullrequired

The image of the business, this is the image that will be shown to the public.

streetAddressobject or nullrequired

The address of the business, this is the address that will be shown to the public.

cityobject or nullrequired

The city of the business, this is the city that will be shown to the public.

postalCodeobject or nullrequired

The postal code of the business, this is the postal code that will be shown to the public.

coordsLatitudeobject or nullrequired

The latitude of the business, this is the latitude that will be shown to the public.

coordsLongitudeobject or nullrequired

The longitude of the business, this is the longitude that will be shown to the public.

businessTypeobject or nullrequired

The business type of the business, this is the business type that will be shown to the public.

businessType.​idnumber

Business type id

businessType.​namestring or nullrequired

Business type name

businessType.​descriptionstring or nullrequired

Business type description

businessType.​codestring or nullrequired

Business type code

businessType.​iconUrlstring or nullrequired

Business type icon url

isActivebooleanrequired

The status of the business, this is the status that will be shown to the public.

canMintTokenbooleanrequired

The ability to mint token for the business, this is the ability that will be shown to the public.

canChargeTokenbooleanrequired

The ability to charge token for the business, this is the ability that will be shown to the public.

canManageUsersbooleanrequired

The ability to manage users for the business, this is the ability that will be shown to the public.

canReceiveDonationbooleanrequired

The ability to receive donation for the business, this is the ability that will be shown to the public.

accountAddressobject or nullDeprecatedrequired

The address of the business, this is the address that will be shown to the public.

Response
application/json
{ "id": "string", "email": {}, "accountAddress": {}, "currentSigningAccountId": {}, "wallets": [ { … } ], "businessLegalName": {}, "displayName": {}, "description": {}, "shortDescription": {}, "websiteUrl": {}, "imageUrl": {}, "streetAddress": {}, "city": {}, "postalCode": {}, "coordsLatitude": {}, "coordsLongitude": {}, "businessType": { "id": 0, "name": "string", "description": "string", "code": "string", "iconUrl": "string" }, "isActive": true, "canMintToken": true, "canChargeToken": true, "canManageUsers": true, "canReceiveDonation": true }

Request

Get business info by ID

Security
projectKey
Path
idstringrequired
curl -i -X GET \
  'https://docs.pers.ninja/_mock/swagger/businesses/{id}' \
  -H 'x-project-key: YOUR_API_KEY_HERE'

Responses

Business found

Bodyapplication/json
idstringrequired

The id of the business, this is unique and will be used to identify the business.

emailobject or nullrequired

The email of the business, this is unique and will be used to identify the business.

currentSigningAccountIdobject or nullrequired

Current active signing account ID for external wallet operations

walletsArray of objects(PublicWalletDTO)required

Business-owned counterfactual smart contract wallets that can receive tokens

wallets[].​idstringrequired

Unique identifier for the internal wallet

wallets[].​ownerTypenumberrequired

Owner type for polymorphic ownership

Value{"USER":"user","BUSINESS":"business","TENANT":"tenant","SYSTEM":"system","EXTERNAL":"external"}
Example: "user"
wallets[].​ownerIdstringrequired

Owner ID for polymorphic ownership

Example: "user_123"
wallets[].​walletManagementTypenumberrequired

Type of internal wallet

Value{"CUSTODIAL":"custodial","NON_CUSTODIAL":"non-custodial"}
wallets[].​addressstringrequired

CREATE2 generated address that can receive tokens

wallets[].​chainIdnumberrequired

Blockchain network chain identifier

wallets[].​statusnumberrequired

Current status of the wallet

Value{"PENDING":"pending","ACTIVE":"active","SUSPENDED":"suspended","ARCHIVED":"archived"}
wallets[].​ownerSigningAccountIdobject or null

ID of signing account that owns this internal wallet

wallets[].​tagsArray of stringsrequired

Tags associated with the wallet for categorization

wallets[].​createdAtstring(date-time)required

Timestamp when the wallet was created

wallets[].​updatedAtstring(date-time)required

Timestamp when the wallet was last updated

businessLegalNameobject or nullrequired

The legal name of the business, this is the name that will be used for legal purposes.

displayNameobject or nullrequired

The display name of the business, this is the name that will be shown to the public.

descriptionobject or nullrequired

The description of the business, this is the description that will be shown to the public.

shortDescriptionobject or nullrequired

The short description of the business, this is the description that will be shown to the public.

websiteUrlobject or nullrequired

The website of the business, this is the website that will be shown to the public.

imageUrlobject or nullrequired

The image of the business, this is the image that will be shown to the public.

streetAddressobject or nullrequired

The address of the business, this is the address that will be shown to the public.

cityobject or nullrequired

The city of the business, this is the city that will be shown to the public.

postalCodeobject or nullrequired

The postal code of the business, this is the postal code that will be shown to the public.

coordsLatitudeobject or nullrequired

The latitude of the business, this is the latitude that will be shown to the public.

coordsLongitudeobject or nullrequired

The longitude of the business, this is the longitude that will be shown to the public.

businessTypeobject or nullrequired

The business type of the business, this is the business type that will be shown to the public.

businessType.​idnumber

Business type id

businessType.​namestring or nullrequired

Business type name

businessType.​descriptionstring or nullrequired

Business type description

businessType.​codestring or nullrequired

Business type code

businessType.​iconUrlstring or nullrequired

Business type icon url

isActivebooleanrequired

The status of the business, this is the status that will be shown to the public.

canMintTokenbooleanrequired

The ability to mint token for the business, this is the ability that will be shown to the public.

canChargeTokenbooleanrequired

The ability to charge token for the business, this is the ability that will be shown to the public.

canManageUsersbooleanrequired

The ability to manage users for the business, this is the ability that will be shown to the public.

canReceiveDonationbooleanrequired

The ability to receive donation for the business, this is the ability that will be shown to the public.

accountAddressobject or nullDeprecatedrequired

The address of the business, this is the address that will be shown to the public.

Response
application/json
{ "id": "string", "email": {}, "accountAddress": {}, "currentSigningAccountId": {}, "wallets": [ { … } ], "businessLegalName": {}, "displayName": {}, "description": {}, "shortDescription": {}, "websiteUrl": {}, "imageUrl": {}, "streetAddress": {}, "city": {}, "postalCode": {}, "coordsLatitude": {}, "coordsLongitude": {}, "businessType": { "id": 0, "name": "string", "description": "string", "code": "string", "iconUrl": "string" }, "isActive": true, "canMintToken": true, "canChargeToken": true, "canManageUsers": true, "canReceiveDonation": true }

Request

Update a business account

Security
authJWT
Path
idstringrequired
Bodyapplication/jsonrequired
emailobject

The email of the business, this is unique and will be used to identify the business.

businessLegalNameobject

The legal name of the business, this is the name that will be used for legal purposes.

displayNameobject

The display name of the business, this is the name that will be shown to the public.

descriptionobject

The description of the business, this is the description that will be shown to the public.

shortDescriptionobject

The short description of the business, this is the description that will be shown to the public.

websiteUrlobject

The website of the business, this is the website that will be shown to the public.

imageUrlobject

The image of the business, this is the image that will be shown to the public.

streetAddressobject

The address of the business, this is the address that will be shown to the public.

cityobject

The city of the business, this is the city that will be shown to the public.

postalCodeobject

The postal code of the business, this is the postal code that will be shown to the public.

coordsLatitudeobject

The latitude of the business, this is the latitude that will be shown to the public.

coordsLongitudeobject

The longitude of the business, this is the longitude that will be shown to the public

businessTypeIdobject

The business type of the business, this is the business type that will be shown to the public.

curl -i -X PUT \
  'https://docs.pers.ninja/_mock/swagger/businesses/{id}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "email": {},
    "businessLegalName": {},
    "displayName": {},
    "description": {},
    "shortDescription": {},
    "websiteUrl": {},
    "imageUrl": {},
    "streetAddress": {},
    "city": {},
    "postalCode": {},
    "coordsLatitude": {},
    "coordsLongitude": {},
    "businessTypeId": {}
  }'

Responses

Business updated successfully

Bodyapplication/json
idstringrequired

The id of the business, this is unique and will be used to identify the business.

emailobject or nullrequired

The email of the business, this is unique and will be used to identify the business.

currentSigningAccountIdobject or nullrequired

Current active signing account ID for external wallet operations

walletsArray of objects(PublicWalletDTO)required

Business-owned counterfactual smart contract wallets that can receive tokens

wallets[].​idstringrequired

Unique identifier for the internal wallet

wallets[].​ownerTypenumberrequired

Owner type for polymorphic ownership

Value{"USER":"user","BUSINESS":"business","TENANT":"tenant","SYSTEM":"system","EXTERNAL":"external"}
Example: "user"
wallets[].​ownerIdstringrequired

Owner ID for polymorphic ownership

Example: "user_123"
wallets[].​walletManagementTypenumberrequired

Type of internal wallet

Value{"CUSTODIAL":"custodial","NON_CUSTODIAL":"non-custodial"}
wallets[].​addressstringrequired

CREATE2 generated address that can receive tokens

wallets[].​chainIdnumberrequired

Blockchain network chain identifier

wallets[].​statusnumberrequired

Current status of the wallet

Value{"PENDING":"pending","ACTIVE":"active","SUSPENDED":"suspended","ARCHIVED":"archived"}
wallets[].​ownerSigningAccountIdobject or null

ID of signing account that owns this internal wallet

wallets[].​tagsArray of stringsrequired

Tags associated with the wallet for categorization

wallets[].​createdAtstring(date-time)required

Timestamp when the wallet was created

wallets[].​updatedAtstring(date-time)required

Timestamp when the wallet was last updated

businessLegalNameobject or nullrequired

The legal name of the business, this is the name that will be used for legal purposes.

displayNameobject or nullrequired

The display name of the business, this is the name that will be shown to the public.

descriptionobject or nullrequired

The description of the business, this is the description that will be shown to the public.

shortDescriptionobject or nullrequired

The short description of the business, this is the description that will be shown to the public.

websiteUrlobject or nullrequired

The website of the business, this is the website that will be shown to the public.

imageUrlobject or nullrequired

The image of the business, this is the image that will be shown to the public.

streetAddressobject or nullrequired

The address of the business, this is the address that will be shown to the public.

cityobject or nullrequired

The city of the business, this is the city that will be shown to the public.

postalCodeobject or nullrequired

The postal code of the business, this is the postal code that will be shown to the public.

coordsLatitudeobject or nullrequired

The latitude of the business, this is the latitude that will be shown to the public.

coordsLongitudeobject or nullrequired

The longitude of the business, this is the longitude that will be shown to the public.

businessTypeobject or nullrequired

The business type of the business, this is the business type that will be shown to the public.

businessType.​idnumber

Business type id

businessType.​namestring or nullrequired

Business type name

businessType.​descriptionstring or nullrequired

Business type description

businessType.​codestring or nullrequired

Business type code

businessType.​iconUrlstring or nullrequired

Business type icon url

isActivebooleanrequired

The status of the business, this is the status that will be shown to the public.

canMintTokenbooleanrequired

The ability to mint token for the business, this is the ability that will be shown to the public.

canChargeTokenbooleanrequired

The ability to charge token for the business, this is the ability that will be shown to the public.

canManageUsersbooleanrequired

The ability to manage users for the business, this is the ability that will be shown to the public.

canReceiveDonationbooleanrequired

The ability to receive donation for the business, this is the ability that will be shown to the public.

accountAddressobject or nullDeprecatedrequired

The address of the business, this is the address that will be shown to the public.

Response
application/json
{ "id": "string", "email": {}, "accountAddress": {}, "currentSigningAccountId": {}, "wallets": [ { … } ], "businessLegalName": {}, "displayName": {}, "description": {}, "shortDescription": {}, "websiteUrl": {}, "imageUrl": {}, "streetAddress": {}, "city": {}, "postalCode": {}, "coordsLatitude": {}, "coordsLongitude": {}, "businessType": { "id": 0, "name": "string", "description": "string", "code": "string", "iconUrl": "string" }, "isActive": true, "canMintToken": true, "canChargeToken": true, "canManageUsers": true, "canReceiveDonation": true }

Create multiple businesses from URL

Request

Create multiple business accounts by fetching a JSON file from the provided URL. The file at the URL is expected to be a JSON object conforming to the BusinessBulkCreateRequestDTO structure, containing an array of business data.

Security
authJWT
Bodyapplication/jsonrequired
urlstringrequired
Example: "https://example.com/user-data"
curl -i -X POST \
  https://docs.pers.ninja/_mock/swagger/businesses/bulk/url \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "url": "https://example.com/user-data"
  }'

Responses

Businesses created

Bodyapplication/jsonArray [
idstringrequired

The id of the business, this is unique and will be used to identify the business.

emailobject or nullrequired

The email of the business, this is unique and will be used to identify the business.

currentSigningAccountIdobject or nullrequired

Current active signing account ID for external wallet operations

walletsArray of objects(PublicWalletDTO)required

Business-owned counterfactual smart contract wallets that can receive tokens

wallets[].​idstringrequired

Unique identifier for the internal wallet

wallets[].​ownerTypenumberrequired

Owner type for polymorphic ownership

Value{"USER":"user","BUSINESS":"business","TENANT":"tenant","SYSTEM":"system","EXTERNAL":"external"}
Example: "user"
wallets[].​ownerIdstringrequired

Owner ID for polymorphic ownership

Example: "user_123"
wallets[].​walletManagementTypenumberrequired

Type of internal wallet

Value{"CUSTODIAL":"custodial","NON_CUSTODIAL":"non-custodial"}
wallets[].​addressstringrequired

CREATE2 generated address that can receive tokens

wallets[].​chainIdnumberrequired

Blockchain network chain identifier

wallets[].​statusnumberrequired

Current status of the wallet

Value{"PENDING":"pending","ACTIVE":"active","SUSPENDED":"suspended","ARCHIVED":"archived"}
wallets[].​ownerSigningAccountIdobject or null

ID of signing account that owns this internal wallet

wallets[].​tagsArray of stringsrequired

Tags associated with the wallet for categorization

wallets[].​createdAtstring(date-time)required

Timestamp when the wallet was created

wallets[].​updatedAtstring(date-time)required

Timestamp when the wallet was last updated

businessLegalNameobject or nullrequired

The legal name of the business, this is the name that will be used for legal purposes.

displayNameobject or nullrequired

The display name of the business, this is the name that will be shown to the public.

descriptionobject or nullrequired

The description of the business, this is the description that will be shown to the public.

shortDescriptionobject or nullrequired

The short description of the business, this is the description that will be shown to the public.

websiteUrlobject or nullrequired

The website of the business, this is the website that will be shown to the public.

imageUrlobject or nullrequired

The image of the business, this is the image that will be shown to the public.

streetAddressobject or nullrequired

The address of the business, this is the address that will be shown to the public.

cityobject or nullrequired

The city of the business, this is the city that will be shown to the public.

postalCodeobject or nullrequired

The postal code of the business, this is the postal code that will be shown to the public.

coordsLatitudeobject or nullrequired

The latitude of the business, this is the latitude that will be shown to the public.

coordsLongitudeobject or nullrequired

The longitude of the business, this is the longitude that will be shown to the public.

businessTypeobject or nullrequired

The business type of the business, this is the business type that will be shown to the public.

businessType.​idnumber

Business type id

businessType.​namestring or nullrequired

Business type name

businessType.​descriptionstring or nullrequired

Business type description

businessType.​codestring or nullrequired

Business type code

businessType.​iconUrlstring or nullrequired

Business type icon url

isActivebooleanrequired

The status of the business, this is the status that will be shown to the public.

canMintTokenbooleanrequired

The ability to mint token for the business, this is the ability that will be shown to the public.

canChargeTokenbooleanrequired

The ability to charge token for the business, this is the ability that will be shown to the public.

canManageUsersbooleanrequired

The ability to manage users for the business, this is the ability that will be shown to the public.

canReceiveDonationbooleanrequired

The ability to receive donation for the business, this is the ability that will be shown to the public.

accountAddressobject or nullDeprecatedrequired

The address of the business, this is the address that will be shown to the public.

]
Response
application/json
[ { "id": "string", "email": {}, "accountAddress": {}, "currentSigningAccountId": {}, "wallets": [ … ], "businessLegalName": {}, "displayName": {}, "description": {}, "shortDescription": {}, "websiteUrl": {}, "imageUrl": {}, "streetAddress": {}, "city": {}, "postalCode": {}, "coordsLatitude": {}, "coordsLongitude": {}, "businessType": { … }, "isActive": true, "canMintToken": true, "canChargeToken": true, "canManageUsers": true, "canReceiveDonation": true } ]

Request

Toggle business account active status

Security
authJWT
Path
idstringrequired
Bodyapplication/jsonrequired
isActivebooleanrequired
canMintTokenboolean
canChargeTokenboolean
canManageUsersboolean
canReceiveDonationboolean
curl -i -X PUT \
  'https://docs.pers.ninja/_mock/swagger/businesses/{id}/status' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "isActive": true,
    "canMintToken": true,
    "canChargeToken": true,
    "canManageUsers": true,
    "canReceiveDonation": true
  }'

Responses

Business status updated

Bodyapplication/json
idstringrequired

The id of the business, this is unique and will be used to identify the business.

emailobject or nullrequired

The email of the business, this is unique and will be used to identify the business.

currentSigningAccountIdobject or nullrequired

Current active signing account ID for external wallet operations

walletsArray of objects(PublicWalletDTO)required

Business-owned counterfactual smart contract wallets that can receive tokens

wallets[].​idstringrequired

Unique identifier for the internal wallet

wallets[].​ownerTypenumberrequired

Owner type for polymorphic ownership

Value{"USER":"user","BUSINESS":"business","TENANT":"tenant","SYSTEM":"system","EXTERNAL":"external"}
Example: "user"
wallets[].​ownerIdstringrequired

Owner ID for polymorphic ownership

Example: "user_123"
wallets[].​walletManagementTypenumberrequired

Type of internal wallet

Value{"CUSTODIAL":"custodial","NON_CUSTODIAL":"non-custodial"}
wallets[].​addressstringrequired

CREATE2 generated address that can receive tokens

wallets[].​chainIdnumberrequired

Blockchain network chain identifier

wallets[].​statusnumberrequired

Current status of the wallet

Value{"PENDING":"pending","ACTIVE":"active","SUSPENDED":"suspended","ARCHIVED":"archived"}
wallets[].​ownerSigningAccountIdobject or null

ID of signing account that owns this internal wallet

wallets[].​tagsArray of stringsrequired

Tags associated with the wallet for categorization

wallets[].​createdAtstring(date-time)required

Timestamp when the wallet was created

wallets[].​updatedAtstring(date-time)required

Timestamp when the wallet was last updated

businessLegalNameobject or nullrequired

The legal name of the business, this is the name that will be used for legal purposes.

displayNameobject or nullrequired

The display name of the business, this is the name that will be shown to the public.

descriptionobject or nullrequired

The description of the business, this is the description that will be shown to the public.

shortDescriptionobject or nullrequired

The short description of the business, this is the description that will be shown to the public.

websiteUrlobject or nullrequired

The website of the business, this is the website that will be shown to the public.

imageUrlobject or nullrequired

The image of the business, this is the image that will be shown to the public.

streetAddressobject or nullrequired

The address of the business, this is the address that will be shown to the public.

cityobject or nullrequired

The city of the business, this is the city that will be shown to the public.

postalCodeobject or nullrequired

The postal code of the business, this is the postal code that will be shown to the public.

coordsLatitudeobject or nullrequired

The latitude of the business, this is the latitude that will be shown to the public.

coordsLongitudeobject or nullrequired

The longitude of the business, this is the longitude that will be shown to the public.

businessTypeobject or nullrequired

The business type of the business, this is the business type that will be shown to the public.

businessType.​idnumber

Business type id

businessType.​namestring or nullrequired

Business type name

businessType.​descriptionstring or nullrequired

Business type description

businessType.​codestring or nullrequired

Business type code

businessType.​iconUrlstring or nullrequired

Business type icon url

isActivebooleanrequired

The status of the business, this is the status that will be shown to the public.

canMintTokenbooleanrequired

The ability to mint token for the business, this is the ability that will be shown to the public.

canChargeTokenbooleanrequired

The ability to charge token for the business, this is the ability that will be shown to the public.

canManageUsersbooleanrequired

The ability to manage users for the business, this is the ability that will be shown to the public.

canReceiveDonationbooleanrequired

The ability to receive donation for the business, this is the ability that will be shown to the public.

accountAddressobject or nullDeprecatedrequired

The address of the business, this is the address that will be shown to the public.

Response
application/json
{ "id": "string", "email": {}, "accountAddress": {}, "currentSigningAccountId": {}, "wallets": [ { … } ], "businessLegalName": {}, "displayName": {}, "description": {}, "shortDescription": {}, "websiteUrl": {}, "imageUrl": {}, "streetAddress": {}, "city": {}, "postalCode": {}, "coordsLatitude": {}, "coordsLongitude": {}, "businessType": { "id": 0, "name": "string", "description": "string", "code": "string", "iconUrl": "string" }, "isActive": true, "canMintToken": true, "canChargeToken": true, "canManageUsers": true, "canReceiveDonation": true }

Request

Get all members of a business. Use pagination parameters (page & limit) for optimal performance. Legacy support: returns array without params (deprecated - will be removed in future). Requires BUSINESS auth (min role: VIEWER) or TENANT admin.

Security
projectKey or authJWT
Path
businessIdstringrequired
Query
pagenumber

Page number (1-based)

limitnumber

Items per page

includeArray of strings

Include related entities (comma-separated). Valid options: user, business

curl -i -X GET \
  'https://docs.pers.ninja/_mock/swagger/businesses/{businessId}/members?page=0&limit=0&include=string' \
  -H 'x-project-key: YOUR_API_KEY_HERE'

Responses

Bodyapplication/jsonArray [
idstringrequired

Unique identifier for this membership

userIdstringrequired

The user ID who has access to this business

businessIdstringrequired

The business ID this membership belongs to

rolestringrequired

The role the user has in this business. Permissions are derived from role.

Enum"OWNER""ADMIN""EDITOR""VIEWER"
Example: "OWNER"
createdAtstring(date-time)

When the membership was created

updatedAtstring(date-time)

When the membership was last updated

includedobject

Included related entities. Only populated when include parameter is specified.

]
Response
application/json
[ { "id": "string", "userId": "string", "businessId": "string", "role": "OWNER", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "included": { … } } ]

Request

Add a user as a member of the business. Requires BUSINESS auth (min role: ADMIN) or TENANT admin.

Security
projectKey or authJWT
Path
businessIdstringrequired
Bodyapplication/jsonrequired
userIdstringrequired

The user ID to add as a member

rolestringrequired

The role to assign (permissions derived from role)

Default "VIEWER"
Enum"OWNER""ADMIN""EDITOR""VIEWER"
curl -i -X POST \
  'https://docs.pers.ninja/_mock/swagger/businesses/{businessId}/members' \
  -H 'Content-Type: application/json' \
  -H 'x-project-key: YOUR_API_KEY_HERE' \
  -d '{
    "userId": "string",
    "role": "OWNER"
  }'

Responses

Bodyapplication/json
idstringrequired

Unique identifier for this membership

userIdstringrequired

The user ID who has access to this business

businessIdstringrequired

The business ID this membership belongs to

rolestringrequired

The role the user has in this business. Permissions are derived from role.

Enum"OWNER""ADMIN""EDITOR""VIEWER"
Example: "OWNER"
createdAtstring(date-time)

When the membership was created

updatedAtstring(date-time)

When the membership was last updated

includedobject

Included related entities. Only populated when include parameter is specified.

Response
application/json
{ "id": "string", "userId": "string", "businessId": "string", "role": "OWNER", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "included": { "user": { … }, "business": { … } } }

Request

Update the role of an existing business member. Requires BUSINESS auth (min role: ADMIN) or TENANT admin.

Security
projectKey or authJWT
Path
businessIdstringrequired
userIdstringrequired
Bodyapplication/jsonrequired
rolestring

The new role to assign (permissions derived from role)

Enum"OWNER""ADMIN""EDITOR""VIEWER"
curl -i -X PUT \
  'https://docs.pers.ninja/_mock/swagger/businesses/{businessId}/members/{userId}' \
  -H 'Content-Type: application/json' \
  -H 'x-project-key: YOUR_API_KEY_HERE' \
  -d '{
    "role": "OWNER"
  }'

Responses

Bodyapplication/json
idstringrequired

Unique identifier for this membership

userIdstringrequired

The user ID who has access to this business

businessIdstringrequired

The business ID this membership belongs to

rolestringrequired

The role the user has in this business. Permissions are derived from role.

Enum"OWNER""ADMIN""EDITOR""VIEWER"
Example: "OWNER"
createdAtstring(date-time)

When the membership was created

updatedAtstring(date-time)

When the membership was last updated

includedobject

Included related entities. Only populated when include parameter is specified.

Response
application/json
{ "id": "string", "userId": "string", "businessId": "string", "role": "OWNER", "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "included": { "user": { … }, "business": { … } } }

Request

Remove a user from business membership. Requires BUSINESS auth (min role: ADMIN) or TENANT admin.

Security
projectKey or authJWT
Path
businessIdstringrequired
userIdstringrequired
curl -i -X DELETE \
  'https://docs.pers.ninja/_mock/swagger/businesses/{businessId}/members/{userId}' \
  -H 'x-project-key: YOUR_API_KEY_HERE'

Responses

Member removed

Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations