Pulse for Booking.com Partners 是 Booking.com Hotels & Vacation Rentals(Booking Holdings 旗下住宿业务)给在 Booking.com 上挂牌的酒店、民宿与度假屋房东用的物业端应用。合作伙伴用与 admin.booking.com 相同的 extranet 账号登录后,首页是抵达、离店与在住的日看板;从那里可以打开房态日历调整可售房量与入住人数价格,按客人姓名或预订号搜索订单,进入客人消息收件箱(含数小时内过期的 Request to Book),查看结算与支付流水,阅读客人点评,并拉取昨日预订与售罄房型的日报。它面向全球前台与收益人员——需要在不开桌面 extranet 的情况下开关房、回复客人、看清即将到账金额——在供给侧对应着 Expedia Partner Central 与 Airbnb 房东端在其他 OTA 上的角色。
合作伙伴的一笔结算窗口会返回 uuid、dateFrom/dateUntil、amountFormatted 以及 hasPayoutIssued、hasPayoutPending 等标记,元数据里还有 nextWithdrawalDate;点开后补上 totalPayoutAmount、totalCommission、totalCityTax、totalWithheldTaxes 和逐笔 reservationAmount。日看板把入住拆成 arrivals、departures、stayOvers、cancelled 与 noShows,每条带 guestName 和 stayPeriod;详情卡再给出 totalPrice、commissionAmount、totalEarnings、paymentStatus 与 payoutMethod。
房态是按日的 roomsToSell、availableRooms、netBooked 以及 hotelCurrencyCode 下的入住人数价格。客人会话挂着 reservationId、checkinDate 和 isReplyNeeded;Request to Book 行加上 rtbRequestStatus、totalPartnerPrice 与 hoursToExpire。PMS 与财务把这些结算对到物业账本,收益经理把关闭日期与价格推进渠道管理器,前台工具则展示抵达名单与未回复会话。openData Studio 把这一合作伙伴数据面做成可调用的开放数据。
应用截图
API 端点一览
以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。
OAuth2 令牌签发
POST
/v1/pulse/auth/tokenopendata用 Accounts Portal 授权码换取合作伙伴 access_token 与 refresh_token,之后每次 GraphQL 与 XY 调用都以 Authorization: Bearer 携带。
认证方式: OAuth2 授权码交换;客户端提交 grant_type、code 与 redirect_uri。
- access_token
- refresh_token
- expires_in
POST /v1/pulse/auth/token HTTP/1.1 Content-Type: application/x-www-form-urlencoded grant_type=authorization_code&code=spl_xxxx&redirect_uri=com.booking.pulse://oauth2callback{ "access_token": "eyJhbGciOiJSUzI1NiIs...", "refresh_token": "rt_7f3a...", "expires_in": 3600 }合作伙伴账号资料
GET
/v1/pulse/auth/partnerosint令牌签发后读取已登录合作伙伴的 loginName 与 partnerAuthName——Pulse 首页账号切换器上显示的身份。
认证方式: POST /v1/pulse/auth/token 签发的 Bearer access_token。
- loginName
- partnerAuthName
GET /v1/pulse/auth/partner HTTP/1.1 Authorization: Bearer eyJhbGciOiJSUzI1NiIs...{ "loginName": "[email protected]", "partnerAuthName": "Seaside Inn Extranet" }按年结算历史
POST
/v1/pulse/finance/payoutsopenfinance按年分页合作伙伴结算窗口,含已下发/待处理/冻结标记、格式化与原始金额,以及财务页上的 nextWithdrawalDate。
认证方式: POST /v1/pulse/auth/token 签发的 Bearer access_token。
- uuid
- dateFrom
- dateUntil
- amountFormatted
- amount
- currency
- hasPayoutIssued
- hasPayoutPending
- hasPspRefusal
- hasBankDetailError
- hasPayoutsOnHold
- nextWithdrawalDate
- operatingYears
POST /v1/pulse/finance/payouts HTTP/1.1 Authorization: Bearer eyJhbGciOiJSUzI1NiIs... Content-Type: application/json { "operationName": "PayoutHistory", "query": "query PayoutHistory($input: PayoutsInYear!, $includeRawAmount: Boolean!) { payoutHistory(input: $input) { payoutHistoryMonths { payouts { uuid dateFrom dateUntil amount { amountFormatted amount currency } payoutFlags { hasPayoutIssued hasPayoutPending } } } payoutMetadata { nextWithdrawalDate operatingYears } } }", "variables": {"input": {"year": 2026}, "includeRawAmount": true} }{ "data": { "payoutHistory": { "payoutHistoryMonths": [{ "month": 9, "year": 2026, "payouts": [{ "uuid": "po_9c21e4", "dateFrom": "2026-09-01", "dateUntil": "2026-09-15", "hasFailed": false, "amount": {"amountFormatted": "EUR 4,812.40", "amount": 4812.4, "currency": "EUR"}, "payoutFlags": {"hasPayoutIssued": true, "hasPayoutPending": false, "hasPspRefusal": false, "hasBankDetailError": false, "hasPayoutsOnHold": false} }] }], "payoutMetadata": {"nextWithdrawalDate": "2026-10-03", "operatingYears": [2024, 2025, 2026]} } } }单笔结算明细
POST
/v1/pulse/finance/payouts/{payoutId}openfinance按 uuid 打开一笔结算,拆出佣金、城市税、增值税、预扣税以及结算详情页上逐笔 reservationAmount。
认证方式: POST /v1/pulse/auth/token 签发的 Bearer access_token。
- totalPayoutAmount
- totalCommission
- totalCityTax
- totalWithheldTaxes
- totalVat
- totalCostOfPayments
- totalResAmountWithoutCommission
- isNetting
- bookerName
- reservationAmount
- checkinDate
- checkoutDate
POST /v1/pulse/finance/payouts/{payoutId} HTTP/1.1 Authorization: Bearer eyJhbGciOiJSUzI1NiIs... Content-Type: application/json { "operationName": "PayoutDetails", "variables": {"payoutInput": {"uuid": "po_9c21e4"}, "includeReservationDetails": true} }{ "data": { "payout": { "isNetting": false, "summaryInfo": { "totalPayoutAmount": {"amountFormatted": "EUR 4,812.40"}, "totalCommission": {"amountFormatted": "EUR 721.86"}, "totalCityTax": {"amountFormatted": "EUR 96.00"}, "totalWithheldTaxes": {"amountFormatted": "EUR 0.00"}, "totalVat": {"amountFormatted": "EUR 144.37"}, "totalCostOfPayments": {"amountFormatted": "EUR 38.50"}, "totalResAmountWithoutCommission": {"amountFormatted": "EUR 5,534.26"} }, "reservations": [{ "id": "3819201456", "bookerName": "M. Rossi", "checkinDate": "2026-09-04", "checkoutDate": "2026-09-07", "reservationAmount": {"amountFormatted": "EUR 612.00"} }] } } }房态日历读取
POST
/v1/pulse/inventory/calendaropendata加载 Pulse 房态日历:按日的 roomsToSell、netBooked、关闭标记,以及 hotelCurrencyCode 下的入住人数价格。
认证方式: POST /v1/pulse/auth/token 签发的 Bearer access_token。
- hotelCurrencyCode
- roomsToSell
- availableRooms
- netBooked
- closed
- occupancy
- minStayThrough
- minAdvanceRes
POST /v1/pulse/inventory/calendar HTTP/1.1 Authorization: Bearer eyJhbGciOiJSUzI1NiIs... Content-Type: application/json { "operationName": "PulseAvailabilityFetch", "variables": {"request": {"propertyId": 1234567, "dateFrom": "2026-10-01", "dateTo": "2026-10-31"}} }{ "data": { "pulseAvailabilityFetch": { "hotelInfo": { "id": 1234567, "currencyCode": {"hotelCurrencyCode": "EUR"}, "rooms": [{"id": 42, "name": "Double Deluxe", "editability": {"closed": true, "roomsToSell": true}}] }, "dates": [{ "date": "2026-10-12", "roomInfo": [{"roomId": 42, "netBooked": 2, "closed": false, "roomsToSell": 3, "availableRooms": 1, "status": "open"}], "rateInfo": [{"rateId": 9, "closed": false, "prices": [{"occupancy": 2, "value": 148.0}], "minStayThrough": 1}] }] } } }房态日历更新
POST
/v1/pulse/inventory/calendar/updateopendata把关闭标记、可售房量与入住人数价格写回日历;返回逐字段 success 以及 errors / warnings。
认证方式: POST /v1/pulse/auth/token 签发的 Bearer access_token。
- success
- dates
- roomId
- rateId
- occupancy
- fieldName
- fieldValue
- errors
- warnings
POST /v1/pulse/inventory/calendar/update HTTP/1.1 Authorization: Bearer eyJhbGciOiJSUzI1NiIs... Content-Type: application/json { "operationName": "PulseAvailabilityUpdate", "variables": {"input": {"propertyId": 1234567, "updates": [{"roomId": 42, "date": "2026-10-12", "roomsToSell": 0, "closed": true}]}} }{ "data": { "pulseAvailabilityUpdate": { "result": [{ "success": true, "dates": ["2026-10-12"], "roomId": 42, "rateId": null, "occupancy": null, "fieldName": "roomsToSell", "fieldValue": "0", "errors": [], "warnings": [] }] } } }预订搜索
POST
/v1/pulse/stays/searchopendata按客人或预订号在日期窗口内搜索预订,返回搜索页上的 reservationStatus、checkin 与 bookerCountryCode。
认证方式: POST /v1/pulse/auth/token 签发的 Bearer access_token。
- reservationId
- reservationStatus
- checkin
- guestNames
- bookerCountryCode
POST /v1/pulse/stays/search HTTP/1.1 Authorization: Bearer eyJhbGciOiJSUzI1NiIs... Content-Type: application/json { "operationName": "ReservationsSearch", "variables": {"searchTerm": "Rossi", "dateFrom": "2026-10-01", "dateTo": "2026-10-31", "lang": "en"} }{ "data": { "reservations": { "reservations": [{ "reservationId": "3819201456", "reservationStatus": "ok", "checkin": "2026-10-12", "guestInfo": {"guestNames": "M. Rossi", "bookerCountryCode": "IT"} }] } } }客人收件箱会话
POST
/v1/pulse/inbox/threadsosint列出客人消息会话,含入住日期、reservationId,以及驱动 Pulse 收件箱角标的 isReplyNeeded。
认证方式: POST /v1/pulse/auth/token 签发的 Bearer access_token。
- guestName
- hotelName
- reservationId
- checkinDate
- checkoutDate
- isCancelled
- isReplyNeeded
- content
- hasAttachments
POST /v1/pulse/inbox/threads HTTP/1.1 Authorization: Bearer eyJhbGciOiJSUzI1NiIs... Content-Type: application/json { "operationName": "ListConversations", "variables": {"input": {"propertyId": 1234567, "first": 20}} }{ "data": { "chatConversation": { "listConversations": { "conversations": [{ "attributes": { "__typename": "ChatAccommodationDetails", "guestName": "M. Rossi", "hotelName": "Seaside Inn", "reservationId": "3819201456", "checkinDate": "2026-10-12", "checkoutDate": "2026-10-15", "isCancelled": false }, "flags": {"isReplyNeeded": true}, "lastMessage": {"content": "What time is breakfast?", "created": "2026-10-02T08:14:00Z", "flags": {"hasAttachments": false}} }], "pagination": {"hasAfter": true} } } } }Request to Book 待处理列表
POST
/v1/pulse/booking-requestsopendata列出待处理 Request to Book 行,含合作伙伴价、入住人数、hoursToExpire 与客人核验状态,便于在手机上接受或拒绝。
认证方式: POST /v1/pulse/auth/token 签发的 Bearer access_token。
- requestId
- rtbRequestStatus
- checkIn
- checkOut
- hoursToExpire
- lengthOfStay
- nbAdults
- childrenAges
- totalGuest
- totalPartnerPrice
- isVerified
POST /v1/pulse/booking-requests HTTP/1.1 Authorization: Bearer eyJhbGciOiJSUzI1NiIs... Content-Type: application/json { "operationName": "RtbRequestListPage", "variables": {"rtbRequestListInput": {"propertyId": 1234567}, "rtbBannerRequestInput": {"context": "LIST"}} }{ "data": { "rtbRequests": { "rtbRequestListPage": { "rtbRequestList": [{ "requestId": "rtb_4412", "rtbRequestStatus": "PENDING", "checkIn": "2026-11-02", "checkOut": "2026-11-05", "hoursToExpire": 18, "lengthOfStay": 3, "nbAdults": 2, "childrenAges": [4], "totalGuest": 3, "totalPartnerPrice": {"amount": 420.0, "currency": "EUR"}, "guestVerificationStatus": {"isVerified": true} }], "pageInfo": {"hasNextPage": false} } } } }预订详情
POST
/v1/pulse/stays/{reservationId}openfinance按预订号 bn 拉取预订详情卡:客人身份、Genius 标记、totalPrice、commissionAmount、totalEarnings 以及 paymentStatus / payoutMethod。
认证方式: POST /v1/pulse/auth/token 签发的 Bearer access_token。
- id
- hotelId
- guestName
- bookerName
- bookerCc1
- isGuestVerified
- isGeniusBooker
- nNights
- totalPrice
- commissionAmount
- commissionableAmount
- totalEarnings
- paymentStatus
- payoutMethod
- isCancelled
- isNoShow
POST /v1/pulse/stays/{reservationId} HTTP/1.1 Authorization: Bearer eyJhbGciOiJSUzI1NiIs... Content-Type: application/json { "context": {"hotel_id": "1234567"}, "call": { "macroName": "pulse.context_booking_detail.4", "payload": {"bn": "3819201456", "removeBookerTitle": 1, "sendSmpCancellationPolicy": 1} } }{ "id": "3819201456", "hotelId": "1234567", "hotelName": "Seaside Inn", "guestName": "M. Rossi", "bookerName": "M. Rossi", "bookerCc1": "IT", "isGuestVerified": "1", "isGeniusBooker": 1, "nNights": "3", "nRooms": 1, "totalPrice": "EUR 612.00", "commissionAmount": "EUR 91.80", "commissionableAmount": "EUR 612.00", "totalEarnings": "EUR 520.20", "cancellationFee": "EUR 0.00", "payment": {"method": "Online", "paymentStatus": "paid", "payoutMethod": "Bank transfer"}, "isCancelled": 0, "isNoShow": 0 }当日抵达看板
POST
/v1/pulse/front-desk/dayboardopendata加载首页日看板:arrivals、departures、stayOvers、cancelled 与 noShows,每条含 guestName、stayPeriod 以及 Genius / 核验标记。
认证方式: POST /v1/pulse/auth/token 签发的 Bearer access_token。
- arrivals
- departures
- stayOvers
- cancelled
- noShows
- guestName
- stayPeriod
- stayDuration
- occupancyDetails
- isBookerGenius
- isGuestVerified
- groupHa
POST /v1/pulse/front-desk/dayboard HTTP/1.1 Authorization: Bearer eyJhbGciOiJSUzI1NiIs... Content-Type: application/json { "context": {"hotel_id": "1234567"}, "call": { "macroName": "pulse.context_dashboard.6", "payload": {"date": "2026-10-12"} } }{ "groupHa": false, "dashboards": { "1234567": { "arrivals": [{ "id": 3819201456, "guestName": "M. Rossi", "title": "Double Deluxe", "stayPeriod": "12–15 Oct", "stayDuration": "3 nights", "occupancyDetails": "2 adults", "isBookerGenius": true, "isGuestVerified": true }], "departures": [], "stayOvers": [], "cancelled": [], "noShows": [] } } }日报卡片
POST
/v1/pulse/reports/daily-cardopendata返回日报卡片:今日抵达/离店/在住、yesterdayGrossValue 与 yesterdayBookings、售罄房型以及昨日点评分数。
认证方式: POST /v1/pulse/auth/token 签发的 Bearer access_token。
- hotelName
- today
- yesterday
- arrivals
- departures
- stays
- yesterdayGrossValue
- yesterdayBookings
- soldOutRooms
- score
- positive
- negative
POST /v1/pulse/reports/daily-card HTTP/1.1 Authorization: Bearer eyJhbGciOiJSUzI1NiIs... Content-Type: application/json { "context": {"hotel_id": "1234567"}, "call": { "macroName": "pulse.context_daily_report_card.1", "payload": {"hotelId": "1234567", "date": "2026-10-12", "sendRateIntelReport": false} } }{ "hotelName": "Seaside Inn", "today": "2026-10-12", "yesterday": "2026-10-11", "arrivals": 6, "departures": 4, "stays": 11, "yesterdayGrossValue": "EUR 1,940.00", "yesterdayBookings": "5", "soldOutRooms": [{"roomName": "Double Deluxe", "date": "2026-10-12"}], "yesterdayReviewDetails": [{ "id": "rev_8821", "title": "Quiet room", "guestInfo": "Couple, Italy", "score": 9.2, "positive": "Great location", "negative": "" }] }支付流水列表
POST
/v1/pulse/finance/guest-paymentsopenfinance分页该物业的客人支付流水,每行含 amountForPayout、nextPayoutDate、stripeId 与 bookingNumber。
认证方式: POST /v1/pulse/auth/token 签发的 Bearer access_token。
- amountForPayout
- nextPayoutDate
- nextPageId
- amount
- timestamp
- stripeId
- bookingNumber
- status
- statusFormatted
POST /v1/pulse/finance/guest-payments HTTP/1.1 Authorization: Bearer eyJhbGciOiJSUzI1NiIs... Content-Type: application/json { "context": {"hotel_id": "1234567"}, "call": { "macroName": "pulse.context_get_transaction_list.1", "payload": {"hotelId": "1234567", "maxPageSize": 20, "nextPageId": null} } }{ "amountForPayout": "EUR 1,204.00", "nextPayoutDate": "2026-10-03", "nextPageId": "pg_14", "transactions": [{ "title": "Reservation 3819201456", "subtitle": "Online payment", "amount": "EUR 612.00", "timestamp": 1759420800, "stripeId": "ch_3Qabc", "bookingNumber": "3819201456", "status": "captured", "statusFormatted": "Paid" }] }客人点评列表
POST
/v1/pulse/reputation/reviewsopendata列出该物业的客人点评,含 reviewAverageScore、Genius 标记、guestDetailsSummary 以及下一页 paginationClue。
认证方式: POST /v1/pulse/auth/token 签发的 Bearer access_token。
- paginationClue
- id
- reviewAverageScore
- title
- date
- isNew
- isGeniusUser
- guestDetailsSummary
POST /v1/pulse/reputation/reviews HTTP/1.1 Authorization: Bearer eyJhbGciOiJSUzI1NiIs... Content-Type: application/json { "context": {"hotel_id": "1234567"}, "call": { "macroName": "pulse.context_get_hotel_reviews.1", "payload": {"hotelId": "1234567"} } }{ "paginationClue": "after:rev_8821", "reviews": [{ "id": "rev_8821", "reviewAverageScore": "9.2", "title": "Quiet room", "date": 1759334400, "isNew": true, "isGeniusUser": true, "guestDetailsSummary": "Couple · 3 nights · Italy", "reply": {"text": "Thank you for staying with us.", "date": 1759420800} }] }
数据类别
- 结算
- 预订
- 房态
- 客人消息
- 点评
- 支付流水
数据使用场景与案例
结算对账到物业账本
物业 PMS 或集团财务机器人拉取按年结算窗口(uuid、金额、币种、hasPayoutIssued)以及逐笔 reservationAmount / totalCommission,与银行入账和店内账单核对,在 nextWithdrawalDate 之前暴露缺失或冻结的结算。
渠道管理器同步房态
渠道管理器读取一段日期的 roomsToSell、netBooked、关闭标记和 hotelCurrencyCode 下的入住人数价格,并在关房或改 BAR 时写入 PulseAvailabilityUpdate,让 Booking.com 与店内 PMS 对齐而无需打开桌面 extranet。
前台抵达与收件箱
前台平板列出当日 arrivals / departures / stayOvers(含 guestName、stayPeriod),打开预订详情看 totalPrice 与 paymentStatus,并对 isReplyNeeded 为真的客人会话或 hoursToExpire 将尽的 Request to Book 行告警。
点评分运营流
口碑值班分页拉取 GuestReview(reviewAverageScore、isGeniusUser、guestDetailsSummary)以及日报里的 yesterdayReviewDetails,让新分数与售罄提醒和房态日历进同一运营频道。
常见问题
Pulse 为 Booking.com 合作伙伴暴露哪些结算数据?
财务页背后是按年结算窗口(uuid、dateFrom/dateUntil、amountFormatted、hasPayoutIssued、nextWithdrawalDate)和结算明细(totalPayoutAmount、totalCommission、totalCityTax、预扣税以及逐笔 reservationAmount)。另有支付流水分页客人交易,含 amountForPayout、stripeId 与 bookingNumber。
能读写房态和价格吗?
可以。房态日历按日返回 roomsToSell、availableRooms、netBooked、关闭标记以及 hotelCurrencyCode 下的入住人数价格;对应的更新把这些字段写回,并返回逐字段 success、errors 与 warnings。
Pulse 如何鉴权物业员工?
合作伙伴通过 Booking.com Accounts Portal 登录。OAuth2 授权码交换返回 access_token 与 refresh_token;随后的合作伙伴调用都带 Authorization: Bearer。用户资料调用返回 loginName 与 partnerAuthName。
收件箱和 Request to Book 界面背后有哪些客人数据?
收件箱返回 guestName、reservationId、checkinDate/checkoutDate 与 isReplyNeeded。Request to Book 列表再加上 requestId、rtbRequestStatus、totalPartnerPrice、入住人数与 hoursToExpire,方便员工在手机上接受或拒绝待处理请求。
相关主题
- Pulse Booking.com API
- Booking.com 合作伙伴结算
- 酒店房态日历 API
- Pulse 预订详情
- Request to Book
- Booking.com extranet
- 酒店客人收件箱
- Pulse for Booking.com Partners
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业