Get Payouts

Returns the user's channel payouts, a page at a time: one per transfer a channel sent to their bank, with every row it is made of (bookings, adjustments, resolutions), so you can match each bank deposit to the bookings behind it. Airbnb only for now. Requires the ownerStatements:read scope.

Host Tools reads payouts from Airbnb once a day, so a payout appears up to a day after Airbnb releases it. Payouts go back to Host Tools' first read of the account's payouts, which reaches at most 60 days back; older payouts aren't returned.

Airbnb doesn't let some accounts read their payouts, so far only ones connected in setup mode (fullAccess: false in Get Accounts). Such an account has no payouts here, and Get Errors lists a payouts.unavailable error for it until Host Tools can read them.

Send either a date range or updatedSince:

  • startDate and endDate return the payouts dated in the range, oldest first. status narrows them to paid or pending ones, accountID to one account's and channel to one channel's.
  • updatedSince returns every payout written at or after that time, whatever its date, oldest change first. A pending payout that has gone comes back once more, with deletedAt, so a copy you keep can drop it. Use it to keep a copy in sync instead of reading every range again: save the time just before each call, minus a minute for clock differences, and pass it as updatedSince on the next call. It takes no other filter. A payout written again while you page moves to a later page, so it is read again rather than missed. A read can return a payout you already have, so keep payouts by _id: a second copy replaces the first. There's no webhook for payouts yet, so poll with updatedSince to pick up changes.

Amounts are numbers in the payout's currency, and each row has its own currency.

  • date is Airbnb's release date. The money reaches the bank a few days later, depending on the payout method.
  • A pending payout is an estimate of what Airbnb will pay out on date, made from its upcoming rows. It has no reference, and it can disappear: once Airbnb pays it, it is replaced by a new paid payout with its own _id, and a cancelled booking drops it. Match bank deposits to paid payouts only.
  • A paid payout's rows add up exactly to its amount, with two exceptions. Airbnb can convert a payout into the bank account's currency (THB bookings paid into a USD account): its rows then keep their own currency and amounts, so only the payout's amount matches the bank deposit. And an Airbnb Fast Pay payout to a debit card (payoutMethod: debitCard) arrives short by Airbnb's Fast Pay fee, which has no row of its own: fastPayFee gives it, and the rows add up to amount plus fastPayFee. A debit-card payout without Fast Pay adds up and has no fastPayFee. Host Tools gives the fee only when the difference is exactly 1.5% of the rows, rounded to the cent, on a USD payout, as on every Fast Pay payout seen so far. Airbnb caps the fee at $15, and a payout short by any other amount, a capped fee or another currency included, has no fastPayFee.
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
string

First date (YYYY-MM-DD), compared with each payout's date. Required unless you send updatedSince.

string

Last date (YYYY-MM-DD), included. Required unless you send updatedSince.

date-time

Instead of a date range: every payout written at or after this time (ISO 8601 date-time), pending ones that have gone with deletedAt. Can't be combined with startDate, endDate, status, accountID or channel; a request that does returns 400.

string
enum

Only paid payouts, or only pending ones

Allowed:
string

Only the payouts of this channel account: its _id from Get Accounts

string
enum

Only the payouts from this channel (HomeAway is VRBO)

Allowed:
integer
1 to 200
Defaults to 100

Maximum number of payouts in one page (1-200). Defaults to 100.

string

The nextCursor value from the previous page, sent with the same other parameters. Treat it as an opaque string: don't build or change it yourself.

Headers
string

Partner API key (deprecated — use OAuth 2.0 for new integrations)

string

User's authentication token (legacy). Use Authorization Bearer header for new integrations.

Responses

403

The OAuth token doesn't have the ownerStatements:read scope

429

Too many requests

Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json