# 60224: Missing substitutions for selected template

Log Type: APPLICATION

Log Level: ERROR

## Description

The selected template has one or more expected substitutions that were not provided in the request.

### Possible causes

* The template requires extra fields for building the message that are not included in the request.
* The substitutions were not provided in the correct format (stringified JSON).

### Possible solutions

* Include all the substitutions for the place holder variables with the `TemplateCustomSubstitution` parameter.
* Format the variable object as stringified JSON.

For example, the following template requires a **`uuid`** substitution:

"**Your \{\{friendly\_name}} login link: https://example.com/verify.html?uuid=\{\{uuid}}\&code=\{\{code}}**"

The expected request in cURL:

```bash
curl -X POST https://verify.twilio.com/v2/Services/VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Verifications \
--data-urlencode "To=+15017122661" \
--data-urlencode "Channel=sms" \
--data-urlencode "TemplateSid=HJXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
--data-urlencode "TemplateCustomSubstitutions={ \"uuid\": \"MY_UNIQUE_ID\" }" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN
```

The expected request in Node.js:

```javascript
const verification = await client.verify.v2
  .services("VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
  .verifications.create({
    channel: "sms",
    templateSid: "HJXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    to: "+15017122661",
    templateCustomSubstitutions: '{ "uuid": "MY_UNIQUE_ID" }'
  });
```

The following variables are auto-populated by Twilio and do **not** need to be included in your request:

* `{{friendly_name}}`
* `{{code}}`
* `{{ttl}}`
