Get invoice
curl --request GET \
--url https://app.sideshift.app/api/v1/invoices/{invoiceId} \
--header 'x-api-key: <api-key>'import requests
url = "https://app.sideshift.app/api/v1/invoices/{invoiceId}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://app.sideshift.app/api/v1/invoices/{invoiceId}', 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://app.sideshift.app/api/v1/invoices/{invoiceId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-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"
"net/http"
"io"
)
func main() {
url := "https://app.sideshift.app/api/v1/invoices/{invoiceId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.sideshift.app/api/v1/invoices/{invoiceId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.sideshift.app/api/v1/invoices/{invoiceId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"invoice": {
"id": "<string>",
"invoiceNumber": "<string>",
"customerId": "<string>",
"customerName": "<string>",
"customerEmail": "jsmith@example.com",
"additionalEmails": [
"jsmith@example.com"
],
"customerAddress": {
"line1": "<string>",
"line2": "<string>",
"city": "<string>",
"state": "<string>",
"postalCode": "<string>",
"country": "<string>"
},
"currency": "<string>",
"lineItems": [
{
"description": "<string>",
"quantity": 2,
"unitPriceCents": 2,
"id": "<string>",
"amountCents": 123
}
],
"subtotalCents": 123,
"taxCents": 123,
"discountCents": 123,
"totalCents": 123,
"allowedPaymentTypes": [
"<string>"
],
"collectCustomerFee": true,
"issueDate": "2023-11-07T05:31:56Z",
"dueDate": "2023-11-07T05:31:56Z",
"paidAt": "2023-11-07T05:31:56Z",
"voidedAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"notes": "<string>",
"terms": "<string>",
"sendReminders": true,
"remindersSentCount": 123,
"lastReminderSentAt": "2023-11-07T05:31:56Z",
"hostedInvoiceUrl": "<string>",
"pdfUrl": "<string>",
"bankTransferInstructions": {
"currency": "<string>",
"reference": "<string>",
"hostedInstructionsUrl": "<string>",
"financialAddresses": [
{
"bankName": "<string>",
"accountNumber": "<string>",
"routingNumber": "<string>",
"accountHolderName": "<string>",
"accountHolderAddress": "<string>",
"accountType": "<string>",
"iban": "<string>",
"swiftCode": "<string>"
}
],
"generatedAt": "2023-11-07T05:31:56Z"
},
"bankTransferFeeCents": 123,
"bankTransferAmountCents": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
}Retrieve a single invoice by ID. Returns 404 if it does not belong to the authenticated company.
- This endpoint lazily provisions wire-transfer funding details
for invoices that opted into
bank_transferbut didn’t havebankTransferInstructionspopulated at create time (eg. Stripe Customer Balance was not yet enabled on the account). Polling this endpoint after creation is the recommended way to surface wire details to your end user once the merchant fixes their Stripe configuration. - The hosted invoice page (
hostedInvoiceUrl) and PDF (pdfUrl) are stable URLs — safe to cache or share.
GET
/
invoices
/
{invoiceId}
Get invoice
curl --request GET \
--url https://app.sideshift.app/api/v1/invoices/{invoiceId} \
--header 'x-api-key: <api-key>'import requests
url = "https://app.sideshift.app/api/v1/invoices/{invoiceId}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://app.sideshift.app/api/v1/invoices/{invoiceId}', 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://app.sideshift.app/api/v1/invoices/{invoiceId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-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"
"net/http"
"io"
)
func main() {
url := "https://app.sideshift.app/api/v1/invoices/{invoiceId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.sideshift.app/api/v1/invoices/{invoiceId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.sideshift.app/api/v1/invoices/{invoiceId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"invoice": {
"id": "<string>",
"invoiceNumber": "<string>",
"customerId": "<string>",
"customerName": "<string>",
"customerEmail": "jsmith@example.com",
"additionalEmails": [
"jsmith@example.com"
],
"customerAddress": {
"line1": "<string>",
"line2": "<string>",
"city": "<string>",
"state": "<string>",
"postalCode": "<string>",
"country": "<string>"
},
"currency": "<string>",
"lineItems": [
{
"description": "<string>",
"quantity": 2,
"unitPriceCents": 2,
"id": "<string>",
"amountCents": 123
}
],
"subtotalCents": 123,
"taxCents": 123,
"discountCents": 123,
"totalCents": 123,
"allowedPaymentTypes": [
"<string>"
],
"collectCustomerFee": true,
"issueDate": "2023-11-07T05:31:56Z",
"dueDate": "2023-11-07T05:31:56Z",
"paidAt": "2023-11-07T05:31:56Z",
"voidedAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"notes": "<string>",
"terms": "<string>",
"sendReminders": true,
"remindersSentCount": 123,
"lastReminderSentAt": "2023-11-07T05:31:56Z",
"hostedInvoiceUrl": "<string>",
"pdfUrl": "<string>",
"bankTransferInstructions": {
"currency": "<string>",
"reference": "<string>",
"hostedInstructionsUrl": "<string>",
"financialAddresses": [
{
"bankName": "<string>",
"accountNumber": "<string>",
"routingNumber": "<string>",
"accountHolderName": "<string>",
"accountHolderAddress": "<string>",
"accountType": "<string>",
"iban": "<string>",
"swiftCode": "<string>"
}
],
"generatedAt": "2023-11-07T05:31:56Z"
},
"bankTransferFeeCents": 123,
"bankTransferAmountCents": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
}⌘I