# Send an SMS to a customer Sends an SMS to the customer's verified mobile number. You can use this endpoint to send informational texts to your customers, such as notifications about transactions (e.g., amounts debited or credited or request for purchases) or reminders (e.g., minimum amount due for credit cards, loans, etc.) or other informational messages (e.g., account statement generated, end of month account balance, etc.). You cannot use this endpoint for use cases that require Strong Customer Authentication (SCA) (i.e., confirmation via OTP). In such cases, please use the dedicated SMS challenges endpoints. Endpoint: POST /v1/sms/messages Version: 1.0 ## Request fields (application/json): - `person_id` (string, required) The of the customer to whom the SMS should be sent. Example: "dc1a6812a14f6cc338cd084208535bcdcper" - `text` (string, required) The text of the SMS to be sent. A maximum of 160 characters. Example: "Account Statement for the month of July has been generated. Please login to your account to view." - `purpose` (string, required) The purpose of the SMS. Example: "Account statements" - `idempotency_key` (string, required) A randomly generated UUID which the server uses to recognize subsequent retries of the same request. Example: "504f6816-f7b5-4965-bc35-69acadc9f5c7" ## Response 202 fields (application/json): - `id` (string) A unique ID of the message that has been sent. Example: "4d9d9eab-0392-4ffb-a9c6-dac9f18e3411" - `message` (string) A short description about the request status. Example: "SMS has been accepted for processing." ## Response 400 fields (application/json): - `errors` (array) - `errors.status` (integer) Example: 400 - `errors.source` (object) - `errors.source.field` (string) - `errors.source.message` (string) - `errors.code` (string) Example: "Invalid person Id" - `errors.title` (string) Example: "Bad Request" - `errors.detail` (string) Example: "Unable to fetch the person Id" - `errors.id` (string) Correlation/Request ID Example: "a95f2aaf-4e0c-4d49-8021-8a16a884ed86" ## Response 403 fields (application/json): - `errors` (array) - `errors.status` (integer) Example: 403 - `errors.source` (object) - `errors.source.field` (string) - `errors.source.message` (string) - `errors.code` (string) Example: "unauthorized_action" - `errors.title` (string) Example: "Unauthorized Action" - `errors.detail` (string) Example: "Unauthorized action is not allowed." - `errors.id` (string) Correlation/Request ID Example: "a95f2aaf-4e0c-4d49-8021-8a16a884ed86" ## Response 409 fields (application/json): - `errors` (array) - `errors.status` (integer) Example: 409 - `errors.source` (object) - `errors.source.field` (string) - `errors.source.message` (string) - `errors.code` (string) Example: "validation_error" - `errors.title` (string) Example: "mobile number not verified" - `errors.detail` (string) Example: "The person's mobile number is unverified" - `errors.id` (string) Correlation/Request ID Example: "a95f2aaf-4e0c-4d49-8021-8a16a884ed86" ## Response 429 fields (application/json): - `errors` (array) - `errors.status` (integer) Example: 429 - `errors.source` (object) - `errors.source.field` (string) - `errors.source.message` (string) - `errors.code` (string) Example: "sms_request_rate_limit_exceeded" - `errors.title` (string) Example: "Sms Request Rate Limit Exceeded" - `errors.detail` (string) Example: "SMS request rate limit exceeded for the number: +491520555555" - `errors.id` (string) Correlation/Request ID Example: "ed5de352-85ea-4ad2-ac5d-3c75e48ef183" ## Response 500 fields (application/json): - `errors` (array) - `errors.status` (integer) Example: 500 - `errors.source` (object) - `errors.source.field` (string) - `errors.source.message` (string) - `errors.code` (string) Example: "generic_error" - `errors.title` (string) Example: "Generic Error" - `errors.detail` (string) Example: "There was an error." - `errors.id` (string) Correlation/Request ID Example: "e8915041-9d8c-4d96-9dd1-04e8522ecdbf"