> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve Payout Breakup

> Returns the breakdown of a payout by event type (payments, refunds, disputes, fees, etc.) in the payout's currency.



## OpenAPI

````yaml get /payouts/{payout_id}/breakup
openapi: 3.1.0
info:
  title: public
  description: ''
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  version: 1.105.0
servers:
  - url: https://test.dodopayments.com/
    description: Test Mode Server Host
  - url: https://live.dodopayments.com/
    description: Live Mode Server Host
security: []
tags:
  - name: Products
  - name: Payments
  - name: Subscriptions
  - name: Addons
  - name: Customers
  - name: Refunds
  - name: Disputes
  - name: Events
  - name: License Keys
  - name: Entitlements
  - name: Licenses
  - name: Discounts
  - name: Meters
  - name: Credit Entitlements
  - name: Credit Entitlement Balances
  - name: Outgoing Webhooks
  - name: Checkout
  - name: Webhook Events
paths:
  /payouts/{payout_id}/breakup:
    get:
      tags:
        - Payouts
      description: >-
        Returns the breakdown of a payout by event type (payments, refunds,
        disputes, fees, etc.) in the payout's currency. Each amount is
        proportionally allocated based on USD equivalent values, ensuring the
        total sums exactly to the payout amount.
      operationId: get_payout_breakup_v3_public
      parameters:
        - name: payout_id
          in: path
          description: Id of the Payout to get breakup for
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Payout breakup by event type in payout currency
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PayoutBreakupV3Row'
        '404':
          description: Payout not found
        '500':
          description: Something went wrong
      security:
        - API_KEY: []
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import DodoPayments from 'dodopayments';

            const client = new DodoPayments({
              bearerToken: process.env['DODO_PAYMENTS_API_KEY'], // This is the default and can be omitted
            });

            const breakups = await client.payouts.breakup.retrieve('payout_id');

            console.log(breakups);
        - lang: Python
          source: |-
            import os
            from dodopayments import DodoPayments

            client = DodoPayments(
                bearer_token=os.environ.get("DODO_PAYMENTS_API_KEY"),  # This is the default and can be omitted
            )
            breakups = client.payouts.breakup.retrieve(
                "payout_id",
            )
            print(breakups)
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/dodopayments/dodopayments-go\"\n\t\"github.com/dodopayments/dodopayments-go/option\"\n)\n\nfunc main() {\n\tclient := dodopayments.NewClient(\n\t\toption.WithBearerToken(\"My Bearer Token\"),\n\t)\n\tbreakups, err := client.Payouts.Breakup.Get(context.TODO(), \"payout_id\")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", breakups)\n}\n"
        - lang: Java
          source: >-
            package com.dodopayments.api.example;


            import com.dodopayments.api.client.DodoPaymentsClient;

            import com.dodopayments.api.client.okhttp.DodoPaymentsOkHttpClient;

            import
            com.dodopayments.api.models.payouts.breakup.BreakupRetrieveParams;

            import
            com.dodopayments.api.models.payouts.breakup.BreakupRetrieveResponse;


            public final class Main {
                private Main() {}

                public static void main(String[] args) {
                    DodoPaymentsClient client = DodoPaymentsOkHttpClient.fromEnv();

                    List<BreakupRetrieveResponse> breakups = client.payouts().breakup().retrieve("payout_id");
                }
            }
        - lang: Kotlin
          source: >-
            package com.dodopayments.api.example


            import com.dodopayments.api.client.DodoPaymentsClient

            import com.dodopayments.api.client.okhttp.DodoPaymentsOkHttpClient

            import
            com.dodopayments.api.models.payouts.breakup.BreakupRetrieveParams

            import
            com.dodopayments.api.models.payouts.breakup.BreakupRetrieveResponse


            fun main() {
                val client: DodoPaymentsClient = DodoPaymentsOkHttpClient.fromEnv()

                val breakups: List<BreakupRetrieveResponse> = client.payouts().breakup().retrieve("payout_id")
            }
        - lang: Ruby
          source: |-
            require "dodopayments"

            dodo_payments = Dodopayments::Client.new(
              bearer_token: "My Bearer Token",
              environment: "test_mode" # defaults to "live_mode"
            )

            breakups = dodo_payments.payouts.breakup.retrieve("payout_id")

            puts(breakups)
        - lang: PHP
          source: |-
            <?php

            require_once dirname(__DIR__) . '/vendor/autoload.php';

            use Dodopayments\Client;
            use Dodopayments\Core\Exceptions\APIException;

            $client = new Client(
              bearerToken: getenv('DODO_PAYMENTS_API_KEY') ?: 'My Bearer Token',
              environment: 'test_mode',
            );

            try {
              $breakups = $client->payouts->breakup->retrieve('payout_id');

              var_dump($breakups);
            } catch (APIException $e) {
              echo $e->getMessage();
            }
        - lang: C#
          source: |-
            using System;
            using DodoPayments.Client;
            using DodoPayments.Client.Models.Payouts.Breakup;

            DodoPaymentsClient client = new();

            BreakupRetrieveParams parameters = new() { PayoutID = "payout_id" };

            var breakups = await client.Payouts.Breakup.Retrieve(parameters);

            Console.WriteLine(breakups);
components:
  schemas:
    PayoutBreakupV3Row:
      type: object
      description: >-
        Payout breakup aggregated by event type, with amounts in the payout's
        currency.
      required:
        - event_type
        - total
      properties:
        event_type:
          type: string
          description: >-
            The type of balance ledger event (e.g., "payment", "refund",
            "dispute", "payment_fees").
        total:
          type: integer
          format: int64
          description: >-
            Total amount for this event type in the payout's currency, in that
            currency's smallest unit

            (cents for USD, yen for JPY, fils for KWD).
  securitySchemes:
    API_KEY:
      type: http
      scheme: bearer

````