platform-transfers
PATCH /v1/platform-transfers/{transferId}/intake
Give or change the store details a transfer needs.
Authentication
Send an API key as a bearer token. The key must carry the billing.view permission; a key without it is refused with 403, not 404.
This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.
Try it
Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.
curl -X PATCH https://api.zinndigital.com/v1/platform-transfers/{transferId}/intake \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ }'Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console
Details
The guided details step: store addresses, how we access each store, logins, the contact and the preferred window. Every field is optional; only those present are applied. Logins are written to the secrets vault only — the response carries a masked hint and has_*_credentials, never the secret — and are deleted when the job ends. Each address is checked for reachability (intake_checks). A paid transfer in awaiting_customer moves to queued once nothing is missing. Refused with 422 while the migration is running or after it has finished. Requires billing.view.
Parameters
| Name | Type | Required | What it is |
|---|---|---|---|
transferId (path) | string | Yes | — |
Request body
| Name | Type | Required | What it is |
|---|---|---|---|
source_url | string | No | — |
source_access_method | TransferAccessMethod | No | — |
source_credentials | PlatformTransferStoreCredentials | No | Write-only. Stored in the secrets vault; never returned by any customer endpoint. |
target_mode | string<existing, zinn_hosting> | No | — |
target_url | string | No | — |
target_access_method | TransferAccessMethod | No | — |
target_credentials | PlatformTransferStoreCredentials | No | Write-only. Stored in the secrets vault; never returned by any customer endpoint. |
contact_name | string | No | — |
contact_email | string | No | — |
contact_phone | string | No | — |
preferred_start_date | object | No | — |
preferred_window | string | No | — |
customer_note | string | No | — |
Response
| Name | Type | Required | What it is |
|---|---|---|---|
id | Uuid | Yes | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
source_platform | string | Yes | — |
source_platform_name | string | No | — |
target_platform | string | Yes | — |
target_platform_name | string | No | — |
source_url | string | Yes | — |
target_site_id | object | No | — |
tier_code | string | Yes | — |
tier_name | string | No | — |
entity_count_estimate | integer | No | — |
status | PlatformTransferStatus | Yes | — |
status_label | string | No | — |
price_amount_minor | integer | Yes | — |
price_currency | string | Yes | — |
redirects_mapped | boolean | No | — |
redirect_count | integer | No | — |
canonicals_verified | boolean | No | — |
sitemap_submitted | boolean | No | — |
structured_data_preserved | boolean | No | — |
seo_checks_complete | boolean | No | — |
customer_note | string | No | — |
sla_due_at | object | No | — |
created_at | string | Yes | — |
completed_at | object | No | — |
products | integer | No | — |
customers | integer | No | — |
orders | integer | No | — |
blog_posts | integer | No | — |
cms_pages | integer | No | — |
addons | TransferAddonCode[] | No | — |
aftercare | string | No | — |
aftercare_reruns | integer | No | — |
aftercare_days | integer | No | — |
seo_promised | boolean | No | The SEO add-on was bought, so the SEO checks gate completion. |
target_mode | string<existing, zinn_hosting> | No | — |
target_url | string | No | — |
source_access_method | string | No | — |
target_access_method | string | No | — |
source_login_hint | string | No | Masked; never the login itself. |
target_login_hint | string | No | Masked; never the login itself. |
has_source_credentials | boolean | No | — |
has_target_credentials | boolean | No | — |
credentials_deleted_at | object | No | — |
contact_name | string | No | — |
contact_email | string | No | — |
contact_phone | string | No | — |
preferred_start_date | object | No | — |
preferred_window | string | No | — |
intake_checks | object | No | Reachability of each store address, keyed source / target. |
intake_missing | string[] | No | What we still need before a specialist can start, as field codes (source_url, source_access, source_credentials, target_url, target_access, target_credentials,… |
intake_completed_at | object | No | — |
preview_url | string | No | The free preview to check |
events | PlatformTransferEvent[] | No | The customer-visible trail only. Staff notes name vendors and what a job cost us, and never appear here. |
Errors this endpoint can return
401 · 403 · 404 · 422 · 429