Endpoints for creating and managing campaigns. A campaign represents a distribution of funds to multiple beneficiaries.
Talli Campaign Manager API (v2)
The Talli Campaign Manager API provides programmatic access to create and manage payout campaigns, payout instructions, and reports. This API powers the Talli console interface and can be integrated with third-party systems to automate workflows.
- Campaigns: Create and manage fund distribution campaigns.
- Campaign drafts: Create and manage campaign drafts.
- Payout Instructions: Send and track payments to beneficiaries.
- Payout Methods: View available payment methods (PayPal, ACH, gift cards, etc.).
- Payouts: Details about selected payout
- Gift Cards: View details of a gift card requested by the beneficiary
- Prepaid Cards: View details of a prepaid card requested by the beneficiary
- Transfers: View details of Paypal, Venmo or ACH transfer requested by the beneficiary
- Reports: Access analytics and statistics about campaign performance.
- Funds holders: Create and manage funds holders.
- Templates: Create and manage templates.
- Users: View members of your organization
- Roles: View roles that can be assigned to members of your organization
- Invitation: Create and manage invitations to your organization
- Bank Accounts: Create and manage bank accounts.
- Mock serverhttps://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns?pageNumber=1&pageSize=20&payoutInstructionId=497f6eca-6276-4993-bfeb-53cbbbba6f08&includeDetails=false' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'{ "pageNumber": 0, "pageSize": 0, "totalPages": 0, "totalItems": 0, "data": [ { … } ] }
- multipart/form-data
- application/x-www-form-urlencoded
- Mock serverhttps://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
- multipart/form-data
- application/x-www-form-urlencoded
curl -i -X POST \
https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: multipart/form-data' \
-F name=string \
-F fundsHolderId=2c85db19-8b75-41b7-bf11-7a1e38a04654 \
-F welcomeHeadline=string \
-F campaignDescription=string \
-F campaignManager=string \
-F welcomeText=string \
-F iconFile=string \
-F payoutMethodIds=497f6eca-6276-4993-bfeb-53cbbbba6f08 \
-F expiryDate=2019-08-24 \
-F displayEndDate=2019-08-24 \
-F otpThresholdAmount=0.1 \
-F 'emailTemplates[property1]=497f6eca-6276-4993-bfeb-53cbbbba6f08' \
-F 'emailTemplates[property2]=497f6eca-6276-4993-bfeb-53cbbbba6f08' \
-F automaticReminders=NoneRequest
Patches an existing campaign with the provided data. Note: The icon needs to be patched separately.
- Mock serverhttps://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PATCH \
'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{id}' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"operations": [
{
"op": "Unknown",
"value": {
"options": {
"propertyNameCaseInsensitive": true
},
"parent": {},
"root": {}
}
}
]
}'- Mock serverhttps://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{id}' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'OK
The welcome headline text that will be displayed in the application welcome screen.
URL to the campaign's icon image that will be displayed in the application welcome screen.
Available payout methods for this campaign.
The dictionary containing the template ids for given template type.If template type is not provided, the default template will be used.
The threshold amount below which OTP verification is skipped. Maximum value is $250.
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "fundsHolderId": "2c85db19-8b75-41b7-bf11-7a1e38a04654", "welcomeHeadline": "string", "campaignDescription": "string", "campaignManager": "string", "welcomeText": "string", "iconUrl": "string", "payoutMethods": [ { … } ], "expiryDate": "2019-08-24", "displayEndDate": "2019-08-24", "creationDate": "2019-08-24", "emailTemplates": { "InitiateEmail": "503f450d-21f7-4241-8734-82f102b59ff5", "ReminderEmail": "03f0f4e9-1347-456b-b068-11b85982c26d", "FailureReinitiateEmail": "207ac805-d6ae-4273-ab26-39cbfcc79f64", "OtpEmail": "a3326353-6367-4e5f-8f06-0ff770a372f8", "PushEmail": "42bd2676-4464-4f74-b80c-1dd80b6a2e4d", "InternalRequest": "2e712ba9-0e40-4e8e-bbf9-1bfe2bf89194" }, "automaticReminders": "None", "otpThresholdAmount": 0.1, "fromEmail": "string" }
- Mock serverhttps://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{id}/campaign-icon
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PATCH \
'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{id}/campaign-icon' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: multipart/form-data' \
-F iconFile=stringRequest
Uploads a file with payout instructions to the given campaign. The maximum size of the file is 262144000 bytes
- Mock serverhttps://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{id}/payout-instructions/:upload
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{id}/payout-instructions/:upload' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: multipart/form-data' \
-F file=string- Mock serverhttps://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/payout-instructions/:get-sample-file
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/payout-instructions/:get-sample-file?size=20' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'Request
Sends reminders for a given campaign. The endpoint allows send reminders either to the specified list of IDs or to payout instructions in the specified statuses. If neither of the above is specified, reminders will be sent to the payout instructions that have not been excluded, requested or fulfilled. If the list of ids is specified, you can also schedule the sending window with the 'distributionPeriodInSeconds' parameter. The schedule window will be automatically calculated based on the number of payout instructions found.
- Mock serverhttps://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{campaignId}/payout-instructions/:send-reminders
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{campaignId}/payout-instructions/:send-reminders' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"payoutInstructionIds": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"distributionPeriodInSeconds": 0,
"numberOfPayoutInstructionsToSend": 0,
"dryRun": true
}'{ "dryRun": true, "details": { "batchId": "5579c111-9c50-47e2-af92-f16d52e63189", "count": 0, "items": [ … ] } }
- Mock serverhttps://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{campaignId}/payout-instructions/:initiate
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{campaignId}/payout-instructions/:initiate' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"count": 0,
"payoutInstructions": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"channel": "string",
"distributionPeriodInSeconds": 0,
"preventPartialEmailSelection": true,
"dryRun": true,
"filterByEmailProvider": "string"
}'{ "dryRun": true, "notSent": { "isPreventPartialEmailSelectionActive": true, "count": 0, "email": "string", "payoutInstructionIds": [ … ] }, "sent": { "isScheduled": true, "batchId": "5579c111-9c50-47e2-af92-f16d52e63189", "count": 0, "filterByEmailProvider": "string", "items": [ … ] }, "totalAmount": 0.1 }
Request
Allows to set a password for the campaign. From that moment on, each beneficiary will be asked to enter the password when attempting to redeem funds. Once set, the password cannot be removed, it can only be changed.
- Mock serverhttps://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{campaignId}/:set-password
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{campaignId}/:set-password' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"campaignPassword": "string"
}'- Mock serverhttps://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{id}/account-details
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{id}/account-details' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "campaignId": "13f8bf6d-dc27-4a04-bffe-6e5b13c19ddf", "balance": 0.1, "availableBalance": 0.1, "allocatedBalance": 0.1, "unallocatedBalance": 0.1, "routingNumber": "string", "accountNumber": "string", "accountName": "string", "address": { "address1": "string", "address2": "string", "city": "string", "state": "string", "postalCode": "string", "country": "string" }, "creationDate": "2019-08-24" }
- Mock serverhttps://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{id}/withdrawal-accounts
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{id}/withdrawal-accounts?pageNumber=1&pageSize=20' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'{ "linkedAccounts": { "pageNumber": 0, "pageSize": 0, "totalPages": 0, "totalItems": 0, "data": [ … ] } }
- Mock serverhttps://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{id}/withdrawal-accounts
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{id}/withdrawal-accounts' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"businessName": "string",
"routingNumber": "string",
"accountNumber": "string",
"accountType": "Checking",
"addressLine1": "string",
"addressLine2": "string",
"city": "string",
"state": "AL",
"zipCode": "string"
}'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08" }
Request
Retrieves a list of transactions for particular campaign. When 'aggregate' is set to true, InternalTransfer transactions are aggregated by UTC date and status, while other transaction types are returned as individual transactions. The 'filterByTransactionType' parameter can be used to filter the results to a specific transaction type.
- Mock serverhttps://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{id}/transactions
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{id}/transactions?pageNumber=1&pageSize=20&filterByTransactionType=ExternalTransfer&aggregate=false' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'{ "transactions": { "pageNumber": 0, "pageSize": 0, "totalPages": 0, "totalItems": 0, "data": [ … ] } }
- Mock serverhttps://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{campaignId}/:refund
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{campaignId}/:refund' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"withdrawalAccountId": "12226ed6-ccd4-4575-988a-3e792dc5c7d4",
"amount": 0.1,
"method": "AchNextDay",
"description": "string"
}'"497f6eca-6276-4993-bfeb-53cbbbba6f08"