Zuora actions
Reference for the Zuora actions: the OAuth client connection, each action id, Object Query filters and paging, write rules, outputs and an example.
The Zuora block reads and writes Zuora billing accounts, subscriptions, invoices and payments. For the plain-language guide, see Zuora.
When to use it
Use it to pull open invoices and payments into a reconciliation or collections workflow, set up a customer account, or record a payment received outside Zuora. There is no Zuora trigger.
Connection
- Provider id:
zuora. OAuth client credentials: the connection stores a Client ID, Client Secret and the tenant subdomain (for examplerest.naorrest.sandbox.na), which picks the Zuora data center. - The block can do only what the OAuth client's Zuora user role allows.
- Pin an account with
config.connection. Without it, the step uses the company's default Zuora connection.
Actions
| Action id | Studio label | What it does |
|---|---|---|
zuora.createAccount | Create Account | Create a customer account. |
zuora.createPayment | Create Payment | Record a payment and optionally apply it to invoices. |
zuora.getAccount | Get Account | Get an account with its billing, contact, and metrics details. |
zuora.getAccountSummary | Get Account Summary | Get an account summary with recent invoices, payments, and subscriptions. |
zuora.getInvoice | Get Invoice | Get an invoice. |
zuora.getPayment | Get Payment | Get a payment. |
zuora.getSubscription | Get Subscription | Get a subscription with its rate plans and charges. |
zuora.listAccountSubscriptions | List Account Subscriptions | List the subscriptions of an account. |
zuora.listAccounts | List Accounts | List accounts with Object Query filters, sorting, and cursor pages. |
zuora.listInvoiceItems | List Invoice Items | List the line items of an invoice. |
zuora.listInvoices | List Invoices | List invoices with Object Query filters, sorting, and cursor pages. |
zuora.listPayments | List Payments | List payments with Object Query filters, sorting, and cursor pages. |
zuora.updateAccount | Update Account | Update an account; only the fields you set change. |
Settings
| Field | Studio label | Type | Used by | Required for |
|---|---|---|---|---|
connection | Zuora Account | string (connection id) | All | Optional. Without it the step uses the company default connection for this system |
name | Name | string | createAccount, updateAccount | createAccount |
currency | Currency | string | createAccount, createPayment | createAccount, createPayment |
billToContact | Bill To Contact | json | createAccount, updateAccount | createAccount |
soldToContact | Sold To Contact | json | createAccount, updateAccount | |
accountNumber | Account Number | string | createAccount, createPayment | |
billCycleDay | Bill Cycle Day | number | createAccount, updateAccount | |
paymentTerm | Payment Term | string | createAccount, updateAccount | |
autoPay | Auto Pay | boolean | createAccount, updateAccount | |
crmId | Crm Id | string | createAccount, updateAccount | |
notes | Notes | string | createAccount, updateAccount | |
additionalFields | Additional Fields | json | createAccount, createPayment, updateAccount | |
idempotencyKey | Idempotency Key | string | createAccount, createPayment | |
amount | Amount | number | createPayment | createPayment |
type | Type | string | createPayment | createPayment |
accountId | Account Id | string | createPayment | |
effectiveDate | Effective Date | string | createPayment | |
paymentMethodId | Payment Method Id | string | createPayment | |
invoices | Invoices | array | createPayment | |
referenceId | Reference Id | string | createPayment | |
comment | Comment | string | createPayment | |
accountKey | Account Key | string | getAccount, getAccountSummary, listAccountSubscriptions, updateAccount | getAccount, getAccountSummary, listAccountSubscriptions, updateAccount |
invoiceKey | Invoice Key | string | getInvoice, listInvoiceItems | getInvoice, listInvoiceItems |
paymentKey | Payment Key | string | getPayment | getPayment |
subscriptionKey | Subscription Key | string | getSubscription | getSubscription |
page | Page | number | listAccountSubscriptions, listInvoiceItems | |
pageSize | Page Size | number | listAccountSubscriptions, listAccounts, listInvoiceItems, listInvoices, listPayments | |
filter | Filter | array | listAccounts, listInvoices, listPayments | |
sort | Sort | array | listAccounts, listInvoices, listPayments | |
expand | Expand | array | listAccounts, listInvoices, listPayments | |
fields | Fields | array | listAccounts, listInvoices, listPayments | |
cursor | Cursor | string | listAccounts, listInvoices, listPayments |
Keys (accountKey, invoiceKey, paymentKey, subscriptionKey) accept an id or a number (account number, invoice number, payment number).
Filters and paging
listAccounts,listInvoicesandlistPaymentsuse Zuora Object Query. Eachfilterentry isfield.OPERATOR:valuewithEQ,NE,LT,GT,SWorIN, for example["status.EQ:Posted", "balance.GT:0"]; several entries combine with AND. Eachsortentry isfield.ASCorfield.DESC. Pass thenextPageoutput ascursorfor the next page.pageSizegoes up to 99.listAccountSubscriptionsandlistInvoiceItemsuse numbered pages:pagefrom 1 andpageSizeup to 40. TheirnextPageis a URL.
Write rules
createAccountandcreatePaymentacceptidempotencyKey. Build it from an id that stays the same on a retry, such as the upstream event or record id, plus the invoice id when one event pays several invoices. Do not use the run id: a retried run has a new id.createPaymentwithtypeElectronicrequireseffectiveDate(YYYY-MM-DD).Externaldefaults to today.createAccountsendsbillCycleDay0(Zuora picks the day) when you leave it empty and create no subscription.additionalFieldsis a JSON object of other Zuora fields, such as{"Region__c": "EMEA"}. A named field wins over the same key there.- A request is refused when any key, at any depth, names a raw card field: a key ending in
cardNumberorsecurityCode, or a key that iscvv,cvv2,cvc,cvc2orpan(case and separators ignored). Values are not inspected.
Output
The step output is the Zuora response with success. Object Query lists return data and nextPage. getAccount returns basicInfo, billingAndPayment, metrics and billToContact. getAccountSummary returns basicInfo, billToContact, subscriptions, invoices and payments. Read fields with {{steps.<stepId>.<path>}}, for example {{steps.open_invoices.data}}.
Example
List the account's posted invoices that still carry a balance, then record an external payment. The caller passes invoices as an array such as [{"invoiceId": "8a8...", "amount": 1250}]; a reference that is the whole value keeps the array intact.
{
"name": "Record a Zuora payment",
"trigger": { "type": "api" },
"steps": [
{
"id": "open_invoices",
"type": "action",
"name": "List open invoices",
"action": "zuora.listInvoices",
"config": {
"filter": ["status.EQ:Posted", "balance.GT:0", "accountId.EQ:{{input.accountId}}"],
"sort": ["dueDate.ASC"],
"pageSize": 50
}
},
{
"id": "record_payment",
"type": "action",
"name": "Record the payment",
"action": "zuora.createPayment",
"config": {
"accountId": "{{input.accountId}}",
"amount": "{{input.amount}}",
"currency": "USD",
"type": "External",
"effectiveDate": "{{input.paymentDate}}",
"invoices": "{{input.invoices}}",
"referenceId": "{{input.bankReference}}",
"idempotencyKey": "payment:{{input.bankReference}}"
}
}
]
}Live catalog
GET /api/v1/blocks/zuorareturns the actions and fields.GET /api/v1/blocks/zuora/actions/<operation>/examplesreturns stored examples where they exist.
Errors and limits
- Zuora can answer HTTP 200 with
success: false. The step then fails and shows each Zuora reason asmessage (code). - A missing required field or a raw card key fails the step before Zuora is called.
Zoho Inventory actions
Reference for the Zoho Inventory actions: the connection type, each action and what it does, its inputs and outputs, and the live catalog call.
Dashboard component reference
Reference for dashboard widgets: the JSON shape of each component, its settings and how it reads data from a table into a chart or grid.
Loopfour