Skip to main content

If you are using our backend SDK that is lesser than the following versions, please visit the older documentation link here.

Method 4) Custom method

This method allows you provide a callback using which you can send SMSs however you like. The input to the callback will be SMS template variables, so you can freely create the content of the SMS as well. Use this method if you are:

  • Using a third party SMS service that is not Twilio.
  • You want to use another delivery methog like Whatsapp or FB Messenger.
  • You want to do some custom spam protection before sending the SMS.
  • You already have an SMS sending infrastructure and want to use that.
import supertokens from "supertokens-node";
import Passwordless from "supertokens-node/recipe/passwordless";
import Session from "supertokens-node/recipe/session";

appInfo: {
apiDomain: "...",
appName: "...",
websiteDomain: "..."
recipeList: [
smsDelivery: {
override: (originalImplementation) => {
return {
sendSms: async function ({
codeLifetime, // amount of time the code is alive for (in MS)
urlWithLinkCode, // magic link
userInputCode, // OTP
}) {
// TODO: create and send SMS

If you call the original implementation function for sendSms, it will use the service that you have configured. If you have not configured any service, it will use the default service.


When using this callback, you must manage sending the SMS yourself.

Looking for older versions of the documentation?
Which UI do you use?
Custom UI
Pre built UI