Accept ownership
Módulo Platform
POST/ownership-transfers/{id}/acceptownershipTransfers.accept
The member the org was offered to accepts with step-up, so a second factor (app.accept_ownership_transfer): they become an Owner, then the old Owner becomes an Admin (or leaves) and loses the Owner role, so the org keeps an Owner at every step (invariant 4). An answered, withdrawn or lapsed offer answers 422. Requires `Idempotency-Key`; a replay returns the original response. A rule that refuses the request returns 422 with `refusal` and `reason`.
- Requiere la capacidad org.members.read.
- Alcances de OAuth: org.
- Envía el encabezado Idempotency-Key. Una repetición con la misma clave devuelve la respuesta original.
- Estados de error: 400, 401, 404, 409, 422, 429. Los errores son detalles de problema RFC 9457.
Parámetros de ruta y de consulta
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | string (uuid) | Sí | Identifier of the ownership transfer. |
Respuesta 200: OwnershipTransfer
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | string (uuid) | Sí | Identifier of the ownership transfer. |
| org_id | string (uuid) | Sí | Identifier of the owning organization, derived from the parent row and never accepted from the caller. |
| created_at | string (date-time) | Sí | When the row was created. |
| created_by | string (uuid) | null | Sí | Identifier of the person who created the row. |
| updated_at | string (date-time) | Sí | When the row was last updated. |
| updated_by | string (uuid) | null | Sí | Identifier of the person who last updated the row. |
| from_person_id | string (uuid) | Sí | Identifier of the Owner who offered the org. |
| to_person_id | string (uuid) | Sí | Identifier of the member the org is offered to. |
| previous_owner_outcome | "admin" | "leave" | Sí | What happens to the Owner who offered on acceptance. |
| offered_at | string (date-time) | Sí | When the offer was made. |
| expires_at | string (date-time) | Sí | When an unanswered offer lapses, 7 days after it was made. |
| accepted_at | string (date-time) | null | Sí | When the member accepted and became an Owner. |
| declined_at | string (date-time) | null | Sí | When the member declined. |
| canceled_at | string (date-time) | null | Sí | When an Owner withdrew the offer. |
| canceled_by | string (uuid) | null | Sí | Identifier of the Owner who withdrew it. |
| expired_at | string (date-time) | null | Sí | When the lifecycle job lapsed the unanswered offer. |
{
"id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
"org_id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
"created_at": "2026-10-08T14:30:00Z",
"created_by": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
"updated_at": "2026-10-08T14:30:00Z",
"updated_by": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
"from_person_id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
"to_person_id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
"previous_owner_outcome": "admin",
"offered_at": "2026-10-08T14:30:00Z",
"expires_at": "2026-10-08T14:30:00Z",
"accepted_at": "2026-10-08T14:30:00Z",
"declined_at": "2026-10-08T14:30:00Z",
"canceled_at": "2026-10-08T14:30:00Z",
"canceled_by": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
"expired_at": "2026-10-08T14:30:00Z"
}Ejemplos de código
curl -X POST "$XOS_BASE_URL/ownership-transfers/0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f/accept" \
-H "Authorization: Bearer $XOS_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"const { data } = await xos.ownershipTransfers.accept("0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f");response = xos.ownership_transfers.accept("0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f")xos ownership-transfers accept 0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f