hosting
POST /v1/transfers/{transferId}/accept
Accept an incoming site transfer.
Autenticación
Envía una clave de API como token de portador. La clave debe tener el permiso sites.view; una clave que no lo tenga se rechazará con un código 403, no 404.
Este endpoint no requiere ningún id de organización. Su clave ya identifica la organización a la que pertenece, y la respuesta está delimitada a ella.
Pruébalo
Reemplaza cualquier elemento entre corchetes angulares por tus propios valores, y el marcador de posición key con una clave de tu panel de control.
curl -X POST https://api.zinndigital.com/v1/transfers/{transferId}/accept \
-H "Authorization: Bearer zdk_live_…"¿Has iniciado sesión? La consola de la API en tu panel de control rellena el ID de tu organización real y tu propia clave, y ejecuta la solicitud contra la API en vivo para que puedas ver la respuesta real. Abre este endpoint en la consola de la API
Detalles
Takes ownership of the site. **This is the moment everything moves**, in one database transaction: the site, its subscription and paid term, its backups, links, CDN and edge bindings, security posture, placement and — when the offer included the domain — the registration, its DNS and its mail. Traffic, resource and vitals samples, support tickets, abuse reports and paid add-ons stay with the previous owner, because they are that party's record rather than a property of the site. Two references into the previous owner's own accounts are **detached** on the way: the site's CDN/edge `connection` and the domain's registrar credential. Carried across, the new owner would be operating a stranger's provider account. Mailbox passwords do **not** travel — they are vendor-side and are not ours to hand over. The new owner resets each one from the mail panel. The guard runs again here, on both organizations, and `422` refuses with the reasons. Addressable only by the **receiving** organization: a sender cannot accept their own offer. `409` when the offer was already decided. Requires `sites.view` **and** `sites.transfer`.
Parámetros
| Nombre | Tipo | Obligatorio | ¿Qué es esto? |
|---|---|---|---|
transferId (path) | Uuid | Sí | Site transfer offer ID (UUIDv7). |
Respuesta
| Nombre | Tipo | Obligatorio | ¿Qué es esto? |
|---|---|---|---|
id | Uuid | Sí | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
site_id | Uuid | Sí | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
site_name | string | No | The site's name as it was when the offer was made. Snapshotted onto the offer, not read live: while a transfer is pending the site still belongs to the sender, and reading it li… |
primary_domain | string | No | The site's domain as it was when the offer was made. Snapshotted, as above. |
direction | string<incoming, outgoing> | Sí | From **this caller's** point of view. Computed per request, never stored — the same row is outgoing to one party and incoming to the other. |
status | string<pending, accepted, declined, cancelled, expired, failed> | Sí | Five terminal states rather than one, because *why* an offer ended is what support is actually asked. `failed` means it was accepted and could not complete; nothing moved. |
include_domain | boolean | Sí | Whether the domain, its DNS and its mail travel with the site. |
recipient_email | string | No | Only populated for the **sender**. To the receiver it is their own address and carries no information; to anyone else it would be a third party's email address in a row two orga… |
message | string | No | — |
expires_at | string | Sí | An unaccepted offer expires fourteen days after it is made. |
term_ends_at | string | No | — |
renewal_amount_minor | integer | No | — |
renewal_currency | string | No | — |
created_at | string | Sí | — |
decided_at | string | No | — |
failure_reason | string | No | Why a `failed` transfer could not complete. Empty otherwise. |
Errores que este endpoint puede devolver
401 · 403 · 404 · 409 · 422 · 429