# Send your first test SMS five minutes after you get credentials.

- Canonical URL: https://www.broadnet.me/developers/quickstart
- Language: en
- Last updated: 2026-10-21
- Publisher: BroadNet (https://www.broadnet.me)
- Markdown version of the page above, generated from the rendered page.

Developer quickstart

Request test access and we reply within one business day with your test credentials. Then take the token, install the TypeScript SDK and call `smsSendsmsPost`. Your first test message reaches your own verified number about five minutes after you have credentials. Every sample below is ready to copy, and step 5 covers what to check before production.

[Request test access](https://www.broadnet.me/signup) [Full API reference](https://www.broadnet.me/developers/api)

Progress

0 / 5 steps · 5 min

0/5

Steps remaining

5

1. Get your access token Step 1 · 30 sec
2. Install the SDK Step 2 · 45 sec
3. Send your first message Step 3 · 60 sec
4. Receive delivery status Step 4 · 90 sec
5. Before production Step 5 · not part of the five minutes

From request to production

## One path to your first message, with the clock on every step.

1. 01 Request test access Reply within 1 business day A messaging engineer replies with your test credentials and books a 30-minute call on your countries, volumes and use case.
2. 02 First test message About 5 minutes after credentials Send a test message to your own verified number with the quickstart code. The delivery receipt comes back to your webhook.
3. 03 Integration 2–5 business days Build and test with your test credentials against the same endpoint as the code samples. A BroadNet engineer pairs with you on REST or SMPP.
4. 04 Approval 3–10 business days Sender identity, traffic purpose and destination rules are reviewed, and sender IDs are registered with each regulator, in parallel with your integration.
5. 05 Production Cutover day Production access and routes are switched on for your account. Your integration already calls https://api.broadnet.me.

Overall: 5–15 business days from request to production for most markets; longer where a regulator's sender-ID lead time is longer.

Diagram How an A2P message reaches the phone

1. Your application Sends over the REST API or SMPP
2. BroadNet platform Validates, routes and bills each message
3. Operator SMSC Direct operator connection
4. Subscriber handset The message is delivered

The delivery receipt (DLR) travels back along the same path to your webhook

On this page

1. 01 Get your access token
2. 02 Install the SDK
3. 03 Send your first message
4. 04 Receive delivery status
5. 05 Before production

After credentials

5 min

About five minutes from test credentials to your first test message. The webhook step needs a public URL; ngrok works fine.

01

Step 1 · 30 sec

## Get your access token.

Your access token comes with your test credentials: request test access and we reply within one business day. Store it in the BROADNET_TOKEN environment variable and send it in an Authorization: Bearer header on every call. Every sample on this page uses the production base URL, https://api.broadnet.me.

your BroadNet account · access token

Access token

quickstart-default

active

84f1a02e3c7d4b91a7e0•••••••••••• copy

Header

Bearer

Env var

BROADNET_TOKEN

Base URL

api.broadnet.me

$ curl -X POST https://api.broadnet.me/sms/sendSms -H "Authorization: Bearer $BROADNET_TOKEN" …

200 OK

Test it

Send a test SMS to your own verified number with POST /sms/sendSms. A 200 OK whose body is a message ID confirms the token works before you write any other code.

step 1.broadnet.me

02

Step 2 · 45 sec

## Install the SDK.

BroadNet has one official SDK, for TypeScript and Node.js: npm install @broadnet/cpaas-sdk axios. It is generated from the BroadNet OpenAPI specification. In any other language, call the REST API with your usual HTTP library, or generate a client from the OpenAPI spec.

Install

```
npm install @broadnet/cpaas-sdk axios

export BROADNET_TOKEN=your_access_token
```

bash

node >= 18

Test it

Import Configuration and SMSSMSApi from @broadnet/cpaas-sdk. If the import resolves and type-checks, you're ready to send.

step 2.broadnet.me

03

Step 3 · 60 sec

## Send your first message.

Create an SMSSMSApi with your base URL and token, call smsSendsmsPost with senderId, destinationNumber, message and messageType, and log the result. The response body is the message ID; keep it to match delivery status later.

POST /sms/sendSms

```
// npm install @broadnet/cpaas-sdk axios
import { Configuration, SMSSMSApi } from "@broadnet/cpaas-sdk";

const sms = new SMSSMSApi(
  new Configuration({
    basePath: "https://api.broadnet.me",
    accessToken: process.env.BROADNET_TOKEN!,
  }),
);

const res = await sms.smsSendsmsPost({
  sMSSmsRequest: {
    senderId: "BroadNet",
    destinationNumber: "447700900123",
    message: "Your verification code is 482913",
    messageType: "TEXT",
  },
});

console.log(res.data); // message ID
```

javascript

200 OK · message ID

Response · 200 OK

body · message ID

```
HTTP/1.1 200 OK

2603121407537573731
```

Test it

Check the phone in your hand. If you got the SMS, you're done with the hard part — everything below is operational polish.

step 3.broadnet.me

04

Step 4 · 90 sec

## Receive delivery status.

BroadNet pushes delivery status to the webhook URL configured on your account: SUBMITTED, SENT, DELIVERED, READ on channels that report reads, or FAILED and REJECTED. Store each update, reply with a 2xx quickly, and process it asynchronously.

POST /webhooks/broadnet

```
import express from "express";

const app = express();

app.post("/webhooks/broadnet", express.json(), async (req, res) => {
  // Store the status update first, then acknowledge with a 2xx.
  // Statuses: SUBMITTED, SENT, DELIVERED, READ, FAILED, REJECTED.
  await db.statusUpdates.insert({ receivedAt: new Date(), body: req.body });
  res.sendStatus(200);
});
```

javascript

delivery status · JSON

DELIVERED

Confirmed on the handset. Earlier updates, SUBMITTED and SENT, arrive as the message moves through the network.

after delivery

READ

Opened by the recipient, on channels that report reads, such as WhatsApp.

on read

FAILED / REJECTED

Not delivered. Check the number format and your sender ID before you send again.

final status

Test it

Send a message to your phone, then check your server log for the DELIVERED status update.

step 4.broadnet.me

05

Step 5 · not part of the five minutes

## Before production.

Production opens once approval is done: sender identity, traffic purpose and sender IDs, 3–10 business days, in parallel with your integration. Once approved, the same code sends production traffic. Before that, keep the token out of source control, wire up delivery-status webhooks and decide your retry policy.

- 01 Move secrets to your environment Keep BROADNET_TOKEN in an environment variable or your secrets manager, never in source control or client-side code. Replace it immediately if it ever leaks.
- 02 Retry safely and watch your balance Retry network errors and 5xx responses with exponential backoff. Every accepted send returns a message ID, so store it and check delivery status rather than re-sending blindly. Bulk sends report your remaining credits in every response.
- 03 Pin the SDK version Pin @broadnet/cpaas-sdk to an exact version in package.json and upgrade deliberately. API paths carry no version prefix, so follow changes in the changelog and the OpenAPI spec.
- 04 Handle errors by status code Errors return an HTTP status code and an ExceptionResponse body with status, error, message, errorCode and requestUri. Fix 400 and 401 errors; retry 5xx errors with backoff.
- 05 Decide your retry policy Default: exponential backoff on 5xx and network errors, never on 4xx. After a timeout, check delivery status before you resend, because the first request may already have been accepted.

Test it

Run the checklist below against your code. When every box is ticked, your integration is ready for production as soon as approval is done.

step 5.broadnet.me

Built for production from day one

## The same code paths handle 300M+ messages a day.

Your test traffic isn't a mock. Every request, key, and webhook you wired up in the steps above runs through the same routing, billing, and compliance stack that carries our enterprise traffic — audited annually under the certifications below.

ISO 27001

Information security

ISO 9001

Quality management

ISO 22301

Business continuity

GDPR

Aligned · EU data residency

HIPAA

Aligned · BAA on request

SOC 2

Type II · annual audit

EU + UAE data residency 99.99% API uptime SLA One base URL for test and production Delivery-status webhooks

Questions buyers ask

## Quickstart questions

Send POST https://api.broadnet.me/sms/sendSms with an Authorization: Bearer header and a JSON body of senderId, destinationNumber, message and messageType (TEXT or UNICODE). The response is the message ID. The legacy HTTP API under /websmpp is still available for SMPP-era integrations.

Request test access at /signup, and a BroadNet engineer replies within one business day with your test credentials: the access token you send in an Authorization: Bearer header, and where to send test traffic. Your first test message can go out about five minutes after you receive them.

One official SDK: @broadnet/cpaas-sdk for TypeScript and Node.js, on npm. In any other language, call the REST API directly over HTTPS, or generate a client from the OpenAPI spec (/developers/openapi.yaml).

Question not here? [Ask our engineering team](https://www.broadnet.me/contact)

Test access · reply within one business day

## Five steps down. One key to go.

Test against your own verified numbers, ship the integration, then promote to live traffic from the same console. Same SDK, same endpoints, same SLAs that carry 300M+ messages a day.

[Request test access](https://www.broadnet.me/signup) [Full API reference](https://www.broadnet.me/developers/api)

$ curl -X POST https://api.broadnet.me/sms/sendSms -H "Authorization: Bearer $BROADNET_TOKEN" -d '{ "senderId": "…", "destinationNumber": "…", "message": "…", "messageType": "TEXT" }'
