payee-payability-changed

Sent when a payee becomes payable or stops being payable.

payee-payability-changed tells you that a payee can now be paid, or can no longer be paid. A payee is payable when all of these are true:

  • Their personal or business information is complete.
  • They have a valid payout method.
  • They passed identity verification, if your account requires it.
  • Their tax forms are complete, if your account requires them.
  • They are not blocked.

When it fires

  • When the payee's payable value changes, in either direction.
  • When payableByJurisdiction changes, for example when the payee completes the tax form for one more jurisdiction while payable stays the same.

Payability changes as the payee onboards in the payee widget, and when Payment Labs re-checks a payee, for example after a payout method fails validation.

What to do

  • When payable becomes true, submit the payee's draft payments with Submit Payment. Payments with auto-submit on are submitted for you.
  • When payable becomes false, read currentStep and ask the payee to finish that step.

Payload

data is the payee, read when the webhook is sent. Fields with no value are omitted.

FieldTypeDescription
userIdstringPayee ID. Use it wherever the API asks for a payeeId.
payorIdstringYour payor ID.
referenceIdstringYour own reference for the payee.
emailstringPayee's email address.
payablebooleantrue if the payee can be paid now.
payableByJurisdictionobjectPayability per tax jurisdiction. Keys are jurisdiction codes (us, de, fi, gb, my, pl, sa, se, none). Values are true if the payee can be paid under that jurisdiction's rules. none covers payments with no tax jurisdiction.
typestringpersonal or business.
firstNamestringPayee's first name.
middleNamestringPayee's middle name.
lastNamestringPayee's last name.
businessNamestringBusiness name, for a business payee.
contactFirstNamestringFirst name of the business's contact person.
contactLastNamestringLast name of the business's contact person.
displayFirstNamestringFirst name to show in lists.
displayLastNamestringLast name to show in lists.
taxJurisdictionsstring[]Tax jurisdictions that apply to the payee.
currentStepstringOnboarding step the payee must finish next: identityVerification, personalInformation, paymentMethods, or taxForms. Absent once onboarding is complete.
onboardedbooleantrue once the payee's personal information has been accepted. It stays true afterwards and does not cover payout methods or tax forms: use payable to know whether the payee can be paid.

data is null if the payee no longer exists when the webhook is sent.

Example

The full request body Payment Labs sends:

{
  "payorId": "C-01JBX2Q8F4H6K8M0N2P4R6T8VW",
  "event": "payee-payability-changed",
  "timestamp": "2026-03-12T11:47:30.215Z",
  "data": {
    "userId": "U-01JBX6M2N8P4Q6R8S0T2V4W6Y8",
    "payorId": "C-01JBX2Q8F4H6K8M0N2P4R6T8VW",
    "referenceId": "player-1042",
    "email": "[email protected]",
    "onboarded": true,
    "payable": true,
    "payableByJurisdiction": {
      "none": true,
      "us": true
    },
    "firstName": "Jordan",
    "lastName": "Lee",
    "type": "personal",
    "displayFirstName": "Jordan",
    "displayLastName": "Lee",
    "taxJurisdictions": ["us"]
  }
}