# Bulk Bill Payment Report

POST https://Medicare/bulkbillpaymentreport/v1
Content-Type: application/json

Bulk Bill Payment Report Web Service (BPYW) is used to retrieve a payment report, providing payment information relating to Bulk Bill claims including the payment deposited, the bank account details the deposit was made to, and the list of claims covered by the payment run.

This report is available for six months after its initial generation (date of lodgement for claim) and can be retrieved in real time as many times as required.

The report can only be requested by the same transmitting location that submitted the claim.
  

## 📑 Request Fields

#### 🔸correlationId

The correlationId from the original Bulk Bill claim.

---

#### 🔸payeeProvider.providerNumber

Details of the health professional to whom the Medicare benefit is to be paid, as submitted in the original claim transmission.

- Must be filled with leading zeros if the provider number is greater than 2 characters but less than 8 characters
    

---

## 📑 Response Fields

### 🔸status

Indicates the status of the report being requested.

- **Valid values:**
    
    - `COMPLETE`
        
    - `REPORT_NOT_AVAILABLE`
        
    - `REPORT_NOT_READY`
        
    - `REPORT_NOT_FOUND`
        
    - `REPORT_EXPIRED`
        

When `status = COMPLETE`, the following values may be returned:

---

#### 🔸paymentRun.runDate

The date on which the agency is requesting the RBA to make the payment.

---

#### 🔸paymentRun.runNumber

A unique identifier for the payment run.

---

#### 🔸paymentInfo.depositAmount

The total amount of Medicare benefit to be deposited into the payee provider's account for the claims detailed in the payment run.

- **Format:** Numeric cents (e.g., $1.00 → `100`)
    

---

#### 🔸paymentInfo.accountInfo.accountName

The payee provider's financial institution account name.

---

#### 🔸paymentInfo.accountInfo.accountNumber

The payee provider's financial institution account number.

- **Note:** Only the last 4 digits are returned and prefixed with asterisks, e.g., `\\\*1234`.
    

---

#### 🔸paymentInfo.accountInfo.bsbCode

The branch identifier (BSB) for where the payee provider's account is held.

---

#### 🔸claimSummary.benefit

The total amount of Medicare benefit paid for all services in the claim.

- **Format:** Numeric cents (e.g., $1.00 → `100`)
    

---

#### 🔸claimSummary.chargeAmount

The total amount charged for all services in the claim.

- **Format:** Numeric cents (e.g., $1.00 → `100`)
    

---

#### 🔸claimSummary.claimId

The unique identifier that is generated by Medicare for the original Bulk Bill claim.

---

#### 🔸claimSummary.lodgementDate

The date when Medicare received the original claim.

---

#### 🔸claimSummary.transactionId

The unique identifier of the claim request maintained throughout the life of a claim.

Reference: https://developers.rebateright.com.au/rebate-right/advanced/claiming/bulk-bill-claim/bulk-bill-payment-report

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: collection
  version: 1.0.0
paths:
  /Medicare/bulkbillpaymentreport/v1:
    post:
      operationId: bulk-bill-payment-report
      summary: Bulk Bill Payment Report
      description: >-
        Bulk Bill Payment Report Web Service (BPYW) is used to retrieve a
        payment report, providing payment information relating to Bulk Bill
        claims including the payment deposited, the bank account details the
        deposit was made to, and the list of claims covered by the payment run.


        This report is available for six months after its initial generation
        (date of lodgement for claim) and can be retrieved in real time as many
        times as required.


        The report can only be requested by the same transmitting location that
        submitted the claim.
          

        ## 📑 Request Fields


        #### 🔸correlationId


        The correlationId from the original Bulk Bill claim.


        ---


        #### 🔸payeeProvider.providerNumber


        Details of the health professional to whom the Medicare benefit is to be
        paid, as submitted in the original claim transmission.


        - Must be filled with leading zeros if the provider number is greater
        than 2 characters but less than 8 characters
            

        ---


        ## 📑 Response Fields


        ### 🔸status


        Indicates the status of the report being requested.


        - **Valid values:**
            
            - `COMPLETE`
                
            - `REPORT_NOT_AVAILABLE`
                
            - `REPORT_NOT_READY`
                
            - `REPORT_NOT_FOUND`
                
            - `REPORT_EXPIRED`
                

        When `status = COMPLETE`, the following values may be returned:


        ---


        #### 🔸paymentRun.runDate


        The date on which the agency is requesting the RBA to make the payment.


        ---


        #### 🔸paymentRun.runNumber


        A unique identifier for the payment run.


        ---


        #### 🔸paymentInfo.depositAmount


        The total amount of Medicare benefit to be deposited into the payee
        provider's account for the claims detailed in the payment run.


        - **Format:** Numeric cents (e.g., $1.00 → `100`)
            

        ---


        #### 🔸paymentInfo.accountInfo.accountName


        The payee provider's financial institution account name.


        ---


        #### 🔸paymentInfo.accountInfo.accountNumber


        The payee provider's financial institution account number.


        - **Note:** Only the last 4 digits are returned and prefixed with
        asterisks, e.g., `\\\*1234`.
            

        ---


        #### 🔸paymentInfo.accountInfo.bsbCode


        The branch identifier (BSB) for where the payee provider's account is
        held.


        ---


        #### 🔸claimSummary.benefit


        The total amount of Medicare benefit paid for all services in the claim.


        - **Format:** Numeric cents (e.g., $1.00 → `100`)
            

        ---


        #### 🔸claimSummary.chargeAmount


        The total amount charged for all services in the claim.


        - **Format:** Numeric cents (e.g., $1.00 → `100`)
            

        ---


        #### 🔸claimSummary.claimId


        The unique identifier that is generated by Medicare for the original
        Bulk Bill claim.


        ---


        #### 🔸claimSummary.lodgementDate


        The date when Medicare received the original claim.


        ---


        #### 🔸claimSummary.transactionId


        The unique identifier of the claim request maintained throughout the
        life of a claim.
      tags:
        - >-
          subpackage_advanced.subpackage_advanced/claiming.subpackage_advanced/claiming/bulkBillClaim
      parameters:
        - name: x-api-key
          in: header
          required: true
          schema:
            type: string
        - name: x-minor-id
          in: header
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Advanced_Claiming_Bulk Bill Claim_Bulk
                  Bill Payment Report_Response_200
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                correlationId:
                  type: string
                payeeProvider:
                  $ref: >-
                    #/components/schemas/MedicareBulkbillpaymentreportV1PostRequestBodyContentApplicationJsonSchemaPayeeProvider
              required:
                - correlationId
                - payeeProvider
servers:
  - url: https:/
components:
  schemas:
    MedicareBulkbillpaymentreportV1PostRequestBodyContentApplicationJsonSchemaPayeeProvider:
      type: object
      properties:
        providerNumber:
          type: string
      required:
        - providerNumber
      title: >-
        MedicareBulkbillpaymentreportV1PostRequestBodyContentApplicationJsonSchemaPayeeProvider
    Advanced_Claiming_Bulk Bill Claim_Bulk Bill Payment Report_Response_200:
      type: object
      properties:
        status:
          type: string
        correlationId:
          type: string
      required:
        - status
        - correlationId
      title: Advanced_Claiming_Bulk Bill Claim_Bulk Bill Payment Report_Response_200
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

```

## SDK Code Examples

```python 5.3.2-2
import requests

url = "https://https/Medicare/bulkbillpaymentreport/v1"

headers = {
    "x-minor-id": "{{MinorId}}",
    "x-api-key": "<apiKey>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```javascript 5.3.2-2
const url = 'https://https/Medicare/bulkbillpaymentreport/v1';
const options = {
  method: 'POST',
  headers: {
    'x-minor-id': '{{MinorId}}',
    'x-api-key': '<apiKey>',
    'Content-Type': 'application/json'
  },
  body: undefined
};

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

```go 5.3.2-2
package main

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

func main() {

	url := "https://https/Medicare/bulkbillpaymentreport/v1"

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

	req.Header.Add("x-minor-id", "{{MinorId}}")
	req.Header.Add("x-api-key", "<apiKey>")
	req.Header.Add("Content-Type", "application/json")

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

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

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

}
```

```ruby 5.3.2-2
require 'uri'
require 'net/http'

url = URI("https://https/Medicare/bulkbillpaymentreport/v1")

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

request = Net::HTTP::Post.new(url)
request["x-minor-id"] = '{{MinorId}}'
request["x-api-key"] = '<apiKey>'
request["Content-Type"] = 'application/json'

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

```java 5.3.2-2
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://https/Medicare/bulkbillpaymentreport/v1")
  .header("x-minor-id", "{{MinorId}}")
  .header("x-api-key", "<apiKey>")
  .header("Content-Type", "application/json")
  .asString();
```

```php 5.3.2-2
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://https/Medicare/bulkbillpaymentreport/v1', [
  'headers' => [
    'Content-Type' => 'application/json',
    'x-api-key' => '<apiKey>',
    'x-minor-id' => '{{MinorId}}',
  ],
]);

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

```csharp 5.3.2-2
using RestSharp;

var client = new RestClient("https://https/Medicare/bulkbillpaymentreport/v1");
var request = new RestRequest(Method.POST);
request.AddHeader("x-minor-id", "{{MinorId}}");
request.AddHeader("x-api-key", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
IRestResponse response = client.Execute(request);
```

```swift 5.3.2-2
import Foundation

let headers = [
  "x-minor-id": "{{MinorId}}",
  "x-api-key": "<apiKey>",
  "Content-Type": "application/json"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://https/Medicare/bulkbillpaymentreport/v1")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
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()
```

```python Complete
import requests

url = "https://https/Medicare/bulkbillpaymentreport/v1"

headers = {
    "x-minor-id": "{{MinorId}}",
    "x-api-key": "<apiKey>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```javascript Complete
const url = 'https://https/Medicare/bulkbillpaymentreport/v1';
const options = {
  method: 'POST',
  headers: {
    'x-minor-id': '{{MinorId}}',
    'x-api-key': '<apiKey>',
    'Content-Type': 'application/json'
  },
  body: undefined
};

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

```go Complete
package main

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

func main() {

	url := "https://https/Medicare/bulkbillpaymentreport/v1"

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

	req.Header.Add("x-minor-id", "{{MinorId}}")
	req.Header.Add("x-api-key", "<apiKey>")
	req.Header.Add("Content-Type", "application/json")

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

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

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

}
```

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

url = URI("https://https/Medicare/bulkbillpaymentreport/v1")

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

request = Net::HTTP::Post.new(url)
request["x-minor-id"] = '{{MinorId}}'
request["x-api-key"] = '<apiKey>'
request["Content-Type"] = 'application/json'

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

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

HttpResponse<String> response = Unirest.post("https://https/Medicare/bulkbillpaymentreport/v1")
  .header("x-minor-id", "{{MinorId}}")
  .header("x-api-key", "<apiKey>")
  .header("Content-Type", "application/json")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://https/Medicare/bulkbillpaymentreport/v1', [
  'headers' => [
    'Content-Type' => 'application/json',
    'x-api-key' => '<apiKey>',
    'x-minor-id' => '{{MinorId}}',
  ],
]);

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

```csharp Complete
using RestSharp;

var client = new RestClient("https://https/Medicare/bulkbillpaymentreport/v1");
var request = new RestRequest(Method.POST);
request.AddHeader("x-minor-id", "{{MinorId}}");
request.AddHeader("x-api-key", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
IRestResponse response = client.Execute(request);
```

```swift Complete
import Foundation

let headers = [
  "x-minor-id": "{{MinorId}}",
  "x-api-key": "<apiKey>",
  "Content-Type": "application/json"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://https/Medicare/bulkbillpaymentreport/v1")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
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()
```

```python Report Not Ready
import requests

url = "https://https/Medicare/bulkbillpaymentreport/v1"

headers = {
    "x-minor-id": "{{MinorId}}",
    "x-api-key": "<apiKey>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```javascript Report Not Ready
const url = 'https://https/Medicare/bulkbillpaymentreport/v1';
const options = {
  method: 'POST',
  headers: {
    'x-minor-id': '{{MinorId}}',
    'x-api-key': '<apiKey>',
    'Content-Type': 'application/json'
  },
  body: undefined
};

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

```go Report Not Ready
package main

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

func main() {

	url := "https://https/Medicare/bulkbillpaymentreport/v1"

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

	req.Header.Add("x-minor-id", "{{MinorId}}")
	req.Header.Add("x-api-key", "<apiKey>")
	req.Header.Add("Content-Type", "application/json")

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

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

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

}
```

```ruby Report Not Ready
require 'uri'
require 'net/http'

url = URI("https://https/Medicare/bulkbillpaymentreport/v1")

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

request = Net::HTTP::Post.new(url)
request["x-minor-id"] = '{{MinorId}}'
request["x-api-key"] = '<apiKey>'
request["Content-Type"] = 'application/json'

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

```java Report Not Ready
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://https/Medicare/bulkbillpaymentreport/v1")
  .header("x-minor-id", "{{MinorId}}")
  .header("x-api-key", "<apiKey>")
  .header("Content-Type", "application/json")
  .asString();
```

```php Report Not Ready
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://https/Medicare/bulkbillpaymentreport/v1', [
  'headers' => [
    'Content-Type' => 'application/json',
    'x-api-key' => '<apiKey>',
    'x-minor-id' => '{{MinorId}}',
  ],
]);

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

```csharp Report Not Ready
using RestSharp;

var client = new RestClient("https://https/Medicare/bulkbillpaymentreport/v1");
var request = new RestRequest(Method.POST);
request.AddHeader("x-minor-id", "{{MinorId}}");
request.AddHeader("x-api-key", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
IRestResponse response = client.Execute(request);
```

```swift Report Not Ready
import Foundation

let headers = [
  "x-minor-id": "{{MinorId}}",
  "x-api-key": "<apiKey>",
  "Content-Type": "application/json"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://https/Medicare/bulkbillpaymentreport/v1")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
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()
```

```python Advanced_Claiming_Bulk Bill Claim_Bulk Bill Payment Report_example
import requests

url = "https://https/Medicare/bulkbillpaymentreport/v1"

payload = {
    "correlationId": "urn:uuid:MDE00000a081f297cf7741ad",
    "payeeProvider": { "providerNumber": "2447781L" }
}
headers = {
    "x-minor-id": "{{MinorId}}",
    "x-api-key": "<apiKey>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Advanced_Claiming_Bulk Bill Claim_Bulk Bill Payment Report_example
const url = 'https://https/Medicare/bulkbillpaymentreport/v1';
const options = {
  method: 'POST',
  headers: {
    'x-minor-id': '{{MinorId}}',
    'x-api-key': '<apiKey>',
    'Content-Type': 'application/json'
  },
  body: '{"correlationId":"urn:uuid:MDE00000a081f297cf7741ad","payeeProvider":{"providerNumber":"2447781L"}}'
};

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

```go Advanced_Claiming_Bulk Bill Claim_Bulk Bill Payment Report_example
package main

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

func main() {

	url := "https://https/Medicare/bulkbillpaymentreport/v1"

	payload := strings.NewReader("{\n  \"correlationId\": \"urn:uuid:MDE00000a081f297cf7741ad\",\n  \"payeeProvider\": {\n    \"providerNumber\": \"2447781L\"\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("x-minor-id", "{{MinorId}}")
	req.Header.Add("x-api-key", "<apiKey>")
	req.Header.Add("Content-Type", "application/json")

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

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

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

}
```

```ruby Advanced_Claiming_Bulk Bill Claim_Bulk Bill Payment Report_example
require 'uri'
require 'net/http'

url = URI("https://https/Medicare/bulkbillpaymentreport/v1")

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

request = Net::HTTP::Post.new(url)
request["x-minor-id"] = '{{MinorId}}'
request["x-api-key"] = '<apiKey>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"correlationId\": \"urn:uuid:MDE00000a081f297cf7741ad\",\n  \"payeeProvider\": {\n    \"providerNumber\": \"2447781L\"\n  }\n}"

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

```java Advanced_Claiming_Bulk Bill Claim_Bulk Bill Payment Report_example
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://https/Medicare/bulkbillpaymentreport/v1")
  .header("x-minor-id", "{{MinorId}}")
  .header("x-api-key", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"correlationId\": \"urn:uuid:MDE00000a081f297cf7741ad\",\n  \"payeeProvider\": {\n    \"providerNumber\": \"2447781L\"\n  }\n}")
  .asString();
```

```php Advanced_Claiming_Bulk Bill Claim_Bulk Bill Payment Report_example
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://https/Medicare/bulkbillpaymentreport/v1', [
  'body' => '{
  "correlationId": "urn:uuid:MDE00000a081f297cf7741ad",
  "payeeProvider": {
    "providerNumber": "2447781L"
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-api-key' => '<apiKey>',
    'x-minor-id' => '{{MinorId}}',
  ],
]);

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

```csharp Advanced_Claiming_Bulk Bill Claim_Bulk Bill Payment Report_example
using RestSharp;

var client = new RestClient("https://https/Medicare/bulkbillpaymentreport/v1");
var request = new RestRequest(Method.POST);
request.AddHeader("x-minor-id", "{{MinorId}}");
request.AddHeader("x-api-key", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"correlationId\": \"urn:uuid:MDE00000a081f297cf7741ad\",\n  \"payeeProvider\": {\n    \"providerNumber\": \"2447781L\"\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Advanced_Claiming_Bulk Bill Claim_Bulk Bill Payment Report_example
import Foundation

let headers = [
  "x-minor-id": "{{MinorId}}",
  "x-api-key": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [
  "correlationId": "urn:uuid:MDE00000a081f297cf7741ad",
  "payeeProvider": ["providerNumber": "2447781L"]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://https/Medicare/bulkbillpaymentreport/v1")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

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()
```