Create a vendor
Changed onCreate a new vendor.
Requirements for enabling vendor payments
Vendor address details are required for paying a vendor by check or for inviting the vendor to join the BILL network.
- line1
- city
- stateOrProvince
- zipOrPostalCode
- country
- payeeName
Note: A vendor can be enrolled to accept virtual card payments even without being connected in the BILL network. See Virtual card FAQ in the BILL Help Center for more information.
Address state/province rules for international vendors
The address.stateOrProvince field enforces strict validation for the US, Canada, and Australia:
- United States (US): 2-character state code (for example, CA, NY).
- Canada (CA): 2-character province code (for example, AB, BC, ON).
- Australia (AU): 2 or 3-character state code (for example, WA, NT, ACT, NSW, QLD).
- All other countries: Free text. Enter the full state or province name (for example, Île-de-France or Bavaria).
Note: Sending a full state or province name for US, Canadian, or Australian addresses returns a 400 Bad Request error. See International vendor in the Guides section for more information.
Requirements for enabling electronic payments to vendors
Vendor bank account details are required for paying a vendor with electronic payment methods.
paymentInformation details about bank accounts are required for adding a vendor bank account.
- payeeName
- bankCountry (for international vendors)
- paymentCurrency (for international vendors)
- nameOnAccount
- accountNumber
- routingNumber (empty for an IBAN accountNumber)
- type (for international vendors)
regulatoryFields and paymentPurpose are additional required fields for enabling electronic payments to international vendors (not United States) in specific countries.
Note: When you add a vendor bank account in the production environment, BILL requires 2 business days to complete a one-time verification of the bank account. To pay such a vendor, you must set a processDate that is 2 business days from the current date.
See Vendors in the Guides section for more information, sample requests, and responses.
Request
- Base URLhttps://gateway.stage.bill.com/connect
- URLhttps://gateway.stage.bill.com/connect/v3/vendors
- Authnone declared
Headers
API session ID generated with /v3/login
Developer key generated with your BILL developer account
Request body
Example request
{
"name": "Happy Music Supplies",
"accountType": "BUSINESS",
"email": "info@happymusicsupplies.org",
"phone": "9876543210",
"address": {
"line1": "123 Main Street",
"city": "San Jose",
"stateOrProvince": "CA",
"zipOrPostalCode": "95002",
"country": "US"
},
"paymentInformation": {
"payeeName": "Happy Music Supplies",
"bankAccount": {
"nameOnAccount": "Bill Vendorson",
"accountNumber": "111222333",
"routingNumber": "074000010"
}
},
"billCurrency": "USD"
}Response
Create a vendor response
Example response
{
"paymentInformation": {
"bankAccount": {
"nameOnAccount": "Bill Vendorson",
"accountNumber": "111222333",
"routingNumber": "074000010",
"type": "CHECKING",
"ownerType": "BUSINESS",
"paymentCurrency": "USD"
}
}
}Changes
- breaking
added
subschema #2to the/////request propertyallOflist - breaking
the request property
/////became required - breaking
the request property
/////became required - breaking
the request property
/////became required - breaking
the request property
/////became required - breaking
the
/////request property's minLength was increased from0to1 - breaking
the
/////request property's minLength was increased from0to1 - breaking
the
/////request property's minLength was increased from0to1 - breaking
added the pattern
^.{0,1000}$to the request property///// - breaking
added the pattern
^.{0,100}$to the request property///// - breaking
added the pattern
^.{0,100}$to the request property///// - breaking
added the pattern
^.{0,100}$to the request property///// - breaking
added the pattern
^.{0,30}$to the request property///// - breaking
the
/////request property type changed fromstringto no type - breaking
the
///////////response's property type changed fromstringto no type for status - breaking
the
///////////response's property type changed fromstringto no type for status - info
added the optional property
to the response with the status - info
added
subschema #2to the///////////response propertyallOflist for the response status - info
added
subschema #2to the///////////response propertyallOflist for the response status
- breaking