Update payment preferences

Update a worker’s payout settings on behalf of the worker. You can specify whether a worker should be paid via a Pay Card rather than the default setting of ACH-based direct deposit (if available).

This endpoint has two payment parameters, and they work together. Read this page before you send both.

ParameterWhat it controls
availablePaymentMethodsWhich methods the worker is allowed to use: directDeposit, payCard, or externallyPaid.
preferredPaymentMethodWhich method the worker is paid with now: DIRECT_DEPOSIT or PAY_CARD.

Everything else is optional. Send only the parameters you want to change; a parameter you leave out is left alone.


How the parameters relate

  • The preferred method must be one of the available methods. If you ask for a preferredPaymentMethod that isn't available to the worker, the request fails with a 400 error.
  • availablePaymentMethods replaces the whole set. A flag you leave out counts as false. To add Pay Card and keep Direct Deposit, send both: { "directDeposit": true, "payCard": true }. Sending only { "payCard": true } turns Direct Deposit off.
  • At least one method must stay on. Setting all three flags to false (or sending an empty object) returns an error.
  • Externally paid is exclusive. externallyPaid can't be combined with directDeposit or payCard. When it's true, the worker's preferred method becomes EXTERNALLY_PAID on its own. You can't send EXTERNALLY_PAID as preferredPaymentMethod.
  • Everee updates the preferred method for you when your change would leave it invalid. If you turn off the method a worker is currently paid with, Everee moves them to Direct Deposit when that's still available, and to the Pay Card otherwise, and notifies the worker. If you take a worker out of externally paid, Everee moves them to Direct Deposit or the Pay Card and asks them to add their payment details.
  • Both parameters in one request. Everee applies availablePaymentMethods first, then checks preferredPaymentMethod against the new set. You can change the available methods and pick the preferred one in the same call.
  • A method your company isn't set up for is ignored. For example, payCard: true has no effect if the Pay Card isn't enabled for your company. Check availablePaymentMethods in the response to see what was applied.
  • The preferred method needs an account to pay into. If the worker has no bank account (Direct Deposit) or issued card (Pay Card) yet, their payments show an error and don't process until one exists. See embedding Pay Card signup.

Scenarios

1. Move a worker to the Pay Card

Both methods are available to the worker, and you want them paid on the card.

{ "preferredPaymentMethod": "PAY_CARD" }

The worker's available methods don't change. If the worker doesn't have a card yet, payments wait until they sign up. A worker who already has an Everee Pay Card from another company can use it, and that completes their signup. If the Pay Card isn't available to the worker, you get a 400 error.

2. Let the worker choose between Direct Deposit and the Pay Card

{ "availablePaymentMethods": { "directDeposit": true, "payCard": true } }

The preferred method stays as it is, and the worker can switch between the two themselves.

3. Pay Card only

{
  "availablePaymentMethods": { "payCard": true },
  "preferredPaymentMethod": "PAY_CARD"
}

Direct Deposit is turned off because the flag was left out. If you sent only availablePaymentMethods here and the worker was on Direct Deposit, Everee would switch them to the Pay Card on its own and notify them.

4. Direct Deposit only

{ "availablePaymentMethods": { "directDeposit": true } }

A worker who was on the Pay Card is moved to Direct Deposit and notified.

5. A worker you pay outside Everee

{ "availablePaymentMethods": { "externallyPaid": true } }

The worker's preferred method becomes EXTERNALLY_PAID, and they don't need a bank account or card to finish onboarding.

6. Start paying a worker through Everee again

{ "availablePaymentMethods": { "externallyPaid": false, "directDeposit": true } }

The worker moves to Direct Deposit and is asked to add their bank details. To use the Pay Card instead, send "payCard": true.


Errors

RequestResult
preferredPaymentMethod that isn't in the worker's available methods400: unable to set the payment method because it isn't available
preferredPaymentMethod of EXTERNALLY_PAID400: invalid payment method. Use externallyPaid in availablePaymentMethods
externallyPaid: true together with directDeposit or payCard400: if externally paid, no other payment methods can be enabled
All three flags false400: at least one method is required

Webhooks

Changing preferredPaymentMethod with this endpoint sends the Worker's Preferred Payment Method Changed event (worker.updated-payment-method). When Everee switches the preferred method itself because you changed availablePaymentMethods, no event is sent. Re-read the worker if you need to know the result.

Path Params
string
required

The 'externalWorkerId' you assigned to the worker, or Everee's generated 'workerId' if you don't use your own IDs.

Body Params
string
enum
Defaults to DIRECT_DEPOSIT

The method to use when transferring funds to a worker. It must be one of the worker's available methods, or the request fails with a 400. If the corresponding payment account (a bank account for DIRECT_DEPOSIT, or an issued card for PAY_CARD) doesn't exist, payments to the worker will be marked as "error" and will not process until a corresponding account is created. You can't set this to EXTERNALLY_PAID directly; enable externallyPaid in availablePaymentMethods instead. If you send it together with availablePaymentMethods, the available methods are applied first.

Allowed:
availablePaymentMethods
object

The payment methods available for the worker to select. This replaces the whole set: a flag you leave out counts as false, and at least one method must be enabled. Methods your company isn't set up for are ignored. If the change leaves the worker's preferred method unavailable, Everee moves them to Direct Deposit or the Pay Card and notifies them. See the scenarios on this page.

string
enum
deprecated

Deprecated. To change when a worker is paid, assign them a payroll calendar with the Update payroll calendar endpoint instead.

Allowed:
Response

Language
Credentials
Header
LoadingLoading…
Response
Choose an example:
application/json