> 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

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

Retrieves a boarding template by UUID, including its current content version.

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

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

## Response

### 200

The template.

- `uuid` (string, required) — The template's unique identifier, used to read and manage the template.
- `orgId` (integer, required) — The numeric identifier of the organization that owns the template.
- `orgName` (string, required, nullable) — The name of the organization that owns the template.
- `name` (string, required) — The template's display name.
- `description` (string, required, nullable) — An optional description of the template.
- `slug` (string, required, nullable) — An optional URL-friendly identifier for the template.
- `status` (enum, required) — The template's lifecycle status.
  - Allowed values: `active`, `archived`
- `currentVersionUuid` (string, required) — The UUID of the template's active content version.
- `currentVersion` (TemplateVersion, required) — The template's active content version.
- `isInherited` (boolean, required) — Whether the template is inherited from an ancestor organization rather than owned directly.
- `readOnly` (boolean, required) — Whether the template is read-only for the calling organization.
- `createdBy` (string, required) — The identifier of the user who created the template.
- `updatedBy` (string, required) — The identifier of the user who last updated the template.
- `createdAt` (string, required) — When the template was created.
- `updatedAt` (string, required) — When the template was last updated.

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

### TemplateVersion

An immutable snapshot of a template's content. Each save in the Payabli Portal appends a new version; the template's `currentVersionUuid` points at the active one. The configuration objects (services, documents, devices, and so on) are authored in the Portal.

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

### PayabliErrorBodyResponseData

Object with detailed error context.

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

### TemplateVersionServices

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

## Examples

**Response**

```json
{
  "uuid": "019ff129-d393-7761-9a31-e5afe85b4081",
  "orgId": 123,
  "orgName": "PropertyManager Pro",
  "name": "Standard boarding template",
  "description": null,
  "slug": null,
  "status": "active",
  "currentVersionUuid": "019ff129-d396-74c4-86da-ae3d082d7ef9",
  "currentVersion": {
    "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"
  },
  "isInherited": false,
  "readOnly": false,
  "createdBy": "0",
  "updatedBy": "0",
  "createdAt": "2026-07-01T15:00:01.035727",
  "updatedAt": "2026-07-01T15:00:01.040548"
}
```

**SDK Code**

```python
import requests

url = "https://api-sandbox.payabli.com/api/v2/templates/019ff129-d393-7761-9a31-e5afe85b4081"

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';
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"

	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")

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")
  .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', [
  '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");
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")! 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()
```