> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bizbionic.com/llms.txt
> Use this file to discover all available pages before exploring further.

# partner.send

> Send SMS for an end-customer via external_ref. idempotency_key required.
**Wire format (production):** Always call `POST /rpc` with a JSON-RPC 2.0 body. The path `/a2a/partner.send` is **documentation-only** so each skill appears in the API Reference.
```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "partner.send",
  "params": {
    "external_ref": "store_4821",
    "to": "+14155550100",
    "message": "Your order is ready.",
    "idempotency_key": "order_ready_99",
    "consent_status": "express",
    "consent_source": "pos_checkout"
  }
}
```
**Auth scope:** partner

Never pass tenant_id or child_tenant_id. Resolution is mapping-only via external_ref.



## OpenAPI

````yaml /openapi/a2a.json post /a2a/partner/send
openapi: 3.1.0
info:
  title: BizBionic A2A Skills
  version: 2.0.0
  description: >
    Customer-facing catalog of BizBionic **A2A skills** (JSON-RPC 2.0).


    **Real endpoint:** `POST https://app.bizbionic.com/rpc` with header
    `Authorization: Bearer bb_…`.


    Paths under `/a2a/...` are documentation-only — not REST routes on the
    Worker.


    Discover: `GET /.well-known/agent.json`.


    Docs: https://docs.bizbionic.com
  contact:
    name: BizBionic
    url: https://docs.bizbionic.com
servers:
  - url: https://app.bizbionic.com
    description: Production
security:
  - bearerAuth: []
tags:
  - name: agent
    description: A2A skills in the `agent.*` module
  - name: ai
    description: A2A skills in the `ai.*` module
  - name: analytics
    description: A2A skills in the `analytics.*` module
  - name: automation
    description: A2A skills in the `automation.*` module
  - name: billing
    description: A2A skills in the `billing.*` module
  - name: campaigns
    description: A2A skills in the `campaigns.*` module
  - name: command
    description: A2A skills in the `command.*` module
  - name: compliance
    description: A2A skills in the `compliance.*` module
  - name: contacts
    description: A2A skills in the `contacts.*` module
  - name: dashboard
    description: A2A skills in the `dashboard.*` module
  - name: hygiene
    description: A2A skills in the `hygiene.*` module
  - name: inbox
    description: A2A skills in the `inbox.*` module
  - name: insights
    description: A2A skills in the `insights.*` module
  - name: journeys
    description: A2A skills in the `journeys.*` module
  - name: lists
    description: A2A skills in the `lists.*` module
  - name: messages
    description: A2A skills in the `messages.*` module
  - name: partner
    description: A2A skills in the `partner.*` module
  - name: segments
    description: A2A skills in the `segments.*` module
  - name: sources
    description: A2A skills in the `sources.*` module
  - name: tags
    description: A2A skills in the `tags.*` module
  - name: templates
    description: A2A skills in the `templates.*` module
paths:
  /a2a/partner/send:
    post:
      tags:
        - partner
      summary: partner.send
      description: >-
        Send SMS for an end-customer via external_ref. idempotency_key required.

        **Wire format (production):** Always call `POST /rpc` with a JSON-RPC
        2.0 body. The path `/a2a/partner.send` is **documentation-only** so each
        skill appears in the API Reference.

        ```json

        {
          "jsonrpc": "2.0",
          "id": 1,
          "method": "partner.send",
          "params": {
            "external_ref": "store_4821",
            "to": "+14155550100",
            "message": "Your order is ready.",
            "idempotency_key": "order_ready_99",
            "consent_status": "express",
            "consent_source": "pos_checkout"
          }
        }

        ```

        **Auth scope:** partner


        Never pass tenant_id or child_tenant_id. Resolution is mapping-only via
        external_ref.
      operationId: partner_send
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - jsonrpc
                - method
              properties:
                jsonrpc:
                  type: string
                  enum:
                    - '2.0'
                  default: '2.0'
                id:
                  oneOf:
                    - type: string
                    - type: number
                    - type: 'null'
                method:
                  type: string
                  const: partner.send
                params:
                  type: object
                  required:
                    - external_ref
                    - to
                    - message
                    - idempotency_key
                  properties:
                    external_ref:
                      type: string
                    to:
                      type: string
                    message:
                      type: string
                    idempotency_key:
                      type: string
                    consent_status:
                      type: string
                    consent_source:
                      type: string
                    campaign_id:
                      type: string
            example:
              jsonrpc: '2.0'
              id: 1
              method: partner.send
              params:
                external_ref: store_4821
                to: '+14155550100'
                message: Your order is ready.
                idempotency_key: order_ready_99
                consent_status: express
                consent_source: pos_checkout
      responses:
        '200':
          description: JSON-RPC success envelope
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    enum:
                      - '2.0'
                  id: {}
                  result:
                    description: Skill result object
        '401':
          description: Unauthorized — missing or invalid API key
        default:
          description: JSON-RPC error envelope
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id: {}
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data:
                        type: object
                        additionalProperties: true
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: bb_
      description: 'Tenant or partner API key. Alternate header: X-API-Key.'

````