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

# Batch payout

> Submits a bulk payout batch containing multiple payment instructions. Supports real-time NPP (fast transfer) or standard Bank Transfer clearing rails with idempotency protection.

### Headers

**x-api-version** `string` *required*

Target API version (e.g. `1.2`).

**idempotency-key** `string` *required*

A unique client-generated string (e.g. UUID) to prevent accidental double-submission of bulk payout batches.

### Request Body Parameters

**account\_id** `string` *required*

The unique UUID of the partner platform executing the payouts.

**payouts** `array of objects` *required*

List of individual payout transfer instructions.

**payouts\[].account\_name** `string` *required*

Name on the recipient bank account.

**payouts\[].account\_number** `string` *required*

Recipient bank account number.

**payouts\[].bsb\_number** `string` *required*

6-digit Australian BSB number (e.g. `065163`).

**payouts\[].entity\_type** `string` *required*

Recipient entity type: `PERSONAL` or `BUSINESS`.

**payouts\[].mode** `string` *required*

Payment clearing method: `NPP` (real-time fast transfer) or `BANK_TRANSFER` (standard direct entry).

**payouts\[].currency** `string` *required*

Three-letter ISO currency code (e.g. `AUD`).

**payouts\[].amount** `number` *required*

Disbursement amount.

**payouts\[].remarks** `string`

Payment narrative or remarks (e.g. `October payment`).

**payouts\[].reference** `string`

Client-side unique transaction reference (e.g. `PAY-001`).

### Response Body

**success** `boolean`

Indicates whether the batch validation and creation succeeded (`true`).

**message** `string`

Informational notice: `Payouts validated successfully`.

**data.batchId** `string`

The unique batch identifier (e.g. `bat_1d9248bb02add09754f4b9d527c88661`) used to poll status.

**data.account\_id** `string`

Partner platform UUID that originated the batch.

**data.totalPayouts** `number`

Total count of payouts accepted into this batch.

### Response Codes

| Code | Description |
| - | - |
| 200 | Batch payout validated and submitted successfully. |
| 400 | Bad Request. Invalid BSB, missing recipient details, or zero/negative amount. |
| 401 | Unauthorized. Missing, expired, or invalid partner Bearer token. |
| 409 | Conflict. An idempotent request with this idempotency key has already been executed. |
| 500 | Internal Server Error. |

```bash cURL theme={null}
curl -X POST https://qa-payments.mygigsters.com.au/api/v1/payouts/batch \
  -H "Content-Type: application/json" \
  -H "X-API-Version: 1.2" \
  -H "idempotency-key: cdvdvvsvsbfbdbdbdbsdCc" \
  -H "Authorization: Bearer <accessToken>" \
  -d '{
  "account_id": "4407c3ba-10c9-4822-9f51-c2c96692f8d7",
  "payouts": [
    {
      "account_name": "Jane",
      "account_number": "12345678",
      "bsb_number": "065163",
      "entity_type": "PERSONAL",
      "mode": "NPP",
      "currency": "AUD",
      "amount": 250.5,
      "remarks": "October payment",
      "reference": "PAY-001"
    },
    {
      "account_name": "Jane",
      "account_number": "12345678",
      "bsb_number": "065163",
      "entity_type": "PERSONAL",
      "mode": "BANK_TRANSFER",
      "currency": "AUD",
      "amount": 10,
      "remarks": "October payment",
      "reference": "PAY-002"
    }
  ]
}'
```

```javascript Node.js theme={null}
const response = await fetch("https://qa-payments.mygigsters.com.au/api/v1/payouts/batch", {
  method: "POST",
  headers: {
    Authorization: "Bearer <accessToken>",
    "Content-Type": "application/json",
    "X-API-Version": "1.2",
    "idempotency-key": "cdvdvvsvsbfbdbdbdbsdCc",
  },
  body: JSON.stringify({
    "account_id": "4407c3ba-10c9-4822-9f51-c2c96692f8d7",
    "payouts": [
      {
        "account_name": "Jane",
        "account_number": "12345678",
        "bsb_number": "065163",
        "entity_type": "PERSONAL",
        "mode": "NPP",
        "currency": "AUD",
        "amount": 250.5,
        "remarks": "October payment",
        "reference": "PAY-001"
      },
      {
        "account_name": "Jane",
        "account_number": "12345678",
        "bsb_number": "065163",
        "entity_type": "PERSONAL",
        "mode": "BANK_TRANSFER",
        "currency": "AUD",
        "amount": 10,
        "remarks": "October payment",
        "reference": "PAY-002"
      }
    ]
  }),
});

const data = await response.json();
console.log(data);
```

```python Python theme={null}
import requests

response = requests.post(
    "https://qa-payments.mygigsters.com.au/api/v1/payouts/batch",
    headers={
        "Authorization": "Bearer <accessToken>",
        "X-API-Version": "1.2",
        "idempotency-key": "cdvdvvsvsbfbdbdbdbsdCc",
    },
    json={
        "account_id": "4407c3ba-10c9-4822-9f51-c2c96692f8d7",
        "payouts": [
            {
                "account_name": "Jane",
                "account_number": "12345678",
                "bsb_number": "065163",
                "entity_type": "PERSONAL",
                "mode": "NPP",
                "currency": "AUD",
                "amount": 250.5,
                "remarks": "October payment",
                "reference": "PAY-001",
            },
            {
                "account_name": "Jane",
                "account_number": "12345678",
                "bsb_number": "065163",
                "entity_type": "PERSONAL",
                "mode": "BANK_TRANSFER",
                "currency": "AUD",
                "amount": 10,
                "remarks": "October payment",
                "reference": "PAY-002",
            },
        ],
    },
)

print(response.json())
```

```ruby Ruby theme={null}
require "net/http"
require "json"
require "uri"

uri = URI("https://qa-payments.mygigsters.com.au/api/v1/payouts/batch")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer <accessToken>"
request["Content-Type"] = "application/json"
request["X-API-Version"] = "1.2"
request["idempotency-key"] = "cdvdvvsvsbfbdbdbdbsdCc"
request.body = <<~JSON
  {
    "account_id": "4407c3ba-10c9-4822-9f51-c2c96692f8d7",
    "payouts": [
      {
        "account_name": "Jane",
        "account_number": "12345678",
        "bsb_number": "065163",
        "entity_type": "PERSONAL",
        "mode": "NPP",
        "currency": "AUD",
        "amount": 250.5,
        "remarks": "October payment",
        "reference": "PAY-001"
      },
      {
        "account_name": "Jane",
        "account_number": "12345678",
        "bsb_number": "065163",
        "entity_type": "PERSONAL",
        "mode": "BANK_TRANSFER",
        "currency": "AUD",
        "amount": 10,
        "remarks": "October payment",
        "reference": "PAY-002"
      }
    ]
  }
JSON

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end

puts JSON.parse(response.body)
```

```php PHP theme={null}
<?php

$ch = curl_init("https://qa-payments.mygigsters.com.au/api/v1/payouts/batch");

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer <accessToken>",
        "Content-Type: application/json",
        "X-API-Version: 1.2",
        "idempotency-key: cdvdvvsvsbfbdbdbdbsdCc",
    ],
    CURLOPT_POSTFIELDS => <<<'JSON'
{
  "account_id": "4407c3ba-10c9-4822-9f51-c2c96692f8d7",
  "payouts": [
    {
      "account_name": "Jane",
      "account_number": "12345678",
      "bsb_number": "065163",
      "entity_type": "PERSONAL",
      "mode": "NPP",
      "currency": "AUD",
      "amount": 250.5,
      "remarks": "October payment",
      "reference": "PAY-001"
    },
    {
      "account_name": "Jane",
      "account_number": "12345678",
      "bsb_number": "065163",
      "entity_type": "PERSONAL",
      "mode": "BANK_TRANSFER",
      "currency": "AUD",
      "amount": 10,
      "remarks": "October payment",
      "reference": "PAY-002"
    }
  ]
}
JSON,
]);

$response = curl_exec($ch);
curl_close($ch);

print_r(json_decode($response, true));
```

```java Java theme={null}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Example {
    public static void main(String[] args) throws Exception {
        String body = String.join("\n",
            "{",
            "  \"account_id\": \"4407c3ba-10c9-4822-9f51-c2c96692f8d7\",",
            "  \"payouts\": [",
            "    {",
            "      \"account_name\": \"Jane\",",
            "      \"account_number\": \"12345678\",",
            "      \"bsb_number\": \"065163\",",
            "      \"entity_type\": \"PERSONAL\",",
            "      \"mode\": \"NPP\",",
            "      \"currency\": \"AUD\",",
            "      \"amount\": 250.5,",
            "      \"remarks\": \"October payment\",",
            "      \"reference\": \"PAY-001\"",
            "    },",
            "    {",
            "      \"account_name\": \"Jane\",",
            "      \"account_number\": \"12345678\",",
            "      \"bsb_number\": \"065163\",",
            "      \"entity_type\": \"PERSONAL\",",
            "      \"mode\": \"BANK_TRANSFER\",",
            "      \"currency\": \"AUD\",",
            "      \"amount\": 10,",
            "      \"remarks\": \"October payment\",",
            "      \"reference\": \"PAY-002\"",
            "    }",
            "  ]",
            "}"
        );

        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://qa-payments.mygigsters.com.au/api/v1/payouts/batch"))
            .header("Authorization", "Bearer <accessToken>")
            .header("Content-Type", "application/json")
            .header("X-API-Version", "1.2")
            .header("idempotency-key", "cdvdvvsvsbfbdbdbdbsdCc")
            .method("POST", HttpRequest.BodyPublishers.ofString(body))
            .build();

        HttpResponse<String> response = HttpClient.newHttpClient()
            .send(request, HttpResponse.BodyHandlers.ofString());

        System.out.println(response.body());
    }
}
```

```go Go theme={null}
package main

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

func main() {
	body := strings.NewReader(`{
  "account_id": "4407c3ba-10c9-4822-9f51-c2c96692f8d7",
  "payouts": [
    {
      "account_name": "Jane",
      "account_number": "12345678",
      "bsb_number": "065163",
      "entity_type": "PERSONAL",
      "mode": "NPP",
      "currency": "AUD",
      "amount": 250.5,
      "remarks": "October payment",
      "reference": "PAY-001"
    },
    {
      "account_name": "Jane",
      "account_number": "12345678",
      "bsb_number": "065163",
      "entity_type": "PERSONAL",
      "mode": "BANK_TRANSFER",
      "currency": "AUD",
      "amount": 10,
      "remarks": "October payment",
      "reference": "PAY-002"
    }
  ]
}`)

	req, err := http.NewRequest("POST", "https://qa-payments.mygigsters.com.au/api/v1/payouts/batch", body)
	if err != nil {
		panic(err)
	}
	req.Header.Set("Authorization", "Bearer <accessToken>")
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("X-API-Version", "1.2")
	req.Header.Set("idempotency-key", "cdvdvvsvsbfbdbdbdbsdCc")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()

	data, _ := io.ReadAll(res.Body)
	fmt.Println(string(data))
}
```

```csharp .NET theme={null}
using System.Net.Http.Headers;
using System.Text;

using var client = new HttpClient();

var request = new HttpRequestMessage(HttpMethod.Post, "https://qa-payments.mygigsters.com.au/api/v1/payouts/batch");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "<accessToken>");
request.Headers.Add("X-API-Version", "1.2");
request.Headers.Add("idempotency-key", "cdvdvvsvsbfbdbdbdbsdCc");
request.Content = new StringContent(@"{
  ""account_id"": ""4407c3ba-10c9-4822-9f51-c2c96692f8d7"",
  ""payouts"": [
    {
      ""account_name"": ""Jane"",
      ""account_number"": ""12345678"",
      ""bsb_number"": ""065163"",
      ""entity_type"": ""PERSONAL"",
      ""mode"": ""NPP"",
      ""currency"": ""AUD"",
      ""amount"": 250.5,
      ""remarks"": ""October payment"",
      ""reference"": ""PAY-001""
    },
    {
      ""account_name"": ""Jane"",
      ""account_number"": ""12345678"",
      ""bsb_number"": ""065163"",
      ""entity_type"": ""PERSONAL"",
      ""mode"": ""BANK_TRANSFER"",
      ""currency"": ""AUD"",
      ""amount"": 10,
      ""remarks"": ""October payment"",
      ""reference"": ""PAY-002""
    }
  ]
}", Encoding.UTF8, "application/json");

var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
```

```json Response theme={null}
{
  "success": true,
  "message": "Payouts validated successfully",
  "data": {
    "batch_id": "bat_1d9248bb02add09754f4b9d527c88661",
    "account_id": "4407c3ba-10c9-4822-9f51-c2c96692f8d7",
    "total_payouts": 2
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.