Skip to content

Create sender for project
GA

Request

Returns a sender for a project.

Security
BasicAuth and BearerAuth and OAuth2Production
Path
projectIdstringrequired

The unique ID of the project. You can find this on the Sinch Dashboard.

Bodyapplication/jsonrequired

Sender data

regionstring(RcsInputSenderRegions)required

Region sender is provisioned in.

Enum:"BR""EU""US"
billingCategorystring(RcsInputSenderBillingCategories)required

Billing category. Note: The billing framework distinguishes between two primary categories: non-conversational and conversational. The non-conversational category includes SINGLE_MESSAGE and BASIC_MESSAGE types which are considered functionally equivalent in the current revision. The conversational category includes CONVERSATIONAL and CONVERSATIONAL_LEGACY types. Values BASIC_MESSAGE, SINGLE_MESSAGE and CONVERSATIONAL_LEGACY are deprecated and will be removed in a future version.

  • CONVERSATIONAL: Designed for longer, more complex sessions where the user and brand exchange a series of messages.
  • NON_CONVERSATIONAL: Represents a non-conversational billing category, which replaces the legacy SINGLE_MESSAGE and BASIC_MESSAGE categories. This is for agents that primarily engage in one-way (A2P) communication.
  • BASIC_MESSAGE: Billing model is similar to SMS. Deprecated value, use NON_CONVERSATIONAL instead.
  • CONVERSATIONAL_LEGACY: Legacy category to support the billing configuration of existing agents. Deprecated value, use CONVERSATIONAL instead.
  • SINGLE_MESSAGE: Replaces SMS with a richer messaging experience. Deprecated value, use NON_CONVERSATIONAL instead.
Enum:"CONVERSATIONAL""NON_CONVERSATIONAL""BASIC_MESSAGE""CONVERSATIONAL_LEGACY""SINGLE_MESSAGE"
useCasestring(RcsInputSenderUseCases)required

Use case.

Enum:"MULTIUSE""OTP""PROMOTIONAL""TRANSACTIONAL"
detailsobject(RcsSenderDetailsInputDto)

Sender details and information.

Launch-compatible payload using only the US questionnaire. This variant uses ownershipType=PUBLIC, legalForm=CORPORATION, taxIdCountry=US, includes addressState, and includes stockExchange and stockSymbol because they are required for PUBLIC and required by this example.

curl -i -X POST \
  -u '<username>:<password>' \
  'https://provisioning.api.sinch.com/v1/projects/{projectId}/rcs/senders' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "region": "EU",
    "billingCategory": "CONVERSATIONAL",
    "useCase": "OTP",
    "details": {
      "brand": {
        "emails": [
          {
            "label": "label",
            "address": "test@test.com"
          },
          {
            "label": "label-1",
            "address": "test-1@test.com"
          },
          {
            "label": "label-2",
            "address": "test-2@test.com"
          }
        ],
        "phones": [
          {
            "label": "label",
            "number": "+48777777777"
          },
          {
            "label": "label-1",
            "number": "48888888888"
          },
          {
            "label": "label-2",
            "number": "+48999999999"
          }
        ],
        "websites": [
          {
            "label": "label",
            "url": "https://example.com"
          },
          {
            "label": "label-1",
            "url": "https://example-1.com"
          },
          {
            "label": "label-2",
            "url": "https://example-2.com"
          }
        ],
        "color": "#000000",
        "description": "Test description",
        "bannerUrl": "https://example-banner-url.com",
        "logoUrl": "https://example-logo-url.com",
        "privacyPolicyUrl": "https://example-private-policy-url.com",
        "termsOfServiceUrl": "https://example-terms-of-service-url.com",
        "name": "Test name"
      },
      "testNumbers": [
        "+48777777777"
      ],
      "countries": [
        "US"
      ],
      "questionnaire": {
        "general": {
          "answers": {
            "optInDescription": "By subscribing to a newsletter",
            "triggerDescription": "User actions (e.g. after making a purchase)",
            "interactionsDescription": "Billing or payment reminders,aef Order updates,aef Upon package delivery",
            "interactionsDescriptionMetadata": {
              "ignore": ",aef"
            },
            "optOutDescription": "We have registered your opt out request",
            "videoUris": [
              "https://example-video-url.com"
            ],
            "screenshotUris": [
              "https://example-screenshot-url.com"
            ]
          }
        },
        "verification": {
          "answers": {
            "name": "Exam Ple",
            "email": "email@example.com",
            "title": "Head Example",
            "website": "https://example.com",
            "phone": "+48777777777"
          }
        },
        "us": {
          "answers": {
            "ownershipType": "PUBLIC",
            "companyLegalName": "Example company legal name",
            "companyPhoneNumber": "+48777777777",
            "brandName": "Example brand name",
            "brandIndustry": "AGRICULTURE",
            "legalForm": "CORPORATION",
            "taxIdCountry": "US",
            "taxId": "12-3456789",
            "addressLine": "123 Main St",
            "addressCity": "Anytown",
            "addressCountry": "US",
            "addressState": "CA",
            "addressPostalCode": "12345",
            "websiteUrl": "https://example.com",
            "contactFirstName": "John",
            "contactSurname": "Doe",
            "stockExchange": "NASDAQ",
            "stockSymbol": "EXMPL",
            "sampleMessages": [
              "Sample message 1 for the US questionnaire.",
              "Sample message 2 for the US questionnaire."
            ],
            "messagesVolume": 10000,
            "embeddedLink": true,
            "embeddedPhone": true,
            "ageGatedContent": false,
            "directLending": false,
            "optInConfirmationMessage": "Thank you for opting in!",
            "helpMessage": "For help, contact support.",
            "callToActionMessage": "Click here to claim your special offer and explore our latest updates now."
          }
        }
      }
    }
  }'

Responses

Sender

Bodyapplication/json
idstringrequired

The unique ID of the sender.

regionstring(RcsSenderRegions)required

Region sender is provisioned in.

Enum:"BR""EU""US"
billingCategorystring(RcsSenderBillingCategories)required

Billing category. Note: The billing framework distinguishes between two primary categories: non-conversational and conversational. The non-conversational category includes SINGLE_MESSAGE and BASIC_MESSAGE types which are considered functionally equivalent in the current revision. The conversational category includes CONVERSATIONAL and CONVERSATIONAL_LEGACY types. Values BASIC_MESSAGE, SINGLE_MESSAGE and CONVERSATIONAL_LEGACY are deprecated and will be removed in a future version.

  • CONVERSATIONAL: Designed for longer, more complex sessions where the user and brand exchange a series of messages.
  • NON_CONVERSATIONAL: Represents a non-conversational billing category, which replaces the legacy SINGLE_MESSAGE and BASIC_MESSAGE categories. This is for agents that primarily engage in one-way (A2P) communication.
  • BASIC_MESSAGE: Billing model is similar to SMS. Deprecated value, use NON_CONVERSATIONAL instead.
  • CONVERSATIONAL_LEGACY: Legacy category to support the billing configuration of existing agents. Deprecated value, use CONVERSATIONAL instead.
  • SINGLE_MESSAGE: Replaces SMS with a richer messaging experience. Deprecated value, use NON_CONVERSATIONAL instead.
Enum:"CONVERSATIONAL""NON_CONVERSATIONAL""BASIC_MESSAGE""CONVERSATIONAL_LEGACY""SINGLE_MESSAGE"
useCasestring(RcsSenderUseCases)required

Use case.

Enum:"MULTIUSE""OTP""PROMOTIONAL""TRANSACTIONAL"
hostingRegionstring(RcsSenderHostingRegions)required

Internal Google hosting region

Enum:"ASIA_PACIFIC""EUROPE""NORTH_AMERICA"
conversationApiAppDetailsobject(RcsConversationApiAppDto)

If set, the details of the Conversation API App the sender is connected to.

statestring(RcsSenderStates)

The current state of the sender.

Enum:"DRAFT""IN_PROGRESS""IN_TEST""LAUNCHED""LAUNCHING""PREPARING_LAUNCH""UNLAUNCHED""UNKNOWN"
testNumberStatesArray of objects(RcsTestNumberStateDto)

Test phone numbers states.

countryStatusArray of objects(RcsCountryStatusDto)

Countries status.

detailsobject(RcsSenderDetailsDto)

Sender details and information.

authNamestring

The name is needed to connect the sender to a Conversation API App.

authTokenstring

The token is needed to connect the sender to a Conversation API App.

createdstring

The UTC Date Time in ISO 8601 for when the sender was created.

modifiedstring

The UTC Date Time in ISO 8601 for when the sender was last modified.

supplierDetailsobject(RcsSupplierDetailsDto)

Supplier details.

launchedstring

The UTC Date Time in ISO 8601 for when the sender was last launched.

brandDetailsobject(RcsBrandRegistrationDto)

Brand registration details.

conversationApiAppstringdeprecated

If set, the Conversation API App ID the sender is connected to.

Response

Response when successfully creating a sender.

{ "id": "cf11794a-6a5e-4a12-b103-da79bd378bf1", "state": "IN_TEST", "testNumberStates": [ { … }, { … }, { … } ], "countryStatus": [ { … }, { … }, { … } ], "details": { "brand": { … }, "testNumbers": [ … ], "countries": [ … ], "questionnaire": { … } }, "region": "EU", "billingCategory": "CONVERSATIONAL", "useCase": "OTP", "hostingRegion": "EUROPE", "authName": "yurwN6123asd", "authToken": "ejiiqJtDyurwN6jLze8v", "conversationApiApp": "4CF9CE97504C4A468F4610919D17ECC1", "conversationApiAppDetails": { "id": "4CF9CE97504C4A468F4610919D17ECC1", "projectId": "ea026751-3edf-40a9-ad93-1b382bd60a78", "region": "EU", "channelStatus": "ACTIVE" }, "created": "2023-01-19t13:11:08.204Z", "modified": "2023-01-19t13:11:08.204Z", "launched": "2023-01-19t13:11:08.204Z", "supplierDetails": { "google": { … } } }

Callbacks

Sender status updated
post
Sender operator status updated
post
Comment on sender
post
Brand registration process status updated
post
We'd love to hear from you!
Rate this content: