Welcome
SigNet API Documentation
SigNet API Reference
Complete reference for integrating with the SigNet messaging platform
Overview
The SigNet API provides a comprehensive platform for SMS messaging and phone number management. This RESTful API allows you to send messages, manage phone numbers, and handle billing operations programmatically.
Base URL
https://api.signet.callocean.comQuick Start
1. Get your credentials
Visit the API Keys page to get your authentication credentials.
2. Authenticate
curl -X POST https://api.signet.callocean.com/login \
-H "Content-Type: application/json" \
-d '{"email": "your-email", "password": "your-password"}'3. Use the JWT token
curl -X GET https://api.signet.callocean.com/billing/balance \
-H "Authorization: Bearer YOUR_JWT_TOKEN"Authentication
SigNet API uses JWT (JSON Web Tokens) for authentication. All API requests must include a valid JWT token in the Authorization header.
Login
POST /login
Content-Type: application/json
{
"email": "your-email@example.com",
"password": "your-password"
}Using the Token
Authorization: Bearer YOUR_JWT_TOKENHealth Check
Check the operational status of the SigNet API.
API Health Status
GET /health
Content-Type: application/json
Response:
{
"status": "OK"
}Account Management
Create and manage user accounts on the SigNet platform.
Create Account
POST /accounts
Content-Type: application/json
{
"email": "user@example.com",
"password": "YourStrongP@ssword1!",
"name": "User Name"
}
Response:
{
"accountId": "550e8400-e29b-41d4-a716-446655440000"
}Password Requirements: Minimum 8 characters, 1 uppercase, 1 lowercase, 1 number, 1 symbol.
Messages
Send and manage SMS messages through the SigNet platform.
Send Message
POST /messages
Authorization: Bearer YOUR_JWT_TOKEN
Content-Type: application/json
{
"from": "+1234567890",
"to": "+0987654321",
"body": "Hello from SigNet!"
}Send Bulk Messages
Send multiple SMS messages in a single request. Supports up to 10,000 messages with synchronous balance validation and asynchronous processing.
Broadcast to Multiple Recipients
POST /messages/bulk
Authorization: Bearer YOUR_JWT_TOKEN
Content-Type: application/json
{
"recipients": ["+15551234567", "+15559876543", "+15555555555"],
"from": "+15557654321",
"body": "Broadcast message to all recipients"
}
Response (202 Accepted):
{
"message": "Bulk SMS request accepted for processing",
"messageCount": 3,
"estimatedCost": 9,
"status": "processing"
}Individual Messages Array
POST /messages/bulk
Authorization: Bearer YOUR_JWT_TOKEN
Content-Type: application/json
{
"messages": [
{
"to": "+15551234567",
"from": "+15557654321",
"body": "Hello John!"
},
{
"to": "+15559876543",
"from": "+15557654321",
"body": "Hello Jane!"
}
]
}Validation:
• Maximum 10,000 messages per request
• Synchronous balance validation before processing
• All "from" numbers must be owned by your account
• Messages processed asynchronously through existing SMS pipeline
• Track individual delivery status through message endpoints
Insufficient Funds Response (400):
{ "message": "Insufficient funds", "required": 5000, "available": 3000,
"shortfall": 2000, "estimatedMessages": 1000 }
Phone Numbers
Search, purchase, and manage phone numbers for your messaging needs.
Search Available Numbers
GET /phonenumbers/search?state=CA&areaCode=555&limit=10&tier=BASIC
Authorization: Bearer YOUR_JWT_TOKENList Owned Numbers
GET /phonenumbers
Authorization: Bearer YOUR_JWT_TOKEN
Response:
{
"phoneNumbers": [
{
"phoneNumber": "+15551234567",
"status": "active",
"tier": "BASIC"
}
],
"hasMore": false
}Get Number Details
GET /phonenumbers/%2B15551234567
Authorization: Bearer YOUR_JWT_TOKEN
Response:
{
"phoneNumber": "+15551234567",
"accountId": "550e8400-e29b-41d4-a716-446655440000",
"status": "active",
"tier": "BASIC",
"forwardingWebhookUrl": "https://your.webhook/handler"
}Purchase Number
POST /phonenumbers/purchase
Authorization: Bearer YOUR_JWT_TOKEN
Content-Type: application/json
{
"phoneNumber": "+15551234567",
"tier": "BASIC"
}Delete/Release Number
POST /phonenumbers/delete
Authorization: Bearer YOUR_JWT_TOKEN
Content-Type: application/json
{
"phoneNumber": "+15551234567"
}
Response:
{
"message": "Phone number +15551234567 has been successfully deleted."
}Update Forwarding Settings
PUT /phonenumbers/%2B15551234567/forwarding
Authorization: Bearer YOUR_JWT_TOKEN
Content-Type: application/json
{
"webhookUrl": "https://your.webhook/handler"
}Billing
Manage billing, payments, and usage tracking.
Add Payment Method
Adds a payment method (credit card) to the user's payment profile with comprehensive validation and verification. Sets billingStatus to 'active' on success.
POST /billing/add-card
Authorization: Bearer YOUR_JWT_TOKEN
Content-Type: application/json
{
"cardNumber": "4242424242424242",
"expMonth": 12,
"expYear": 2030,
"cvc": "123",
"cardholderName": "John Doe",
"email": "john@example.com",
"phone": "5551234567",
"billingAddress": {
"line1": "123 Main St",
"line2": "Apt 4B",
"city": "New York",
"state": "NY",
"postal_code": "10001",
"country": "US"
}
}
Response:
{
"message": "Payment method added successfully."
}Validation Rules:
• cardNumber: 13-19 digits
• expMonth: 1-12
• expYear: Current year or future
• cvc: 3-4 digits
• phone: Exactly 10 digits (gets +1 prefix)
• postal_code: Exactly 5 digits
• state: 2-character state code
• All fields are required
Card Verification: Performs CVC check, address verification (AVS), and ZIP code validation before saving. Ensure PCI DSS compliance when handling raw card details.
Update Payment Method
Updates the user's payment method with a new credit card. Performs the same comprehensive validation and verification as add-card. Automatically replaces the current default payment method.
PUT /billing/update-card
Authorization: Bearer YOUR_JWT_TOKEN
Content-Type: application/json
{
"cardNumber": "4000056655665556",
"expMonth": 8,
"expYear": 2028,
"cvc": "456",
"cardholderName": "Jane Smith",
"email": "jane@example.com",
"phone": "5559876543",
"billingAddress": {
"line1": "456 Oak Ave",
"line2": "Suite 200",
"city": "Los Angeles",
"state": "CA",
"postal_code": "90210",
"country": "US"
}
}
Response:
{
"message": "Card updated successfully."
}Process:
1. Validates new card details
2. Creates and verifies new payment method
3. Sets as new default payment method
4. Removes old payment method from Stripe
5. Updates account records
Setup Payment Intent
POST /billing/setup-intent
Authorization: Bearer YOUR_JWT_TOKEN
Response:
{
"clientSecret": "seti_1234567890abcdef_secret_xyz"
}Attach Payment Method
POST /billing/attach-payment-method
Authorization: Bearer YOUR_JWT_TOKEN
Content-Type: application/json
{
"paymentMethodId": "pm_1234567890abcdef"
}List Payment Methods
GET /billing/payment-methods
Authorization: Bearer YOUR_JWT_TOKEN
Response:
{
"paymentMethods": [
{
"id": "pm_1234567890abcdef",
"brand": "visa",
"last4": "4242",
"expMonth": 12,
"expYear": 2030,
"isDefault": true
}
]
}Delete Payment Method
DELETE /billing/payment-methods
Authorization: Bearer YOUR_JWT_TOKEN
Content-Type: application/json
{
"paymentMethodId": "pm_1234567890abcdef"
}Note: You cannot delete the default payment method. Set another card as default first.
Top Up Account
POST /billing/top-up
Authorization: Bearer YOUR_JWT_TOKEN
Content-Type: application/json
{
"amount": 1000
}
Response:
{
"message": "Successfully added $10.00 to your account",
"newBalance": 2500
}Amount: Specified in cents (e.g., 1000 = $10.00)
Get Usage History
GET /billing/usage?limit=10&type=message
Authorization: Bearer YOUR_JWT_TOKEN
Response:
{
"transactions": [
{
"id": "txn_1234567890",
"type": "message",
"amount": -2,
"description": "SMS to +15551234567",
"timestamp": "2024-01-15T10:30:00Z"
}
],
"hasMore": false
}Auto-Replenishment Settings
Configure automatic top-ups when your balance falls below a threshold.
Get Auto-Replenishment Settings
GET /billing/auto-replenish
Authorization: Bearer YOUR_JWT_TOKEN
Response:
{
"enabled": true,
"amount": 2000,
"threshold": 500
}Update Auto-Replenishment Settings
PUT /billing/auto-replenish
Authorization: Bearer YOUR_JWT_TOKEN
Content-Type: application/json
{
"enabled": true,
"amount": 2000,
"threshold": 500
}
Response:
{
"message": "Auto-replenish settings updated",
"enabled": true,
"amount": 2000,
"threshold": 500
}Parameters:
• enabled: Boolean to enable/disable auto-replenishment
• amount: Top-up amount in cents ($5.00-$100.00 = 500-10000)
• threshold: Balance threshold in cents ($0.00-$20.00 = 0-2000)
Note: Requires a default payment method to be configured.
Webhooks
Configure webhooks to receive real-time notifications about messages and events.
Configure Webhook
POST /numbers/+15551234567/forwarding
Authorization: Bearer YOUR_JWT_TOKEN
Content-Type: application/json
{
"webhookUrl": "https://your-app.com/webhook",
"webhookSecret": "your-secret-key"
}