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

# Service Voucher D1216S (PDF)

POST https://test-api.rebateright.com.au/DVAVoucher
Content-Type: application/json

This endpoint produces it as a PDF, for the patient to sign and keep a copy.

## Treatment service voucher

The **treatment service voucher** records the visit and the services. Services Australia requires it for DVA
claims. [Treatment Service Voucher](/dva#treatment-service-voucher) sets out when it applies and what the patient
does with it.

This endpoint produces the voucher only. Claims are lodged through the DVA claim endpoints, and the **manual claim
cover sheet** used when posting some paper claims is a separate document.

## Request body

Send a **single JSON object** at the root, without the `claim` wrapper the claim endpoints use. A root-level
property that the schema below does not list is rejected.

Optional blocks (`payeeProvider`, `referral`) may be omitted or set to JSON `null`. When `referral` is an object,
`issueDate` and `provider` (with `providerNumber` and `providerName`) are required.

## Location on the voucher

The **location ID** printed on the voucher is the Minor ID you send in the **`x-minor-id`** header, the same
header the other Medicare and DVA endpoints use.

## Response

On success, the response body is **`application/pdf`**. The download is offered as **`DVAVoucher.pdf`**.

## Errors

A validation failure returns **`400`**, and the body is a **plain-text** message that describes the problem.

**Technical references.** The PDF follows the approved **D1216S** treatment service voucher layout. Its wording
and rules follow the current Services Australia specification.

Reference: https://docs.rebateright.com.au/api-reference/dva/service-voucher-d-1216-s-pdf

## Authentication

- `x-api-key` header (required) — API Key authentication via header
- `x-minor-id` header (required) — Your Minor ID is 3 uppercase letters followed by 5 digits, such as `MDE00000`. Send the Minor ID exactly as issued. A malformed value returns `400` with the text `The Minor ID is not valid.` on every endpoint.

## Servers

- `https://test-api.rebateright.com.au` (Test, default)
- `https://api.rebateright.com.au` (Production)

## Request

### Headers

- `x-minor-id` (string, required) — The Minor ID of the clinic you act for. See [Required headers and hosts](/api-reference#required-headers-and-hosts).

### Body (application/json)

This endpoint expects an object.

- `patient` (DvaVoucherPostRequestBodyContentApplicationJsonSchemaPatient, required)
- `servicingProvider` (DvaVoucherPostRequestBodyContentApplicationJsonSchemaServicingProvider, required) — Provider rendering the services on the voucher.
- `accountReferenceNumber` (string, required) — Account or internal reference for this voucher, such as an invoice or visit ID.
- `treatmentLocationCode` (enum, required) — Where treatment was provided. When it is `H`, also send `facilityProviderNumber`. | Code | Meaning | |------|---------| | `H` | Hospital | | `R` | Rooms | | `V` | Home visit (residential care, community health centre or hostel) |
  - Allowed values: `H`, `R`, `V`
- `services` (list of DvaVoucherPostRequestBodyContentApplicationJsonSchemaServicesItems, required) — One row per service to include on the voucher.
- `lspNumber` (string, optional, nullable) — Location Specific Practice Number (LSPN), for diagnostic imaging. Omit it or send `null` when it does not apply.
- `payeeProvider` (DvaVoucherPostRequestBodyContentApplicationJsonSchemaPayeeProvider, optional, nullable) — Payee when different from the servicing provider; omit or `null` if the same.
- `referral` (DvaVoucherPostRequestBodyContentApplicationJsonSchemaReferral, optional, nullable) — Referral or request details when applicable; omit or `null` if none.
- `facilityProviderNumber` (string, optional, nullable) — The hospital establishment provider number. Required when `treatmentLocationCode` is `H`.
- `kilometresTravelled` (string, optional, nullable) — Distance in kilometres when a visit charge applies; omit or `null` if not used.
- `conditionTreated` (string, optional, nullable) — Condition treated, for example for a White Card holder. Omit it or send `null` when it does not apply.

## Response

### 200

The treatment service voucher as a PDF (`DVAVoucher.pdf`).

- File download.

## Types

### DvaVoucherPostRequestBodyContentApplicationJsonSchemaPatient

- `dvaFileNumber` (string, required) — DVA file number (for example `NX901667`).
- `givenName` (string, required) — Patient's given name.
- `familyName` (string, required) — Patient's family name.
- `dateOfBirth` (date, required) — Patient's date of birth (`YYYY-MM-DD`).
- `telephone` (string, required) — Patient contact telephone number, digits only.
- `residentialAddress` (string, required) — Full residential address as a single line.

### DvaVoucherPostRequestBodyContentApplicationJsonSchemaServicingProvider

Provider rendering the services on the voucher.

- `providerNumber` (string, required) — Medicare-issued provider number of the servicing provider.
- `providerName` (string, required) — Servicing provider's name as it should appear on the voucher.

### DvaVoucherPostRequestBodyContentApplicationJsonSchemaServicesItems

- `dateOfService` (date, required) — Date the service was provided (`YYYY-MM-DD`).
- `itemNumber` (string, required) — MBS or DVA item number.
- `chargeAmountCents` (string, required) — Charge in whole cents, as a string, for example `10000` for $100.00. The value must be zero or more.
- `associatedText` (string, optional, nullable) — Optional line narrative for the service.

### DvaVoucherPostRequestBodyContentApplicationJsonSchemaPayeeProvider

Payee when different from the servicing provider; omit or `null` if the same.

- `providerNumber` (string, required) — Payee provider number.
- `providerName` (string, required) — Payee provider's name.

### DvaVoucherPostRequestBodyContentApplicationJsonSchemaReferral

Referral or request details when applicable; omit or `null` if none.

- `issueDate` (date, required) — Date the referral or request was issued.
- `provider` (DvaVoucherPostRequestBodyContentApplicationJsonSchemaReferralProvider, required) — Referring or requesting provider.
- `periodOrNotes` (string, optional, nullable) — Referral period or other notes.

### DvaVoucherPostRequestBodyContentApplicationJsonSchemaReferralProvider

Referring or requesting provider.

- `providerNumber` (string, required) — Referring or requesting provider's Medicare-issued provider number.
- `providerName` (string, required) — Referring or requesting provider's name.

## Examples

**Request**

```json
{
  "patient": {
    "dvaFileNumber": "NX901667",
    "givenName": "JANET",
    "familyName": "IAN",
    "dateOfBirth": "1958-09-27",
    "telephone": "0262626111",
    "residentialAddress": "63 DANUTA ST, YARRALUMLA ACT 2600"
  },
  "servicingProvider": {
    "providerNumber": "2447781L",
    "providerName": "GWENDA HUNTER"
  },
  "accountReferenceNumber": "0001",
  "treatmentLocationCode": "R",
  "services": [
    {
      "dateOfService": "2026-04-09",
      "itemNumber": "23",
      "chargeAmountCents": "10000",
      "associatedText": null
    }
  ],
  "lspNumber": null,
  "payeeProvider": null,
  "referral": null,
  "facilityProviderNumber": null,
  "kilometresTravelled": null,
  "conditionTreated": "OSTEOARTHRITIS"
}
```

**SDK Code**

```python Single visit
import requests

url = "https://test-api.rebateright.com.au/DVAVoucher"

payload = {
    "patient": {
        "dvaFileNumber": "NX901667",
        "givenName": "JANET",
        "familyName": "IAN",
        "dateOfBirth": "1958-09-27",
        "telephone": "0262626111",
        "residentialAddress": "63 DANUTA ST, YARRALUMLA ACT 2600"
    },
    "servicingProvider": {
        "providerNumber": "2447781L",
        "providerName": "GWENDA HUNTER"
    },
    "accountReferenceNumber": "0001",
    "treatmentLocationCode": "R",
    "services": [
        {
            "dateOfService": "2026-04-09",
            "itemNumber": "23",
            "chargeAmountCents": "10000",
            "associatedText": None
        }
    ],
    "lspNumber": None,
    "payeeProvider": None,
    "referral": None,
    "facilityProviderNumber": None,
    "kilometresTravelled": None,
    "conditionTreated": "OSTEOARTHRITIS"
}
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 Single visit
const url = 'https://test-api.rebateright.com.au/DVAVoucher';
const options = {
  method: 'POST',
  headers: {
    'x-minor-id': '<minorId>',
    'x-api-key': '<apiKey>',
    'Content-Type': 'application/json'
  },
  body: '{"patient":{"dvaFileNumber":"NX901667","givenName":"JANET","familyName":"IAN","dateOfBirth":"1958-09-27","telephone":"0262626111","residentialAddress":"63 DANUTA ST, YARRALUMLA ACT 2600"},"servicingProvider":{"providerNumber":"2447781L","providerName":"GWENDA HUNTER"},"accountReferenceNumber":"0001","treatmentLocationCode":"R","services":[{"dateOfService":"2026-04-09","itemNumber":"23","chargeAmountCents":"10000","associatedText":null}],"lspNumber":null,"payeeProvider":null,"referral":null,"facilityProviderNumber":null,"kilometresTravelled":null,"conditionTreated":"OSTEOARTHRITIS"}'
};

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

```go Single visit
package main

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

func main() {

	url := "https://test-api.rebateright.com.au/DVAVoucher"

	payload := strings.NewReader("{\n  \"patient\": {\n    \"dvaFileNumber\": \"NX901667\",\n    \"givenName\": \"JANET\",\n    \"familyName\": \"IAN\",\n    \"dateOfBirth\": \"1958-09-27\",\n    \"telephone\": \"0262626111\",\n    \"residentialAddress\": \"63 DANUTA ST, YARRALUMLA ACT 2600\"\n  },\n  \"servicingProvider\": {\n    \"providerNumber\": \"2447781L\",\n    \"providerName\": \"GWENDA HUNTER\"\n  },\n  \"accountReferenceNumber\": \"0001\",\n  \"treatmentLocationCode\": \"R\",\n  \"services\": [\n    {\n      \"dateOfService\": \"2026-04-09\",\n      \"itemNumber\": \"23\",\n      \"chargeAmountCents\": \"10000\",\n      \"associatedText\": null\n    }\n  ],\n  \"lspNumber\": null,\n  \"payeeProvider\": null,\n  \"referral\": null,\n  \"facilityProviderNumber\": null,\n  \"kilometresTravelled\": null,\n  \"conditionTreated\": \"OSTEOARTHRITIS\"\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 Single visit
require 'uri'
require 'net/http'

url = URI("https://test-api.rebateright.com.au/DVAVoucher")

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  \"patient\": {\n    \"dvaFileNumber\": \"NX901667\",\n    \"givenName\": \"JANET\",\n    \"familyName\": \"IAN\",\n    \"dateOfBirth\": \"1958-09-27\",\n    \"telephone\": \"0262626111\",\n    \"residentialAddress\": \"63 DANUTA ST, YARRALUMLA ACT 2600\"\n  },\n  \"servicingProvider\": {\n    \"providerNumber\": \"2447781L\",\n    \"providerName\": \"GWENDA HUNTER\"\n  },\n  \"accountReferenceNumber\": \"0001\",\n  \"treatmentLocationCode\": \"R\",\n  \"services\": [\n    {\n      \"dateOfService\": \"2026-04-09\",\n      \"itemNumber\": \"23\",\n      \"chargeAmountCents\": \"10000\",\n      \"associatedText\": null\n    }\n  ],\n  \"lspNumber\": null,\n  \"payeeProvider\": null,\n  \"referral\": null,\n  \"facilityProviderNumber\": null,\n  \"kilometresTravelled\": null,\n  \"conditionTreated\": \"OSTEOARTHRITIS\"\n}"

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

```java Single visit
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://test-api.rebateright.com.au/DVAVoucher")
  .header("x-minor-id", "<minorId>")
  .header("x-api-key", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"patient\": {\n    \"dvaFileNumber\": \"NX901667\",\n    \"givenName\": \"JANET\",\n    \"familyName\": \"IAN\",\n    \"dateOfBirth\": \"1958-09-27\",\n    \"telephone\": \"0262626111\",\n    \"residentialAddress\": \"63 DANUTA ST, YARRALUMLA ACT 2600\"\n  },\n  \"servicingProvider\": {\n    \"providerNumber\": \"2447781L\",\n    \"providerName\": \"GWENDA HUNTER\"\n  },\n  \"accountReferenceNumber\": \"0001\",\n  \"treatmentLocationCode\": \"R\",\n  \"services\": [\n    {\n      \"dateOfService\": \"2026-04-09\",\n      \"itemNumber\": \"23\",\n      \"chargeAmountCents\": \"10000\",\n      \"associatedText\": null\n    }\n  ],\n  \"lspNumber\": null,\n  \"payeeProvider\": null,\n  \"referral\": null,\n  \"facilityProviderNumber\": null,\n  \"kilometresTravelled\": null,\n  \"conditionTreated\": \"OSTEOARTHRITIS\"\n}")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://test-api.rebateright.com.au/DVAVoucher', [
  'body' => '{
  "patient": {
    "dvaFileNumber": "NX901667",
    "givenName": "JANET",
    "familyName": "IAN",
    "dateOfBirth": "1958-09-27",
    "telephone": "0262626111",
    "residentialAddress": "63 DANUTA ST, YARRALUMLA ACT 2600"
  },
  "servicingProvider": {
    "providerNumber": "2447781L",
    "providerName": "GWENDA HUNTER"
  },
  "accountReferenceNumber": "0001",
  "treatmentLocationCode": "R",
  "services": [
    {
      "dateOfService": "2026-04-09",
      "itemNumber": "23",
      "chargeAmountCents": "10000",
      "associatedText": null
    }
  ],
  "lspNumber": null,
  "payeeProvider": null,
  "referral": null,
  "facilityProviderNumber": null,
  "kilometresTravelled": null,
  "conditionTreated": "OSTEOARTHRITIS"
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-api-key' => '<apiKey>',
    'x-minor-id' => '<minorId>',
  ],
]);

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

```csharp Single visit
using RestSharp;

var client = new RestClient("https://test-api.rebateright.com.au/DVAVoucher");
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  \"patient\": {\n    \"dvaFileNumber\": \"NX901667\",\n    \"givenName\": \"JANET\",\n    \"familyName\": \"IAN\",\n    \"dateOfBirth\": \"1958-09-27\",\n    \"telephone\": \"0262626111\",\n    \"residentialAddress\": \"63 DANUTA ST, YARRALUMLA ACT 2600\"\n  },\n  \"servicingProvider\": {\n    \"providerNumber\": \"2447781L\",\n    \"providerName\": \"GWENDA HUNTER\"\n  },\n  \"accountReferenceNumber\": \"0001\",\n  \"treatmentLocationCode\": \"R\",\n  \"services\": [\n    {\n      \"dateOfService\": \"2026-04-09\",\n      \"itemNumber\": \"23\",\n      \"chargeAmountCents\": \"10000\",\n      \"associatedText\": null\n    }\n  ],\n  \"lspNumber\": null,\n  \"payeeProvider\": null,\n  \"referral\": null,\n  \"facilityProviderNumber\": null,\n  \"kilometresTravelled\": null,\n  \"conditionTreated\": \"OSTEOARTHRITIS\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Single visit
import Foundation

let headers = [
  "x-minor-id": "<minorId>",
  "x-api-key": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [
  "patient": [
    "dvaFileNumber": "NX901667",
    "givenName": "JANET",
    "familyName": "IAN",
    "dateOfBirth": "1958-09-27",
    "telephone": "0262626111",
    "residentialAddress": "63 DANUTA ST, YARRALUMLA ACT 2600"
  ],
  "servicingProvider": [
    "providerNumber": "2447781L",
    "providerName": "GWENDA HUNTER"
  ],
  "accountReferenceNumber": "0001",
  "treatmentLocationCode": "R",
  "services": [
    [
      "dateOfService": "2026-04-09",
      "itemNumber": "23",
      "chargeAmountCents": "10000",
      "associatedText": 
    ]
  ],
  "lspNumber": ,
  "payeeProvider": ,
  "referral": ,
  "facilityProviderNumber": ,
  "kilometresTravelled": ,
  "conditionTreated": "OSTEOARTHRITIS"
] as [String : Any]

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

let request = NSMutableURLRequest(url: NSURL(string: "https://test-api.rebateright.com.au/DVAVoucher")! 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()
```