1. Cascading (Channel Fallback)
VeloConnect API
  • Velo services APIs
    • Getting Started
      • Introduction
      • Quick start: send your first SMS
      • Authentication
      • Errors
      • Limits
      • Delivery reports
      • Addresses and formats
      • Code samples
      • Viber and WhatsApp push reports
      • Refusal reasons
      • Changelog
      • Recipes
        • One-time code by SMS
        • One-time code by Viber, with SMS as a fallback
        • A campaign, from contacts to result
        • Connect a CRM
    • Messaging API (API Key)
      • Send SMS
        • Send SMS
        • Send SMS (GET form)
        • Send SMS to many numbers
        • Send SMS to many numbers (GET form)
      • SMS Delivery Status
        • List SMS records
        • Get an SMS record
      • SMS Verification Codes
        • Send a verification code (GET form)
        • Send a verification code
        • Check a verification code (GET form)
        • Check a verification code
      • Sender Names
        • List sender names (GET form)
        • List sender names
        • Get sender name status (GET form)
        • Get sender name status
      • Balance & Prices
        • Check balance (GET form)
        • Check balance
        • List rate plans
      • Viber
        • Campaigns
          • Send a Viber campaign
          • List Viber campaigns
        • Contact Lists
          • Create a Viber contact list
          • List Viber contact lists
          • Delete a Viber contact list
          • Add contacts to a list
          • Update contacts in a list
          • Delete a contact from a list
          • List contacts in a list
        • Conversations
          • List Viber conversations
          • List messages of a conversation
        • Message Records
          • List Viber message records
          • Get a Viber message record
        • Totals
          • Get Viber message totals
        • One-Time Codes
          • Send a Viber one-time code
          • List Viber code templates
        • Senders
          • Get a Viber sender
          • List Viber senders
        • Templates
          • Create a Viber template
          • List Viber templates
          • Delete a Viber template
          • Get a Viber template
      • WhatsApp
        • Senders
          • List WhatsApp senders
        • Campaigns
          • Send a WhatsApp campaign
          • List WhatsApp campaigns
        • Contact Lists
          • Add WhatsApp contacts
          • List WhatsApp contacts
          • Delete a WhatsApp contact list
          • Create a WhatsApp contact list
          • List WhatsApp contact lists
        • Contacts
          • Update WhatsApp contacts
          • Delete a WhatsApp contact
        • Conversations
          • List conversation messages
          • List WhatsApp conversations
        • Messages
        • Templates
          • Delete a WhatsApp template
          • Create a WhatsApp template
          • List WhatsApp templates
      • Cascading (Channel Fallback)
        • Cascading: send with channel fallback
          POST
    • Sign-In & Account
      • Team Members
      • Registration
      • Reference Data
      • Verification & Password
      • Two-Factor
      • Authentication
        • Sign in (for programs)
        • Refresh the login token
        • Sign out
      • Profile
        • Get your account profile
    • API Key & Allowed IPs
      • Get the API key
      • Replace the API key
      • Get the allowed IP addresses
      • Set the allowed IP addresses
    • Campaigns (v2)
      • Campaigns
        • Create a campaign
        • Export campaigns to CSV
        • List campaigns
        • Get a campaign
        • Update a campaign
      • Tools & Pricing
        • Count SMS parts
        • Calculate campaign price
        • Preview campaign recipients
      • Messages
      • Telegram
    • Contacts (v2)
      • Contacts
        • Create a contact
        • Export contacts
        • Import contacts from CSV
        • List contacts
        • Get a contact
        • Update a contact
        • Delete a contact
      • Details
        • Add a contact detail
        • Export contact details
        • List contact details
        • Update a contact detail
      • Messages
        • Export a contact's messages
        • List a contact's messages
    • Segments (v2)
      • Create a segment
      • Export segments to CSV
      • List segments
      • Get a segment
      • Update a segment
      • Delete a segment
      • Add contacts to a segment
      • Remove contacts from a segment
    • Dashboard (v2)
      • Get channel breakdown
      • Get headline statistics
      • Get OTP statistics
      • Get message trends
    • Templates & Content
      • Canned Responses
      • Templates
        • Create a message template
        • List message templates
        • Update a message template
        • Delete a message template
        • Get a message template
      • Uploads
    • Sender Names & Rates
      • Rates
        • List message rates
      • Sender Names
        • Request a sender name
        • List sender names
        • Delete a sender name
        • Get a sender name
      • Reference Data
        • List trunks
        • List mobile operators
    • SMS Messaging
      • Conversations
        • List SMS conversations
        • List conversation messages
      • Delivery Records
        • Export SMS records
    • Email Messaging
      • Delivery Records
        • Export e-mail records
        • List e-mail records
        • Get an e-mail record
      • Pricing
        • List e-mail prices
    • Notifications & Statistics
      • Notifications
      • Statistics
        • List balance history
        • Get sender name expenses
    • Payments
      • Payments
        • List payments
        • Get a payment
      • Provider Callbacks
    • Link Shortener
      • Links
        • Create a short link
        • Get a link by code
        • Get a link
        • Update a link
        • Delete a link
      • Webhooks
      • Redirect
        • Open a short link
      • Analytics
        • Get statistics for several campaigns
        • Get campaign statistics
        • Get contact statistics
        • Get link statistics
    • Social Platform
      • Connections
        • List social connections
        • Get a channel
        • Disconnect a channel
        • Check channel subscription status
        • Get a connection
        • Disconnect a connection
        • Check a connection token
        • Resync channels of a connection
        • List supported providers
      • Inbox
        • List conversations of an account
        • List conversations of a channel
        • Sync conversations of a channel
        • Get a conversation
        • Get conversation status history
        • Mark a conversation as read
        • List messages of a conversation
        • Reply to a conversation
        • Sync messages of a conversation
      • Facebook
      • Instagram
      • Telegram
    • Telephony
      • DID Numbers
        • Purchase & Provisioning
        • Assignments
        • Catalog
        • Compliance
        • Orders
        • Reservations
      • PBX Tenants
      • SIP Voice
        • Monitoring
        • Calls
        • Session
    • Schemas
      • TemplateFilteringSortingModel
      • SocialChannelType
      • V2ContactDetailType
      • CommunicationType
      • RateFilteringSortingModel
      • PagedListGetModelOfV2ContactGetModel
      • SuccessResponseModelOfPagedListGetModelOfRateGetModel
      • SenderIdFilteringSortingModel
      • V2CampaignChannelGetModel
      • V2CampaignExportRequestModel
      • WebhookSubscriptionStatusDto
      • SocialProvider
      • V2CampaignChannelUpdateModel
      • SuccessResponseModelOfSenderIdGetModel
      • V2SegmentUpdateModel
      • V2ContactCsvDuplicateModel
      • PagedListGetModelOfRateGetModel
      • V2ContactMessageExportRequestModel
      • V2DashboardTrendsChannelModel
      • DataRecordFilterModel
      • SyncConversationsResponseDto
      • ClickEventDto
      • PagedListGetModelOfV2CampaignListItemModel
      • SocialConnectionDto
      • ErrorResponseModel
      • V2ContactCreateModel
      • V2SegmentContactsUpdateModel
      • TokenStatus
      • SuccessResponseModelOfV2ContactCsvImportResultModel
      • SuccessResponseModelOfEmailPriceGetModel
      • CustomerUserGetModel
      • V2ContactCsvImportResultModel
      • V2ContactDetailCreateModel
      • V2CampaignUpdateModel
      • SocialConversationDto
      • UnifiedInboxDto
      • ProviderType
      • CustomerUserLoginModel
      • SuccessResponseModelOfCustomerUserLoginResultModel
      • SuccessResponseModelOfV2CampaignGetModel
      • SuccessResponseModelOfPagedListGetModelOfSmsConversationGetModel
      • V2ContactDetailUpdateModel
      • V2ContactUpdateModel
      • WhatsAppStatus
      • PagedListGetModelOfPaymentGetModel
      • V2ContactDetailExportRequestModel
      • EmailDataRecordGetModel
      • SmsConversationGetModel
      • SenderIdType
      • LinkAnalyticsResponse
      • CustomerUserLoginResultModel
      • V2ContactMessageListFilterModel
      • FilterComparer
      • SuccessResponseModelOfV2SegmentGetModel
      • PagedListGetModelOfV2ContactDetailGetModel
      • SenderIdGetModel
      • PaymentDirection
      • TrafficType
      • UpdateLinkRequest
      • SuccessResponseModelOfPagedListGetModelOfV2CampaignListItemModel
      • WhatsAppTemplateCategory
      • PagedListGetModelOfSmsConversationGetModel
      • V2SegmentListFilterModel
      • ConversationStatus
      • V2ExportMode
      • V2SegmentGetModel
      • V2ContactDetailListFilterModel
      • SuccessResponseModelOfStatisticSenderIdExpensesGetModel
      • SenderIdStatus
      • PagedListGetModelOfV2ContactMessageListItemModel
      • V2DashboardOtpStatsModel
      • SuccessResponseModelOfPagedListGetModelOfSenderIdGetModel
      • SuccessResponseModelOfStatisticBalanceGetModel
      • StatisticSenderIdExpensesGetModel
      • SocialMessageDto
      • AdminUserGetModel
      • PagedListGetModelOfTemplateGetModel
      • SuccessResponseModelOfPagedListGetModelOfTemplateGetModel
      • CreateLinkRequest
      • ProblemDetails_link
      • SenderIdTrafficTypeGetModel
      • V2CampaignListItemModel
      • SuccessResponseModelOfV2CampaignPricePreviewModel
      • MessageStatus
      • SenderIdTypeGetModel
      • SocialChannelDto
      • SuccessResponseModelOfPagedListGetModelOfAreaMccMncGetModel
      • SuccessResponseModelOfV2CampaignMessageInfoModel
      • TokenGetModel
      • V2CampaignChannelCreateModel
      • StatisticBalanceGetModel
      • V2CampaignPricePreviewModel
      • RateGetModel
      • SocialConversationStatusHistoryDto
      • SuccessResponseModelOfPaymentListGetModelOfPaymentGetModel
      • V2SegmentCreateModel
      • AreaMccMncFilterModel
      • SuccessResponseModelOfString
      • MessageDirection
      • TokenRefreshModel
      • PagedListGetModelOfEmailDataRecordGetModel
      • SocialProviderDto
      • EmailPriceGetModel
      • ResyncChannelsResponseDto
      • SenderIdMediaAttachmentGetModel
      • TemplateUpdateModel
      • SuccessResponseModelOfPagedListGetModelOfV2SegmentGetModel
      • IFormFile
      • V2CampaignGetModel
      • PagedListGetModelOfSenderIdPriceGetModel
      • SuccessResponseModelOfEmailDataRecordGetModel
      • PagedListGetModelOfV2SegmentGetModel
      • PartnerCustomerUserLoginModel
      • V2ContactExportRequestModel
      • SuccessResponseModelOfTokenGetModel
      • PaginationModel
      • SyncMessagesResponseDto
      • SuccessResponseModelOfIEnumerableOfLong
      • SuccessResponseModelOfPaymentGetModel
      • SortingModel
      • V2CampaignChannelSummaryModel
      • SenderIdPriceGetModel
      • V2SegmentExportRequestModel
      • V2DashboardKpisModel
      • SuccessResponseModelOfTemplateGetModel
      • V2CampaignMessageInfoModel
      • AreaMccMncGetModel
      • V2DashboardOtpChannelModel
      • CampaignAnalyticsListRequest
      • PaymentListGetModelOfPaymentGetModel
      • ReplyMessageResponseDto
      • V2ContactDetailGetModel
      • V2DashboardChannelBreakdownModel
      • ContactAnalyticsResponse
      • SuccessResponseModelOfLong
      • LinkResponse
      • SuccessResponseModelOfCustomerUserGetModel
      • V2ContactGetModel
      • SuccessResponseModelOfBoolean
      • V2ContactDetailStatus
      • SuccessResponseModelOfPagedListGetModelOfSenderIdPriceGetModel
      • V2CampaignChannelPricePreviewModel
      • PagedListGetModelOfSenderIdGetModel
      • V2DashboardTrendsDataPointModel
      • TemplateGetBaseModel
      • SenderIdViberLogoGetModel
      • V2DashboardChannelFunnelModel
      • TemplateGetModel
      • ConversationStatusHistoryActionType
      • PaymentGetModel
      • V2CampaignListFilterModel
      • CustomerTrunkBaseGetModel
      • CampaignAnalyticsResponse
      • V2CampaignCreateModel
      • BusinessType
      • PaymentFilterModel
      • V2CampaignMessageInfoRequest
      • TemplateMediaAttachmentGetModel
      • SuccessResponseModelOfV2CampaignRecipientPreviewModel
      • FilteringModel
      • MessageType
      • SuccessResponseModelOfPagedListGetModelOfV2ContactMessageListItemModel
      • TemplateStatus
      • SuccessResponseModelOfCustomerTrunkBaseGetModel
      • FilteringSortingModel
      • V2ContactListFilterModel
      • V2DashboardTrendsModel
      • V2ContactMessageListItemModel
      • ConversationFilteringSortingModel
      • SuccessResponseModelOfPagedListGetModelOfEmailDataRecordGetModel
      • V2CampaignRecipientPreviewModel
      • SuccessResponseModelOfV2ContactGetModel
      • SuccessResponseModelOfPagedListGetModelOfV2ContactDetailGetModel
      • SortDirection
      • PagedListGetModelOfAreaMccMncGetModel
      • V2CampaignUnresolvableRecipientModel
      • RateDetailGetModel
      • RefreshTokenResponseDto
      • SuccessResponseModelOfPagedListGetModelOfV2ContactGetModel
  • VeloVerify API
    • VeloVerify quick start
    • Authentication
      • Exchange API credentials
      • Refresh an access token
    • HLR Lookup
      • Check number reachability
    • MNP Lookup
      • Look up the current network
    • Account Management
      • Get account balance
      • List balance transactions
      • List invoices
      • Get automatic top-up settings
      • Update automatic top-up settings
    • Billing & Payments
      • Create a top-up checkout
      • Start saving a payment method
      • List saved payment methods
      • Remove a saved payment method
    • Async Queries
      • Submit an asynchronous HLR lookup
      • Submit an asynchronous MNP lookup
      • Submit a batch of lookups
      • Get task status
      • Get batch status
    • Schemas
      • AsyncBatchRequest
      • AsyncBatchResponse
      • AsyncSingleRequest
      • AsyncSubmitResponse
      • AutoTopupSettings
      • AutoTopupUpdate
      • BatchStatusResponse
      • HTTPValidationError
      • PaymentMethodOut
      • RefreshRequest
      • SetupIntentResponse
      • TaskCreatedResponse
      • TaskStatusResponse
      • TokenRequest
      • TokenResponse
      • TopupResponse
      • UnifiedResponse
      • ValidationError
      • TopupRequest
  1. Cascading (Channel Fallback)

Cascading: send with channel fallback

POST
https://api.veloconnect.me/api/partners/campaigns/cascading
Programmatic API (API Key)
Last modified:2026-10-08 14:03:32
Sends one message to a list of people over up to three channels, in the order you set. Each person gets the message on the first channel. A person that channel cannot send to is tried on the next one, so nobody gets the message twice.
Authentication: send your API key in a header named apiId. If your account has a list of allowed IP addresses, the call must come from one of them.
Channels. campaigns holds one entry for each channel.
providerType is Whatsapp, Viber or SMS. Use each at most once.
cascadingPriorityLevel sets the order: the lowest number is tried first. If SMS is one of the channels, it must be the last.
Whatsapp and Viber need templateId, the id of one of your approved templates, and senderId. Give the values of a WhatsApp template's variables in whatsAppTemplateParams.
SMS needs message, senderId and ratePlanId (from POST /api/RatePlans).
Recipients. Write them in campaignContacts, or name saved contact lists in contactListIds, or both. phoneNumber is + followed by digits, for example +37491234567. One wrong number refuses the whole request.
When the next channel is used
A person the channel could not send to is tried on the next channel at once.
For WhatsApp, a person is also tried on the next channel when WhatsApp later reports the message as failed.
A message that was sent but not delivered or not read is not sent again on another channel. For example, a Viber message that expires does not fall back to SMS.
Schedule. Leave scheduleDate out to send now: sending starts within a few minutes. To send later, give scheduleDate as local clock time together with timezone (the UTC offset in hours) and timezoneId; all three are needed.
Cost. Each message is paid from your balance on the channel that sends it. When you create the campaign, the balance is checked for the first channel.
The answer. data[0].ids holds one campaign id for each channel, in the order they are tried. Use an id to read the result of that channel: POST /api/partners/viber-data-records/list for Viber, GET /api/partners/whatsapp-campaigns for WhatsApp, POST /api/partners/SmsDataRecords for SMS (filter campaignId).
If the request is refused the call answers 400 with the reason, for example SMS provider type must be last option in cascading campaign, Cascading campaigns provider types must be different, Rate plan is required, Not valid contacts provided, Invalid phone number or Timezone and Timezone ID is required. Nothing is sent.

Request

Authorization
or
Header Params

Body Params application/jsonRequired

Examples

Responses

🟢200Campaign created
application/json
The campaign is saved and will be sent. data[0].ids holds one campaign id for each channel.
Bodyapplication/json

🟠400Request refused
🟠401Key or address refused
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://api.veloconnect.me/api/partners/campaigns/cascading' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
  "name": "Order ready",
  "campaignContacts": [
    {
      "phoneNumber": "+37491234567",
      "firstName": "Anna",
      "lastName": "Petrosyan"
    },
    {
      "phoneNumber": "+37499123456",
      "firstName": "Davit",
      "lastName": "Sargsyan"
    }
  ],
  "campaigns": [
    {
      "providerType": "Whatsapp",
      "cascadingPriorityLevel": 1,
      "communicationType": "Trasnsactional",
      "templateId": 318,
      "senderId": 57,
      "whatsAppTemplateParams": {
        "name": "Example LLC",
        "date": "9 October at 10:30"
      }
    },
    {
      "providerType": "Viber",
      "cascadingPriorityLevel": 2,
      "communicationType": "Trasnsactional",
      "templateId": 214,
      "senderId": 61
    },
    {
      "providerType": "SMS",
      "cascadingPriorityLevel": 3,
      "communicationType": "Trasnsactional",
      "message": "Your order is ready for pickup. MyBrand",
      "senderId": 124,
      "ratePlanId": 18
    }
  ]
}'
Response Response Example
200 - Campaign created
{
  "data": [
    {
      "succeeded": true,
      "ids": [
        20431,
        20432,
        20433
      ],
      "strIds": null,
      "errors": null
    }
  ]
}
Modified at 2026-10-08 14:03:32
Previous
List WhatsApp templates
Next
Sign in (for programs)
Built with