Channel links and cutover
Cutover is the moment a property manager stops using their old system and starts using yours. Three calls make it safe: link the channel listings, check the reservations, then disconnect the source.
1. Link the channel listings
Airbnb, Booking.com and VRBO connections cannot move between systems — the property manager reconnects each channel in your product. GET /v1/migrations/{workspaceId}/channel-map tells you, per property, which channel listing it was linked to in the old system, so you can attach each listing to the right property automatically instead of asking them to match 40 listings by hand.
curl https://api.repull.dev/v1/migrations/1204/channel-map \ -H "Authorization: Bearer sk_live_YOUR_KEY"
{
"data": {
"workspaceId": "1204",
"sources": [ { "provider": "guesty", "supported": true, "error": null } ],
"listings": [
{
"listingId": "5668",
"name": "Ocean View 2BR",
"provider": "guesty",
"externalListingId": "63f1c0e2a9d1b2",
"airbnb": { "listingId": "1161202454004135464" },
"booking": { "hotelId": "10167991", "roomId": "110" },
"vrbo": null
}
]
}
}It is read live from the old system on every call, so it reflects any listing linked or unlinked since the import. supported: false means that system does not expose its channel links — see capabilities.
2. Check the reservations
Once the channels are reconnected in your product, send every upcoming reservation you hold. Repull compares them with the old system by confirmation code and returns what does not line up. It changes nothing — run it as often as you like.
curl -X POST https://api.repull.dev/v1/migrations/1204/cutover-check \
-H "Authorization: Bearer sk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "reservations": [
{ "confirmationCode": "HMABC123", "checkIn": "2026-10-01", "checkOut": "2026-10-04" },
{ "confirmationCode": "4082771930", "checkIn": "2026-10-10", "checkOut": "2026-10-13" }
] }'{
"data": {
"matched": 1,
"missing": [ { "confirmationCode": "DIRECT-9", "checkIn": "2026-11-01", "checkOut": "2026-11-03", "platform": "direct" } ],
"extra": [],
"mismatched": [ { "source": { "confirmationCode": "4082771930", "checkIn": "2026-10-10", "checkOut": "2026-10-12" },
"destination": { "confirmationCode": "4082771930", "checkIn": "2026-10-10", "checkOut": "2026-10-13" } } ]
}
}- missing — upcoming in the old system, absent from yours. Usually a direct or owner booking you still need to create.
- extra — in yours but not an upcoming stay in the old system.
- mismatched — the same booking on different dates. Resolve before switching.
Do not re-create channel reservations
channel_reservations_upcoming.3. Cut over
When nothing is missing or mismatched, disconnect the source. Repull stops syncing from the old system; everything imported stays readable with X-Workspace-Id. It is safe to call twice.
curl -X POST https://api.repull.dev/v1/migrations/1204/cutover \ -H "Authorization: Bearer sk_live_YOUR_KEY"
To end a migration you no longer need, DELETE /v1/migrations/{workspaceId} cuts over and deactivates the workspace. The imported data is kept.