{
  "openapi": "3.0.2",
  "info": {
    "description": "# Introduction\n\nWelcome to the Legaldoc API documentation. Our API is designed to be easily integrated with existing systems, providing a robust and reliable interface for all your integrations.",
    "title": "Legaldoc APIs",
    "version": "1.0.0",
    "x-logo": {
      "url": "https://assets.jumpseller.com/store/legaldoc-io/themes/839965/legaldoc.svg",
      "altText": "Legaldoc.io",
      "backgroundColor": "transparent"
    }
  },
  "servers": [
    {
      "url": "https://app.legaldoc.io"
    }
  ],
  "tags": [
    {
      "name": "Documents",
      "description": "Operations for managing documents including creating, retrieving, updating and deleting documents"
    },
    {
      "name": "Templates",
      "description": "Operations for managing document templates"
    },
    {
      "name": "Recipients",
      "description": "Operations for managing document recipients"
    },
    {
      "name": "Fields",
      "description": "Operations for managing document fields"
    }
  ],
  "x-tagGroups": [
    {
      "name": "API-Base",
      "tags": [
        "Documents",
        "Templates",
        "Recipients",
        "Fields"
      ]
    }
  ],
  "paths": {
    "/api/v1/documents/{id}/fields": {
      "get": {
        "summary": "Get all fields for a document",
        "tags": [
          "Fields"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "getDocumentFields",
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "fields": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  },
                  "required": [
                    "fields"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/{id}/fields/{fieldId}": {
      "get": {
        "summary": "Get a specific field from a document",
        "tags": [
          "Fields"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fieldId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "getDocumentField",
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "field": {
                      "type": "object"
                    }
                  },
                  "required": [
                    "field"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents": {
      "get": {
        "summary": "Get all documents",
        "tags": [
          "Documents"
        ],
        "parameters": [
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "default": 1,
              "type": "number",
              "minimum": 1
            }
          },
          {
            "name": "perPage",
            "in": "query",
            "schema": {
              "default": 1,
              "type": "number",
              "minimum": 1
            }
          }
        ],
        "operationId": "getDocuments",
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "documents": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number"
                          },
                          "externalId": {
                            "type": "string",
                            "nullable": true
                          },
                          "userId": {
                            "type": "number"
                          },
                          "teamId": {
                            "type": "number",
                            "nullable": true
                          },
                          "title": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string"
                          },
                          "documentDataId": {
                            "type": "string"
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "updatedAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "completedAt": {
                            "type": "string",
                            "format": "date-time",
                            "nullable": true
                          }
                        },
                        "required": [
                          "id",
                          "userId",
                          "title",
                          "status",
                          "documentDataId",
                          "createdAt",
                          "updatedAt",
                          "completedAt"
                        ]
                      }
                    },
                    "totalPages": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "documents",
                    "totalPages"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Upload a new document and get a presigned URL",
        "tags": [
          "Documents"
        ],
        "parameters": [
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "createDocument",
        "requestBody": {
          "description": "Body",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "minLength": 1
                  },
                  "externalId": {
                    "type": "string",
                    "nullable": true
                  },
                  "recipients": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1
                        },
                        "email": {
                          "type": "string",
                          "format": "email",
                          "minLength": 1
                        },
                        "role": {
                          "default": "SIGNER",
                          "type": "string",
                          "enum": [
                            "CC",
                            "SIGNER",
                            "VIEWER",
                            "APPROVER",
                            "ASSISTANT"
                          ]
                        },
                        "signingOrder": {
                          "type": "number",
                          "nullable": true
                        }
                      },
                      "required": [
                        "name",
                        "email"
                      ]
                    }
                  },
                  "meta": {
                    "default": {},
                    "type": "object",
                    "properties": {
                      "subject": {
                        "type": "string"
                      },
                      "message": {
                        "type": "string"
                      },
                      "timezone": {
                        "default": "Etc/UTC",
                        "type": "string",
                        "description": "The timezone of the date. Must be one of the options listed in the list below.",
                        "enum": [
                          "Etc/UTC",
                          "Africa/Abidjan",
                          "Africa/Accra",
                          "Africa/Addis_Ababa",
                          "Africa/Algiers",
                          "Africa/Asmara",
                          "Africa/Bamako",
                          "Africa/Bangui",
                          "Africa/Banjul",
                          "Africa/Bissau",
                          "Africa/Blantyre",
                          "Africa/Brazzaville",
                          "Africa/Bujumbura",
                          "Africa/Cairo",
                          "Africa/Casablanca",
                          "Africa/Ceuta",
                          "Africa/Conakry",
                          "Africa/Dakar",
                          "Africa/Dar_es_Salaam",
                          "Africa/Djibouti",
                          "Africa/Douala",
                          "Africa/El_Aaiun",
                          "Africa/Freetown",
                          "Africa/Gaborone",
                          "Africa/Harare",
                          "Africa/Johannesburg",
                          "Africa/Juba",
                          "Africa/Kampala",
                          "Africa/Khartoum",
                          "Africa/Kigali",
                          "Africa/Kinshasa",
                          "Africa/Lagos",
                          "Africa/Libreville",
                          "Africa/Lome",
                          "Africa/Luanda",
                          "Africa/Lubumbashi",
                          "Africa/Lusaka",
                          "Africa/Malabo",
                          "Africa/Maputo",
                          "Africa/Maseru",
                          "Africa/Mbabane",
                          "Africa/Mogadishu",
                          "Africa/Monrovia",
                          "Africa/Nairobi",
                          "Africa/Ndjamena",
                          "Africa/Niamey",
                          "Africa/Nouakchott",
                          "Africa/Ouagadougou",
                          "Africa/Porto-Novo",
                          "Africa/Sao_Tome",
                          "Africa/Tripoli",
                          "Africa/Tunis",
                          "Africa/Windhoek",
                          "America/Adak",
                          "America/Anchorage",
                          "America/Anguilla",
                          "America/Antigua",
                          "America/Araguaina",
                          "America/Argentina/Buenos_Aires",
                          "America/Argentina/Catamarca",
                          "America/Argentina/Cordoba",
                          "America/Argentina/Jujuy",
                          "America/Argentina/La_Rioja",
                          "America/Argentina/Mendoza",
                          "America/Argentina/Rio_Gallegos",
                          "America/Argentina/Salta",
                          "America/Argentina/San_Juan",
                          "America/Argentina/San_Luis",
                          "America/Argentina/Tucuman",
                          "America/Argentina/Ushuaia",
                          "America/Aruba",
                          "America/Asuncion",
                          "America/Atikokan",
                          "America/Bahia",
                          "America/Bahia_Banderas",
                          "America/Barbados",
                          "America/Belem",
                          "America/Belize",
                          "America/Blanc-Sablon",
                          "America/Boa_Vista",
                          "America/Bogota",
                          "America/Boise",
                          "America/Cambridge_Bay",
                          "America/Campo_Grande",
                          "America/Cancun",
                          "America/Caracas",
                          "America/Cayenne",
                          "America/Cayman",
                          "America/Chicago",
                          "America/Chihuahua",
                          "America/Ciudad_Juarez",
                          "America/Costa_Rica",
                          "America/Creston",
                          "America/Cuiaba",
                          "America/Curacao",
                          "America/Danmarkshavn",
                          "America/Dawson",
                          "America/Dawson_Creek",
                          "America/Denver",
                          "America/Detroit",
                          "America/Dominica",
                          "America/Edmonton",
                          "America/Eirunepe",
                          "America/El_Salvador",
                          "America/Fort_Nelson",
                          "America/Fortaleza",
                          "America/Glace_Bay",
                          "America/Goose_Bay",
                          "America/Grand_Turk",
                          "America/Grenada",
                          "America/Guadeloupe",
                          "America/Guatemala",
                          "America/Guayaquil",
                          "America/Guyana",
                          "America/Halifax",
                          "America/Havana",
                          "America/Hermosillo",
                          "America/Indiana/Indianapolis",
                          "America/Indiana/Knox",
                          "America/Indiana/Marengo",
                          "America/Indiana/Petersburg",
                          "America/Indiana/Tell_City",
                          "America/Indiana/Vevay",
                          "America/Indiana/Vincennes",
                          "America/Indiana/Winamac",
                          "America/Inuvik",
                          "America/Iqaluit",
                          "America/Jamaica",
                          "America/Juneau",
                          "America/Kentucky/Louisville",
                          "America/Kentucky/Monticello",
                          "America/Kralendijk",
                          "America/La_Paz",
                          "America/Lima",
                          "America/Los_Angeles",
                          "America/Lower_Princes",
                          "America/Maceio",
                          "America/Managua",
                          "America/Manaus",
                          "America/Marigot",
                          "America/Martinique",
                          "America/Matamoros",
                          "America/Mazatlan",
                          "America/Menominee",
                          "America/Merida",
                          "America/Metlakatla",
                          "America/Mexico_City",
                          "America/Miquelon",
                          "America/Moncton",
                          "America/Monterrey",
                          "America/Montevideo",
                          "America/Montserrat",
                          "America/Nassau",
                          "America/New_York",
                          "America/Nome",
                          "America/Noronha",
                          "America/North_Dakota/Beulah",
                          "America/North_Dakota/Center",
                          "America/North_Dakota/New_Salem",
                          "America/Nuuk",
                          "America/Ojinaga",
                          "America/Panama",
                          "America/Paramaribo",
                          "America/Phoenix",
                          "America/Port-au-Prince",
                          "America/Port_of_Spain",
                          "America/Porto_Velho",
                          "America/Puerto_Rico",
                          "America/Punta_Arenas",
                          "America/Rankin_Inlet",
                          "America/Recife",
                          "America/Regina",
                          "America/Resolute",
                          "America/Rio_Branco",
                          "America/Santarem",
                          "America/Santiago",
                          "America/Santo_Domingo",
                          "America/Sao_Paulo",
                          "America/Scoresbysund",
                          "America/Sitka",
                          "America/St_Barthelemy",
                          "America/St_Johns",
                          "America/St_Kitts",
                          "America/St_Lucia",
                          "America/St_Thomas",
                          "America/St_Vincent",
                          "America/Swift_Current",
                          "America/Tegucigalpa",
                          "America/Thule",
                          "America/Tijuana",
                          "America/Toronto",
                          "America/Tortola",
                          "America/Vancouver",
                          "America/Whitehorse",
                          "America/Winnipeg",
                          "America/Yakutat",
                          "America/Yellowknife",
                          "Antarctica/Casey",
                          "Antarctica/Davis",
                          "Antarctica/DumontDUrville",
                          "Antarctica/Macquarie",
                          "Antarctica/Mawson",
                          "Antarctica/McMurdo",
                          "Antarctica/Palmer",
                          "Antarctica/Rothera",
                          "Antarctica/Syowa",
                          "Antarctica/Troll",
                          "Antarctica/Vostok",
                          "Arctic/Longyearbyen",
                          "Asia/Aden",
                          "Asia/Almaty",
                          "Asia/Amman",
                          "Asia/Anadyr",
                          "Asia/Aqtau",
                          "Asia/Aqtobe",
                          "Asia/Ashgabat",
                          "Asia/Atyrau",
                          "Asia/Baghdad",
                          "Asia/Bahrain",
                          "Asia/Baku",
                          "Asia/Bangkok",
                          "Asia/Barnaul",
                          "Asia/Beirut",
                          "Asia/Bishkek",
                          "Asia/Brunei",
                          "Asia/Chita",
                          "Asia/Choibalsan",
                          "Asia/Colombo",
                          "Asia/Damascus",
                          "Asia/Dhaka",
                          "Asia/Dili",
                          "Asia/Dubai",
                          "Asia/Dushanbe",
                          "Asia/Famagusta",
                          "Asia/Gaza",
                          "Asia/Hebron",
                          "Asia/Ho_Chi_Minh",
                          "Asia/Hong_Kong",
                          "Asia/Hovd",
                          "Asia/Irkutsk",
                          "Asia/Jakarta",
                          "Asia/Jayapura",
                          "Asia/Jerusalem",
                          "Asia/Kabul",
                          "Asia/Kamchatka",
                          "Asia/Karachi",
                          "Asia/Kathmandu",
                          "Asia/Khandyga",
                          "Asia/Kolkata",
                          "Asia/Krasnoyarsk",
                          "Asia/Kuala_Lumpur",
                          "Asia/Kuching",
                          "Asia/Kuwait",
                          "Asia/Macau",
                          "Asia/Magadan",
                          "Asia/Makassar",
                          "Asia/Manila",
                          "Asia/Muscat",
                          "Asia/Nicosia",
                          "Asia/Novokuznetsk",
                          "Asia/Novosibirsk",
                          "Asia/Omsk",
                          "Asia/Oral",
                          "Asia/Phnom_Penh",
                          "Asia/Pontianak",
                          "Asia/Pyongyang",
                          "Asia/Qatar",
                          "Asia/Qostanay",
                          "Asia/Qyzylorda",
                          "Asia/Riyadh",
                          "Asia/Sakhalin",
                          "Asia/Samarkand",
                          "Asia/Seoul",
                          "Asia/Shanghai",
                          "Asia/Singapore",
                          "Asia/Srednekolymsk",
                          "Asia/Taipei",
                          "Asia/Tashkent",
                          "Asia/Tbilisi",
                          "Asia/Tehran",
                          "Asia/Thimphu",
                          "Asia/Tokyo",
                          "Asia/Tomsk",
                          "Asia/Ulaanbaatar",
                          "Asia/Urumqi",
                          "Asia/Ust-Nera",
                          "Asia/Vientiane",
                          "Asia/Vladivostok",
                          "Asia/Yakutsk",
                          "Asia/Yangon",
                          "Asia/Yekaterinburg",
                          "Asia/Yerevan",
                          "Atlantic/Azores",
                          "Atlantic/Bermuda",
                          "Atlantic/Canary",
                          "Atlantic/Cape_Verde",
                          "Atlantic/Faroe",
                          "Atlantic/Madeira",
                          "Atlantic/Reykjavik",
                          "Atlantic/South_Georgia",
                          "Atlantic/St_Helena",
                          "Atlantic/Stanley",
                          "Australia/Adelaide",
                          "Australia/Brisbane",
                          "Australia/Broken_Hill",
                          "Australia/Darwin",
                          "Australia/Eucla",
                          "Australia/Hobart",
                          "Australia/Lindeman",
                          "Australia/Lord_Howe",
                          "Australia/Melbourne",
                          "Australia/Perth",
                          "Australia/Sydney",
                          "Europe/Amsterdam",
                          "Europe/Andorra",
                          "Europe/Astrakhan",
                          "Europe/Athens",
                          "Europe/Belgrade",
                          "Europe/Berlin",
                          "Europe/Bratislava",
                          "Europe/Brussels",
                          "Europe/Bucharest",
                          "Europe/Budapest",
                          "Europe/Busingen",
                          "Europe/Chisinau",
                          "Europe/Copenhagen",
                          "Europe/Dublin",
                          "Europe/Gibraltar",
                          "Europe/Guernsey",
                          "Europe/Helsinki",
                          "Europe/Isle_of_Man",
                          "Europe/Istanbul",
                          "Europe/Jersey",
                          "Europe/Kaliningrad",
                          "Europe/Kirov",
                          "Europe/Kyiv",
                          "Europe/Lisbon",
                          "Europe/Ljubljana",
                          "Europe/London",
                          "Europe/Luxembourg",
                          "Europe/Madrid",
                          "Europe/Malta",
                          "Europe/Mariehamn",
                          "Europe/Minsk",
                          "Europe/Monaco",
                          "Europe/Moscow",
                          "Europe/Oslo",
                          "Europe/Paris",
                          "Europe/Podgorica",
                          "Europe/Prague",
                          "Europe/Riga",
                          "Europe/Rome",
                          "Europe/Samara",
                          "Europe/San_Marino",
                          "Europe/Sarajevo",
                          "Europe/Saratov",
                          "Europe/Simferopol",
                          "Europe/Skopje",
                          "Europe/Sofia",
                          "Europe/Stockholm",
                          "Europe/Tallinn",
                          "Europe/Tirane",
                          "Europe/Ulyanovsk",
                          "Europe/Vaduz",
                          "Europe/Vatican",
                          "Europe/Vienna",
                          "Europe/Vilnius",
                          "Europe/Volgograd",
                          "Europe/Warsaw",
                          "Europe/Zagreb",
                          "Europe/Zurich",
                          "Indian/Antananarivo"
                        ]
                      },
                      "dateFormat": {
                        "default": "yyyy-MM-dd hh:mm a",
                        "type": "string",
                        "description": "The format of the date. Must be one of the options listed in the list below.",
                        "enum": []
                      },
                      "redirectUrl": {
                        "type": "string"
                      },
                      "signingOrder": {
                        "type": "string",
                        "enum": [
                          "PARALLEL",
                          "SEQUENTIAL"
                        ]
                      },
                      "allowDictateNextSigner": {
                        "type": "boolean"
                      },
                      "language": {
                        "type": "string",
                        "enum": [
                          "es",
                          "en"
                        ]
                      },
                      "typedSignatureEnabled": {
                        "default": true,
                        "type": "boolean"
                      },
                      "uploadSignatureEnabled": {
                        "default": true,
                        "type": "boolean"
                      },
                      "drawSignatureEnabled": {
                        "default": true,
                        "type": "boolean"
                      },
                      "distributionMethod": {
                        "type": "string",
                        "enum": [
                          "EMAIL",
                          "NONE"
                        ]
                      },
                      "emailSettings": {
                        "nullable": true
                      }
                    }
                  },
                  "authOptions": {
                    "type": "object",
                    "properties": {
                      "globalAccessAuth": {
                        "type": "string",
                        "enum": [
                          "ACCOUNT"
                        ],
                        "description": "The type of authentication required for the recipient to access the document."
                      },
                      "globalActionAuth": {
                        "type": "string",
                        "enum": [
                          "ACCOUNT",
                          "PASSKEY",
                          "TWO_FACTOR_AUTH",
                          "CLAVE_UNICA"
                        ],
                        "description": "The type of authentication required for the recipient to sign the document."
                      }
                    },
                    "description": "Authentication options for the document."
                  },
                  "formValues": {
                    "type": "object",
                    "additionalProperties": {
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "title",
                  "recipients"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "uploadUrl": {
                      "type": "string",
                      "minLength": 1
                    },
                    "documentId": {
                      "type": "number"
                    },
                    "externalId": {
                      "type": "string",
                      "nullable": true
                    },
                    "recipients": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number"
                          },
                          "name": {
                            "type": "string"
                          },
                          "email": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "email"
                        ]
                      }
                    }
                  },
                  "required": [
                    "uploadUrl",
                    "documentId",
                    "recipients"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/{id}": {
      "get": {
        "summary": "Get a single document",
        "tags": [
          "Documents"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "getDocument",
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "externalId": {
                      "type": "string",
                      "nullable": true
                    },
                    "userId": {
                      "type": "number"
                    },
                    "teamId": {
                      "type": "number",
                      "nullable": true
                    },
                    "title": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "documentDataId": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "completedAt": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    },
                    "recipients": {},
                    "fields": {}
                  },
                  "required": [
                    "id",
                    "userId",
                    "title",
                    "status",
                    "documentDataId",
                    "createdAt",
                    "updatedAt",
                    "completedAt",
                    "recipients",
                    "fields"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Delete a document",
        "tags": [
          "Documents"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "deleteDocument",
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "externalId": {
                      "type": "string",
                      "nullable": true
                    },
                    "userId": {
                      "type": "number"
                    },
                    "teamId": {
                      "type": "number",
                      "nullable": true
                    },
                    "title": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "documentDataId": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "completedAt": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    }
                  },
                  "required": [
                    "id",
                    "userId",
                    "title",
                    "status",
                    "documentDataId",
                    "createdAt",
                    "updatedAt",
                    "completedAt"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/{id}/download": {
      "get": {
        "summary": "Download a signed document (S3)",
        "tags": [
          "Documents"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "downloadSignedDocument",
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "downloadUrl": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "downloadUrl"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/{id}/send": {
      "post": {
        "summary": "Send a document via email",
        "tags": [
          "Documents"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "sendDocument",
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/{id}/resend": {
      "post": {
        "summary": "Resend a document via email",
        "tags": [
          "Documents"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "resendDocument",
        "requestBody": {
          "description": "Body",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "recipientId": {
                    "type": "number"
                  }
                },
                "required": [
                  "recipientId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/{id}/recipients": {
      "get": {
        "summary": "Get all recipients for a document",
        "tags": [
          "Recipients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "getRecipients",
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "number"
                      },
                      "documentId": {
                        "type": "number"
                      },
                      "name": {
                        "type": "string"
                      },
                      "email": {
                        "type": "string"
                      },
                      "role": {
                        "type": "string"
                      },
                      "signingOrder": {
                        "type": "number",
                        "nullable": true
                      },
                      "token": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "dateSent": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                      },
                      "dateOpened": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                      },
                      "dateCompleted": {
                        "type": "string",
                        "format": "date-time",
                        "nullable": true
                      },
                      "viewCount": {
                        "type": "number"
                      },
                      "authMethod": {
                        "type": "string",
                        "nullable": true
                      },
                      "createdAt": {
                        "type": "string",
                        "format": "date-time"
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time"
                      }
                    },
                    "required": [
                      "id",
                      "documentId",
                      "name",
                      "email",
                      "role",
                      "token",
                      "status",
                      "viewCount",
                      "createdAt",
                      "updatedAt"
                    ]
                  }
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/documents/{id}/recipients/{recipientId}": {
      "get": {
        "summary": "Get a recipient for a document",
        "tags": [
          "Recipients"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "recipientId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "getRecipient",
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "documentId": {
                      "type": "number"
                    },
                    "name": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "role": {
                      "type": "string"
                    },
                    "signingOrder": {
                      "type": "number",
                      "nullable": true
                    },
                    "token": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "dateSent": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    },
                    "dateOpened": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    },
                    "dateCompleted": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true
                    },
                    "viewCount": {
                      "type": "number"
                    },
                    "authMethod": {
                      "type": "string",
                      "nullable": true
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "id",
                    "documentId",
                    "name",
                    "email",
                    "role",
                    "token",
                    "status",
                    "viewCount",
                    "createdAt",
                    "updatedAt"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/templates/{id}": {
      "delete": {
        "summary": "Delete a template",
        "tags": [
          "Templates"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "deleteTemplate",
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "externalId": {
                      "type": "string",
                      "nullable": true
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "PUBLIC",
                        "PRIVATE"
                      ]
                    },
                    "title": {
                      "type": "string"
                    },
                    "userId": {
                      "type": "number"
                    },
                    "teamId": {
                      "type": "number",
                      "nullable": true
                    },
                    "templateDocumentDataId": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "id",
                    "type",
                    "title",
                    "userId",
                    "templateDocumentDataId",
                    "createdAt",
                    "updatedAt"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      },
      "get": {
        "summary": "Get a single template",
        "tags": [
          "Templates"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "getTemplate",
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number"
                    },
                    "externalId": {
                      "type": "string",
                      "nullable": true
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "PUBLIC",
                        "PRIVATE"
                      ]
                    },
                    "title": {
                      "type": "string"
                    },
                    "userId": {
                      "type": "number"
                    },
                    "teamId": {
                      "type": "number",
                      "nullable": true
                    },
                    "templateDocumentDataId": {
                      "type": "string"
                    },
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "updatedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "templateMeta": {
                      "type": "object",
                      "nullable": true
                    },
                    "directLink": {
                      "type": "string",
                      "nullable": true
                    },
                    "templateDocumentData": {
                      "type": "object",
                      "required": [
                        "id",
                        "type",
                        "data"
                      ]
                    },
                    "Field": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/templates": {
      "get": {
        "summary": "Get all templates",
        "tags": [
          "Templates"
        ],
        "parameters": [
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "default": 1,
              "type": "number",
              "minimum": 1
            }
          },
          {
            "name": "perPage",
            "in": "query",
            "schema": {
              "default": 1,
              "type": "number",
              "minimum": 1
            }
          }
        ],
        "operationId": "getTemplates",
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "templates": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number"
                          },
                          "externalId": {
                            "type": "string",
                            "nullable": true
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "PUBLIC",
                              "PRIVATE"
                            ]
                          },
                          "title": {
                            "type": "string"
                          },
                          "userId": {
                            "type": "number"
                          },
                          "teamId": {
                            "type": "number",
                            "nullable": true
                          },
                          "templateDocumentDataId": {
                            "type": "string"
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "updatedAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "id",
                          "type",
                          "title",
                          "userId",
                          "templateDocumentDataId",
                          "createdAt",
                          "updatedAt"
                        ]
                      }
                    },
                    "totalPages": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "templates",
                    "totalPages"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/templates/{templateId}/generate-document": {
      "post": {
        "description": "Create a new document from an existing template. Passing in values for title and meta will override the original values defined in the template. If you do not pass in values for recipients, it will use the values defined in the template.",
        "summary": "Create a new document from an existing template",
        "tags": [
          "Templates"
        ],
        "parameters": [
          {
            "name": "templateId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "generateDocumentFromTemplate",
        "requestBody": {
          "description": "Body",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "minLength": 1
                  },
                  "externalId": {
                    "type": "string",
                    "nullable": true
                  },
                  "recipients": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "minLength": 1
                        },
                        "email": {
                          "type": "string",
                          "format": "email",
                          "minLength": 1
                        },
                        "role": {
                          "default": "SIGNER",
                          "type": "string",
                          "enum": [
                            "CC",
                            "SIGNER",
                            "VIEWER",
                            "APPROVER",
                            "ASSISTANT"
                          ]
                        },
                        "signingOrder": {
                          "type": "number",
                          "nullable": true
                        }
                      },
                      "required": [
                        "name",
                        "email"
                      ]
                    }
                  },
                  "meta": {
                    "default": {},
                    "type": "object",
                    "properties": {
                      "subject": {
                        "type": "string"
                      },
                      "message": {
                        "type": "string"
                      },
                      "timezone": {
                        "default": "Etc/UTC",
                        "type": "string",
                        "description": "The timezone of the date. Must be one of the options listed in the list below.",
                        "enum": [
                          "Etc/UTC"
                        ]
                      },
                      "dateFormat": {
                        "default": "yyyy-MM-dd hh:mm a",
                        "type": "string",
                        "description": "The format of the date. Must be one of the options listed in the list below.",
                        "enum": []
                      },
                      "redirectUrl": {
                        "type": "string"
                      },
                      "signingOrder": {
                        "type": "string",
                        "enum": [
                          "PARALLEL",
                          "SEQUENTIAL"
                        ]
                      },
                      "allowDictateNextSigner": {
                        "type": "boolean"
                      },
                      "language": {
                        "type": "string",
                        "enum": [
                          "es",
                          "en"
                        ]
                      },
                      "typedSignatureEnabled": {
                        "default": true,
                        "type": "boolean"
                      },
                      "uploadSignatureEnabled": {
                        "default": true,
                        "type": "boolean"
                      },
                      "drawSignatureEnabled": {
                        "default": true,
                        "type": "boolean"
                      },
                      "distributionMethod": {
                        "type": "string",
                        "enum": [
                          "EMAIL",
                          "NONE"
                        ]
                      },
                      "emailSettings": {
                        "type": "object",
                        "nullable": true
                      }
                    }
                  },
                  "authOptions": {
                    "type": "object",
                    "properties": {
                      "globalAccessAuth": {
                        "type": "string",
                        "enum": [
                          "ACCOUNT"
                        ],
                        "description": "The type of authentication required for the recipient to access the document."
                      },
                      "globalActionAuth": {
                        "type": "string",
                        "enum": [
                          "ACCOUNT",
                          "PASSKEY",
                          "TWO_FACTOR_AUTH",
                          "CLAVE_UNICA"
                        ],
                        "description": "The type of authentication required for the recipient to sign the document."
                      }
                    },
                    "description": "Authentication options for the document."
                  },
                  "formValues": {
                    "type": "object",
                    "additionalProperties": {
                      "oneOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "number"
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "documentId": {
                      "type": "number"
                    },
                    "externalId": {
                      "type": "string",
                      "nullable": true
                    },
                    "recipients": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number"
                          },
                          "name": {
                            "type": "string"
                          },
                          "email": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "email"
                        ]
                      }
                    }
                  },
                  "required": [
                    "documentId",
                    "recipients"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "401",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "404",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "Include your API Key directly in the Authorization header (no \"Bearer\" prefix). Example: Authorization: {API_KEY}"
      }
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ]
}
