AgentMessage
Brands

Register a 10DLC brand

POST
/v1/brands

Registers a new 10DLC brand for your organization and returns 202 Accepted with the brand resource. The brand starts in PENDING status; its registry id and identity status are populated asynchronously as carrier registration completes.

Brand limits depend on your organization mode. By default, an organization can register a single brand (its own); attempting a second returns 422 RESELLER_REQUIRED. To register brands on behalf of other companies, enable that mode via PATCH /v1/organization.

Submitting a brand incurs a one-time $5.00 registration charge, debited from your wallet in the same transaction that creates the brand. If your wallet cannot cover it, the request returns 402 INSUFFICIENT_CREDIT and no brand is created. The charge is not refundable if carrier registration is later rejected; a corrected re-submission is a fresh $5.00 charge.

Gating is evaluated before any change is made, so a rejected request leaves no brand behind.

Requires the brands:write scope.

AuthorizationBearer <token>

Authenticate by sending your API key as a bearer token: Authorization: Bearer am_live_.... Every request is automatically scoped to the organization that owns the key and to the scopes granted to that key.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/brands" \  -H "Content-Type: application/json" \  -d '{    "entity_type": "PRIVATE_PROFIT",    "brand_relationship": "BASIC_ACCOUNT",    "display_name": "string",    "country": "st"  }'
{
  "success": true,
  "error": {
    "code": "string",
    "message": "string",
    "request_id": "string",
    "details": {
      "property1": "string",
      "property2": "string"
    }
  },
  "meta": {
    "total": 0,
    "limit": 0,
    "offset": 0,
    "next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNi0wNC0yNlQxMjowMDowMFoiLCJpZCI6IjAxOTAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMSJ9",
    "last_event_at": "2019-08-24T14:15:22Z"
  },
  "data": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",
    "tcr_brand_id": "string",
    "reference_id": "string",
    "status": "PENDING",
    "identity_status": "SELF_DECLARED",
    "entity_type": "PRIVATE_PROFIT",
    "brand_relationship": "BASIC_ACCOUNT",
    "display_name": "string",
    "company_name": "string",
    "first_name": "string",
    "last_name": "string",
    "ein": "string",
    "ein_issuing_country": "string",
    "email": "user@example.com",
    "phone": "string",
    "mobile_phone": "string",
    "business_contact_email": "user@example.com",
    "street": "string",
    "city": "string",
    "state": "string",
    "postal_code": "string",
    "country": "st",
    "stock_symbol": "string",
    "stock_exchange": "string",
    "vertical": "string",
    "website": "http://example.com",
    "submitted_at": "2019-08-24T14:15:22Z",
    "verified_at": "2019-08-24T14:15:22Z",
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z"
  }
}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "authentication failed",
    "request_id": "01JTBQH2FZ8K1RXC0WJ4Z9P3VM"
  }
}
{
  "success": false,
  "error": {
    "code": "INSUFFICIENT_CREDIT",
    "message": "insufficient credit",
    "request_id": "01JTBQH2FZ8K1RXC0WJ4Z9P3VM"
  }
}
{
  "success": false,
  "error": {
    "code": "FORBIDDEN",
    "message": "missing required scope",
    "request_id": "01JTBQH2FZ8K1RXC0WJ4Z9P3VM"
  }
}
{
  "success": false,
  "error": {
    "code": "VALIDATION_FAILED",
    "message": "validation failed",
    "request_id": "01JTBQH2FZ8K1RXC0WJ4Z9P3VM",
    "details": {
      "to": "must be E.164",
      "body": "must be 1..1600 chars"
    }
  }
}