# HTTP OUT trunk

An **HTTP OUT trunk** lets your application send outbound SMS from your DID
numbers through the DIDWW Outbound SMS API. Your application submits each
message to DIDWW over HTTPS. When a **Callback URL** is configured on the
trunk, DIDWW sends status callbacks for the message to that URL. This enables
direct integration with your own systems or third-party services.

The trunk provides the API credentials, the IP addresses allowed to submit
requests, and the DID numbers that can be used as the sender ID. It handles
outbound messages only. An HTTP OUT trunk is not assigned to DID numbers and
cannot be added to [SMS trunk groups](../trunk-groups/sms-trunk-groups.html). To receive inbound SMS, use
an inbound trunk such as an [HTTP IN trunk](../http-in/http-in-trunk.html).

## How HTTP OUT trunks work

Your application sends each message to the Outbound SMS API and authenticates
with the trunk's credentials. DIDWW accepts the request only if the
credentials are valid and, when **Allowed IP addresses** is set, the request
comes from an allowed IP address. DIDWW then processes the message, checks
that its source address is allowed on the trunk, and routes it to the
destination carrier. When a **Callback URL** is configured, DIDWW sends a
status callback to it after processing.

```
        %%{init: {
  "theme": "base",
  "themeVariables": {
    "fontSize": "14px",
    "primaryColor": "#e0f2fe",
    "primaryBorderColor": "#38bdf8",
    "primaryTextColor": "#1f2d3d",
    "secondaryColor": "#ccfbf1",
    "secondaryBorderColor": "#2dd4bf",
    "secondaryTextColor": "#1f2d3d",
    "lineColor": "#0066cc",
    "textColor": "#1f2d3d",
    "nodeTextColor": "#1f2d3d",
    "edgeLabelBackground": "#ffffff"
  }
}}%%

flowchart LR

    app["Your application"] --> |submits message with trunk credentials| api["DIDWW Outbound SMS API"]
    api --> |routes message| carrier["Destination carrier"]
    carrier --> recipient["Recipient"]
    api --> |status callbacks, if configured| callback["Your Callback URL"]

    classDef endpoint fill:#e0f2fe,stroke:#0066cc,color:#1f2d3d,stroke-width:1.5px
    classDef process fill:#ccfbf1,stroke:#2dd4bf,color:#1f2d3d,stroke-width:1.5px

    class app,recipient,callback endpoint
    class api,carrier process

    linkStyle default stroke:#0066cc,stroke-width:1.5px
```

The API response to your request confirms only that DIDWW accepted the
message for processing. It is not proof of delivery. To receive the
processing result, configure a **Callback URL**. To also receive the final
delivery status, enable DLR events. See
[Status callbacks and delivery receipts](../../outbound-sms-api/status-callbacks-and-delivery-receipts.html). Messages sent
through the trunk also appear in [Outbound SMS logs](../../../logs-analytics/sms-logs/outbound-logs.html#outbound-logs).

You can also send a single message through the trunk from the DIDWW User
Panel, for example to test it. Production traffic is sent through the
[Outbound SMS API](../../outbound-sms-api/index.html).

## Credentials and access

DIDWW generates a username and password for each HTTP OUT trunk. Your
application sends them with every API request using HTTP Basic
Authentication. Regenerating the credentials replaces both the username and
the password immediately, and every integration that uses the old credentials
must be updated.

**Allowed IP addresses** adds a second layer of protection. When the field
contains IP addresses, the API rejects requests from any other source. When it
is empty, requests from all IP addresses are allowed. For both layers, see
[Authentication](../../outbound-sms-api/outbound-sms-api-reference.html#sms-out-spec-authentication).

The trunk credentials list one API endpoint for each DIDWW location, **US,
NY** and **NL, AMS**. HTTP OUT trunks have no location setting. To use a
location, send your requests to its endpoint. API requests are also subject to
a [rate limit](../../outbound-sms-api/outbound-sms-api-reference.html#sms-out-spec-rate-limit).

## Sender IDs

The sender ID, also called the source address, depends on the type of
message:

- **P2P messages** use one of your DID numbers as the sender ID. By default,
  all DIDs with Outbound P2P SMS enabled in your account can be used. In
  **Source Address Settings**, you can limit the trunk to specific DID
  numbers. See [P2P Outbound SMS access](../../how-sms-service-works.html#how-sms-service-works-p2p-access).
- **A2P messages** use a verified Sender ID, such as an Alphanumeric Sender
  ID. Associate an active [Sender ID Verification](../../sender-id-verifications/index.html) with the HTTP OUT trunk.

If a message uses a source address that the trunk does not allow, DIDWW does
not send it. When a **Callback URL** is configured, the status callback
reports the error. See [Source address
settings](http-out-trunk-settings-reference.html#user-panel-sms-http-out-trunk-source-address-settings).

---

## Get started

Create a trunk, get its credentials, and submit your first message.

**Create an HTTP OUT trunk**

Set the trunk name, Callback URL, allowed IP addresses, and source
addresses.

[Create an HTTP OUT trunk](how-to-guides/create-http-out-trunk.html)

**View HTTP OUT trunk credentials**

Get the username, password, and API endpoints for your application.

[View HTTP OUT trunk credentials](how-to-guides/view-http-out-trunk-credentials.html)

**Send your first SMS with the API**

Submit a message from your application with the trunk credentials.

[Send your first SMS with the API](../../outbound-sms-api/send-your-first-sms-with-api.html)

## Manage trunks and credentials

Test sending, replace credentials, and keep trunk settings up to date.

**Send SMS from the User Panel**

Send a test or one-time message through an HTTP OUT trunk.

[Send SMS from the User Panel using an HTTP OUT trunk](how-to-guides/send-sms-using-http-out-trunk.html)

**Regenerate HTTP OUT trunk credentials**

Replace the trunk credentials and update every integration that uses
them.

[Regenerate HTTP OUT trunk credentials](how-to-guides/regenerate-http-out-trunk-credentials.html)

**Manage HTTP OUT trunks**

Edit trunk settings or delete trunks that are no longer required.

[Manage HTTP OUT trunks](how-to-guides/manage-http-out-trunk.html)

## Technical references

**HTTP OUT trunk settings reference**

Find field definitions, defaults, formats, and the connection details
of HTTP OUT trunks.

[HTTP OUT trunk settings reference](http-out-trunk-settings-reference.html)

**Outbound SMS API reference**

Look up request formats, attributes, and responses for sending SMS.

[Outbound SMS API reference](../../outbound-sms-api/outbound-sms-api-reference.html)

**Status callbacks and delivery receipts**

Understand the callbacks that DIDWW sends to your Callback URL.

[Status callbacks and delivery receipts](../../outbound-sms-api/status-callbacks-and-delivery-receipts.html)

## Related resources

Review sent messages and prepare Sender IDs and message content.

**Outbound SMS logs**

Review the status, fragments, and charges of sent messages.

[Outbound SMS Logs](../../../logs-analytics/sms-logs/outbound-logs.html#outbound-logs)

**Sender ID Verifications**

Verify Sender IDs for application-to-person (A2P) messaging.

[Sender ID Verifications](../../sender-id-verifications/index.html)

**SMS encoding reference**

Look up encoding limits, concatenation, and fragment billing.

[SMS encoding reference](../technical-data/sms-encoding-reference.html#sms-encoding-reference)
