See api-docs Menu

Update Message Template by Type & Locale

Early Preview

This API is in early preview and may be subject to change. Please contact your account manager if you are interested in trying the Branding API.

Use this API to create or update a message template.

This endpoint accepts a partial payload but only updates the provided values by its type and language locale.




Resource URL

https://<subdomain>/api/2/branding/brands/:brand_id/templates/:template_type/:locale

Header Parameters

Authorization

required

string

Set to bearer <access_token>.

Set <access_token> to the access token you generated using the Generate Token API.

The access token must have been generated using an API credential pair created using the scope required to call this API. This API can be called using any one of the following scopes: Manage All.

In order to use the Branding API your API Credentials must be created after 21st October 2020.

Content-Type

required

string

Set to application/json.

Resource Parameter

brand_id

required

integer

Unique identifier for the branding object.

template_type

required

string

The message template type.

locale

required

string

The 2 character language locale for the template.

e.g. en = English, es = Spanish

Request Parameters

template

required

string

The content body for the message. The template parameters vary based on the type of template. Templates can also contain placeholder values that will be substituted at the time of sending a message.

Email

  • subject - required - The email subject
  • html - required - The HTML body of the email
  • plain - required - The plain text body of the email

Placeholder values include url for magiclink or forgot password types, and code for templates that have the code type.

SMS

  • message - required - The body of the SMS message. Max length 160 characters.

Placeholder values include otp_code for the OTP code and otp_expiry for the time until the code expires.

Request Body

{
    "template": {
        "subject": "Email MFA App Verification Code",
        "html": "<html><head></head><body><p>Here is the code: {{otp_code}}</p></body></html>",
        "plain": "Here is the code: {{otp_code}}"
    }
}
{
    "template": {
        "message": "Here is the code: {{otp_code}}"
    }
}

Sample Responses

{
    "id": 1,
    "account_id": 1,
    "locale": "en",
    "type": "email_code_app_verification",
    "template_class": "email_mfa_template",
    "template": {
        "subject": "Email MFA App Verification Code",
        "html": "<html><head></head><body><p>Here is the code: {{otp_code}}</p></body></html>",
        "plain": "Here is the code: {{otp_code}}"
    },
    "updated_at": "2022-08-31T00:03:27.734Z",
    "brand_id": 1
}
{
    "name": "UnauthorizedError",
    "message": "The request requires user authentication."
}

When the template type is unknown:

{
    "name": "NotFoundError",
    "message": "Unknown Content Template type: \"unknown\"",
    "statusCode": 404
}

When the locale is unknown:

{
    "name": "NotFoundError",
    "message": "Unknown Content Template locale: \"unknown\"",
    "statusCode": 404
}
{
    "name": "UnprocessableEntityError",
    "message": {
      "template/plain": "Value must be a string.",
      "template": "should match exactly one schema in oneOf"
    },
    "statusCode": 422
}

Postman Collection

Replace sample variables indicated by {{ }} with your actual values.

Download for the Branding API

Sample Code

cURL

Replace sample values indicated by < > with your actual values.

Update Account Brand

curl 'https://<subdomain>/api/2/branding/brands/:brand_id/templates/:template_type/:locale' \
-X PUT \
-H "Authorization: bearer <access_token>" \
-H "Content-Type: application/json" \
-d '{
    "template": {
        "subject": "Email MFA App Verification Code",
        "html": "<html><head></head><body><p>Here is the code: {{otp_code}}</p></body></html>",
        "plain": "Here is the code: {{otp_code}}"
    }
}'

Have a Question?

Found a problem or a bug? Submit a support ticket.

Looking for walkthroughs or how-to guides on OneLogin's user and admin features? Check out the documentation in our Knowledge Base.

Have a product idea or request? Share it with us in our Ideas Portal.