> ## 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.

# Override MVR payment gate

> Exempts (or restores) a single employee from the MVR payment gate — **without changing their mvrStatus**mvrStatus**. mvrStatus/mvrStatusReason keep updating normally (from the v2 auto-trigger, a manual POST /v2/mvr/submit, or...

This is the per-employee counterpart to the account-level MVR exemption some clients are temporarily granted — use this when only specific employees need to bypass the gate (e.g. a fund that reliably times out, or while chasing down a rejection with the fund) rather than the whole account.

Always fires the `employee.mvr_status_changed` webhook, whichever direction you set it — see the [Webhooks](https://docs.mygigsters.com/super/api-reference/webhooks/register-webhook.md) page.

### v1 is unaffected

You do not need to adopt the [Employees v2](https://docs.mygigsters.com/super/api-reference/employees/create-employee.md) endpoints to use this — MVR, the payment gate, and this override all only ever apply to employees that have a fund identity set through a `v2` call at some point. Employees created and managed purely through `v1` never have an `mvrStatus` in the first place, so there is nothing for this endpoint to meaningfully act on for them. Adopt `v2` (and MVR) on your own schedule — `v1` keeps behaving exactly as it always has either way.

### Request Parameters

**employeeId** `string` *required*

### Request Body

**override** `boolean` *required*

When true, this employee is exempt from the MVR payment gate: mvrStatus/mvrStatusReason keep updating normally as usual (manual or automatic), but contribution submission is never blocked by them, regardless of what the status is or later becomes. Set false to restore normal gating.

**reason** `string`

Optional free-text note on why this override was set, for audit purposes.

### Responses

| Code | Description |
| - | - |
| `200` | Override updated |
| `400` | Bad request — no employer at the client is onboarded and synced at the clearing house, so there's nowhere to route the resulting webhook delivery |
| `401` | Unauthorized — invalid authentication credentials |
| `404` | Employee not found for this client |

### Response fields

**employeeId** `string`

**mvrPaymentOverride** `boolean`

**mvrPaymentOverrideReason** `string`

Absent when override is false, or when no reason was given.

> [accordion] Error response fields
>
> **success** `boolean`
>
> **statusCode** `integer`
>
> **message** `string`

```bash cURL theme={null}
curl 'https://qa-super.mygigsters.com.au/v2/mvr/employee/6a58c9406820b9ff62b527b3/override' -X PATCH \
    -u "apiUsername:apiPassword"  \
    -H "Content-Type: application/json" --data '{"override":true,"reason":"Fund repeatedly times out in QA; unblocking while SuperChoice investigates."}'
```

```javascript Node.js theme={null}
const response = await fetch("https://qa-super.mygigsters.com.au/v2/mvr/employee/6a58c9406820b9ff62b527b3/override", {
  method: "PATCH",
  headers: {
    Authorization: "Basic " + Buffer.from("apiUsername:apiPassword").toString("base64"),
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "override": true,
    "reason": "Fund repeatedly times out in QA; unblocking while SuperChoice investigates."
  }),
});

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

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

response = requests.patch(
    "https://qa-super.mygigsters.com.au/v2/mvr/employee/6a58c9406820b9ff62b527b3/override",
    auth=("apiUsername", "apiPassword"),
    json={
        "override": True,
        "reason": "Fund repeatedly times out in QA; unblocking while SuperChoice investigates.",
    },
)

print(response.json())
```

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

uri = URI("https://qa-super.mygigsters.com.au/v2/mvr/employee/6a58c9406820b9ff62b527b3/override")
request = Net::HTTP::Patch.new(uri)
request.basic_auth("apiUsername", "apiPassword")
request["Content-Type"] = "application/json"
request.body = <<~JSON
  {
    "override": true,
    "reason": "Fund repeatedly times out in QA; unblocking while SuperChoice investigates."
  }
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-super.mygigsters.com.au/v2/mvr/employee/6a58c9406820b9ff62b527b3/override");

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => "PATCH",
    CURLOPT_USERPWD => "apiUsername:apiPassword",
    CURLOPT_HTTPHEADER => [
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS => <<<'JSON'
{
  "override": true,
  "reason": "Fund repeatedly times out in QA; unblocking while SuperChoice investigates."
}
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;
import java.util.Base64;

public class Example {
    public static void main(String[] args) throws Exception {
        String credentials = Base64.getEncoder()
            .encodeToString("apiUsername:apiPassword".getBytes());

        String body = String.join("\n",
            "{",
            "  \"override\": true,",
            "  \"reason\": \"Fund repeatedly times out in QA; unblocking while SuperChoice investigates.\"",
            "}"
        );

        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://qa-super.mygigsters.com.au/v2/mvr/employee/6a58c9406820b9ff62b527b3/override"))
            .header("Authorization", "Basic " + credentials)
            .header("Content-Type", "application/json")
            .method("PATCH", 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(`{
  "override": true,
  "reason": "Fund repeatedly times out in QA; unblocking while SuperChoice investigates."
}`)

	req, err := http.NewRequest("PATCH", "https://qa-super.mygigsters.com.au/v2/mvr/employee/6a58c9406820b9ff62b527b3/override", body)
	if err != nil {
		panic(err)
	}
	req.SetBasicAuth("apiUsername", "apiPassword")
	req.Header.Set("Content-Type", "application/json")

	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.Patch, "https://qa-super.mygigsters.com.au/v2/mvr/employee/6a58c9406820b9ff62b527b3/override");
request.Headers.Authorization = new AuthenticationHeaderValue(
    "Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("apiUsername:apiPassword")));
request.Content = new StringContent(@"{
  ""override"": true,
  ""reason"": ""Fund repeatedly times out in QA; unblocking while SuperChoice investigates.""
}", Encoding.UTF8, "application/json");

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

```text 200 theme={null}
""
```


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