← Tool reference

add_transaction_co_buyer

Add a co-buyer

Add a co-buyer to a transaction that already holds a signed offer: a partner who joins the purchase after ratification, on the loan and on title. Ohvii records them as the second buyer, so every document from here (the addendum adding them, contingency removals, the verification of condition) is signed by both, with the co-buyer invited by email to sign after the buyer; nothing already sealed changes, and the seller's addendum adding the purchaser is what brings them into the contract. One co-buyer per transaction, and no tool removes or replaces one; refused while a co-buyer signature is pending, on an ended transaction, or on an unsigned workspace (add them on the offer form there). Call it only when the buyer named the person and their email in this conversation; a repeat for the same email returns the co-buyer already added, the phone is not stored, and the name goes through Ohvii's wording check. The email stays unverified until prepare_contact_verification and confirm_contact_verification (party co_buyer).

Effect
Consequential change
Required scopes
workspace:write
Workflow stages
closing, offer, transaction
Data classes
contacts, offer, transaction
Operation cost
3 weighted units; additional domain limits may apply.
Configurations
Standard, Buyer UI v2
Muse proposal
Sensitive write. Changes or removes a record, recipient, or permission the buyer relies on. Meta makes the final classification during review.

Buyer approval and signing controls apply in addition to the scopes above. Read error and retry guidance before implementing recovery.

Input and output contracts

Returns structured content and a JSON text content block. Live discovery may compact a large output schema; execution validates the full contract below.

Input fields

Required applies within the containing object. Optional fields can be omitted; null is accepted only where listed. Field descriptions and constraints come from the source schema. The raw schema remains the complete contract.

FieldRequiredMeaning and constraints
coBuyerobjectYes

Extra fields are not allowed.

coBuyer: nested contract
FieldRequiredMeaning and constraints
emailstringYes

Maximum characters: 320.

Pattern validation applies; see the raw schema.

namestringYes

Minimum characters: 1.

Maximum characters: 200.

phonestringNo

Maximum characters: 40.

mutationIdstringYes

A fresh random UUID (v4) you generate for this mutation. Send the same UUID only to retry the identical mutation; never a readable label.

Format: uuid.

Pattern validation applies; see the raw schema.

workspaceIdstringYes

Pattern validation applies; see the raw schema.

Output fields

Required applies within the containing object. Optional fields can be omitted; null is accepted only where listed. Field descriptions and constraints come from the source schema. The raw schema remains the complete contract.

FieldRequiredMeaning and constraints
buyersarray<object>Yes

Minimum items: 1.

Maximum items: 2.

buyers: nested contract
Array item contract

Extra fields are not allowed.

FieldRequiredMeaning and constraints
emailstringYes

Maximum characters: 320.

Pattern validation applies; see the raw schema.

namestringYes

Maximum characters: 200.

rolestringYes

Allowed: "primary", "co_buyer".

coBuyerobjectYes

Extra fields are not allowed.

coBuyer: nested contract
FieldRequiredMeaning and constraints
emailstringYes

Maximum characters: 320.

Pattern validation applies; see the raw schema.

namestringYes

Maximum characters: 200.

mutationIdstringYes

A fresh random UUID (v4) you generate for this mutation. Send the same UUID only to retry the identical mutation; never a readable label.

Format: uuid.

Pattern validation applies; see the raw schema.

replayedbooleanYesNo additional description in the contract.
schemaVersionstringYes

Must be "1".

workspaceIdstringYes

Pattern validation applies; see the raw schema.

Raw input schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "coBuyer": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "maxLength": 320,
          "pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$"
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "phone": {
          "type": "string",
          "maxLength": 40
        }
      },
      "required": [
        "email",
        "name"
      ],
      "additionalProperties": false
    },
    "mutationId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "A fresh random UUID (v4) you generate for this mutation. Send the same UUID only to retry the identical mutation; never a readable label."
    },
    "workspaceId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,200}$"
    }
  },
  "required": [
    "coBuyer",
    "mutationId",
    "workspaceId"
  ],
  "additionalProperties": false
}
Full output schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "buyers": {
      "minItems": 1,
      "maxItems": 2,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "maxLength": 320,
            "pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$"
          },
          "name": {
            "type": "string",
            "maxLength": 200
          },
          "role": {
            "type": "string",
            "enum": [
              "primary",
              "co_buyer"
            ]
          }
        },
        "required": [
          "email",
          "name",
          "role"
        ],
        "additionalProperties": false
      }
    },
    "coBuyer": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "maxLength": 320,
          "pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$"
        },
        "name": {
          "type": "string",
          "maxLength": 200
        }
      },
      "required": [
        "email",
        "name"
      ],
      "additionalProperties": false
    },
    "mutationId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "A fresh random UUID (v4) you generate for this mutation. Send the same UUID only to retry the identical mutation; never a readable label."
    },
    "replayed": {
      "type": "boolean"
    },
    "schemaVersion": {
      "type": "string",
      "const": "1"
    },
    "workspaceId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]{1,200}$"
    }
  },
  "required": [
    "buyers",
    "coBuyer",
    "mutationId",
    "replayed",
    "schemaVersion",
    "workspaceId"
  ],
  "additionalProperties": false
}
Tool annotations
{
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false,
  "readOnlyHint": false
}

Reference 00e5441a095c7e20. Download the full catalog.