Create a deduction

Create a deduction for a payee. applicationType defaults to PostPayment, which reduces the payee payout without changing the payer charge. PrePayment requires a commercial reason and rejects payroll categories. Duplicate externalId returns 409 ResourceConflict; this is not an upsert.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string
enum
required
Defaults to PostPayment

Defaults to PostPayment. PrePayment requires reason and rejects Garnishment, ChildSupport, Benefits and TaxWithholding.

Allowed:
string
enum
required
Allowed:
string

The payment entry whose excess this adjustment records. Required when reason is OverCollection. Returns 501 until the partial-payments service work ships (MS2).

string
required
length ≥ 1

Permanent Payee relationship ID, including legacy concatenated Account-pair IDs.

string
deprecated

Unused compatibility field; payeeId selects the relationship.

string
required
string
double
required

A monetary amount as a JSON number in major units, with decimal places carrying the minor units defined for its currency (USD/EUR: 2, JPY: 0, BHD: 3, ...) — e.g. 100.00. Never a string and never minor-unit (cent) integers. The currency comes from the enclosing resource's currency field; amounts with more decimal places than the currency supports are rejected with 422 ValidationError. Wingspan converts to exact minor units at the service boundary, so callers never need sub-minor-unit precision.

string
required
integer
metadata
object

Free-form key-value pairs. Max 50 keys; key length at most 40 characters; value length at most 500 characters. Where a list endpoint declares metadata filtering, it uses the QueryQL namespace via filter[metadata.{key}][eq]=value or filter[metadata.{key}][in][]=value. Endpoints that do not declare the dynamic Metadata filter do not support Metadata filtering.

string
required

Open commercial reason registry: ServiceFailure, Goodwill, Acquisition, Succession, OverCollection, UnauthorizedDeduction, Duplicate, Dispute, Other, Promotional. Required for PrePayment; distinct from payroll deductionType.

string
date
date
string
length between 1 and 128

Caller-assigned identifier; duplicate create returns 409 ResourceConflict, not an upsert.

string
enum

Required for a paid document. Refund recovers through the side-specific document refund path with elevated auth and refund scope; Balance carries forward; OffPlatform closes without cash. Unpaid or untargeted creation accepts only absent or Balance (otherwise 422).

Allowed:
lineItems
array of objects
lineItems
string
Headers
string
^(?:[A-Za-z0-9_.]{22}|[a-f0-9]{24})$

Select the Account for an Account-scoped operation. A direct ServiceAccount API key MUST supply this header, and the target must be within the ServiceAccount owner's or Authorization grant's Account boundary. A Person bearer may select an Account on which it has an active Stakeholder, and an Account session may select its bound Account (or a descendant only when the session explicitly includes descendants).

string
length between 1 and 255
^[\x21-\x7e]{1,255}$

Optional idempotency token for authenticated POST and PATCH requests. Reusing the same key and body returns the cached response for 24 hours, except credential operations that explicitly document a 409 because one-time secret material is never cached; reusing it with a different body returns 409 IdempotencyKeyConflict. Use 1-255 printable ASCII characters.

string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

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