Developer Hub

Build with OneSend2U

RESTful API. OpenAPI 3.0 spec. Sandbox environment. Send your first message in under 5 minutes.

curl -X POST https://api.onesend2u.com/api/app/notifications/send \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "transactionId": "welcome-001",
    "application": "demo",
    "region": "ES",
    "language": "es",
    "notificationType": "onboard",
    "notificationSubtype": "welcome",
    "recipients": [{ "channel": "sms", "recipient": "+34612345678" }],
    "templateVariables": [{ "firstName": "Alex" }]
  }'
var client = new OneSend2UClient(new OneSend2UClientOptions {
  BaseUrl = "https://api.onesend2u.com",
  ApiKey = "YOUR_API_KEY",
  TenantId = "YOUR_TENANT_ID"
});
await client.Notifications.SendAsync(new SendNotificationRequest {
  TransactionId = "welcome-001",
  Application = "demo",
  Region = "ES",
  Language = "es",
  NotificationType = "onboard",
  NotificationSubtype = "welcome",
  Recipients = [new() { Channel = Channel.Sms, Recipient = "+34612345678" }],
  TemplateVariables = [new() { ["firstName"] = "Alex" }]
});
// Node.js SDK — coming soon. Use fetch in the meantime:
await fetch('https://api.onesend2u.com/api/app/notifications/send', {
  method: 'POST',
  headers: { 'X-API-Key': 'YOUR_API_KEY', 'Content-Type': 'application/json' },
  body: JSON.stringify({
    transactionId: 'welcome-001',
    application: 'demo',
    region: 'ES', language: 'es',
    notificationType: 'onboard', notificationSubtype: 'welcome',
    recipients: [{ channel: 'sms', recipient: '+34612345678' }],
    templateVariables: [{ firstName: 'Alex' }]
  })
});
# Python SDK — coming soon. Use requests in the meantime:
import requests
requests.post(
  "https://api.onesend2u.com/api/app/notifications/send",
  headers={"X-API-Key": "YOUR_API_KEY"},
  json={
    "transactionId": "welcome-001",
    "application": "demo",
    "region": "ES", "language": "es",
    "notificationType": "onboard", "notificationSubtype": "welcome",
    "recipients": [{"channel": "sms", "recipient": "+34612345678"}],
    "templateVariables": [{"firstName": "Alex"}]
  }
)

Built for developers

A modern developer experience: typed SDK, signed webhooks, queryable API logs and a sandbox in the works — so you can focus on your product, not on our plumbing.

Type-safe SDK

Compile-time validation, IntelliSense and no HTTP boilerplate.

Rate-limit feedback

Typed rate-limit exceptions surface remaining quota and retry-after, so your backoff stays honest.

Signed webhooks

Every webhook delivery is signed with HMAC-SHA256. Validate it with the SDK helper in one line.

End-to-end traceability

Every send returns a transaction ID that ties together the request, the API response and the delivery on each channel.

Coming soon

Sandbox

Test end-to-end without real carriers or charges.

Get started in 3 steps

From sign-up to your first message in under 5 minutes.

Get your API key

Sign up for an OneSend2U account and generate your API key from the portal. Your key grants access to all endpoints with role-based permissions.

Configure a provider

Connect your preferred messaging provider (Twilio, Infobip, or SMTP). Multi-provider routing is built in for maximum flexibility.

Send a message

Make your first API call to send an SMS, Email, or WhatsApp message. Use templates with variables for dynamic, personalized content.

API Reference

Core endpoints for the OneSend2U API. All endpoints authenticate via an X-API-Key header and support versioning through the api-version query string.

Method Endpoint Description
POST /api/app/notifications/send Send a notification (SMS, Email, WhatsApp, etc.)
GET /api/app/notifications List notifications with filtering and pagination
GET /api/app/notifications/{id} Get notification details and delivery status
GET /api/app/messages List messages (per-channel deliveries with status)
GET /api/app/templates List templates
POST /api/app/webhooks Register a webhook for event callbacks
GET /api/app/notification-api-logs Inspect API call logs by transaction ID

Real-time webhooks

Get notified the moment a message changes state — delivery, failure or user action.

  • Delivery confirmations in real time
  • Provider-reported state codes for delivery diagnosis
  • HMAC-SHA256 signature verification
  • Automatic retries with exponential backoff
// Webhook POST payload example
// HTTP POST to your registered URL
// Headers:
// X-OneSend2U-Webhook-Id: <guid>
// X-OneSend2U-Webhook-Timestamp: <unix-seconds>
// X-OneSend2U-Webhook-Signature: v1=<hmac-sha256>
{
  "transactionId": "tx-abc-001",
  "regionCode": "ES",
  "applicationCode": "shop",
  "notificationTypeCode": "orders",
  "notificationSubtypeCode": "confirmation",
  "channelTypeCode": "sms",
  "messageProviderStateCode": "delivered",
  "MessageProcessState": "Delivered"
}

SDKs & libraries

Integrate with the tools and languages you already use.

Available now

  • .NET SDK NuGet

    OneSend2U.Sdk NuGet package with strongly-typed clients, async/await, DI integration, Polly retry policies, and built-in webhook signature verification.

    dotnet add package OneSend2U.Sdk
  • Interactive API explorer

    Browse endpoints and schemas in your browser, with optional try-it-out using your own API key.

  • OpenAPI 3.0 specification

    Download the full spec to generate client code in any language using tools like NSwag, AutoRest, or openapi-generator.

  • GitHub organization

    Browse our SDK repositories, sample apps and reference integrations.

Coming soon

  • Node.js SDK

    npm package with TypeScript definitions and Promise-based API.

  • Python SDK

    pip package with async support and comprehensive error handling.

  • Postman collection

    Pre-configured collection with environment variables and example requests.

Sandbox environment Coming soon

Test your integration risk-free before going to production.

Full API parity

Sandbox mirrors the production API exactly. Your integration code works in both environments without changes.

Separate API credentials

Sandbox uses its own API credentials, so test traffic never fires from your production keys.

Templates without provider approval

Iterate on templates in sandbox without waiting for provider approval (Meta WhatsApp, etc.). Test your copy and rendering immediately.

No charges

Send unlimited test messages at no cost. Sandbox messages are simulated and never reach real recipients.

Error simulation

Trigger specific error scenarios (invalid number, provider timeout, rate limit) to test your error handling.

Webhook testing

Receive simulated webhook callbacks for all delivery statuses to validate your event handlers.