Private preview of the new site. Not live.

shops.transferAccept

Accept a hand-off and become the shop's owner (the person asked, on a hosted page). The person agrees to the Terms of Service by ticking a box (accept_terms_version); the record keeps the version, time, IP address and browser. Comes back with status expired when the 14 days ran out. Every sent invoice nobody has paid yet is voided and reissued as a draft with the same lines (invoices_reissued), so it pays into your payments account once you finish payment setup and send it. Customers are not emailed. Partly paid invoices, ones with a payment going through and ones with a card checkout open stay as they are and collect on your account once it is set up (invoices_kept).

WhoHosted page only (a person does it in the browser)
RESTPOST /v1/shops/transfers/accept
MCP toolNot an MCP tool
Writesyes, send an Idempotency-Key
AreaShop

When to use it

Accept a hand-off and become the shop's owner (the person asked, on a hosted page). The person agrees to the Terms of Service by ticking a box (accept_terms_version); the record keeps the version, time, IP address and browser.

What to tell the owner

Send the person the link. They finish this step themselves on the page; you never do it for them.

Input

FieldTypeRequired
transfer_idstring (uuid)yes
accept_terms_versionstringyes

Example

POST https://doingwork.work/v1/shops/transfers/accept
content-type: application/json
Idempotency-Key: 3f1c...

{
  "transfer_id": "00000000-0000-4000-8000-000000000000",
  "accept_terms_version": "..."
}

Output

FieldTypeAlways there
transfer_idstring (uuid)yes
shop_idstring (uuid)yes
shopstringyes
from_person_idstring (uuid)yes
from_name['string', 'null']yes
to_person_idstring (uuid)yes
to_name['string', 'null']yes
statusstringyes
old_owner_stays_as_officebooleanyes
started_atstring (date-time)yes
expires_atstring (date-time)yes
completed_at['string', 'null', ' ', '(', 'd', 'a', 't', 'e', '-', 't', 'i', 'm', 'e', ')']yes
cancelled_at['string', 'null', ' ', '(', 'd', 'a', 't', 'e', '-', 't', 'i', 'm', 'e', ')']yes
processor_reverify_statusstringyes
you_arestringyes
invoices_reissuedarrayyes
invoices_reissued[].voided_invoice_idstring (uuid)yes
invoices_reissued[].new_invoice_idstring (uuid)yes
invoices_reissued[].total_minorintegeryes
invoices_keptarrayyes
invoices_kept[].invoice_idstring (uuid)yes
invoices_kept[].reasonstringyes
{
  "transfer_id": "00000000-0000-4000-8000-000000000000",
  "shop_id": "00000000-0000-4000-8000-000000000000",
  "shop": "...",
  "from_person_id": "00000000-0000-4000-8000-000000000000",
  "from_name": "...",
  "to_person_id": "00000000-0000-4000-8000-000000000000",
  "to_name": "...",
  "status": "...",
  "old_owner_stays_as_office": true,
  "started_at": "...",
  "expires_at": "...",
  "completed_at": "...",
  "cancelled_at": "...",
  "processor_reverify_status": "...",
  "you_are": "...",
  "invoices_reissued": [
    {
      "voided_invoice_id": "00000000-0000-4000-8000-000000000000",
      "new_invoice_id": "00000000-0000-4000-8000-000000000000",
      "total_minor": 50000
    }
  ],
  "invoices_kept": [
    {
      "invoice_id": "00000000-0000-4000-8000-000000000000",
      "reason": "..."
    }
  ]
}

Errors

CodeStatusWhat to do
invalid_input, invalid_token, rate_limitedCan happen on any call. See errors.