Post Query with Notification
Overview
This REST API submits an aggregate query with a request for the user to be notified once the job is complete. The user must provide their own implemented URL, which will be called by AQuA once the job has completed.
Callout notifications that you configure through the Zuora user Interface have higher precedence than callout notifications that you specify in AQuA queries.
If you submit an AQuA query with notifyUrl
specified, the value of notifyUrl
will be ignored if your organization has already configured a callout notification through the Zuora user interface.
Request
Environment | Request |
---|---|
Production for US Cloud Data Center 2 |
POST https://rest.zuora.com/v1/batch-query/ |
API Sandbox for US Cloud Data Center 2 | POST https://rest.apisandbox.zuora.com/v1/batch-query/ |
US Performance Test | POST https://rest.pt1.zuora.com/v1/batch-query/ |
Production for US Cloud Data Center 1 | POST https://rest.na.zuora.com/v1/batch-query/ |
API Sandbox for US Cloud Data Center 1 | POST https://rest.sandbox.na.zuora.com/v1/batch-query/ |
Central Sandbox for US Cloud Data Center | POST https://rest.test.zuora.com/v1/batch-query/ |
Production for EU Cloud Data Center | POST https://rest.eu.zuora.com/v1/batch-query/ |
Sandbox for EU Cloud Data Center | POST https://rest.sandbox.eu.zuora.com/v1/batch-query/ |
Central Sandbox for EU Cloud Data Center | POST https://rest.test.eu.zuora.com/v1/batch-query/ |
Request Parameters
format |
The supported values are csv, zip and gzip. The default value is csv. |
|||||||||||||||
version |
The API version you want to use. Supported versions:
See Stateless and Stateful Modes for more information. |
|||||||||||||||
name |
The name of the job. 32 character limit. |
|||||||||||||||
encrypted |
If enabled, you must supply the formatting (zip or unzip) first and decrypt it to get the actual contents. |
|||||||||||||||
partner |
The partner field indicates the unique ID of a data integration partner. The dropdown list of this field displays partner IDs for the past thirty days. It must be used together with "project" field to uniquely identify a data integration target. For example, if a continuous AQuA session is to retrieve data incrementally for a Salesforce.com Org 00170000011K3Ub, you can use partner as "Salesforce", and "project" as "00170000011K3Ub."
This field is required only if you are using AQuA in stateful mode. Otherwise, if you are using AQuA in stateless mode, partner field can be null. Zuora highly recommends you use the stateless mode instead of the stateful mode to extract bulk data. See Bulk data extraction from Zuora using AQuA for best practices. Submit a request at Zuora Global Support to obtain a partner ID. |
|||||||||||||||
project |
The project field contains the unique ID of a data integration project for a particular partner. The dropdown list of this field displays project IDs for the past thirty days. This field must be used together with partner field to uniquely identify a data integration target. This field is required only if you are using AQuA in stateful mode. Otherwise, if you are using AQuA in stateless mode, partner field can be null. |
|||||||||||||||
notifyUrl
|
If URL is provided, the AQuA job will call this The value of notifyUrl needs to have ${JOBID} and ${STATUS} placeholders like in the example JSON request below. These are replaced by the actual JOBID and STATUS when returned in the response. Status will be Completed after the AQuA job is done. |
|||||||||||||||
queries |
A JSON Array object that contains a list of query objects. The list of query objects are name and query.
|
Response Parameters
batches |
A JSON array object that contains a list of batch objects.
|
|||||||||||||||||||||||
project |
The project field contains the unique ID of a data integration project for a particular partner. The dropdown list of this field displays project IDs for the past thirty days. This field must be used together with partner field to uniquely identify a data integration target. This field is required only if you are using AQuA in stateful mode. Otherwise, if you are using AQuA in stateless mode, partner field can be null. |
|||||||||||||||||||||||
partner |
The partner field indicates the unique ID of a data integration partner. The dropdown list of this field displays partner IDs for the past thirty days. It must be used together with "project" field to uniquely identify a data integration target. For example, if a continuous AQuA session is to retrieve data incrementally for a Salesforce.com Org 00170000011K3Ub, you can use partner as "Salesforce", and "project" as "00170000011K3Ub."
This field is required only if you are using AQuA in stateful mode. Otherwise, if you are using AQuA in stateless mode, partner field can be null. Zuora highly recommends you use the stateless mode instead of the stateful mode to extract bulk data. See Bulk data extraction from Zuora using AQuA for best practices. Submit a request at Zuora Global Support to obtain a partner ID. |
|||||||||||||||||||||||
notifyUrl
|
If URL is provided, the AQuA job will call this |
|||||||||||||||||||||||
name |
The name of the job. 32 character limit. |
|||||||||||||||||||||||
id |
The job ID created for the AQuA API request. The job ID can be used for querying for the query status. |
|||||||||||||||||||||||
version |
The API version you want to use. Supported versions:
See Stateless and Stateful Modes for more information. |
|||||||||||||||||||||||
format |
The supported values are csv, zip and gzip. The default value is csv. |
|||||||||||||||||||||||
status |
The job status. Status types are:
|
|||||||||||||||||||||||
encrypted |
If enabled, you must supply the formatting (zip or unzip) first and decrypt it to get the actual contents. |
JSON Example
HTTP request:
POST https://www.zuora.com/apps/api/batch-query/
POST https://apisandbox.zuora.com/apps/api/batch-query/
JSON request:
{ "format": "csv", "version": "1.1", "name": "Example", "encrypted": "none", "partner": "salesforce", "project": "00170000011K3Ub", "notifyUrl": "https://hookb.in/Kb88lR8N?jobId=${JOBID}&status=${STATUS}", "queries": [ { "name": "Account", "query": "select Id,CreditBalance,Name,Balance,TaxExemptStatus,AutoPay,Currency,PaymentGateway,PaymentTerm,SalesRepName,TaxExemptIssuingJurisdiction,TaxExemptEffectiveDate,TaxExemptExpirationDate,TaxExemptCertificateType,LastInvoiceDate,Status,TotalInvoiceBalance,CreatedDate,UpdatedDate, ParentId, CustomerServiceRepName, BillToContact.Id, SoldToContact.Id from Account", "type": "zoqlexport", "deleted": { "column": "Deleted", "format": "Boolean" } } ] }
JSON response:
{ "batches": [ { "deleted": { "column": "Deleted", "format": "Boolean" }, "full": true, "name": "Account", "query": "select Id,CreditBalance,Name,Balance,TaxExemptStatus,AutoPay,Currency, PaymentGateway,PaymentTerm,SalesRepName,TaxExemptIssuingJurisdiction,TaxExemptEffectiveDate, TaxExemptExpirationDate,TaxExemptCertificateType,LastInvoiceDate,Status,TotalInvoiceBalance, CreatedDate,UpdatedDate, ParentId, CustomerServiceRepName, BillToContact.Id, SoldToContact.Id from Account", "status": "pending", "recordCount": 0, "apiVersion": "60.0", "batchType": "zoqlexport", "batchId": "402881824835bb2a0148450c7fca02f9" } ], "project": "00170000011K3Ub", "partner": "salesforce", "notifyUrl": "https://hookb.in/Kb88lR8N&jobId=${JOBID}&status=${STATUS}", "name": "Example", "id": "402881824835bb2a0148450c7fc502f8", "version": "1.1", "format": "CSV", "status": "submitted", "encrypted": "none" }