> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://beta-docs.payabli.com/api-reference/vendor/create-vendor/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://beta-docs.payabli.com/_mcp/server. # Create vendor POST https://api-sandbox.payabli.com/api/Vendor/single/{entry} Content-Type: application/json Creates a vendor in an entrypoint. Reference: https://beta-docs.payabli.com/api-reference/vendor/create-vendor ## Authentication - `requestToken` header (required) — API Key authentication via header ## Servers - `https://api-sandbox.payabli.com/api` (Sandbox, default) - `https://api.payabli.com/api` (Production) ## Request ### Path parameters - `entry` (string, required) — Entrypoint identifier. ### Body (application/json) This endpoint expects a VendorData. - `vendorNumber` (string, optional) — Custom number identifying the vendor. Must be unique in paypoint. - `AdditionalData` (map from string to map from string to any, optional) — Custom dictionary of key:value pairs. You can use this field to store any data related to the object or for your system. If you are using [custom identifiers](/developer-guides/entities-custom-identifiers), pass those in this object. Example usage: ```json { "additionalData": { "key1": "value1", "key2": "value2", "key3": "value3" } } ``` - `address1` (string, optional) — Vendor's address - `address2` (string, optional) — Additional line for vendor's address. - `billingData` (BillingData, optional) — Object containing vendor's bank information. - `city` (string, optional) — Vendor's city. - `contacts` (list of Contacts, optional) — Array of objects describing the vendor's contacts. - `country` (string, optional) — Vendor's country. - `customerVendorAccount` (string, optional) — Account number of paypoint in the vendor side. - `ein` (string, optional) — EIN/Tax ID for vendor. - `email` (string, optional) — Vendor's email address. Required for vCard. - `internalReferenceId` (long, optional) — Internal identifier for global vendor account. - `locationCode` (string, optional) — Additional location code used to identify the vendor. - `mcc` (string, optional) — Business Merchant Category Code (MCC). [This resource](https://github.com/greggles/mcc-codes/blob/main/mcc_codes.csv) lists MCC codes. - `name1` (string, optional) — Primary name for vendor. Required for new vendor. - `name2` (string, optional) — Secondary name for vendor. - `payeeName1` (string, optional) — Alternative name used to receive paper check. - `payeeName2` (string, optional) — Alternative name used to receive paper check. - `paymentMethod` (VendorPaymentMethod, optional) — Object containing details about the payment method to use for the payout. - `phone` (string, optional) — Vendor's phone number. Phone number can't contain non-digit characters like hyphens or parentheses. - `remitAddress1` (string, optional) — Remittance address. Used for mailing paper checks. - `remitAddress2` (string, optional) — Remittance address additional line. Used for mailing paper checks. - `remitCity` (string, optional) — Remittance address city. Used for mailing paper checks. - `remitCountry` (string, optional) — Remittance address country. Used for mailing paper checks. - `remitState` (string, optional) — Remittance address state. Used for mailing paper checks. - `remitZip` (string, optional) — Remittance address ZIP code. Used for mailing paper checks. - `state` (string, optional) — Vendor's state. Must be a 2 character state code. - `vendorStatus` (integer, optional) — Vendor's status. Allowed status: - 0 Inactive - 1 Active - `zip` (string, optional) — Vendor's zip code. ## Response ### 200 Success - `isSuccess` (boolean, optional) — Boolean indicating whether the operation was successful. A `true` value indicates success. A `false` value indicates failure. - `pageIdentifier` (string, optional) — Auxiliary validation used internally by payment pages and components. - `responseCode` (integer, optional) — Code for the response. Learn more in [API Response Codes](/api-reference/api-responses). - `responseData` (integer, optional) — If the request was successful, this field contains the identifier for the vendor. - `responseText` (string, optional) — Response text for operation: 'Success' or 'Declined'. ## Errors ### 400 Bad Request Error Bad request/ invalid data - `any` ### 401 Unauthorized Error Unauthorized request. - `any` ### 500 Internal Server Error Internal API Error - `any` ### 503 Service Unavailable Error Database connection error - `isSuccess` (boolean, optional) — Boolean indicating whether the operation was successful. A `true` value indicates success. A `false` value indicates failure. - `responseData` (map from string to any, optional) — The object containing the response data. - `responseText` (string, optional) — Response text for operation: 'Success' or 'Declined'. ## Types ### BillingData - `accountNumber` (string, optional) — Account number for bank account. - `bankAccountFunction` (integer, optional) — Describes whether the bank account is used for deposits or withdrawals in Payabli: - `0`: Deposit - `1`: Withdrawal - `2`: Deposit and withdrawal - `bankAccountHolderName` (string, optional) — The accountholder's name. - `bankAccountHolderType` (enum, optional) — Describes whether the bank is a personal or business account. - Allowed values: `Personal`, `Business` - `bankName` (string, optional) — Name of bank for account. - `id` (integer, optional) — The bank's ID in Payabli. - `routingAccount` (string, optional) — Routing number of bank account. - `typeAccount` (enum, optional) — Type of bank account: Checking or Savings. - Allowed values: `Checking`, `Savings` ### Contacts - `contactEmail` (string, optional) — Contact email address. - `contactName` (string, optional) — Contact name. - `contactPhone` (string, optional) — Contact phone number. - `contactTitle` (string, optional) — Contact title. ### VendorPaymentMethod Object containing details about the payment method to use for the payout. - `method` (enum, optional) — Payment method to use for payout. Leave empty for managed payables. - Allowed values: `managed`, `vcard`, `ach`, `check` ## Examples **Request** ```json { "vendorNumber": "1234", "address1": "123 Ocean Drive", "address2": "Suite 400", "billingData": { "accountNumber": "123123123", "bankAccountFunction": 0, "bankAccountHolderName": "Gruzya Adventure Outfitters LLC", "bankAccountHolderType": "Business", "bankName": "Country Bank", "id": 123, "routingAccount": "123123123", "typeAccount": "Checking" }, "city": "Miami", "contacts": [ { "contactEmail": "example@email.com", "contactName": "Herman Martinez", "contactPhone": "3055550000", "contactTitle": "Owner" } ], "country": "US", "customerVendorAccount": "A-37622", "ein": "12-3456789", "email": "example@email.com", "internalReferenceId": 123, "locationCode": "MIA123", "mcc": "7777", "name1": "Herman's Coatings and Masonry", "name2": "", "payeeName1": "", "payeeName2": "", "paymentMethod": { "method": "managed" }, "phone": "5555555555", "remitAddress1": "123 Walnut Street", "remitAddress2": "Suite 900", "remitCity": "Miami", "remitCountry": "US", "remitState": "FL", "remitZip": "31113", "state": "FL", "vendorStatus": 1, "zip": "33139" } ``` **Response** ```json { "isSuccess": true, "responseCode": 1, "responseData": 3890, "responseText": "Success" } ``` **SDK Code** ```python CreateVendor import requests url = "https://api-sandbox.payabli.com/api/Vendor/single/8cfec329267" payload = { "vendorNumber": "1234", "address1": "123 Ocean Drive", "address2": "Suite 400", "billingData": { "accountNumber": "123123123", "bankAccountFunction": 0, "bankAccountHolderName": "Gruzya Adventure Outfitters LLC", "bankAccountHolderType": "Business", "bankName": "Country Bank", "id": 123, "routingAccount": "123123123", "typeAccount": "Checking" }, "city": "Miami", "contacts": [ { "contactEmail": "example@email.com", "contactName": "Herman Martinez", "contactPhone": "3055550000", "contactTitle": "Owner" } ], "country": "US", "customerVendorAccount": "A-37622", "ein": "12-3456789", "email": "example@email.com", "internalReferenceId": 123, "locationCode": "MIA123", "mcc": "7777", "name1": "Herman's Coatings and Masonry", "name2": "", "payeeName1": "", "payeeName2": "", "paymentMethod": { "method": "managed" }, "phone": "5555555555", "remitAddress1": "123 Walnut Street", "remitAddress2": "Suite 900", "remitCity": "Miami", "remitCountry": "US", "remitState": "FL", "remitZip": "31113", "state": "FL", "vendorStatus": 1, "zip": "33139" } headers = { "requestToken": "", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript CreateVendor const url = 'https://api-sandbox.payabli.com/api/Vendor/single/8cfec329267'; const options = { method: 'POST', headers: {requestToken: '', 'Content-Type': 'application/json'}, body: '{"vendorNumber":"1234","address1":"123 Ocean Drive","address2":"Suite 400","billingData":{"accountNumber":"123123123","bankAccountFunction":0,"bankAccountHolderName":"Gruzya Adventure Outfitters LLC","bankAccountHolderType":"Business","bankName":"Country Bank","id":123,"routingAccount":"123123123","typeAccount":"Checking"},"city":"Miami","contacts":[{"contactEmail":"example@email.com","contactName":"Herman Martinez","contactPhone":"3055550000","contactTitle":"Owner"}],"country":"US","customerVendorAccount":"A-37622","ein":"12-3456789","email":"example@email.com","internalReferenceId":123,"locationCode":"MIA123","mcc":"7777","name1":"Herman\'s Coatings and Masonry","name2":"","payeeName1":"","payeeName2":"","paymentMethod":{"method":"managed"},"phone":"5555555555","remitAddress1":"123 Walnut Street","remitAddress2":"Suite 900","remitCity":"Miami","remitCountry":"US","remitState":"FL","remitZip":"31113","state":"FL","vendorStatus":1,"zip":"33139"}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go CreateVendor package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api-sandbox.payabli.com/api/Vendor/single/8cfec329267" payload := strings.NewReader("{\n \"vendorNumber\": \"1234\",\n \"address1\": \"123 Ocean Drive\",\n \"address2\": \"Suite 400\",\n \"billingData\": {\n \"accountNumber\": \"123123123\",\n \"bankAccountFunction\": 0,\n \"bankAccountHolderName\": \"Gruzya Adventure Outfitters LLC\",\n \"bankAccountHolderType\": \"Business\",\n \"bankName\": \"Country Bank\",\n \"id\": 123,\n \"routingAccount\": \"123123123\",\n \"typeAccount\": \"Checking\"\n },\n \"city\": \"Miami\",\n \"contacts\": [\n {\n \"contactEmail\": \"example@email.com\",\n \"contactName\": \"Herman Martinez\",\n \"contactPhone\": \"3055550000\",\n \"contactTitle\": \"Owner\"\n }\n ],\n \"country\": \"US\",\n \"customerVendorAccount\": \"A-37622\",\n \"ein\": \"12-3456789\",\n \"email\": \"example@email.com\",\n \"internalReferenceId\": 123,\n \"locationCode\": \"MIA123\",\n \"mcc\": \"7777\",\n \"name1\": \"Herman's Coatings and Masonry\",\n \"name2\": \"\",\n \"payeeName1\": \"\",\n \"payeeName2\": \"\",\n \"paymentMethod\": {\n \"method\": \"managed\"\n },\n \"phone\": \"5555555555\",\n \"remitAddress1\": \"123 Walnut Street\",\n \"remitAddress2\": \"Suite 900\",\n \"remitCity\": \"Miami\",\n \"remitCountry\": \"US\",\n \"remitState\": \"FL\",\n \"remitZip\": \"31113\",\n \"state\": \"FL\",\n \"vendorStatus\": 1,\n \"zip\": \"33139\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("requestToken", "") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby CreateVendor require 'uri' require 'net/http' url = URI("https://api-sandbox.payabli.com/api/Vendor/single/8cfec329267") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["requestToken"] = '' request["Content-Type"] = 'application/json' request.body = "{\n \"vendorNumber\": \"1234\",\n \"address1\": \"123 Ocean Drive\",\n \"address2\": \"Suite 400\",\n \"billingData\": {\n \"accountNumber\": \"123123123\",\n \"bankAccountFunction\": 0,\n \"bankAccountHolderName\": \"Gruzya Adventure Outfitters LLC\",\n \"bankAccountHolderType\": \"Business\",\n \"bankName\": \"Country Bank\",\n \"id\": 123,\n \"routingAccount\": \"123123123\",\n \"typeAccount\": \"Checking\"\n },\n \"city\": \"Miami\",\n \"contacts\": [\n {\n \"contactEmail\": \"example@email.com\",\n \"contactName\": \"Herman Martinez\",\n \"contactPhone\": \"3055550000\",\n \"contactTitle\": \"Owner\"\n }\n ],\n \"country\": \"US\",\n \"customerVendorAccount\": \"A-37622\",\n \"ein\": \"12-3456789\",\n \"email\": \"example@email.com\",\n \"internalReferenceId\": 123,\n \"locationCode\": \"MIA123\",\n \"mcc\": \"7777\",\n \"name1\": \"Herman's Coatings and Masonry\",\n \"name2\": \"\",\n \"payeeName1\": \"\",\n \"payeeName2\": \"\",\n \"paymentMethod\": {\n \"method\": \"managed\"\n },\n \"phone\": \"5555555555\",\n \"remitAddress1\": \"123 Walnut Street\",\n \"remitAddress2\": \"Suite 900\",\n \"remitCity\": \"Miami\",\n \"remitCountry\": \"US\",\n \"remitState\": \"FL\",\n \"remitZip\": \"31113\",\n \"state\": \"FL\",\n \"vendorStatus\": 1,\n \"zip\": \"33139\"\n}" response = http.request(request) puts response.read_body ``` ```java CreateVendor import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api-sandbox.payabli.com/api/Vendor/single/8cfec329267") .header("requestToken", "") .header("Content-Type", "application/json") .body("{\n \"vendorNumber\": \"1234\",\n \"address1\": \"123 Ocean Drive\",\n \"address2\": \"Suite 400\",\n \"billingData\": {\n \"accountNumber\": \"123123123\",\n \"bankAccountFunction\": 0,\n \"bankAccountHolderName\": \"Gruzya Adventure Outfitters LLC\",\n \"bankAccountHolderType\": \"Business\",\n \"bankName\": \"Country Bank\",\n \"id\": 123,\n \"routingAccount\": \"123123123\",\n \"typeAccount\": \"Checking\"\n },\n \"city\": \"Miami\",\n \"contacts\": [\n {\n \"contactEmail\": \"example@email.com\",\n \"contactName\": \"Herman Martinez\",\n \"contactPhone\": \"3055550000\",\n \"contactTitle\": \"Owner\"\n }\n ],\n \"country\": \"US\",\n \"customerVendorAccount\": \"A-37622\",\n \"ein\": \"12-3456789\",\n \"email\": \"example@email.com\",\n \"internalReferenceId\": 123,\n \"locationCode\": \"MIA123\",\n \"mcc\": \"7777\",\n \"name1\": \"Herman's Coatings and Masonry\",\n \"name2\": \"\",\n \"payeeName1\": \"\",\n \"payeeName2\": \"\",\n \"paymentMethod\": {\n \"method\": \"managed\"\n },\n \"phone\": \"5555555555\",\n \"remitAddress1\": \"123 Walnut Street\",\n \"remitAddress2\": \"Suite 900\",\n \"remitCity\": \"Miami\",\n \"remitCountry\": \"US\",\n \"remitState\": \"FL\",\n \"remitZip\": \"31113\",\n \"state\": \"FL\",\n \"vendorStatus\": 1,\n \"zip\": \"33139\"\n}") .asString(); ``` ```php CreateVendor request('POST', 'https://api-sandbox.payabli.com/api/Vendor/single/8cfec329267', [ 'body' => '{ "vendorNumber": "1234", "address1": "123 Ocean Drive", "address2": "Suite 400", "billingData": { "accountNumber": "123123123", "bankAccountFunction": 0, "bankAccountHolderName": "Gruzya Adventure Outfitters LLC", "bankAccountHolderType": "Business", "bankName": "Country Bank", "id": 123, "routingAccount": "123123123", "typeAccount": "Checking" }, "city": "Miami", "contacts": [ { "contactEmail": "example@email.com", "contactName": "Herman Martinez", "contactPhone": "3055550000", "contactTitle": "Owner" } ], "country": "US", "customerVendorAccount": "A-37622", "ein": "12-3456789", "email": "example@email.com", "internalReferenceId": 123, "locationCode": "MIA123", "mcc": "7777", "name1": "Herman\'s Coatings and Masonry", "name2": "", "payeeName1": "", "payeeName2": "", "paymentMethod": { "method": "managed" }, "phone": "5555555555", "remitAddress1": "123 Walnut Street", "remitAddress2": "Suite 900", "remitCity": "Miami", "remitCountry": "US", "remitState": "FL", "remitZip": "31113", "state": "FL", "vendorStatus": 1, "zip": "33139" }', 'headers' => [ 'Content-Type' => 'application/json', 'requestToken' => '', ], ]); echo $response->getBody(); ``` ```csharp CreateVendor using RestSharp; var client = new RestClient("https://api-sandbox.payabli.com/api/Vendor/single/8cfec329267"); var request = new RestRequest(Method.POST); request.AddHeader("requestToken", ""); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"vendorNumber\": \"1234\",\n \"address1\": \"123 Ocean Drive\",\n \"address2\": \"Suite 400\",\n \"billingData\": {\n \"accountNumber\": \"123123123\",\n \"bankAccountFunction\": 0,\n \"bankAccountHolderName\": \"Gruzya Adventure Outfitters LLC\",\n \"bankAccountHolderType\": \"Business\",\n \"bankName\": \"Country Bank\",\n \"id\": 123,\n \"routingAccount\": \"123123123\",\n \"typeAccount\": \"Checking\"\n },\n \"city\": \"Miami\",\n \"contacts\": [\n {\n \"contactEmail\": \"example@email.com\",\n \"contactName\": \"Herman Martinez\",\n \"contactPhone\": \"3055550000\",\n \"contactTitle\": \"Owner\"\n }\n ],\n \"country\": \"US\",\n \"customerVendorAccount\": \"A-37622\",\n \"ein\": \"12-3456789\",\n \"email\": \"example@email.com\",\n \"internalReferenceId\": 123,\n \"locationCode\": \"MIA123\",\n \"mcc\": \"7777\",\n \"name1\": \"Herman's Coatings and Masonry\",\n \"name2\": \"\",\n \"payeeName1\": \"\",\n \"payeeName2\": \"\",\n \"paymentMethod\": {\n \"method\": \"managed\"\n },\n \"phone\": \"5555555555\",\n \"remitAddress1\": \"123 Walnut Street\",\n \"remitAddress2\": \"Suite 900\",\n \"remitCity\": \"Miami\",\n \"remitCountry\": \"US\",\n \"remitState\": \"FL\",\n \"remitZip\": \"31113\",\n \"state\": \"FL\",\n \"vendorStatus\": 1,\n \"zip\": \"33139\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift CreateVendor import Foundation let headers = [ "requestToken": "", "Content-Type": "application/json" ] let parameters = [ "vendorNumber": "1234", "address1": "123 Ocean Drive", "address2": "Suite 400", "billingData": [ "accountNumber": "123123123", "bankAccountFunction": 0, "bankAccountHolderName": "Gruzya Adventure Outfitters LLC", "bankAccountHolderType": "Business", "bankName": "Country Bank", "id": 123, "routingAccount": "123123123", "typeAccount": "Checking" ], "city": "Miami", "contacts": [ [ "contactEmail": "example@email.com", "contactName": "Herman Martinez", "contactPhone": "3055550000", "contactTitle": "Owner" ] ], "country": "US", "customerVendorAccount": "A-37622", "ein": "12-3456789", "email": "example@email.com", "internalReferenceId": 123, "locationCode": "MIA123", "mcc": "7777", "name1": "Herman's Coatings and Masonry", "name2": "", "payeeName1": "", "payeeName2": "", "paymentMethod": ["method": "managed"], "phone": "5555555555", "remitAddress1": "123 Walnut Street", "remitAddress2": "Suite 900", "remitCity": "Miami", "remitCountry": "US", "remitState": "FL", "remitZip": "31113", "state": "FL", "vendorStatus": 1, "zip": "33139" ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/Vendor/single/8cfec329267")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` > If you're a software company, you're a payments company™