Create vendor payroll document upload
curl --request POST \
--url https://api.sandbox.bitwage.com/api/vendor/payroll/documents \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"company_id": "<string>",
"filename": "invoice-1001.pdf",
"content_type": "application/pdf"
}
'import requests
url = "https://api.sandbox.bitwage.com/api/vendor/payroll/documents"
payload = {
"company_id": "<string>",
"filename": "invoice-1001.pdf",
"content_type": "application/pdf"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
company_id: '<string>',
filename: 'invoice-1001.pdf',
content_type: 'application/pdf'
})
};
fetch('https://api.sandbox.bitwage.com/api/vendor/payroll/documents', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.bitwage.com/api/vendor/payroll/documents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'company_id' => '<string>',
'filename' => 'invoice-1001.pdf',
'content_type' => 'application/pdf'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.bitwage.com/api/vendor/payroll/documents"
payload := strings.NewReader("{\n \"company_id\": \"<string>\",\n \"filename\": \"invoice-1001.pdf\",\n \"content_type\": \"application/pdf\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sandbox.bitwage.com/api/vendor/payroll/documents")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"company_id\": \"<string>\",\n \"filename\": \"invoice-1001.pdf\",\n \"content_type\": \"application/pdf\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.bitwage.com/api/vendor/payroll/documents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"company_id\": \"<string>\",\n \"filename\": \"invoice-1001.pdf\",\n \"content_type\": \"application/pdf\"\n}"
response = http.request(request)
puts response.read_body{
"invoice_upload_id": "<string>",
"upload_url": "<string>",
"headers": {},
"temp_s3_key": "<string>",
"expires_at": "2023-11-07T05:31:56Z"
}Company Payroll
Create vendor payroll document upload
Create a presigned upload session for a vendor payment invoice.
Upload the document to the returned upload_url, then pass the returned
invoice_upload_id on the matching vendor payment when creating the
vendor payroll. This endpoint supports API key authentication only.
POST
/
api
/
vendor
/
payroll
/
documents
Create vendor payroll document upload
curl --request POST \
--url https://api.sandbox.bitwage.com/api/vendor/payroll/documents \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"company_id": "<string>",
"filename": "invoice-1001.pdf",
"content_type": "application/pdf"
}
'import requests
url = "https://api.sandbox.bitwage.com/api/vendor/payroll/documents"
payload = {
"company_id": "<string>",
"filename": "invoice-1001.pdf",
"content_type": "application/pdf"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
company_id: '<string>',
filename: 'invoice-1001.pdf',
content_type: 'application/pdf'
})
};
fetch('https://api.sandbox.bitwage.com/api/vendor/payroll/documents', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.bitwage.com/api/vendor/payroll/documents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'company_id' => '<string>',
'filename' => 'invoice-1001.pdf',
'content_type' => 'application/pdf'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.bitwage.com/api/vendor/payroll/documents"
payload := strings.NewReader("{\n \"company_id\": \"<string>\",\n \"filename\": \"invoice-1001.pdf\",\n \"content_type\": \"application/pdf\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sandbox.bitwage.com/api/vendor/payroll/documents")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"company_id\": \"<string>\",\n \"filename\": \"invoice-1001.pdf\",\n \"content_type\": \"application/pdf\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.bitwage.com/api/vendor/payroll/documents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"company_id\": \"<string>\",\n \"filename\": \"invoice-1001.pdf\",\n \"content_type\": \"application/pdf\"\n}"
response = http.request(request)
puts response.read_body{
"invoice_upload_id": "<string>",
"upload_url": "<string>",
"headers": {},
"temp_s3_key": "<string>",
"expires_at": "2023-11-07T05:31:56Z"
}Authorizations
API key authentication. Include your access token as:
Authorization: Basic <ACCESS_TOKEN>
Headers
Unique key for idempotent write requests.
Body
application/json
Response
200 - application/json
Vendor payroll document upload session created.
Upload ID to pass on the vendor payroll payment item.
Presigned URL for uploading the invoice file.
Headers to include when uploading the file.
Show child attributes
Show child attributes
Temporary object key for the uploaded invoice.
Time when the upload session expires.