Customizing email and SMS providers
You can customize the email sender and the SMS provider for the IBM® Verify notification messages.
Before you begin
If you want to integrate your own SMS provider for IBM Verify OTP notifications, you must configure an external webhook endpoint that accepts POST requests from IBM Verify. If you also wants to customize the email sender address so that notifications appear to come from your own domain, you must have your email domain authenticated.
Email domain authentication
To authenticate your email domain, use the Email Domain Authentication APIs. For more information about the APIs, see Email Domain Authentication.
- Register your email domain. https://{tenanturl}/config/v1.0/email-domain-auth
Example
curl --request POST \ --url https://tenant_url/config/v1.0/email-domain-auth \ --header 'accept: application/json' \ --header 'content-type: application/json' - Get the DNS records for your email domain. https://{tenanturl}/config/v1.0/email-domain-auth/{domain}
Example
curl --request GET \ --url https://tenant_url/config/v1.0/email-domain-auth/domain \ --header 'accept: application/json' - Verify the status of your email domain. https://{tenanturl}/config/v1.0/email-domain-auth/{domain}/verify
Example
curl --request POST \ --url https://tenant_url/config/v1.0/email-domain-auth/domain/verify \ --header 'accept: application/json' - To change or update your custom email domain, you must delete the existing custom email domain from the notification and then register your new one.
Delete your email authentication domain. https://{tenanturl}/config/v1.0/email-domain-auth/{domain}
Examplecurl --request DELETE \ --url https://tenant_url/config/v1.0/email-domain-auth/domain \ --header 'accept: application/json'
External webhook setup requirements
- The external SMS provider must expose an HTTP POST webhook endpoint to receive OTP notification requests from IBM Verify.
- The endpoint must immediately queue requests and return an HTTP response.
Sample JSON request payload
{
"destinationPhoneNumber": "18005551212",
"content": "Your passcode is 6439-123456. It expires in 5 minutes.",
"category": "OTP",
"language": "en-US",
"otp": "123456",
"correlation": "6439",
"expiry": 5
}
Field-level descriptions
destinationPhoneNumber- The recipient’s phone number in E.164 format.
content- The complete SMS text that is shown to the user.
category- OTP
language- The locale or language code, for example en-US.
otp- The one-time passcode value.
correlation- The ID to correlate OTP with a verification flow; typically shown in message.
expiry- The validity duration in minutes.
Webhook response requirements
- 202 Accepted
- Request successfully queued.
- 400 Bad Request
- Payload format invalid.
- 500 Internal Server Error
- Provider unable to process.
Example of a success response
{
"status": "accepted",
"statusMessage": "Message accepted by provider"
}
Example of a failure response
{
"status": "failed",
"statusMessage": "The destination phone number is invalid."
}
About this task
IBM is the default email sender and SMS provider for Verify.
icon on the