Skip to content

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.

Key Resources

  • 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.

Authentication

All requests require OAuth 2.0 authentication using Auth0 with appropriate scopes.

Download OpenAPI description
Overview
Languages
Servers
Mock server
https://docs.talli.ai/_mock/reference/swagger

campaigns

Endpoints for creating and managing campaigns. A campaign represents a distribution of funds to multiple beneficiaries.

Operations

payout-instructions

Endpoints for creating and managing payout instructions. A payout instruction represents an intention to pay a specific amount of money to a beneficiary.It is associated with one and only one campaign.

Operations

payout-methods

Endpoints for viewing and managing available payout methods, such as ACH, PayPal, and gift cards.

Operations

reports

Endpoints for accessing analytics and reporting data about campaigns and payouts.

Operations

ach-transfers

Endpoints for managing ACH bank transfers as a payout method.

Operations

gift-cards

Endpoints for managing gift card payouts and retrieving gift card details.

Operations

paypal-transfers

Endpoints for managing PayPal payouts and retrieving PayPal transfer details.

Operations

prepaid-cards

Endpoints for managing prepaid card payouts and retrieving prepaid card details.

Operations

venmo-transfers

Endpoints for managing Venmo transfers and retrieving Venmo transaction details.

Operations

funds-holders

Represents an account connected to a business entity that can be used as a source of funds for one or multiple campaigns. Each funds holder corresponds to a separate bank account in our payment system and maintains it's own banking details and fund management capabilities

Operations

users

Endpoints to view members of your organization

Operations

roles

Endpoints to view roles that can be assigned to members of your organization

Operations

invitations

Endpoints used to send invite emails to members of your organizationpayment system and maintains it's own banking details and fund management capabilities.

Operations

bank-accounts

Endpoints for creating and managing bank accounts.

Operations

campaign-drafts

Operations

Get Campaign Drafts

Request

Retrieves a paginated list of campaign drafts, optionally filtered by funds holder ID.

Security
oauth2(Required scopes:
Auth0Policy
campaigns:view
)
Query
pageNumberinteger(int32)
Default 1
pageSizeinteger(int32)
Default 20
fundsHolderIdstring(uuid)
curl -i -X GET \
  'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaign-drafts?pageNumber=1&pageSize=20&fundsHolderId=497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Bodyapplication/json
pageNumberinteger(int32)
pageSizeinteger(int32)
totalPagesinteger(int32)read-only
totalItemsinteger(int32)
dataArray of objects(Talli.Api.Contracts.Campaigns.CampaignDraftResponse)
Response
application/json
{ "pageNumber": 0, "pageSize": 0, "totalPages": 0, "totalItems": 0, "data": [ { … } ] }

Create Campaign Draft

Request

Creates a new campaign draft. All fields are optional as drafts can be saved in incomplete state.

Security
oauth2(Required scopes:
Auth0Policy
campaigns:create
)
Body
namestring or null
fundsHolderIdstring or null(uuid)
welcomeHeadlinestring or null
campaignDescriptionstring or null
campaignManagerstring or null
welcomeTextstring or null
iconFilestring or null(binary)
payoutMethodIdsArray of strings or null(uuid)
expiryDatestring or null(date)
displayEndDatestring or null(date)
otpThresholdAmountnumber or null(double)
emailTemplatesobject or null
automaticRemindersinteger(int32)(Talli.Common.Contracts.AutomaticReminders)
Enum"None""FixedIntervals"
curl -i -X POST \
  https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaign-drafts \
  -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=None

Responses

Created

Bodyapplication/json
idstring(uuid)

The unique identifier for the campaign draft.

namestring or null

The name of the campaign draft.

fundsHolderIdstring or null(uuid)

The funds holder identifier associated with the campaign draft.

welcomeHeadlinestring or null

The welcome headline text that will be displayed in the application welcome screen.

campaignDescriptionstring or null

The campaign description of the campaign draft.

campaignManagerstring or null

The name of the campaign manager.

welcomeTextstring or null

The welcome text that will be displayed in the application welcome screen.

iconUrlstring or null

URL to the campaign's icon image that will be displayed in the application welcome screen.

payoutMethodsArray of objects(Talli.Api.Contracts.Campaigns.CampaignDraftPayoutMethodResponse)

Available payout methods for this campaign draft.

expiryDatestring or null(date)

The date when the campaign expires.

displayEndDatestring or null(date)

The date informing beneficiaries when is the end of the campaign.

emailTemplatesobject

The dictionary containing the template ids for given template type.If template type is not provided, the default template will be used.

createdOnstring(date)

The date when the campaign draft was created.

updatedOnstring(date)

The date when the campaign draft was last updated.

automaticRemindersinteger(int32)(Talli.Common.Contracts.AutomaticReminders)
Enum"None""FixedIntervals"
otpThresholdAmountnumber or null(double)

The threshold amount below which OTP verification is skipped. Maximum value is $250.

Response
application/json
{ "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", "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" }, "createdOn": "2019-08-24", "updatedOn": "2019-08-24", "automaticReminders": "None", "otpThresholdAmount": 0.1 }

Get Campaign Draft

Request

Security
oauth2(Required scopes:
Auth0Policy
campaigns:view
)
Path
idstring(uuid)required
curl -i -X GET \
  'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaign-drafts/{id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Bodyapplication/json
idstring(uuid)

The unique identifier for the campaign draft.

namestring or null

The name of the campaign draft.

fundsHolderIdstring or null(uuid)

The funds holder identifier associated with the campaign draft.

welcomeHeadlinestring or null

The welcome headline text that will be displayed in the application welcome screen.

campaignDescriptionstring or null

The campaign description of the campaign draft.

campaignManagerstring or null

The name of the campaign manager.

welcomeTextstring or null

The welcome text that will be displayed in the application welcome screen.

iconUrlstring or null

URL to the campaign's icon image that will be displayed in the application welcome screen.

payoutMethodsArray of objects(Talli.Api.Contracts.Campaigns.CampaignDraftPayoutMethodResponse)

Available payout methods for this campaign draft.

expiryDatestring or null(date)

The date when the campaign expires.

displayEndDatestring or null(date)

The date informing beneficiaries when is the end of the campaign.

emailTemplatesobject

The dictionary containing the template ids for given template type.If template type is not provided, the default template will be used.

createdOnstring(date)

The date when the campaign draft was created.

updatedOnstring(date)

The date when the campaign draft was last updated.

automaticRemindersinteger(int32)(Talli.Common.Contracts.AutomaticReminders)
Enum"None""FixedIntervals"
otpThresholdAmountnumber or null(double)

The threshold amount below which OTP verification is skipped. Maximum value is $250.

Response
application/json
{ "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", "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" }, "createdOn": "2019-08-24", "updatedOn": "2019-08-24", "automaticReminders": "None", "otpThresholdAmount": 0.1 }

Patch Campaign Draft

Request

Security
oauth2(Required scopes:
Auth0Policy
campaigns:edit
)
Path
idstring(uuid)required
Bodyapplication/jsonrequired
operationsArray of objects(Json.Patch.PatchOperation)
curl -i -X PATCH \
  'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaign-drafts/{id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "operations": [
      {
        "op": "Unknown",
        "value": {
          "options": {
            "propertyNameCaseInsensitive": true
          },
          "parent": {},
          "root": {}
        }
      }
    ]
  }'

Responses

OK

Response
No content

Delete Campaign Draft

Request

Deletes a campaign draft by ID.

Security
oauth2(Required scopes:
Auth0Policy
campaigns:edit
)
Path
idstring(uuid)required
curl -i -X DELETE \
  'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaign-drafts/{id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

No Content

Response
No content

Update Campaign Draft Icon

Request

Updates the icon for an existing campaign draft.

Security
oauth2(Required scopes:
Auth0Policy
campaigns:edit
)
Path
idstring(uuid)required
Bodymultipart/form-data
iconFilestring(binary)
curl -i -X PATCH \
  'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaign-drafts/{id}/campaign-icon' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: multipart/form-data' \
  -F iconFile=string

Responses

OK

Response
No content

Promote Campaign Draft to Campaign

Request

Security
oauth2(Required scopes:
Auth0Policy
campaigns:create
)
Path
idstring(uuid)required
curl -i -X POST \
  'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaign-drafts/{id}/:promote' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Accepted

Response
No content

templates

Operations