---
title: "Create Commission Summary Report"
method: POST
path: "/v4/commission_reports/summary"
tags: ["Gateway Features", "Billing & Commission"]
---

# Create Commission Summary Report

`POST /v4/commission_reports/summary`

## Request

- Base URL: `https://sandbox.nmi.com/api`
- URL: `https://sandbox.nmi.com/api/v4/commission_reports/summary`
- Auth: API key in header `Authorization`

> 📘 Commission summary
>
> This endpoint is available only if your partner account has access to the commission statements. Your API key must belong to a partner user with the commission permission.

<details>
<summary>Usage</summary>

See the commission you earned in a month, fee by fee, before the statement closes. This endpoint creates a commission summary for one month and returns the first page.

Each result is commission on a merchant fee. A fee is included when its commission was recorded in that month, posted to a statement, and set to show on the commission report. The invoice does not have to be paid. One fee can span more than one row when the quantity or the rate differs.

- `month` and `year` default to the current month and year on the gateway.
- `maxResults` is required, from 1 to 10000.
- `offset` defaults to 0. If you omit it, it is returned as `null`.

The report is saved for **24 hours**. To get more pages, call `GET /v4/commission_reports/summary/{reportId}` with the `reportId` from the response.

Use `hasMore` to decide whether to request another page. An `offset` past the end of the report returns `422`.

Result fields use snake_case. `sell_rate` and `buy_rate` are `percent` objects for percentage fees and `amount` objects for other fees. A percent has two decimal places: `2.50` means 2.50%.

If your partner account does not have access to the commission statements, you get a `422` response, not `403`.

</details>

## Headers

- `Content-Type` string, required
- `Authorization` string, required

## Request body

- CommissionSummaryRequest: Report parameters.
  - `month` integer: Month of the report. Defaults to the current month.
  - `year` integer: Year of the report. Defaults to the current year.
  - `offset` integer: Number of results to skip.
  - `maxResults` integer, required: Maximum number of results to return.

## Response `200`

A page of the report.

- CommissionSummaryResponse: One page of a saved commission summary report.
  - `objectType` 'report', required: Always `report`.
  - `reportId` integer, required: ID of the saved report. Use it with Get Saved Commission Summary Report for 24 hours.
  - `offset` union, required: `offset` from the request. Null when the request did not set it. A number from Create Commission Summary Report. A string from Get Saved Commission Summary Report, which echoes the query parameter.
    - integer
    - string
  - `maxResults` union, required: `maxResults` from the request. A number from Create Commission Summary Report. A string from Get Saved Commission Summary Report, which echoes the query parameter.
    - integer
    - string
  - `totalResults` integer, required: Number of results in the whole report.
  - `hasMore` boolean, required: `true` when more results follow this page.
  - `links` object, required: Page links. Use `hasMore` to decide whether to request another page, and get pages with Get Saved Commission Summary Report.
    - `first` string, nullable: Link to the first page.
    - `last` string, nullable: Link to the last page.
    - `next` string, nullable: Link to the next page.
    - `previous` string, nullable: Link to the previous page.
  - `results` CommissionSummaryItem[], required: Results on this page.
    - `objectType` 'commissionSummary', required: Always `commissionSummary`.
    - `merchant_id` string, required: Gateway ID of the merchant.
    - `merchant_name` string, required: Merchant company name.
    - `statement_id` string, required: ID of the merchant billing statement (invoice) that billed the fee. This is not a commission statement ID.
    - `gross_revenue` CommissionAmount, required: A monetary amount.
      - `objectType` 'amount', required: Always `amount`.
      - `amount` string, required: The amount as a decimal string.
      - `currency` string, required: ISO 4217 currency code.
    - `cost` CommissionAmount, required: A monetary amount.
      - `objectType` 'amount', required: Always `amount`.
      - `amount` string, required: The amount as a decimal string.
      - `currency` string, required: ISO 4217 currency code.
    - `sell_rate` union, required: Resale price per unit. A percent for percentage fees, otherwise an amount.
      - Percent: A percentage rate.
        - `objectType` 'percent', required: Always `percent`.
        - `percent` string, required: The rate in percent, as a decimal string with two decimal places. `2.50` means 2.50%.
      - CommissionAmount: A monetary amount.
        - `objectType` 'amount', required: Always `amount`.
        - `amount` string, required: The amount as a decimal string.
        - `currency` string, required: ISO 4217 currency code.
    - `buy_rate` union, required: The partner's cost per unit. A percent for percentage fees, otherwise an amount.
      - Percent: A percentage rate.
        - `objectType` 'percent', required: Always `percent`.
        - `percent` string, required: The rate in percent, as a decimal string with two decimal places. `2.50` means 2.50%.
      - CommissionAmount: A monetary amount.
        - `objectType` 'amount', required: Always `amount`.
        - `amount` string, required: The amount as a decimal string.
        - `currency` string, required: ISO 4217 currency code.
    - `net_revenue` CommissionAmount, required: A monetary amount.
      - `objectType` 'amount', required: Always `amount`.
      - `amount` string, required: The amount as a decimal string.
      - `currency` string, required: ISO 4217 currency code.
    - `merchant_processor_id` string, required: ID of the merchant processor configuration.
    - `merchant_processor_name` string, required: Name of the merchant processor configuration, or the processor name when the configuration has no name.
    - `processor_id` string, required: Processor ID.
    - `fee_type_id` string, required: ID of the fee.
    - `billed_quantity` string, required: Billed quantity as a decimal string.
    - `pay_commission_to_affiliate` '0' | '1', required: `1` when the commission is paid to the partner. `0` when the commission is reported but not paid.

## Other responses

- `400`: The request body is not valid JSON.
- `401`: The API key is missing or not valid.
- `403`: The key does not belong to a partner user with the commission permission.
- `415`: The `Content-Type` header is not `application/json`.
- `422`: A field is not valid, `offset` is past the end of the report, or the partner does not have access to the commission statements.
- `500`: The request could not be completed.

---

[API](https://skmtc.dev/nmi/apis/payments-api.md) - [All operations](https://skmtc.dev/nmi/apis/payments-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nmi/apis/payments-api/revisions/c03727f27e27?raw)
