Process campaign reward claims using role-based detection. Supports all claim types: system, business, and user claims through a single endpoint.
- Create campaign claim (Unified)
PERS-api docs (2.0.7)
Campaign claim request. Use CampaignClaimRequestDTO for user claims or CampaignClaimBusinessRequestDTO structure for business/system claims.
The user identifier, e.g. email or external id. This is used to identify the user making the claim, if not provided in request context
- Mock serverhttps://docs.pers.ninja/_mock/swagger/campaigns/claims
- https://explorins-loyalty.ngrok.io/campaigns/claims
- https://api.pers.ninja/v2/campaigns/claims
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.pers.ninja/_mock/swagger/campaigns/claims \
-H 'Content-Type: application/json' \
-H 'x-project-key: YOUR_API_KEY_HERE' \
-d '{
"campaignId": "string",
"conditionsData": {},
"multiplier": 0,
"businessId": "string",
"latitude": 0,
"longitude": 0,
"userIdentifier": "string",
"startDate": "2019-08-24T14:15:22Z",
"endDate": "2019-08-24T14:15:22Z"
}'Campaign claim processed successfully
Current active signing account ID for external wallet operations
User-owned counterfactual smart contract wallets that can receive tokens
Owner type for polymorphic ownership
Type of internal wallet
Current status of the wallet
ID of signing account that owns this internal wallet
Campaign start date, default is the current date
Campaign isTestnet, this means that the campaign is running on testnet, not mainnet
Campaign trigger max geo distance to Business in meters
Campaign trigger required user info
Campaign trigger type
Campaign trigger completion threshold. This indicates the number of completions required before the reward is granted
Campaign trigger conditions
Trigger condition type
Metadata of the token, this is optional and can be null in case of Point token
this is the abi of the contract, this is the interface of the contract to interact with it
this is the chain id of the chain where the token is deployed
this is the url of the abi of the contract, to be used to fetch the abi of the contract
this is the symbol of the token contract, this is optional and can be null
this is the decimals of the token. This is optional and only used for ERC20 tokens (Points)
This can be used to enable or disable the token
This can be used to enable or disable the token for gallery
token metadata incremental id for the token unit, this is used to identify the specific token metadata that should be minted
Token unit amount is the amount of tokens that the user will receive when aquiring the token unit
Token unit max amount, this is the maximum amount of tokens that the user can receive when aquiring the token unit. This is relevant e.g. in campaigns where a user may receive token units per revenue spent etc
Campaign businesses: what businesses are involved in the campaign
A short description of the business engagement with indications what to do etc
businesses
The id of the business, this is unique and will be used to identify the business.
The email of the business, this is unique and will be used to identify the business.
The address of the business, this is the address that will be shown to the public.
The legal name of the business, this is the name that will be used for legal purposes.
The display name of the business, this is the name that will be shown to the public.
The description of the business, this is the description that will be shown to the public.
The short description of the business, this is the description that will be shown to the public.
The website of the business, this is the website that will be shown to the public.
The image of the business, this is the image that will be shown to the public.
The address of the business, this is the address that will be shown to the public.
The city of the business, this is the city that will be shown to the public.
The postal code of the business, this is the postal code that will be shown to the public.
The latitude of the business, this is the latitude that will be shown to the public.
The longitude of the business, this is the longitude that will be shown to the public.
The status of the business, this is the status that will be shown to the public.
The ability to mint token for the business, this is the ability that will be shown to the public.
The ability to charge token for the business, this is the ability that will be shown to the public.
The ability to manage users for the business, this is the ability that will be shown to the public.
max per business, the maximum number of times a user can engage with the buisness in the campaign
max per day, the maximum number of times a user can engage with the buisness in the campaign per day
{ "id": "string", "createdAt": {}, "user": { "id": "string", "email": {}, "firstName": {}, "lastName": {}, "externalId": {}, "accountAddress": {}, "instagramAccountId": {}, "googleAccountName": {}, "customData": {}, "publicProfile": {}, "isActive": true, "currentSigningAccountId": {}, "wallets": [ … ] }, "campaign": { "name": "string", "description": "string", "beneficiaryAccountAddress": "string", "startDate": "2019-08-24T14:15:22Z", "endDate": "2019-08-24T14:15:22Z", "imageUrl": "string", "externalUrl": "string", "id": "string", "isActive": false, "isTestnet": false, "trigger": { … }, "tokenUnits": [ … ], "businessEngagements": [ … ], "createdAt": "2025-11-26T00:33:35.245Z", "updatedAt": null, "order": 1, "tags": [], "countryCodeRestrictions": [ … ] }, "userCountryCode": "string", "business": { "id": "string", "email": {}, "accountAddress": {}, "businessLegalName": {}, "displayName": {}, "description": {}, "shortDescription": {}, "websiteUrl": {}, "imageUrl": {}, "streetAddress": {}, "city": {}, "postalCode": {}, "coordsLatitude": {}, "coordsLongitude": {}, "businessType": { … }, "isActive": true, "canMintToken": true, "canChargeToken": true, "canManageUsers": true, "canReceiveDonation": true } }
Request
Get campaign claims with comprehensive filtering options: - campaignId: Filter by specific campaign (optional) - userId: Filter by specific user ID (admin only) - businessId: Filter by specific business ID (admin/business context)
Access Control: - Users: See only their own claims, campaignId optional - Business: See only claims associated with their business account, campaignId optional - Admin: Can filter by any combination of parameters or see all claims
Security Notes: - Users cannot access userId or businessId parameters (automatically filtered) - Business accounts automatically filter to their own businessId regardless of parameter - Admin has full access to all filtering options
- Mock serverhttps://docs.pers.ninja/_mock/swagger/campaigns/claims
- https://explorins-loyalty.ngrok.io/campaigns/claims
- https://api.pers.ninja/v2/campaigns/claims
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.pers.ninja/_mock/swagger/campaigns/claims?campaignId=string&userId=string&businessId=string' \
-H 'x-project-key: YOUR_API_KEY_HERE'Campaign claims retrieved successfully
Current active signing account ID for external wallet operations
User-owned counterfactual smart contract wallets that can receive tokens
Owner type for polymorphic ownership
Type of internal wallet
Current status of the wallet
ID of signing account that owns this internal wallet
Campaign start date, default is the current date
Campaign isTestnet, this means that the campaign is running on testnet, not mainnet
Campaign trigger max geo distance to Business in meters
Campaign trigger required user info
Campaign trigger type
Campaign trigger completion threshold. This indicates the number of completions required before the reward is granted
Campaign trigger conditions
Trigger condition type
Metadata of the token, this is optional and can be null in case of Point token
this is the abi of the contract, this is the interface of the contract to interact with it
this is the chain id of the chain where the token is deployed
this is the url of the abi of the contract, to be used to fetch the abi of the contract
this is the symbol of the token contract, this is optional and can be null
this is the decimals of the token. This is optional and only used for ERC20 tokens (Points)
This can be used to enable or disable the token
This can be used to enable or disable the token for gallery
token metadata incremental id for the token unit, this is used to identify the specific token metadata that should be minted
Token unit amount is the amount of tokens that the user will receive when aquiring the token unit
Token unit max amount, this is the maximum amount of tokens that the user can receive when aquiring the token unit. This is relevant e.g. in campaigns where a user may receive token units per revenue spent etc
Campaign businesses: what businesses are involved in the campaign
A short description of the business engagement with indications what to do etc
businesses
The id of the business, this is unique and will be used to identify the business.
The email of the business, this is unique and will be used to identify the business.
The address of the business, this is the address that will be shown to the public.
The legal name of the business, this is the name that will be used for legal purposes.
The display name of the business, this is the name that will be shown to the public.
The description of the business, this is the description that will be shown to the public.
The short description of the business, this is the description that will be shown to the public.
The website of the business, this is the website that will be shown to the public.
The image of the business, this is the image that will be shown to the public.
The address of the business, this is the address that will be shown to the public.
The city of the business, this is the city that will be shown to the public.
The postal code of the business, this is the postal code that will be shown to the public.
The latitude of the business, this is the latitude that will be shown to the public.
The longitude of the business, this is the longitude that will be shown to the public.
The status of the business, this is the status that will be shown to the public.
The ability to mint token for the business, this is the ability that will be shown to the public.
The ability to charge token for the business, this is the ability that will be shown to the public.
The ability to manage users for the business, this is the ability that will be shown to the public.
max per business, the maximum number of times a user can engage with the buisness in the campaign
max per day, the maximum number of times a user can engage with the buisness in the campaign per day
[ { "id": "string", "createdAt": {}, "user": { … }, "campaign": { … }, "userCountryCode": "string", "business": { … } } ]
Request
Convenience endpoint for authenticated users to retrieve their own campaign claims.
Equivalent to GET /campaign-claims but with required authentication and automatic filtering to current user context.
Features:
- Automatic user context (no userId parameter needed)
- Optional campaign filtering
- Requires user authentication
- Simplified response structure
Usage Examples:
- GET /campaign-claims/me (all claims for authenticated user)
- GET /campaign-claims/me?campaignId=123 (user claims for specific campaign)
- Mock serverhttps://docs.pers.ninja/_mock/swagger/campaigns/claims/me
- https://explorins-loyalty.ngrok.io/campaigns/claims/me
- https://api.pers.ninja/v2/campaigns/claims/me
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.pers.ninja/_mock/swagger/campaigns/claims/me?campaignId=string' \
-H 'x-project-key: YOUR_API_KEY_HERE'User campaign claims retrieved successfully
Current active signing account ID for external wallet operations
User-owned counterfactual smart contract wallets that can receive tokens
Owner type for polymorphic ownership
Type of internal wallet
Current status of the wallet
ID of signing account that owns this internal wallet
Campaign start date, default is the current date
Campaign isTestnet, this means that the campaign is running on testnet, not mainnet
Campaign trigger max geo distance to Business in meters
Campaign trigger required user info
Campaign trigger type
Campaign trigger completion threshold. This indicates the number of completions required before the reward is granted
Campaign trigger conditions
Trigger condition type
Metadata of the token, this is optional and can be null in case of Point token
this is the abi of the contract, this is the interface of the contract to interact with it
this is the chain id of the chain where the token is deployed
this is the url of the abi of the contract, to be used to fetch the abi of the contract
this is the symbol of the token contract, this is optional and can be null
this is the decimals of the token. This is optional and only used for ERC20 tokens (Points)
This can be used to enable or disable the token
This can be used to enable or disable the token for gallery
token metadata incremental id for the token unit, this is used to identify the specific token metadata that should be minted
Token unit amount is the amount of tokens that the user will receive when aquiring the token unit
Token unit max amount, this is the maximum amount of tokens that the user can receive when aquiring the token unit. This is relevant e.g. in campaigns where a user may receive token units per revenue spent etc
Campaign businesses: what businesses are involved in the campaign
A short description of the business engagement with indications what to do etc
businesses
The id of the business, this is unique and will be used to identify the business.
The email of the business, this is unique and will be used to identify the business.
The address of the business, this is the address that will be shown to the public.
The legal name of the business, this is the name that will be used for legal purposes.
The display name of the business, this is the name that will be shown to the public.
The description of the business, this is the description that will be shown to the public.
The short description of the business, this is the description that will be shown to the public.
The website of the business, this is the website that will be shown to the public.
The image of the business, this is the image that will be shown to the public.
The address of the business, this is the address that will be shown to the public.
The city of the business, this is the city that will be shown to the public.
The postal code of the business, this is the postal code that will be shown to the public.
The latitude of the business, this is the latitude that will be shown to the public.
The longitude of the business, this is the longitude that will be shown to the public.
The status of the business, this is the status that will be shown to the public.
The ability to mint token for the business, this is the ability that will be shown to the public.
The ability to charge token for the business, this is the ability that will be shown to the public.
The ability to manage users for the business, this is the ability that will be shown to the public.
max per business, the maximum number of times a user can engage with the buisness in the campaign
max per day, the maximum number of times a user can engage with the buisness in the campaign per day
[ { "id": "string", "createdAt": {}, "user": { … }, "campaign": { … }, "userCountryCode": "string", "business": { … } } ]