> This is Payabli documentation. For a complete page index, fetch https://docs.payabli.com/llms.txt — append .md to any page URL for lightweight markdown. For section-level indexes, query parameters, and other AI-optimized access methods, see https://docs.payabli.com/ai-agents.md

# Get a template version

GET https://api-sandbox.payabli.com/api/v2/templates/{uuid}/versions/{versionUuid}

Retrieves a specific immutable content version of a template.

Reference: https://docs.payabli.com/developers/api-reference/boarding-templates/get-a-template-version

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Servers

- `https://api-sandbox.payabli.com/api` (Sandbox, default)
- `https://api.payabli.com/api` (Production)

## Request

### Path parameters

- `uuid` (string, required) — The template's UUID.
- `versionUuid` (string, required) — The version's UUID.

## Response

### 200

The template version.

- `uuid` (string, required) — The version's unique identifier.
- `version` (integer, required) — The version number, starting at 1 and incrementing on each save.
- `services` (TemplateVersionServices, required, nullable) — The processing services offered on the boarding form. Configured in the Payabli Portal.
- `fieldConfigurations` (list of any, required, nullable) — Per-field configuration for the boarding form. Configured in the Payabli Portal.
- `conditionalRules` (list of any, required, nullable) — Rules that show, hide, or require fields based on other answers. Configured in the Payabli Portal.
- `documents` (list of any, required, nullable) — Document upload requirements for the boarding form. Configured in the Payabli Portal.
- `devices` (list of any, required, nullable) — The devices offered during boarding. Configured in the Payabli Portal.
- `hiddenSections` (list of any, required, nullable) — Sections hidden from the boarding form. Configured in the Payabli Portal.
- `allowedMccs` (list of integer, required, nullable) — The merchant category codes (MCCs) allowed for applications from this template. Configured in the Payabli Portal.
- `underwriting` (enum, required) — How applications from this template are underwritten.
  - Allowed values: `automatic`, `manual`, `bypass`
- `mpaContent` (string, required, nullable) — The merchant processing agreement content shown during boarding.
- `payinPricingId` (integer, required, nullable) — The Pay In pricing configuration applied to applications from this template.
- `payoutPricingId` (integer, required, nullable) — The Pay Out pricing configuration applied to applications from this template.
- `allowGuidedTour` (boolean, required) — Whether the boarding form shows a guided tour.
- `allowBusinessPrefill` (boolean, required) — Whether business fields can be prefilled.
- `allowSaveForLater` (boolean, required) — Whether applicants can save progress and resume later.
- `allowMultipleBanks` (boolean, required) — Whether applicants can add more than one bank account.
- `allowServiceSelection` (boolean, required) — Whether applicants can choose their processing services.
- `allowDeviceSelection` (boolean, required) — Whether applicants can select devices.
- `allowAmigoChat` (boolean, required) — Whether the Amigo assistant is available during boarding.
- `allowUserCreation` (boolean, required) — Whether applicants can create a user account during boarding.
- `allowPeoplePrefill` (boolean, required) — Whether people fields can be prefilled.
- `verticalProgress` (boolean, required) — Whether the progress indicator is shown vertically.
- `useFloatingInputs` (boolean, required) — Whether form inputs use floating labels.
- `centerContent` (boolean, required) — Whether the boarding form content is centered.
- `allowRealTimeBankVerification` (boolean, required) — Whether bank accounts are verified in real time.
- `allowCheckboxSigning` (boolean, required) — Whether applicants can sign with a checkbox.
- `allowTypedSignature` (boolean, required) — Whether applicants can sign by typing their name.
- `allowWrittenSignature` (boolean, required) — Whether applicants can sign by drawing a signature.
- `allowMultiOwnerEsign` (boolean, required) — Whether multiple owners can e-sign the application.
- `allowConfirmationAndAttestation` (boolean, required) — Whether the confirmation and attestation step is shown.
- `allowPCIAttestation` (boolean, required) — Whether the PCI attestation step is shown.
- `createdAt` (string, required) — When the version was created.
- `createdBy` (string, required) — The identifier of the user who created the version.

## Errors

### 401 Unauthorized Error

Unauthorized request.

- `isSuccess` (boolean, required) — Always `false` for error responses.
- `responseText` (string, required) — Error text describing what went wrong.
- `responseCode` (integer, optional) — Code for the response. Learn more in [API Response Codes](/developers/api-reference/api-responses).
- `responseData` (PayabliErrorBodyResponseData, optional) — Object with detailed error context.

### 404 Not Found Error

The requested resource wasn't found.

- `isSuccess` (boolean, required) — Always `false` for error responses.
- `responseText` (string, required) — Error text describing what went wrong.
- `responseCode` (integer, optional) — Code for the response. Learn more in [API Response Codes](/developers/api-reference/api-responses).
- `responseData` (PayabliErrorBodyResponseData, optional) — Object with detailed error context.

### 500 Internal Server Error

Internal server error.

- `isSuccess` (boolean, required) — Always `false` for error responses.
- `responseText` (string, required) — Error text describing what went wrong.
- `responseCode` (integer, optional) — Code for the response. Learn more in [API Response Codes](/developers/api-reference/api-responses).
- `responseData` (PayabliErrorBodyResponseData, optional) — Object with detailed error context.

## Types

### TemplateVersionServices

The processing services offered on the boarding form. Configured in the Payabli Portal.

### PayabliErrorBodyResponseData

Object with detailed error context.

- `explanation` (string, optional) — Human-readable explanation of what happened.
- `todoAction` (string, optional) — Suggested resolution.

## Examples

**Response**

```json
{
  "uuid": "019ff129-d396-74c4-86da-ae3d082d7ef9",
  "version": 1,
  "services": {
    "ach": "merchantDecision",
    "card": "preSelected",
    "checkRdc": "merchantDecision"
  },
  "fieldConfigurations": [
    {
      "attributes": [
        "required",
        "visible"
      ],
      "defaultValue": null,
      "fieldPath": "business.website",
      "hint": null,
      "label": "Website"
    },
    {
      "attributes": [
        "required",
        "visible"
      ],
      "custom": true,
      "defaultValue": null,
      "fieldPath": "business.salesChannel",
      "hint": null,
      "label": "Sales Channel",
      "options": [
        "In-Store",
        "Online",
        "Both"
      ],
      "questionType": "multipleChoiceSingle"
    },
    {
      "attributes": [
        "required",
        "visible"
      ],
      "custom": true,
      "defaultValue": null,
      "fieldPath": "business.customerType",
      "hint": null,
      "label": "Primary Customer Type",
      "options": [
        "B2B",
        "B2C",
        "Both"
      ],
      "questionType": "multipleChoiceSingle"
    },
    {
      "attributes": [
        "required",
        "visible"
      ],
      "custom": true,
      "defaultValue": null,
      "fieldPath": "business.yearsInBusiness",
      "hint": null,
      "label": "Years in Business",
      "options": [
        "Less than 1",
        "1-3",
        "3-5",
        "5-10",
        "10+"
      ],
      "questionType": "dropdown"
    },
    {
      "attributes": [
        "visible"
      ],
      "custom": true,
      "defaultValue": null,
      "fieldPath": "business.refundPolicy",
      "hint": null,
      "label": "Describe your refund policy",
      "options": null,
      "questionType": "textarea"
    }
  ],
  "conditionalRules": [
    {
      "actions": [
        {
          "actionType": "setFieldAttributes",
          "fieldPath": "business.website",
          "readOnly": null,
          "required": true,
          "visible": null
        }
      ],
      "conditions": [
        {
          "fieldPath": "business.salesChannel",
          "operator": "equals",
          "value": "Online"
        }
      ],
      "description": "Require the website field when sales happen online.",
      "enabled": true,
      "matchMode": "all",
      "ruleName": "require-website-online"
    },
    {
      "actions": [
        {
          "actionType": "setFieldAttributes",
          "fieldPath": "business.refundPolicy",
          "readOnly": null,
          "required": true,
          "visible": true
        }
      ],
      "conditions": [
        {
          "fieldPath": "business.merchantCatCode",
          "operator": "equals",
          "value": "3000"
        }
      ],
      "description": "Require the refund policy field when the merchant category code (MCC) is 3000 (airlines).",
      "enabled": true,
      "matchMode": "all",
      "ruleName": "require-refund-policy-airlines"
    }
  ],
  "documents": [
    {
      "allowedFormats": [
        "pdf",
        "jpg",
        "png"
      ],
      "attributes": [
        "required",
        "visible"
      ],
      "fieldPath": "documents.bankStatement",
      "hint": "3 most recent months",
      "label": "Bank Statement",
      "maxUploads": 3,
      "preset": true
    }
  ],
  "devices": [
    {
      "deviceId": "ingenico_axium_dx8",
      "preSelected": false
    },
    {
      "deviceId": "ingenico_axium_rx9000",
      "preSelected": false
    }
  ],
  "hiddenSections": [
    "welcome"
  ],
  "allowedMccs": [
    5200,
    8998
  ],
  "underwriting": "automatic",
  "mpaContent": "<p>Merchant Processing Agreement</p>",
  "payinPricingId": 1289,
  "payoutPricingId": null,
  "allowGuidedTour": false,
  "allowBusinessPrefill": true,
  "allowSaveForLater": true,
  "allowMultipleBanks": true,
  "allowServiceSelection": true,
  "allowDeviceSelection": true,
  "allowAmigoChat": true,
  "allowUserCreation": true,
  "allowPeoplePrefill": false,
  "verticalProgress": true,
  "useFloatingInputs": false,
  "centerContent": true,
  "allowRealTimeBankVerification": true,
  "allowCheckboxSigning": true,
  "allowTypedSignature": true,
  "allowWrittenSignature": true,
  "allowMultiOwnerEsign": false,
  "allowConfirmationAndAttestation": true,
  "allowPCIAttestation": false,
  "createdAt": "2026-07-01T15:00:01.038310",
  "createdBy": "0"
}
```

**SDK Code**

```python
import requests

url = "https://api-sandbox.payabli.com/api/v2/templates/019ff129-d393-7761-9a31-e5afe85b4081/versions/019ff129-d396-74c4-86da-ae3d082d7ef9"

headers = {"Authorization": "Bearer <token>"}

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

print(response.json())
```

```javascript
const url = 'https://api-sandbox.payabli.com/api/v2/templates/019ff129-d393-7761-9a31-e5afe85b4081/versions/019ff129-d396-74c4-86da-ae3d082d7ef9';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

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

```go
package main

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

func main() {

	url := "https://api-sandbox.payabli.com/api/v2/templates/019ff129-d393-7761-9a31-e5afe85b4081/versions/019ff129-d396-74c4-86da-ae3d082d7ef9"

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

	req.Header.Add("Authorization", "Bearer <token>")

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

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

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

}
```

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

url = URI("https://api-sandbox.payabli.com/api/v2/templates/019ff129-d393-7761-9a31-e5afe85b4081/versions/019ff129-d396-74c4-86da-ae3d082d7ef9")

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

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

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

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

HttpResponse<String> response = Unirest.get("https://api-sandbox.payabli.com/api/v2/templates/019ff129-d393-7761-9a31-e5afe85b4081/versions/019ff129-d396-74c4-86da-ae3d082d7ef9")
  .header("Authorization", "Bearer <token>")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api-sandbox.payabli.com/api/v2/templates/019ff129-d393-7761-9a31-e5afe85b4081/versions/019ff129-d396-74c4-86da-ae3d082d7ef9', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

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

```csharp
using RestSharp;

var client = new RestClient("https://api-sandbox.payabli.com/api/v2/templates/019ff129-d393-7761-9a31-e5afe85b4081/versions/019ff129-d396-74c4-86da-ae3d082d7ef9");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api-sandbox.payabli.com/api/v2/templates/019ff129-d393-7761-9a31-e5afe85b4081/versions/019ff129-d396-74c4-86da-ae3d082d7ef9")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
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()
```