> This page is for Developers.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://zuora.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://zuora.ferndocs.com/_mcp/server.

# Retrieve a payment run summary

GET https://rest.test.zuora.com/v1/payment-runs/{paymentRunKey}/summary

Retrives the summary of a payment run.


Reference: https://zuora.ferndocs.com/developers/api-reference/zuora-api/payments/payment-runs/get-payment-run-summary

## Authentication

- `Authorization` header (bearer token, required) — Use `Bearer {{token}}` in the `Authorization` header for authentication.

## Servers

- `https://rest.test.zuora.com` (US Developer & Central Sandbox (incl. Test Drive), default)
- `https://rest.sandbox.na.zuora.com` (US API Sandbox Cloud 1)
- `https://rest.apisandbox.zuora.com` (US API Sandbox Cloud 2)
- `https://rest.na.zuora.com` (US Production Cloud 1)
- `https://rest.zuora.com` (US Production Cloud 2)
- `https://rest.test.eu.zuora.com` (EU Developer & Central Sandbox)
- `https://rest.sandbox.eu.zuora.com` (EU API Sandbox)
- `https://rest.eu.zuora.com` (EU Production)
- `https://rest.test.ap.zuora.com` (APAC Developer & Central Sandbox)
- `https://rest.ap.zuora.com` (APAC Production)

## Request

### Path parameters

- `paymentRunKey` (string, required) — The unique ID of a payment run or the payment run number. For example, 402890245f097f39015f0f074a2e0566.

### Headers

- `Accept-Encoding` (string, optional) — Include the `Accept-Encoding: gzip` header to compress responses as a gzipped file. It can significantly reduce the bandwidth required for a response. If specified, Zuora automatically compresses responses that contain over 1000 bytes of data, and the response contains a `Content-Encoding` header with the compression algorithm so that your client can decompress it.
- `Content-Encoding` (string, optional) — Include the `Content-Encoding: gzip` header to compress a request. With this header specified, you should upload a gzipped file for the request payload instead of sending the JSON payload.
- `Zuora-Track-Id` (string, optional) — A custom identifier for tracing the API call. If you set a value for this header, Zuora returns the same value in the response headers. This header enables you to associate your system process identifiers with Zuora API calls, to assist with troubleshooting in the event of an issue. The value of this field must use the US-ASCII character set and must not include any of the following characters: colon (`:`), semicolon (`;`), double quote (`"`), and quote (`'`).
- `Zuora-Version` (string, optional) — The minor API version. For a list of available minor versions, see [API upgrades](https://developer.zuora.com/v1-api-reference/api-upgrades/).

## Response

### 200

OK

- `numberOfCreditBalanceAdjustments` (integer, optional) — **Note:** This field is only available if you have the Credit Balance feature enabled. The number of credit balance adjustments that are successfully processed in the payment run.
- `numberOfCreditMemos` (integer, optional) — **Note:** This field is only available if you have the Invoice Settlement feature enabled. The total number of credit memos that are successfully processed in the payment run.
- `numberOfDebitMemos` (integer, optional) — **Note:** This field is only available if you have the Invoice Settlement feature enabled. The total number of debit memos that are picked up for processing in the payment run.
- `numberOfErrorInputData` (integer, optional) — The number of input data that are processed with errors.
- `numberOfErrors` (integer, optional) — The number of payments with the status of `Error` and `Processing`.
- `numberOfInputData` (integer, optional) — The total number of input data.
- `numberOfInvoices` (integer, optional) — **Note:** This field is only available if you have the Invoice Settlement feature enabled. The total number of invoices that are picked up for processing in the payment run.
- `numberOfPayments` (integer, optional) — The number of payments that are successfully processed in the payment run.
- `numberOfProcessedInputData` (integer, optional) — The number of input data that are successfully processed.
- `numberOfReceivables` (integer, optional) — The total number of receivables that are picked up for processing in the payment run. The value of this field is the sum of the value of the `numberOfInvoices` field and that of the `numberOfDebitMemos` field.
- `numberOfUnappliedPayments` (integer, optional) — **Note:** This field is only available if you have the Invoice Settlement feature enabled. The number of unapplied payments that are successfully processed in the payment run.
- `numberOfUnprocessedDebitMemos` (integer, optional) — **Note:** This field is only available if you have the Invoice Settlement feature enabled. The number of debit memos with remaining positive balances after the payment run is completed.
- `numberOfUnprocessedInvoices` (integer, optional) — **Note:** This field is only available if you have the Invoice Settlement feature enabled. The number of invoices with remaining positive balances after the payment run is completed.
- `numberOfUnprocessedReceivables` (integer, optional) — The number of receivables with remaining positive balances after the payment run is completed.
- `success` (boolean, optional) — Returns `true` if the request was processed successfully.
- `totalValues` (list of GETPaymentRunSummaryTotalValues, optional) — Container for total values.

## Types

### GETPaymentRunSummaryTotalValues

- `totalValueOfCreditBalance` (string, optional) — **Note:** This field is only available if you have the Credit Balance feature enabled. The total amount of credit balance after the payment run is completed.
- `totalValueOfCreditMemos` (string, optional) — **Note:** This field is only available if you have the Invoice Settlement feature enabled. The total amount of credit memos that are successfully processed in the payment run.
- `totalValueOfDebitMemos` (string, optional) — **Note:** This field is only available if you have the Invoice Settlement feature enabled. The total amount of debit memos that are picked up for processing in the payment run.
- `totalValueOfErrors` (string, optional) — The total amount of receivables associated with the payments with the status of `Error` and `Processing`.
- `totalValueOfInvoices` (string, optional) — **Note:** This field is only available if you have the Invoice Settlement feature enabled. The total amount of invoices that are picked up for processing in the payment run.
- `totalValueOfPayments` (string, optional) — The total amount of payments that are successfully processed in the payment run.
- `totalValueOfReceivables` (string, optional) — The total amount of receivables associated with the payment run. The value of this field is the sum of the value of the `totalValueOfInvoices` field and that of the `totalValueOfDebitMemos` field.
- `totalValueOfUnappliedPayments` (integer, optional) — **Note:** This field is only available if you have the Invoice Settlement feature enabled. The total amount of unapplied payments that are successfully processed in the payment run.
- `totalValueOfUnprocessedDebitMemos` (string, optional) — **Note:** This field is only available if you have the Invoice Settlement feature enabled. The total amount of debit memos with remaining positive balances after the payment run is completed.
- `totalValueOfUnprocessedInvoices` (string, optional) — **Note:** This field is only available if you have the Invoice Settlement feature enabled. The total amount of invoices with remaining positive balances after the payment run is completed.
- `totalValueOfUnprocessedReceivables` (string, optional) — The total amount of receivables with remaining positive balances after the payment run is completed.

## Examples

**Response**

```json
{
  "numberOfCreditBalanceAdjustments": 0,
  "numberOfCreditMemos": 1,
  "numberOfDebitMemos": 1,
  "numberOfErrors": 0,
  "numberOfInvoices": 0,
  "numberOfPayments": 1,
  "numberOfReceivables": 1,
  "numberOfUnappliedPayments": 1,
  "numberOfUnprocessedDebitMemos": 0,
  "numberOfUnprocessedInvoices": 0,
  "numberOfUnprocessedReceivables": 0,
  "success": true,
  "totalValues": [
    {
      "totalValueOfCreditBalance": "0 USD",
      "totalValueOfCreditMemos": "100 USD",
      "totalValueOfDebitMemos": "256 USD",
      "totalValueOfErrors": "0 USD",
      "totalValueOfInvoices": "0 USD",
      "totalValueOfPayments": "56 USD",
      "totalValueOfReceivables": "256 USD",
      "totalValueOfUnappliedPayments": 1,
      "totalValueOfUnprocessedDebitMemos": "0 USD",
      "totalValueOfUnprocessedInvoices": "0 USD",
      "totalValueOfUnprocessedReceivables": "0 USD"
    }
  ]
}
```

**SDK Code**

```python response
import requests

url = "https://rest.test.zuora.com/v1/payment-runs/paymentRunKey/summary"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript response
const url = 'https://rest.test.zuora.com/v1/payment-runs/paymentRunKey/summary';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go response
package main

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

func main() {

	url := "https://rest.test.zuora.com/v1/payment-runs/paymentRunKey/summary"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby response
require 'uri'
require 'net/http'

url = URI("https://rest.test.zuora.com/v1/payment-runs/paymentRunKey/summary")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java response
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://rest.test.zuora.com/v1/payment-runs/paymentRunKey/summary")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php response
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://rest.test.zuora.com/v1/payment-runs/paymentRunKey/summary', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp response
using RestSharp;

var client = new RestClient("https://rest.test.zuora.com/v1/payment-runs/paymentRunKey/summary");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift response
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://rest.test.zuora.com/v1/payment-runs/paymentRunKey/summary")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```