Light v1 - Vendors API
The v1 - Vendors API from Light — 2 operation(s) for v1 - vendors.
The v1 - Vendors API from Light — 2 operation(s) for v1 - vendors.
openapi: 3.0.1
info:
title: Light Authorization v1 - Vendors API
version: 1.0.0
security:
- apiKeyAuth: []
- bearerAuth: []
tags:
- name: v1 - Vendors
paths:
/v1/vendors:
get:
tags:
- v1 - Vendors
summary: List vendors
description: Returns a paginated list of vendors
operationId: listVendors
parameters:
- name: sort
in: query
schema:
type: string
description: "Sort string in the format `field:direction`. To provide multiple sort fields, separate them with commas.\n\nAvailable directions: `asc`, `desc`. \n\nAvailable fields: `name`, `spendLastMtd`, `createdAt`, `updatedAt`."
example: amount:desc,createdAt:asc
- name: filter
in: query
schema:
type: string
description: "Filter string in the format `field:operator:value`. To provide multiple filters, separate them with commas.\n\nAvailable operators: `eq`, `ne`, `in`, `not_in`, `gt`, `gte`, `lt`, `lte`.\n - For `in` and `not_in` operators, provide multiple values separated by the pipe character (`|`). \n\nAvailable fields: `id`, `status`, `type`, `ledgerAccountId`, `ledgerTaxId`, `spendLastMtd`, `createdAt`, `updatedAt`."
example: state:in:IN_DRAFT|SCHEDULED|PAID,amount:gte:500,vendorId:ne:null
- name: searchTerm
in: query
description: Search term to filter results by. Performs a case-insensitive partial match across searchable fields.
schema:
type: string
- name: limit
in: query
description: Maximum number of items to return. Default is 50, maximum is 200.
schema:
maximum: 200
type: integer
format: int32
- name: offset
in: query
description: Number of items to skip before starting to collect the result set. Deprecated, use 'cursor' instead.
deprecated: true
schema:
type: integer
format: int64
- name: cursor
in: query
description: 'The cursor position to start returning results from.
To opt-in into cursor-based pagination, provide `0` for the initial request.
For subsequent requests, use `nextCursor` and `prevCursor` from the previous response to navigate.
Cursor values are opaque and should not be constructed manually.'
schema:
type: string
responses:
default:
description: default response
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ExternalPaginatedResponseV1ModelExternalVendorV1Model'
post:
tags:
- v1 - Vendors
summary: Create vendor
description: Creates a new vendor
operationId: createVendor
requestBody:
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ExternalCreateVendorRequestV1Model'
responses:
default:
description: default response
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ExternalVendorV1Model'
/v1/vendors/{vendorId}:
get:
tags:
- v1 - Vendors
summary: Get vendor
description: Returns a vendor by ID
operationId: getVendor
parameters:
- name: vendorId
in: path
required: true
schema:
type: string
format: uuid
responses:
default:
description: default response
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ExternalVendorV1Model'
put:
tags:
- v1 - Vendors
summary: Update vendor
description: Updates an existing vendor
operationId: updateVendor
parameters:
- name: vendorId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ExternalUpdateVendorRequestV1Model'
responses:
default:
description: default response
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/ExternalVendorV1Model'
components:
schemas:
ExternalVendorV1Model:
type: object
properties:
type:
type: string
description: 'Type of the vendor.
⚠️ This enum is not exhaustive; new values may be added in the future.'
nullable: false
deprecated: false
enum:
- EXTERNAL
- USER
vendorId:
type: string
description: External ID of the vendor.
format: uuid
companyId:
type: string
description: ID of the company this vendor belongs to.
format: uuid
companyEntityIds:
uniqueItems: true
type: array
description: IDs of the company entities this vendor is associated with.
items:
type: string
description: IDs of the company entities this vendor is associated with.
format: uuid
defaultCompanyEntity:
$ref: '#/components/schemas/ExternalDefaultVendorCompanyEntityV1Model'
vatId:
type: string
description: Vendor VAT ID.
nullable: true
businessRegistrationNumber:
type: string
description: Vendor business registration number.
nullable: true
identifier:
type: string
description: Vendor identifier (external/system identifier).
nullable: true
name:
type: string
description: Vendor name.
description:
type: string
description: Vendor description or memo.
nullable: true
avatarUrl:
type: string
description: Vendor avatar/logo URL.
nullable: true
email:
type: string
description: Vendor email address.
nullable: true
phoneNumber:
$ref: '#/components/schemas/PhoneNumber'
website:
type: string
description: Vendor website.
nullable: true
country:
type: string
description: 'Vendor country.
⚠️ This enum is not exhaustive; new values may be added in the future.'
nullable: true
deprecated: false
enum:
- UNDEFINED
- AC
- AD
- AE
- AF
- AG
- AI
- AL
- AM
- AN
- AO
- AQ
- AR
- AS
- AT
- AU
- AW
- AX
- AZ
- BA
- BB
- BD
- BE
- BF
- BG
- BH
- BI
- BJ
- BL
- BM
- BN
- BO
- BQ
- BR
- BS
- BT
- BU
- BV
- BW
- BY
- BZ
- CA
- CC
- CD
- CF
- CG
- CH
- CI
- CK
- CL
- CM
- CN
- CO
- CP
- CR
- CS
- CU
- CV
- CW
- CX
- CY
- CZ
- DE
- DG
- DJ
- DK
- DM
- DO
- DZ
- EA
- EC
- EE
- EG
- EH
- ER
- ES
- ET
- EU
- EZ
- FI
- FJ
- FK
- FM
- FO
- FR
- FX
- GA
- GB
- GD
- GE
- GF
- GG
- GH
- GI
- GL
- GM
- GN
- GP
- GQ
- GR
- GS
- GT
- GU
- GW
- GY
- HK
- HM
- HN
- HR
- HT
- HU
- IC
- ID
- IE
- IL
- IM
- IN
- IO
- IQ
- IR
- IS
- IT
- JE
- JM
- JO
- JP
- KE
- KG
- KH
- KI
- KM
- KN
- KP
- KR
- KW
- KY
- KZ
- LA
- LB
- LC
- LI
- LK
- LR
- LS
- LT
- LU
- LV
- LY
- MA
- MC
- MD
- ME
- MF
- MG
- MH
- MK
- ML
- MM
- MN
- MO
- MP
- MQ
- MR
- MS
- MT
- MU
- MV
- MW
- MX
- MY
- MZ
- NA
- NC
- NE
- NF
- NG
- NI
- NL
- 'NO'
- NP
- NR
- NT
- NU
- NZ
- OM
- PA
- PE
- PF
- PG
- PH
- PK
- PL
- PM
- PN
- PR
- PS
- PT
- PW
- PY
- QA
- RE
- RO
- RS
- RU
- RW
- SA
- SB
- SC
- SD
- SE
- SF
- SG
- SH
- SI
- SJ
- SK
- SL
- SM
- SN
- SO
- SR
- SS
- ST
- SU
- SV
- SX
- SY
- SZ
- TA
- TC
- TD
- TF
- TG
- TH
- TJ
- TK
- TL
- TM
- TN
- TO
- TP
- TR
- TT
- TV
- TW
- TZ
- UA
- UG
- UK
- UM
- US
- UY
- UZ
- VA
- VC
- VE
- VG
- VI
- VN
- VU
- WF
- WS
- XI
- XU
- XK
- YE
- YT
- YU
- ZA
- ZM
- ZR
- ZW
city:
type: string
description: Vendor city.
nullable: true
address:
type: string
description: Vendor street address.
nullable: true
zipcode:
type: string
description: Vendor ZIP/postal code.
nullable: true
bankName:
type: string
description: Vendor bank name.
nullable: true
bankCountry:
type: string
description: 'Vendor bank country.
⚠️ This enum is not exhaustive; new values may be added in the future.'
nullable: true
deprecated: false
enum:
- UNDEFINED
- AC
- AD
- AE
- AF
- AG
- AI
- AL
- AM
- AN
- AO
- AQ
- AR
- AS
- AT
- AU
- AW
- AX
- AZ
- BA
- BB
- BD
- BE
- BF
- BG
- BH
- BI
- BJ
- BL
- BM
- BN
- BO
- BQ
- BR
- BS
- BT
- BU
- BV
- BW
- BY
- BZ
- CA
- CC
- CD
- CF
- CG
- CH
- CI
- CK
- CL
- CM
- CN
- CO
- CP
- CR
- CS
- CU
- CV
- CW
- CX
- CY
- CZ
- DE
- DG
- DJ
- DK
- DM
- DO
- DZ
- EA
- EC
- EE
- EG
- EH
- ER
- ES
- ET
- EU
- EZ
- FI
- FJ
- FK
- FM
- FO
- FR
- FX
- GA
- GB
- GD
- GE
- GF
- GG
- GH
- GI
- GL
- GM
- GN
- GP
- GQ
- GR
- GS
- GT
- GU
- GW
- GY
- HK
- HM
- HN
- HR
- HT
- HU
- IC
- ID
- IE
- IL
- IM
- IN
- IO
- IQ
- IR
- IS
- IT
- JE
- JM
- JO
- JP
- KE
- KG
- KH
- KI
- KM
- KN
- KP
- KR
- KW
- KY
- KZ
- LA
- LB
- LC
- LI
- LK
- LR
- LS
- LT
- LU
- LV
- LY
- MA
- MC
- MD
- ME
- MF
- MG
- MH
- MK
- ML
- MM
- MN
- MO
- MP
- MQ
- MR
- MS
- MT
- MU
- MV
- MW
- MX
- MY
- MZ
- NA
- NC
- NE
- NF
- NG
- NI
- NL
- 'NO'
- NP
- NR
- NT
- NU
- NZ
- OM
- PA
- PE
- PF
- PG
- PH
- PK
- PL
- PM
- PN
- PR
- PS
- PT
- PW
- PY
- QA
- RE
- RO
- RS
- RU
- RW
- SA
- SB
- SC
- SD
- SE
- SF
- SG
- SH
- SI
- SJ
- SK
- SL
- SM
- SN
- SO
- SR
- SS
- ST
- SU
- SV
- SX
- SY
- SZ
- TA
- TC
- TD
- TF
- TG
- TH
- TJ
- TK
- TL
- TM
- TN
- TO
- TP
- TR
- TT
- TV
- TW
- TZ
- UA
- UG
- UK
- UM
- US
- UY
- UZ
- VA
- VC
- VE
- VG
- VI
- VN
- VU
- WF
- WS
- XI
- XU
- XK
- YE
- YT
- YU
- ZA
- ZM
- ZR
- ZW
bankCity:
type: string
description: Vendor bank city.
nullable: true
bankAddress:
type: string
description: Vendor bank address.
nullable: true
bankZipcode:
type: string
description: Vendor bank ZIP/postal code.
nullable: true
bankAccountNumber:
type: string
description: Vendor bank account number (IBAN or local format).
nullable: true
bankAccountBic:
type: string
description: Vendor bank BIC/SWIFT code.
nullable: true
domesticBankAccountNumber:
type: string
description: Vendor domestic bank account number (country-specific format).
nullable: true
domesticBankAccountCode:
type: string
description: Vendor domestic bank account code (e.g. routing/sort code).
nullable: true
swedishBankgiroNumber:
type: string
description: Vendor Swedish Bankgiro number, if applicable.
nullable: true
swedishPlusgiroNumber:
type: string
description: Vendor Swedish Plusgiro number, if applicable.
nullable: true
bankRecipientName:
type: string
description: Name of the bank account holder. When set, this overrides the vendor name on the payment recipient for providers that consult it (currently Airwallex).
nullable: true
vendorCreatedAt:
type: string
description: Timestamp when the vendor was created.
format: date-time
approvers:
type: array
description: List of vendor approvers.
items:
$ref: '#/components/schemas/ExternalVendorApproverV1Model'
notes:
type: array
description: List of vendor notes.
items:
$ref: '#/components/schemas/ExternalVendorNoteV1Model'
currency:
type: string
example: USD
contractValue:
type: integer
description: Vendor contract value in cents.
format: int64
nullable: true
createdBy:
type: string
description: ID of the user who created the vendor.
format: uuid
nullable: true
status:
type: string
description: 'Vendor onboarding/status.
⚠️ This enum is not exhaustive; new values may be added in the future.'
nullable: false
deprecated: false
enum:
- ONBOARDING
- IN_REVIEW
- ACTIVE
- FAILED
failureContext:
$ref: '#/components/schemas/ExternalUiClientExceptionV1Model'
version:
type: integer
description: Vendor record version.
format: int32
updatedAt:
type: string
description: Timestamp when the vendor was last updated.
format: date-time
customProperties:
type: array
description: Custom properties set on the vendor.
nullable: true
items:
$ref: '#/components/schemas/ExternalCustomPropertyV1Model'
lastMtdSpendInGroupCurrency:
type: integer
description: Last month-to-date spend in group currency.
format: int64
nullable: true
groupCurrency:
type: string
example: USD
ExternalPaginatedResponseV1ModelExternalVendorV1Model:
type: object
properties:
records:
type: array
description: List of records for the current page
items:
$ref: '#/components/schemas/ExternalVendorV1Model'
hasMore:
type: boolean
description: Boolean flag indicating if there are more records available
total:
type: integer
description: Total number of records (only for offset pagination). This field is not guaranteed to be returned and only available for offset pagination, please do not rely on it and migrate to cursor pagination.
format: int64
nullable: true
deprecated: true
nextCursor:
type: string
description: Cursor for fetching the next page (only for cursor pagination)
nullable: true
prevCursor:
type: string
description: Cursor for fetching the previous page (only for cursor pagination)
nullable: true
ExternalVendorNoteV1Model:
type: object
properties:
id:
type: string
format: uuid
vendorId:
type: string
format: uuid
authorId:
type: string
format: uuid
companyId:
type: string
format: uuid
channel:
type: string
description: ⚠️ This enum is not exhaustive; new values may be added in the future.
enum:
- WEB_APP
- SLACK
content:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
description: List of vendor notes.
ExternalCreateVendorRequestV1Model:
type: object
properties:
defaultCompanyEntity:
$ref: '#/components/schemas/ExternalCreateDefaultVendorCompanyEntityRequestV1Model'
companyEntityIds:
uniqueItems: true
type: array
description: IDs of the company entities this vendor is associated with.
items:
type: string
description: IDs of the company entities this vendor is associated with.
format: uuid
vatId:
type: string
description: Vendor VAT ID.
nullable: true
businessRegistrationNumber:
type: string
description: Vendor business registration number.
nullable: true
identifier:
type: string
description: Vendor identifier (external/system identifier).
nullable: true
name:
type: string
description: Vendor name.
description:
type: string
description: Vendor description or memo.
nullable: true
avatarUrl:
type: string
description: Vendor avatar/logo URL.
nullable: true
email:
type: string
description: Vendor email address.
nullable: true
phoneNumber:
$ref: '#/components/schemas/PhoneNumber'
website:
type: string
description: Vendor website.
nullable: true
country:
type: string
description: 'Vendor country.
⚠️ This enum is not exhaustive; new values may be added in the future.'
nullable: true
deprecated: false
enum:
- UNDEFINED
- AC
- AD
- AE
- AF
- AG
- AI
- AL
- AM
- AN
- AO
- AQ
- AR
- AS
- AT
- AU
- AW
- AX
- AZ
- BA
- BB
- BD
- BE
- BF
- BG
- BH
- BI
- BJ
- BL
- BM
- BN
- BO
- BQ
- BR
- BS
- BT
- BU
- BV
- BW
- BY
- BZ
- CA
- CC
- CD
- CF
- CG
- CH
- CI
- CK
- CL
- CM
- CN
- CO
- CP
- CR
- CS
- CU
- CV
- CW
- CX
- CY
- CZ
- DE
- DG
- DJ
- DK
- DM
- DO
- DZ
- EA
- EC
- EE
- EG
- EH
- ER
- ES
- ET
- EU
- EZ
- FI
- FJ
- FK
- FM
- FO
- FR
- FX
- GA
- GB
- GD
- GE
- GF
- GG
- GH
- GI
- GL
- GM
- GN
- GP
- GQ
- GR
- GS
- GT
- GU
- GW
- GY
- HK
- HM
- HN
- HR
- HT
- HU
- IC
- ID
- IE
- IL
- IM
- IN
- IO
- IQ
- IR
- IS
- IT
- JE
- JM
- JO
- JP
- KE
- KG
- KH
- KI
- KM
- KN
- KP
- KR
- KW
- KY
- KZ
- LA
- LB
- LC
- LI
- LK
- LR
- LS
- LT
- LU
- LV
- LY
- MA
- MC
- MD
- ME
- MF
- MG
- MH
- MK
- ML
- MM
- MN
- MO
- MP
- MQ
- MR
- MS
- MT
- MU
- MV
- MW
- MX
- MY
- MZ
- NA
- NC
- NE
- NF
- NG
- NI
- NL
- 'NO'
- NP
- NR
- NT
- NU
- NZ
- OM
- PA
- PE
- PF
- PG
- PH
- PK
- PL
- PM
- PN
- PR
- PS
- PT
- PW
- PY
- QA
- RE
- RO
- RS
- RU
- RW
- SA
- SB
- SC
- SD
- SE
- SF
- SG
- SH
- SI
- SJ
- SK
- SL
- SM
- SN
- SO
- SR
- SS
- ST
- SU
- SV
- SX
- SY
- SZ
- TA
- TC
- TD
- TF
- TG
- TH
- TJ
- TK
- TL
- TM
- TN
- TO
- TP
- TR
- TT
- TV
- TW
- TZ
- UA
- UG
- UK
- UM
- US
- UY
- UZ
- VA
- VC
- VE
- VG
- VI
- VN
- VU
- WF
- WS
- XI
- XU
- XK
- YE
- YT
- YU
- ZA
- ZM
- ZR
- ZW
city:
type: string
description: Vendor city.
nullable: true
address:
type: string
description: Vendor street address.
nullable: true
zipcode:
type: string
description: Vendor ZIP/postal code.
nullable: true
bankName:
type: string
description: Vendor bank name.
nullable: true
bankCountry:
type: string
description: 'Vendor bank country.
⚠️ This enum is not exhaustive; new values may be added in the future.'
nullable: true
deprecated: false
enum:
- UNDEFINED
- AC
- AD
- AE
- AF
- AG
- AI
- AL
- AM
- AN
- AO
- AQ
- AR
- AS
- AT
- AU
- AW
- AX
- AZ
- BA
- BB
- BD
- BE
- BF
- BG
- BH
- BI
- BJ
- BL
- BM
- BN
- BO
- BQ
- BR
- BS
- BT
- BU
- BV
- BW
- BY
- BZ
- CA
- CC
- CD
- CF
- CG
- CH
- CI
- CK
- CL
- CM
- CN
- CO
- CP
- CR
- CS
- CU
- CV
- CW
- CX
- CY
- CZ
- DE
- DG
- DJ
- DK
- DM
- DO
- DZ
- EA
- EC
- EE
- EG
- EH
- ER
- ES
- ET
- EU
- EZ
- FI
- FJ
- FK
- FM
- FO
- FR
- FX
- GA
- GB
- GD
- GE
- GF
- GG
- GH
- GI
- GL
- GM
- GN
- GP
- GQ
- GR
- GS
- GT
- GU
- GW
- GY
- HK
- HM
- HN
- HR
- HT
- HU
- IC
- ID
- IE
- IL
- IM
- IN
- IO
- IQ
- IR
- IS
- IT
- JE
- JM
- JO
- JP
- KE
- KG
- KH
- KI
- KM
- KN
- KP
- KR
- KW
- KY
- KZ
- LA
- LB
- LC
- LI
- LK
- LR
- LS
- LT
- LU
- LV
- LY
- MA
- MC
- MD
- ME
- MF
- MG
- MH
- MK
- ML
- MM
- MN
- MO
- MP
- MQ
- MR
- MS
- MT
- MU
- MV
- MW
- MX
- MY
- MZ
- NA
- NC
- NE
- NF
- NG
- NI
- NL
- 'NO'
- NP
- NR
- NT
- NU
- NZ
- OM
- PA
- PE
- PF
- PG
- PH
- PK
- PL
- PM
- PN
- PR
- PS
- PT
- PW
- PY
- QA
- RE
- RO
- RS
- RU
- RW
- SA
- SB
- SC
- SD
- SE
- SF
- SG
- SH
- SI
- SJ
- SK
- SL
- SM
- SN
- SO
- SR
- SS
- ST
- SU
- SV
- SX
- SY
- SZ
- TA
- TC
- TD
- TF
- TG
- TH
- TJ
- TK
- TL
- TM
- TN
- TO
- TP
- TR
- TT
- TV
- TW
- TZ
- UA
- UG
- UK
- UM
- US
- UY
- UZ
- VA
- VC
- VE
- VG
- VI
- VN
- VU
- WF
- WS
- XI
- XU
- XK
- YE
- YT
- YU
- ZA
- ZM
- ZR
- ZW
bankCity:
type: string
description: Vendor bank city.
nullable: true
bankAddress:
type: string
description: Vendor bank address.
nullable: true
bankZipcode:
type: string
description: Vendor bank ZIP/postal code.
nullable: true
bankAccountNumber:
type: string
description: Vendor bank account number (IBAN or local format).
nullable: true
bankAccountBic:
type: string
description: Vendor bank BIC/SWIFT code.
nullable: true
domesticBankAccountNumber:
type: string
description: Vendor domestic bank account number (country-specific format).
nullable: true
domesticBankAccountCode:
type: string
description: Vendor domestic bank account code (e.g. routing/sort code).
nullable: true
swedishBankgiroNumber:
type: string
description: Vendor Swedish Bankgiro number, if applicable.
nullable: true
swedishPlusgiroNumber:
type: string
description: Vendor Swedish Plusgiro number, if applicable.
nullable: true
bankRecipientName:
type: string
description: Name of the bank account holder. When set, this overrides the vendor
# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/light/refs/heads/main/openapi/light-v1-vendors-api-openapi.yml