Find an API

Search public APIs with auth details & Postman guides

← All APIs

API Reference: Billing

zuora · Finance

Finance No Auth Free & Open financial

# Introduction Welcome to the reference for the Zuora Billing REST API! To learn about the common use cases of Zuora Billing REST APIs, check out the [API Guides](https://www.zuora.com/developer/api-guides/). In addition to Zuora API Reference; Billing, we also provide API references for other Zuora products: * [API Reference: Collect](https://www.zuora.com/developer/collect-api/) * [API Reference: Revenue](https://www.zuora.com/developer/revpro-api/) The Zuora REST API provides a

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

GET List workflows

Retrieves a list of workflows available in your Zuora tenant.

https://api.apis.guru/v2/specs/zuora.com/2021-08-20/workflows?name=test&page=1&interval=example&page_length=20&callout_trigger=true&ondemand_trigger=true&scheduled_trigger=true

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
Authorization example
curl -X GET "https://api.apis.guru/v2/specs/zuora.com/2021-08-20/workflows?name=test&page=1&interval=example&page_length=20&callout_trigger=true&ondemand_trigger=true&scheduled_trigger=true" \
  -H "Authorization: example"
import requests
params = {
    "name": "test",
    "page": "1",
    "interval": "example",
    "page_length": "20",
    "callout_trigger": "true",
    "ondemand_trigger": "true",
    "scheduled_trigger": "true"
}
headers = {
    "Authorization": "example"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/zuora.com/2021-08-20/workflows",
    params=params,
    headers=headers,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/zuora.com/2021-08-20/workflows');
url.searchParams.set('name', 'test');
url.searchParams.set('page', '1');
url.searchParams.set('interval', 'example');
url.searchParams.set('page_length', '20');
url.searchParams.set('callout_trigger', 'true');
url.searchParams.set('ondemand_trigger', 'true');
url.searchParams.set('scheduled_trigger', 'true');

const response = await fetch(url, {
  headers: {
    'Authorization': 'example'
  },
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/zuora.com/2021-08-20/workflows")
	q := baseURL.Query()
	q.Set("name", "test")
	q.Set("page", "1")
	q.Set("interval", "example")
	q.Set("page_length", "20")
	q.Set("callout_trigger", "true")
	q.Set("ondemand_trigger", "true")
	q.Set("scheduled_trigger", "true")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)
	req.Header.Set("Authorization", "example")

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/zuora.com/2021-08-20/workflows")
uri.query = URI.encode_www_form({
  "name" => "test",
  "page" => "1",
  "interval" => "example",
  "page_length" => "20",
  "callout_trigger" => "true",
  "ondemand_trigger" => "true",
  "scheduled_trigger" => "true"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)
req["Authorization"] = "example"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/zuora.com/2021-08-20/workflows?" . http_build_query([
    "name" => "test",
    "page" => "1",
    "interval" => "example",
    "page_length" => "20",
    "callout_trigger" => "true",
    "ondemand_trigger" => "true",
    "scheduled_trigger" => "true"
]);
$opts = ["http" => [
    "method" => "GET",
    "header" => implode("\r\n", [
        "Authorization: example"
    ]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET List event triggers

List event triggers

https://api.apis.guru/v2/specs/zuora.com/2021-08-20/events/event-triggers?limit=10&start=0&active=example&baseObject=example&eventTypeName=example

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
Authorization example
curl -X GET "https://api.apis.guru/v2/specs/zuora.com/2021-08-20/events/event-triggers?limit=10&start=0&active=example&baseObject=example&eventTypeName=example" \
  -H "Authorization: example"
import requests
params = {
    "limit": "10",
    "start": "0",
    "active": "example",
    "baseObject": "example",
    "eventTypeName": "example"
}
headers = {
    "Authorization": "example"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/zuora.com/2021-08-20/events/event-triggers",
    params=params,
    headers=headers,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/zuora.com/2021-08-20/events/event-triggers');
url.searchParams.set('limit', '10');
url.searchParams.set('start', '0');
url.searchParams.set('active', 'example');
url.searchParams.set('baseObject', 'example');
url.searchParams.set('eventTypeName', 'example');

const response = await fetch(url, {
  headers: {
    'Authorization': 'example'
  },
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/zuora.com/2021-08-20/events/event-triggers")
	q := baseURL.Query()
	q.Set("limit", "10")
	q.Set("start", "0")
	q.Set("active", "example")
	q.Set("baseObject", "example")
	q.Set("eventTypeName", "example")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)
	req.Header.Set("Authorization", "example")

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/zuora.com/2021-08-20/events/event-triggers")
uri.query = URI.encode_www_form({
  "limit" => "10",
  "start" => "0",
  "active" => "example",
  "baseObject" => "example",
  "eventTypeName" => "example"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)
req["Authorization"] = "example"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/zuora.com/2021-08-20/events/event-triggers?" . http_build_query([
    "limit" => "10",
    "start" => "0",
    "active" => "example",
    "baseObject" => "example",
    "eventTypeName" => "example"
]);
$opts = ["http" => [
    "method" => "GET",
    "header" => implode("\r\n", [
        "Authorization: example"
    ]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET List email templates

Queries email templates. **Note**: This operation is only applicable to email templates for custom events.

https://api.apis.guru/v2/specs/zuora.com/2021-08-20/notifications/email-templates?name=test&limit=20&start=1&eventTypeName=example

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
Authorization example
curl -X GET "https://api.apis.guru/v2/specs/zuora.com/2021-08-20/notifications/email-templates?name=test&limit=20&start=1&eventTypeName=example" \
  -H "Authorization: example"
import requests
params = {
    "name": "test",
    "limit": "20",
    "start": "1",
    "eventTypeName": "example"
}
headers = {
    "Authorization": "example"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/zuora.com/2021-08-20/notifications/email-templates",
    params=params,
    headers=headers,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/zuora.com/2021-08-20/notifications/email-templates');
url.searchParams.set('name', 'test');
url.searchParams.set('limit', '20');
url.searchParams.set('start', '1');
url.searchParams.set('eventTypeName', 'example');

const response = await fetch(url, {
  headers: {
    'Authorization': 'example'
  },
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/zuora.com/2021-08-20/notifications/email-templates")
	q := baseURL.Query()
	q.Set("name", "test")
	q.Set("limit", "20")
	q.Set("start", "1")
	q.Set("eventTypeName", "example")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)
	req.Header.Set("Authorization", "example")

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/zuora.com/2021-08-20/notifications/email-templates")
uri.query = URI.encode_www_form({
  "name" => "test",
  "limit" => "20",
  "start" => "1",
  "eventTypeName" => "example"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)
req["Authorization"] = "example"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/zuora.com/2021-08-20/notifications/email-templates?" . http_build_query([
    "name" => "test",
    "limit" => "20",
    "start" => "1",
    "eventTypeName" => "example"
]);
$opts = ["http" => [
    "method" => "GET",
    "header" => implode("\r\n", [
        "Authorization: example"
    ]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));

Postman Setup Guide

Get Postman ↗
  1. See official documentation for authentication and setup.

What can you build with API Reference: Billing?

API Reference: Billing is a Finance API. Developers commonly use finance APIs for:

  • processing payments and handling transactions
  • building subscription and billing systems
  • automating invoicing and financial reporting
  • fraud detection and risk scoring
  • connecting to banking and accounting software

No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. API Reference: Billing is free to use, making it a low-risk choice to experiment with.

New to APIs? Read our beginner's guide · Learn about API keys · What is REST?

Open documentation ↗