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.
  • Funding sources: Create and manage funding sources.
  • Templates: Create and manage templates.

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

Get Campaigns

Request

Retrieves a paginated list of campaigns, optionally filtered by a payout instruction ID. To include details about total funds received and statistics on the statuses of the payout instructions, use 'includeDetails' flag.

Security
oauth2
Query
pageNumberinteger(int32)
Default 1
pageSizeinteger(int32)
Default 20
payoutInstructionIdstring(uuid)
includeDetailsboolean
Default false
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>'

Responses

OK

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

Create Campaign

Request

Creates a new campaign with the specified data.

Security
oauth2
Bodymultipart/form-data
namestringrequired
welcomeHeadlinestring
campaignDescriptionstring
welcomeTextstring
campaignManagerstring
iconFilestring(binary)
payoutMethodIdsArray of strings(uuid)required
expiryDatestring(date)
displayEndDatestring(date)
validMobilePhoneNumberRequiredToInitiatePayoutInstructionsboolean
fundingSourceIdstring(uuid)required
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 welcomeHeadline=string \
  -F campaignDescription=string \
  -F welcomeText=string \
  -F campaignManager=string \
  -F iconFile=string \
  -F payoutMethodIds=497f6eca-6276-4993-bfeb-53cbbbba6f08 \
  -F expiryDate=2019-08-24 \
  -F displayEndDate=2019-08-24 \
  -F validMobilePhoneNumberRequiredToInitiatePayoutInstructions=true \
  -F fundingSourceId=c84f0983-d75c-4a10-a5e5-798ab594a841

Responses

Accepted

Response
No content

Patch Campaign

Request

Patches an existing campaign with the provided data. Note: The icon needs to be patched separately.

Security
oauth2
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/campaigns/{id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "operations": [
      {
        "op": "Unknown",
        "value": {
          "options": {
            "propertyNameCaseInsensitive": true
          },
          "parent": {},
          "root": {}
        }
      }
    ]
  }'

Responses

Accepted

Response
No content

Get Campaign

Request

Retrieves a single campaign based on provided identifier

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

Responses

OK

Bodyapplication/json
idstring(uuid)

The unique identifier for the campaign.

namestring

The name of the campaign.

fundingSourceIdstring(uuid)

The funding source associated with the campaign.

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.

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.CampaignPayoutMethodResponse)

Available payout methods for this campaign.

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.

creationDatestring(date)

The date when the campaign was created.

validMobilePhoneNumberRequiredToInitiatePayoutInstructionsboolean

Indicates whether a valid mobile phone number is required to initiate payout instructions.If this is disabled payouts with no phone number will be sent to customers, but some payout methods might be disabled.

Response
application/json
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string", "fundingSourceId": "c84f0983-d75c-4a10-a5e5-798ab594a841", "welcomeHeadline": "string", "campaignDescription": "string", "campaignManager": "string", "welcomeText": "string", "iconUrl": "string", "payoutMethods": [ { … } ], "expiryDate": "2019-08-24", "displayEndDate": "2019-08-24", "creationDate": "2019-08-24", "validMobilePhoneNumberRequiredToInitiatePayoutInstructions": true }

Patch Campaign icon

Request

Patches an existing campaign with the provided icon file.

Security
oauth2
Path
idstring(uuid)required
Bodymultipart/form-data
iconFilestring(binary)
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=string

Responses

Accepted

Response
No content

Upload a file with payout instructions

Request

Uploads a file with payout instructions to the given campaign. The maximum size of the file is 262144000 bytes

Security
oauth2
Path
idstring(uuid)required
Bodymultipart/form-data
filestring(binary)required
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

Responses

Accepted

Response
No content

Send reminders for given campaign

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.

Security
oauth2
Path
idstring(uuid)required
Bodyapplication/jsonrequired
payoutInstructionIdsArray of strings or null(uuid)
distributionPeriodInSecondsinteger or null(int32)
payoutInstructionStatusesArray of integers or null(int32)(Talli.Campaigns.Contracts.PayoutInstructionStatus)
Enum"Draft""Ready""PushInitiated""Initiated""InitiationFailed""PayoutMethodSelected""Requested""Restored""Reinitiated""ReinitiationFailed"
dryRunboolean
curl -i -X POST \
  'https://docs.talli.ai/_mock/reference/swagger/v2/campaign-manager/campaigns/{id}/payout-instructions/:send-reminder' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "payoutInstructionIds": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "distributionPeriodInSeconds": 0,
    "payoutInstructionStatuses": [
      "Draft"
    ],
    "dryRun": true
  }'

Responses

OK

Bodyapplication/json
dryRunboolean
detailsobject(Talli.Campaigns.Contracts.Responses.CampaignManager.SendCampaignRemindersResponseDetails)
Response
application/json
{ "dryRun": true, "details": { "batchId": "5579c111-9c50-47e2-af92-f16d52e63189", "count": 0, "items": [ … ] } }

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

funding-sources

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

Operations

campaign-drafts

Operations

templates

Operations