{
  "openapi": "3.0.4",
  "info": {
    "title": "Registration Agents API Documentation",
    "description": "Access comprehensive information about endpoints and resources for Registration Agents.",
    "version": "v2.0.1"
  },
  "paths": {
    "/acp/checkout_sessions": {
      "post": {
        "tags": [
          "AcpCheckout"
        ],
        "summary": "Create a checkout session for one item: lei_renewal:{leiId}:{years} or lei_registration:{leiId}:{years}.",
        "parameters": [
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcpCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "201": {
            "description": "The session, ready_for_payment or not_ready_for_payment (messages say why)"
          }
        }
      }
    },
    "/acp/checkout_sessions/{id}": {
      "post": {
        "tags": [
          "AcpCheckout"
        ],
        "summary": "Update the session's items.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcpUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "AcpCheckout"
        ],
        "summary": "Get the session's current state; an open session is priced again.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acp/checkout_sessions/{id}/complete": {
      "post": {
        "tags": [
          "AcpCheckout"
        ],
        "summary": "Complete the session: pay by invoice (purchase_order_number) or with a shared payment token.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcpCompleteRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The completed session with its order"
          },
          "405": {
            "description": "The session is already completed or canceled, or has expired"
          }
        }
      }
    },
    "/acp/checkout_sessions/{id}/cancel": {
      "post": {
        "tags": [
          "AcpCheckout"
        ],
        "summary": "Cancel the session. Nothing is ordered before complete, so nothing else changes.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "405": {
            "description": "The session is already completed or canceled, or has expired"
          }
        }
      }
    },
    "/api/AgentIdentity/Attempt": {
      "get": {
        "tags": [
          "AgentIdentity"
        ],
        "summary": "Details of an approval request, if it belongs to the signed-in user.",
        "parameters": [
          {
            "name": "attempt",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request."
          },
          "404": {
            "description": "Unknown attempt, or it belongs to another user."
          }
        }
      }
    },
    "/api/AgentIdentity/Approve": {
      "post": {
        "tags": [
          "AgentIdentity"
        ],
        "summary": "Approves the request when userCode matches the code the agent shows.",
        "parameters": [
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AttemptRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttemptRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AttemptRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AttemptRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Approved; the agent receives its credential on its next poll."
          },
          "400": {
            "description": "Wrong code (with remainingTries), locked or expired."
          },
          "404": {
            "description": "Unknown attempt, or it belongs to another user."
          },
          "409": {
            "description": "Already approved, denied or completed."
          }
        }
      }
    },
    "/api/AgentIdentity/Deny": {
      "post": {
        "tags": [
          "AgentIdentity"
        ],
        "summary": "Denies the request; the agent's next poll returns access_denied.",
        "parameters": [
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AttemptRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttemptRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AttemptRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AttemptRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Denied."
          },
          "404": {
            "description": "Unknown attempt, or it belongs to another user."
          },
          "409": {
            "description": "Already approved or completed."
          }
        }
      }
    },
    "/api/AgentIdentity/Authorization": {
      "get": {
        "tags": [
          "AgentIdentity"
        ],
        "summary": "Details of an OAuth sign-in request (an app such as Claude connecting with the Connect button), for the\r\nwebsite's consent page (/dashboard/agent-authorize?request=...). clientName is self-asserted by the app, so\r\nthe page should show redirectHost next to it.",
        "parameters": [
          {
            "name": "request",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The request."
          },
          "404": {
            "description": "Unknown request."
          }
        }
      }
    },
    "/api/AgentIdentity/AuthorizationApprove": {
      "post": {
        "tags": [
          "AgentIdentity"
        ],
        "summary": "Approves an OAuth sign-in request for the signed-in user. The page then navigates to redirectUrl.",
        "parameters": [
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizationRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Approved: { redirectUrl } returns the user to the app with an authorization code."
          },
          "404": {
            "description": "Unknown request."
          },
          "409": {
            "description": "Expired, or already approved or denied."
          }
        }
      }
    },
    "/api/AgentIdentity/AuthorizationDeny": {
      "post": {
        "tags": [
          "AgentIdentity"
        ],
        "summary": "Denies an OAuth sign-in request. The page then navigates to redirectUrl.",
        "parameters": [
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizationRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Denied: { redirectUrl } returns the user to the app with error=access_denied."
          },
          "404": {
            "description": "Unknown request."
          },
          "409": {
            "description": "Expired, or already approved or denied."
          }
        }
      }
    },
    "/api/Documents/SubmitReferenceDocument": {
      "post": {
        "tags": [
          "Documents"
        ],
        "parameters": [
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "LEIID": {
                    "type": "string"
                  },
                  "File": {
                    "type": "string",
                    "format": "binary"
                  },
                  "DocumentTypeId": {
                    "type": "integer",
                    "format": "int32"
                  },
                  "Blanket": {
                    "type": "boolean"
                  }
                }
              },
              "encoding": {
                "LEIID": {
                  "style": "form"
                },
                "File": {
                  "style": "form"
                },
                "DocumentTypeId": {
                  "style": "form"
                },
                "Blanket": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Heartbeat": {
      "get": {
        "tags": [
          "Heartbeat"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/LegalForms": {
      "get": {
        "tags": [
          "LegalForms"
        ],
        "summary": "Retrieves a legal form from the database based on the specified parameters such as ELF code,\r\nlocal name, country code, and region code. The search initially prioritizes the ELF code,\r\nand if no match is found, it continues the search based on the local name and filtering by country or region code.",
        "parameters": [
          {
            "name": "elfCode",
            "in": "query",
            "description": "The unique ELF code that identifies the legal form to be retrieved.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "localName",
            "in": "query",
            "description": "The local name of the legal form to be searched for.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "countryCode",
            "in": "query",
            "description": "The ISO country code used to filter the legal forms.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regionCode",
            "in": "query",
            "description": "The code representing a region within the specified country for additional filtering.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityLegalForm"
                }
              }
            }
          }
        }
      }
    },
    "/api/Lei/ApproveLEIKyb": {
      "post": {
        "tags": [
          "Lei"
        ],
        "parameters": [
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApproveLeiKybRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Lei/{leiId}": {
      "get": {
        "tags": [
          "Lei"
        ],
        "summary": "Returns an Lei by id",
        "parameters": [
          {
            "name": "leiId",
            "in": "path",
            "description": "The id of the Lei to retrieve",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Lei"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Lei"
        ],
        "summary": "Updates an LEI.",
        "parameters": [
          {
            "name": "leiId",
            "in": "path",
            "description": "The id of the LEI to update.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Validated",
            "in": "query",
            "description": "Flag indicating if the LEI should be validated.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "requestBody": {
          "description": "The LEI to update. (The Id property will be ignored and the explicitly passed one used)",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Lei"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Lei": {
      "post": {
        "tags": [
          "Lei"
        ],
        "summary": "Creates a new LEI for a given request.",
        "parameters": [
          {
            "name": "Validated",
            "in": "query",
            "description": "Optional parameter. Determines whether the LEI has been validated. Default is false.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "b2BPriceKey",
            "in": "query",
            "description": "The B2BPriceKey can be (0,1,3,5) and corresponds to the number of years a partner who is ordering through the API can order an LEI for",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "requestBody": {
          "description": "The LEI to create. The Id property will be ignored and a new value assigned.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Lei"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/lei-complaint/analyze": {
      "post": {
        "tags": [
          "LeiComplaint"
        ],
        "summary": "Analyses an uploaded letter (multipart/form-data, one file in the field \"file\": PDF, PNG, JPEG or WebP).",
        "parameters": [
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The analysis, or that the letter is Global FinReg's own or may impersonate Global FinReg."
          },
          "400": {
            "description": "No file, an empty file, or a file that isn't a PDF, PNG, JPEG or WebP."
          },
          "413": {
            "description": "The file is larger than the upload limit."
          },
          "422": {
            "description": "The document couldn't be read or analysed."
          },
          "429": {
            "description": "Too many analyses; try again later."
          },
          "502": {
            "description": "The analysis service failed."
          }
        }
      }
    },
    "/api/lei-complaint/send": {
      "post": {
        "tags": [
          "LeiComplaint"
        ],
        "summary": "Sends the client's complaint to Forbrugerombudsmanden (multipart/form-data: the letter in \"file\", the email's\r\n\"subject\" and \"body\" as the client wrote them, the \"lei\" of the company complaining, which must be one of the\r\nuser's Danish LEIs, and optionally the \"contactEmail\" of the contact person). It is\r\nsent from the signed-in client's account email (also Reply-To), with a copy to the client, the contact person\r\nand Global FinReg, and the letter attached. Only for a letter this user analysed in the last\r\nLeiComplaint:AnalysedLetterHours that wasn't Global FinReg's own or an impersonation.",
        "parameters": [
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sent: who it went to."
          },
          "400": {
            "description": "No or unsupported file, or a missing or too long subject or text."
          },
          "403": {
            "description": "The letter is Global FinReg's own or may impersonate Global FinReg (type\r\n            Gfr.Api.Controllers.LeiComplaintController.BlockedLetterType), or \"lei\" isn't one of the user's Danish LEIs (type Gfr.Api.Controllers.LeiComplaintController.NotDanishType)."
          },
          "409": {
            "description": "This letter wasn't analysed by this user (recently): analyse it again first."
          },
          "413": {
            "description": "The file is larger than the upload limit."
          },
          "422": {
            "description": "The account has no usable email address to send from."
          },
          "429": {
            "description": "Too many complaints sent; try again later."
          },
          "502": {
            "description": "The email couldn't be sent."
          }
        }
      }
    },
    "/api/lei-complaint/eligibility": {
      "get": {
        "tags": [
          "LeiComplaint"
        ],
        "summary": "Whether the signed-in user may use the LEI complaint: they have at least one issued LEI registered in Denmark.\r\nThe site shows the menu link and the page's send button only then; the send endpoint checks the LEI itself.",
        "parameters": [
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/lei-complaint/recipients": {
      "get": {
        "tags": [
          "LeiComplaint"
        ],
        "summary": "Where a complaint goes, from config (LeiComplaint:OmbudsmanEmail and CopyEmail), so the page shows, copies and\r\nopens the email app with the same address the send endpoint uses (a test address on test servers).",
        "parameters": [
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Renewals": {
      "get": {
        "tags": [
          "Renewals"
        ],
        "summary": "Return RenewalOrder based on RenewalOrderID",
        "parameters": [
          {
            "name": "RenewalOrderID",
            "in": "query",
            "description": "A renewal order id is created by combining the ID from the LEI + 'Renewal\" + the year of the renewal\r\nto avoid confusion, if the LEI has already expired it should be year of the expiration date\r\notherwise it should be the current year",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "nonArchived",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "All renewal returned",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Renewal"
                }
              }
            }
          },
          "401": {
            "description": "The user does not have access to this invoice"
          }
        }
      },
      "put": {
        "tags": [
          "Renewals"
        ],
        "summary": "Updates renewal order",
        "parameters": [
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RenewalShort"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Renewal Order updated"
          },
          "401": {
            "description": "The user does not have access to this renewal order"
          }
        }
      },
      "post": {
        "tags": [
          "Renewals"
        ],
        "summary": "Insert renewal order",
        "parameters": [
          {
            "name": "b2BPriceKey",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RenewalShort"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "renewal order Created"
          },
          "401": {
            "description": "The user is not allowed to create a renewalorder for this LEI"
          },
          "404": {
            "description": "The LEI is not in the database"
          },
          "422": {
            "description": "Renewal order already in database"
          }
        }
      }
    },
    "/api/Transfers/Index": {
      "post": {
        "tags": [
          "Transfers"
        ],
        "summary": "Enters an LEI for a transfer",
        "parameters": [
          {
            "name": "b2BPriceKey",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LEITransferReq"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The transfer LEI was inserted"
          },
          "400": {
            "description": "Problems with the request. Check the the returned body for details."
          },
          "404": {
            "description": "No LEI with that LEI number exists."
          },
          "409": {
            "description": "This LEI is already in the system"
          },
          "422": {
            "description": "This jurisdiction is not supported"
          }
        }
      }
    },
    "/ucp/v1/checkout-sessions": {
      "post": {
        "tags": [
          "UcpCheckout"
        ],
        "summary": "Create a checkout for one item: line_items[0].item.id lei_renewal:{leiId}:{years} or lei_registration:{leiId}:{years}.",
        "parameters": [
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UcpCheckoutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "201": {
            "description": "The checkout, ready_for_complete or incomplete (messages say why)"
          }
        }
      }
    },
    "/ucp/v1/checkout-sessions/{id}": {
      "get": {
        "tags": [
          "UcpCheckout"
        ],
        "summary": "Get the checkout's current state; an open checkout is priced again.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "UcpCheckout"
        ],
        "summary": "Replace the checkout's line items.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UcpCheckoutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ucp/v1/checkout-sessions/{id}/complete": {
      "post": {
        "tags": [
          "UcpCheckout"
        ],
        "summary": "Complete the checkout with payment.instruments[0]: handler 'invoice' (credential purchase_order_number) or\r\n'card_stripe_spt' (credential type spt with a Stripe shared payment token).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UcpCheckoutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The completed checkout with its order"
          }
        }
      }
    },
    "/ucp/v1/checkout-sessions/{id}/cancel": {
      "post": {
        "tags": [
          "UcpCheckout"
        ],
        "summary": "Cancel the checkout. Nothing is ordered before complete, so nothing else changes.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-imp-userid",
            "in": "header",
            "description": "The userid of the user to impersonate. Will be ignored if the logged in user is not an admin user",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/Users/GenerateApiToken": {
      "get": {
        "tags": [
          "Users"
        ],
        "summary": "Request an Id-token to be used for machine-to-machine communication",
        "parameters": [
          {
            "name": "secret",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A token with a lifetime of one hour is returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiTokenResult"
                }
              }
            }
          },
          "400": {
            "description": "Problems with the request. Invalid request"
          },
          "404": {
            "description": "No secret found"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AcpCompleteRequest": {
        "type": "object",
        "properties": {
          "paymentData": {
            "$ref": "#/components/schemas/AcpPaymentData"
          }
        },
        "additionalProperties": false
      },
      "AcpCreateRequest": {
        "type": "object",
        "properties": {
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AcpItem"
            },
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AcpItem"
            },
            "nullable": true
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "capabilities": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/JToken"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AcpCredential": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "token": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AcpInstrument": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "credential": {
            "$ref": "#/components/schemas/AcpCredential"
          }
        },
        "additionalProperties": false
      },
      "AcpItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "unitAmount": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AcpPaymentData": {
        "type": "object",
        "properties": {
          "handlerId": {
            "type": "string",
            "nullable": true
          },
          "instrument": {
            "$ref": "#/components/schemas/AcpInstrument"
          },
          "purchaseOrderNumber": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AcpUpdateRequest": {
        "type": "object",
        "properties": {
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AcpItem"
            },
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AcpItem"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Address": {
        "type": "object",
        "properties": {
          "line1": {
            "type": "string",
            "nullable": true
          },
          "line2": {
            "type": "string",
            "nullable": true
          },
          "line3": {
            "type": "string",
            "nullable": true
          },
          "line4": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "postCode": {
            "type": "string",
            "nullable": true
          },
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "regionCode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiTokenResult": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApproveLeiKybRequest": {
        "type": "object",
        "properties": {
          "leiid": {
            "type": "string",
            "nullable": true
          },
          "idCredPub": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AttemptRequest": {
        "type": "object",
        "properties": {
          "attempt": {
            "type": "string",
            "nullable": true
          },
          "userCode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AuthorizationRequest": {
        "type": "object",
        "properties": {
          "request": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BranchEntity": {
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "regionCode": {
            "type": "string",
            "nullable": true
          },
          "regAuthCode": {
            "type": "string",
            "nullable": true
          },
          "bizRegNumber": {
            "type": "string",
            "nullable": true
          },
          "noBizRegNumber": {
            "type": "boolean"
          },
          "apiLinked": {
            "type": "boolean"
          },
          "entityName": {
            "type": "string",
            "nullable": true
          },
          "otherLegalName": {
            "type": "string",
            "nullable": true
          },
          "otherLegalNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "otherLanguageLegalNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "previousLegalName": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "website": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "addressIsHqAddress": {
            "type": "boolean"
          },
          "headquartersAddress": {
            "$ref": "#/components/schemas/HqAddress"
          },
          "needDocs": {
            "type": "boolean"
          },
          "entCreationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "entCategory": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "entSubCategory": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "otherValidationFlag": {
            "type": "boolean",
            "nullable": true
          },
          "otherValidationAuthorityID": {
            "type": "integer",
            "format": "int32"
          },
          "otherValidationAuthorityCode": {
            "type": "string",
            "nullable": true
          },
          "otherValidationAuthorityEntityId": {
            "type": "string",
            "nullable": true
          },
          "otherValidationISOCountryCode": {
            "type": "string",
            "nullable": true
          },
          "otherValidationISORegionCode": {
            "type": "string",
            "nullable": true
          },
          "needSealDocuments": {
            "type": "boolean",
            "nullable": true
          },
          "disclosure": {
            "type": "boolean",
            "nullable": true
          },
          "nonDisclosureReason": {
            "type": "string",
            "nullable": true
          },
          "hasLei": {
            "type": "boolean",
            "nullable": true
          },
          "lei": {
            "type": "string",
            "nullable": true
          },
          "acctPeriodStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "acctPeriodEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "accountingStandard": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "relStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "pctOwned": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "legalJurisdictionCountry": {
            "type": "string",
            "nullable": true
          },
          "legalForm": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "legalFormName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Contact": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "company": {
            "type": "string",
            "nullable": true
          },
          "signingAuthority": {
            "$ref": "#/components/schemas/LeiSigningAuthority"
          },
          "contactSigningAuthorityEmail": {
            "type": "string",
            "nullable": true
          },
          "contactSigningAuthorityPhone": {
            "type": "string",
            "nullable": true
          },
          "contactSigningAuthorityFirstName": {
            "type": "string",
            "nullable": true
          },
          "contactSigningAuthorityLastName": {
            "type": "string",
            "nullable": true
          },
          "contactSigningAuthorityPosition": {
            "type": "string",
            "nullable": true
          },
          "contactSigningAuthorityEmail2": {
            "type": "string",
            "nullable": true
          },
          "contactSigningAuthorityFirstName2": {
            "type": "string",
            "nullable": true
          },
          "contactSigningAuthorityLastName2": {
            "type": "string",
            "nullable": true
          },
          "contactSigningAuthorityPosition2": {
            "type": "string",
            "nullable": true
          },
          "signingAuthorityID": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "EntityLegalForm": {
        "type": "object",
        "properties": {
          "entityLegalFormID": {
            "type": "integer",
            "format": "int32"
          },
          "legalFormCode": {
            "type": "string",
            "nullable": true
          },
          "countryName": {
            "type": "string",
            "nullable": true
          },
          "countryISOCode": {
            "type": "string",
            "nullable": true
          },
          "localName": {
            "type": "string",
            "nullable": true
          },
          "englishName": {
            "type": "string",
            "nullable": true
          },
          "elfCode": {
            "type": "string",
            "nullable": true
          },
          "isoRegionCode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FundManagementEntity": {
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "regionCode": {
            "type": "string",
            "nullable": true
          },
          "regAuthCode": {
            "type": "string",
            "nullable": true
          },
          "bizRegNumber": {
            "type": "string",
            "nullable": true
          },
          "noBizRegNumber": {
            "type": "boolean"
          },
          "apiLinked": {
            "type": "boolean"
          },
          "entityName": {
            "type": "string",
            "nullable": true
          },
          "otherLegalName": {
            "type": "string",
            "nullable": true
          },
          "otherLegalNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "otherLanguageLegalNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "previousLegalName": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "website": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "addressIsHqAddress": {
            "type": "boolean"
          },
          "headquartersAddress": {
            "$ref": "#/components/schemas/HqAddress"
          },
          "needDocs": {
            "type": "boolean"
          },
          "entCreationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "entCategory": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "entSubCategory": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "otherValidationFlag": {
            "type": "boolean",
            "nullable": true
          },
          "otherValidationAuthorityID": {
            "type": "integer",
            "format": "int32"
          },
          "otherValidationAuthorityCode": {
            "type": "string",
            "nullable": true
          },
          "otherValidationAuthorityEntityId": {
            "type": "string",
            "nullable": true
          },
          "otherValidationISOCountryCode": {
            "type": "string",
            "nullable": true
          },
          "otherValidationISORegionCode": {
            "type": "string",
            "nullable": true
          },
          "needSealDocuments": {
            "type": "boolean",
            "nullable": true
          },
          "hasLei": {
            "type": "boolean",
            "nullable": true
          },
          "lei": {
            "type": "string",
            "nullable": true
          },
          "fundSelfManaged": {
            "type": "boolean",
            "nullable": true
          },
          "acctPeriodStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "acctPeriodEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "accountingStandard": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "relStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "pctOwned": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FundMasterFeederEntity": {
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "regionCode": {
            "type": "string",
            "nullable": true
          },
          "regAuthCode": {
            "type": "string",
            "nullable": true
          },
          "bizRegNumber": {
            "type": "string",
            "nullable": true
          },
          "noBizRegNumber": {
            "type": "boolean"
          },
          "apiLinked": {
            "type": "boolean"
          },
          "entityName": {
            "type": "string",
            "nullable": true
          },
          "otherLegalName": {
            "type": "string",
            "nullable": true
          },
          "otherLegalNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "otherLanguageLegalNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "previousLegalName": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "website": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "addressIsHqAddress": {
            "type": "boolean"
          },
          "headquartersAddress": {
            "$ref": "#/components/schemas/HqAddress"
          },
          "needDocs": {
            "type": "boolean"
          },
          "entCreationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "entCategory": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "entSubCategory": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "otherValidationFlag": {
            "type": "boolean",
            "nullable": true
          },
          "otherValidationAuthorityID": {
            "type": "integer",
            "format": "int32"
          },
          "otherValidationAuthorityCode": {
            "type": "string",
            "nullable": true
          },
          "otherValidationAuthorityEntityId": {
            "type": "string",
            "nullable": true
          },
          "otherValidationISOCountryCode": {
            "type": "string",
            "nullable": true
          },
          "otherValidationISORegionCode": {
            "type": "string",
            "nullable": true
          },
          "needSealDocuments": {
            "type": "boolean",
            "nullable": true
          },
          "disclosure": {
            "type": "boolean",
            "nullable": true
          },
          "nonDisclosureReason": {
            "type": "string",
            "nullable": true
          },
          "hasLei": {
            "type": "boolean",
            "nullable": true
          },
          "lei": {
            "type": "string",
            "nullable": true
          },
          "fundMasterFeeder": {
            "type": "boolean",
            "nullable": true
          },
          "acctPeriodStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "acctPeriodEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "accountingStandard": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "relStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "pctOwned": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FundUmbrellaEntity": {
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "regionCode": {
            "type": "string",
            "nullable": true
          },
          "regAuthCode": {
            "type": "string",
            "nullable": true
          },
          "bizRegNumber": {
            "type": "string",
            "nullable": true
          },
          "noBizRegNumber": {
            "type": "boolean"
          },
          "apiLinked": {
            "type": "boolean"
          },
          "entityName": {
            "type": "string",
            "nullable": true
          },
          "otherLegalName": {
            "type": "string",
            "nullable": true
          },
          "otherLegalNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "otherLanguageLegalNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "previousLegalName": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "website": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "addressIsHqAddress": {
            "type": "boolean"
          },
          "headquartersAddress": {
            "$ref": "#/components/schemas/HqAddress"
          },
          "needDocs": {
            "type": "boolean"
          },
          "entCreationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "entCategory": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "entSubCategory": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "otherValidationFlag": {
            "type": "boolean",
            "nullable": true
          },
          "otherValidationAuthorityID": {
            "type": "integer",
            "format": "int32"
          },
          "otherValidationAuthorityCode": {
            "type": "string",
            "nullable": true
          },
          "otherValidationAuthorityEntityId": {
            "type": "string",
            "nullable": true
          },
          "otherValidationISOCountryCode": {
            "type": "string",
            "nullable": true
          },
          "otherValidationISORegionCode": {
            "type": "string",
            "nullable": true
          },
          "needSealDocuments": {
            "type": "boolean",
            "nullable": true
          },
          "disclosure": {
            "type": "boolean",
            "nullable": true
          },
          "nonDisclosureReason": {
            "type": "string",
            "nullable": true
          },
          "hasLei": {
            "type": "boolean",
            "nullable": true
          },
          "lei": {
            "type": "string",
            "nullable": true
          },
          "fundUmbrella": {
            "type": "boolean",
            "nullable": true
          },
          "acctPeriodStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "acctPeriodEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "accountingStandard": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "relStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "pctOwned": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "HqAddress": {
        "type": "object",
        "properties": {
          "line1": {
            "type": "string",
            "nullable": true
          },
          "line2": {
            "type": "string",
            "nullable": true
          },
          "line3": {
            "type": "string",
            "nullable": true
          },
          "line4": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "postCode": {
            "type": "string",
            "nullable": true
          },
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "regionCode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "JToken": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/JToken"
        }
      },
      "LEITransferReq": {
        "type": "object",
        "properties": {
          "leiNumber": {
            "type": "string",
            "nullable": true
          },
          "legalName": {
            "type": "string",
            "nullable": true
          },
          "legalJurisdictionCountry": {
            "type": "string",
            "nullable": true
          },
          "expirationDate": {
            "type": "string",
            "format": "date-time"
          },
          "contactPhone": {
            "type": "string",
            "nullable": true
          },
          "languageCode": {
            "type": "string",
            "nullable": true
          },
          "contact": {
            "$ref": "#/components/schemas/Contact"
          },
          "eqsTansfer": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LegalEntity": {
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "regionCode": {
            "type": "string",
            "nullable": true
          },
          "regAuthCode": {
            "type": "string",
            "nullable": true
          },
          "bizRegNumber": {
            "type": "string",
            "nullable": true
          },
          "noBizRegNumber": {
            "type": "boolean"
          },
          "apiLinked": {
            "type": "boolean"
          },
          "entityName": {
            "type": "string",
            "nullable": true
          },
          "otherLegalName": {
            "type": "string",
            "nullable": true
          },
          "otherLegalNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "otherLanguageLegalNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "previousLegalName": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "website": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "addressIsHqAddress": {
            "type": "boolean"
          },
          "headquartersAddress": {
            "$ref": "#/components/schemas/HqAddress"
          },
          "needDocs": {
            "type": "boolean"
          },
          "entCreationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "entCategory": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "entSubCategory": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "otherValidationFlag": {
            "type": "boolean",
            "nullable": true
          },
          "otherValidationAuthorityID": {
            "type": "integer",
            "format": "int32"
          },
          "otherValidationAuthorityCode": {
            "type": "string",
            "nullable": true
          },
          "otherValidationAuthorityEntityId": {
            "type": "string",
            "nullable": true
          },
          "otherValidationISOCountryCode": {
            "type": "string",
            "nullable": true
          },
          "otherValidationISORegionCode": {
            "type": "string",
            "nullable": true
          },
          "needSealDocuments": {
            "type": "boolean",
            "nullable": true
          },
          "apiHasParents": {
            "type": "boolean"
          },
          "entityType": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Lei": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "leiNumber": {
            "type": "string",
            "nullable": true
          },
          "expiryDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "paid": {
            "type": "boolean",
            "nullable": true
          },
          "internalRef": {
            "type": "string",
            "nullable": true
          },
          "legalEntity": {
            "$ref": "#/components/schemas/LegalEntity"
          },
          "directParentEntity": {
            "$ref": "#/components/schemas/ParentEntity"
          },
          "ultimateParentEntity": {
            "$ref": "#/components/schemas/UltimateParentEntity"
          },
          "fundManagementEntity": {
            "$ref": "#/components/schemas/FundManagementEntity"
          },
          "fundMasterFeederEntity": {
            "$ref": "#/components/schemas/FundMasterFeederEntity"
          },
          "fundUmbrellaEntity": {
            "$ref": "#/components/schemas/FundUmbrellaEntity"
          },
          "branchEntity": {
            "$ref": "#/components/schemas/BranchEntity"
          },
          "rel": {
            "$ref": "#/components/schemas/Relationships"
          },
          "contact": {
            "$ref": "#/components/schemas/Contact"
          },
          "needDocuments": {
            "type": "boolean"
          },
          "needSealDocuments": {
            "type": "boolean"
          },
          "needSealNotarizedComReg": {
            "type": "boolean"
          },
          "needSealProofSigningRights": {
            "type": "boolean"
          },
          "needSealSignaturePOA": {
            "type": "boolean"
          },
          "limitedPoa": {
            "type": "boolean"
          },
          "userNameID": {
            "type": "string",
            "nullable": true
          },
          "fundType": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "fundMasterFeeder": {
            "type": "boolean",
            "nullable": true
          },
          "fundUmbrella": {
            "type": "boolean",
            "nullable": true
          },
          "branch": {
            "type": "boolean",
            "nullable": true
          },
          "autoRenewal": {
            "type": "boolean"
          },
          "noBusinessRegistryNo": {
            "type": "boolean"
          },
          "renewalPending": {
            "type": "boolean",
            "nullable": true
          },
          "renewalValidated": {
            "type": "boolean",
            "nullable": true
          },
          "multiYearOrderPending": {
            "type": "boolean",
            "nullable": true
          },
          "seal": {
            "$ref": "#/components/schemas/eSeal"
          }
        },
        "additionalProperties": false
      },
      "LeiSigningAuthority": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "format": "int32"
      },
      "ParentEntity": {
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "regionCode": {
            "type": "string",
            "nullable": true
          },
          "regAuthCode": {
            "type": "string",
            "nullable": true
          },
          "bizRegNumber": {
            "type": "string",
            "nullable": true
          },
          "noBizRegNumber": {
            "type": "boolean"
          },
          "apiLinked": {
            "type": "boolean"
          },
          "entityName": {
            "type": "string",
            "nullable": true
          },
          "otherLegalName": {
            "type": "string",
            "nullable": true
          },
          "otherLegalNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "otherLanguageLegalNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "previousLegalName": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "website": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "addressIsHqAddress": {
            "type": "boolean"
          },
          "headquartersAddress": {
            "$ref": "#/components/schemas/HqAddress"
          },
          "needDocs": {
            "type": "boolean"
          },
          "entCreationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "entCategory": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "entSubCategory": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "otherValidationFlag": {
            "type": "boolean",
            "nullable": true
          },
          "otherValidationAuthorityID": {
            "type": "integer",
            "format": "int32"
          },
          "otherValidationAuthorityCode": {
            "type": "string",
            "nullable": true
          },
          "otherValidationAuthorityEntityId": {
            "type": "string",
            "nullable": true
          },
          "otherValidationISOCountryCode": {
            "type": "string",
            "nullable": true
          },
          "otherValidationISORegionCode": {
            "type": "string",
            "nullable": true
          },
          "needSealDocuments": {
            "type": "boolean",
            "nullable": true
          },
          "disclosure": {
            "type": "boolean",
            "nullable": true
          },
          "nonDisclosureReason": {
            "type": "string",
            "nullable": true
          },
          "hasLei": {
            "type": "boolean",
            "nullable": true
          },
          "lei": {
            "type": "string",
            "nullable": true
          },
          "countryName": {
            "type": "string",
            "nullable": true
          },
          "regionName": {
            "type": "string",
            "nullable": true
          },
          "parentCountryCode": {
            "type": "string",
            "nullable": true
          },
          "parentRegionCode": {
            "type": "string",
            "nullable": true
          },
          "acctPeriodStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "acctPeriodEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "accountingStandard": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "relStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "relEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "pctOwned": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Relationships": {
        "type": "object",
        "properties": {
          "question1": {
            "type": "boolean",
            "nullable": true
          },
          "question2": {
            "type": "boolean",
            "nullable": true
          },
          "question3": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Renewal": {
        "type": "object",
        "properties": {
          "renewalOrderKeyID": {
            "type": "string",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "vatIncluded": {
            "type": "boolean",
            "nullable": true
          },
          "vatNumber": {
            "type": "string",
            "nullable": true
          },
          "vatCountry": {
            "type": "string",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "invoiceNumber": {
            "type": "string",
            "nullable": true
          },
          "orderID": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "renewalOrderID": {
            "type": "string",
            "nullable": true
          },
          "transactionComplete": {
            "type": "boolean",
            "nullable": true
          },
          "invoiceNumberRaw": {
            "type": "integer",
            "format": "int64"
          },
          "billingAddress": {
            "type": "string",
            "nullable": true
          },
          "billingAddress2": {
            "type": "string",
            "nullable": true
          },
          "billingPostalCode": {
            "type": "string",
            "nullable": true
          },
          "billingFirstName": {
            "type": "string",
            "nullable": true
          },
          "billingLastName": {
            "type": "string",
            "nullable": true
          },
          "cardHolderName": {
            "type": "string",
            "nullable": true
          },
          "cardHolderAddress": {
            "type": "string",
            "nullable": true
          },
          "cardHolderZip": {
            "type": "string",
            "nullable": true
          },
          "invoicedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "billingCity": {
            "type": "string",
            "nullable": true
          },
          "dibsTransactNo": {
            "type": "string",
            "nullable": true
          },
          "duration": {
            "type": "integer",
            "format": "int32"
          },
          "bankTransfer": {
            "type": "boolean",
            "nullable": true
          },
          "bulkPayment": {
            "type": "boolean",
            "nullable": true
          },
          "netsPaymentID": {
            "type": "string",
            "nullable": true
          },
          "renewalYear": {
            "type": "integer",
            "format": "int32"
          },
          "cardnomask": {
            "type": "string",
            "nullable": true
          },
          "cardexpdate": {
            "type": "string",
            "nullable": true
          },
          "cardFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "transactionDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "bankTransferText": {
            "type": "string",
            "nullable": true
          },
          "invoiced": {
            "type": "boolean",
            "nullable": true
          },
          "louTransferStatus": {
            "type": "string",
            "nullable": true
          },
          "processed": {
            "type": "boolean",
            "nullable": true
          },
          "confirmed": {
            "type": "boolean",
            "nullable": true
          },
          "bulkInvoiceNumber": {
            "type": "string",
            "nullable": true
          },
          "archived": {
            "type": "boolean",
            "nullable": true
          },
          "creditNote": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RenewalShort": {
        "required": [
          "duration",
          "orderID",
          "vatIncluded"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "vatIncluded": {
            "type": "boolean"
          },
          "vatNumber": {
            "type": "string",
            "nullable": true
          },
          "vatCountry": {
            "type": "string",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "invoiceNumber": {
            "type": "string",
            "nullable": true
          },
          "orderID": {
            "type": "string",
            "format": "uuid"
          },
          "renewalOrderID": {
            "type": "string",
            "nullable": true
          },
          "transactionComplete": {
            "type": "boolean",
            "nullable": true
          },
          "invoiceDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dibsTransactNo": {
            "type": "string",
            "nullable": true
          },
          "duration": {
            "type": "integer",
            "format": "int32"
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "language": {
            "type": "string",
            "nullable": true
          },
          "renewalYear": {
            "type": "integer",
            "format": "int32"
          },
          "bankTransfer": {
            "type": "boolean",
            "nullable": true
          },
          "transactionDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "bulkPayment": {
            "type": "boolean",
            "nullable": true
          },
          "bankTransferText": {
            "type": "string",
            "nullable": true
          },
          "invoiced": {
            "type": "boolean",
            "nullable": true
          },
          "paymentProcessor": {
            "type": "string",
            "nullable": true
          },
          "confirmed": {
            "type": "boolean",
            "nullable": true
          },
          "processed": {
            "type": "boolean",
            "nullable": true
          },
          "leiNumber": {
            "type": "string",
            "nullable": true
          },
          "archived": {
            "type": "boolean",
            "nullable": true
          },
          "creditNote": {
            "type": "boolean",
            "nullable": true
          },
          "netsPaymentID": {
            "type": "string",
            "nullable": true
          },
          "hostedPaymentPage": {
            "type": "boolean",
            "description": "Card payments with NETS only: create a NETS hosted payment page instead of the website's embedded checkout,\r\nfor payers who aren't on the website. The response is then {\"paymentId\": \"...\", \"paymentUrl\": \"...\"}, and\r\nGfr.Api.Models.Renewal.RenewalShort.Url is the website the payer returns to.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SealSignatureType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "SealType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "UcpCheckoutRequest": {
        "type": "object",
        "properties": {
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UcpLineItem"
            },
            "nullable": true
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "payment": {
            "$ref": "#/components/schemas/UcpPayment"
          }
        },
        "additionalProperties": false
      },
      "UcpCredential": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "token": {
            "type": "string",
            "nullable": true
          },
          "purchaseOrderNumber": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UcpInstrument": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "handlerId": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "credential": {
            "$ref": "#/components/schemas/UcpCredential"
          }
        },
        "additionalProperties": false
      },
      "UcpItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UcpLineItem": {
        "type": "object",
        "properties": {
          "item": {
            "$ref": "#/components/schemas/UcpItem"
          },
          "quantity": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UcpPayment": {
        "type": "object",
        "properties": {
          "instruments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UcpInstrument"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UltimateParentEntity": {
        "type": "object",
        "properties": {
          "countryCode": {
            "type": "string",
            "nullable": true
          },
          "regionCode": {
            "type": "string",
            "nullable": true
          },
          "regAuthCode": {
            "type": "string",
            "nullable": true
          },
          "bizRegNumber": {
            "type": "string",
            "nullable": true
          },
          "noBizRegNumber": {
            "type": "boolean"
          },
          "apiLinked": {
            "type": "boolean"
          },
          "entityName": {
            "type": "string",
            "nullable": true
          },
          "otherLegalName": {
            "type": "string",
            "nullable": true
          },
          "otherLegalNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "otherLanguageLegalNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "previousLegalName": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "website": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "addressIsHqAddress": {
            "type": "boolean"
          },
          "headquartersAddress": {
            "$ref": "#/components/schemas/HqAddress"
          },
          "needDocs": {
            "type": "boolean"
          },
          "entCreationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "entCategory": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "entSubCategory": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "otherValidationFlag": {
            "type": "boolean",
            "nullable": true
          },
          "otherValidationAuthorityID": {
            "type": "integer",
            "format": "int32"
          },
          "otherValidationAuthorityCode": {
            "type": "string",
            "nullable": true
          },
          "otherValidationAuthorityEntityId": {
            "type": "string",
            "nullable": true
          },
          "otherValidationISOCountryCode": {
            "type": "string",
            "nullable": true
          },
          "otherValidationISORegionCode": {
            "type": "string",
            "nullable": true
          },
          "needSealDocuments": {
            "type": "boolean",
            "nullable": true
          },
          "disclosure": {
            "type": "boolean",
            "nullable": true
          },
          "nonDisclosureReason": {
            "type": "string",
            "nullable": true
          },
          "hasLei": {
            "type": "boolean",
            "nullable": true
          },
          "lei": {
            "type": "string",
            "nullable": true
          },
          "countryName": {
            "type": "string",
            "nullable": true
          },
          "regionName": {
            "type": "string",
            "nullable": true
          },
          "parentCountryCode": {
            "type": "string",
            "nullable": true
          },
          "parentRegionCode": {
            "type": "string",
            "nullable": true
          },
          "acctPeriodStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "acctPeriodEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "accountingStandard": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "relStartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "relEndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "pctOwned": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "sameAsDirectParent": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "eSeal": {
        "type": "object",
        "properties": {
          "eSealID": {
            "type": "string",
            "format": "uuid"
          },
          "leiID": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "userNameID": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "legalName": {
            "type": "string",
            "nullable": true
          },
          "businessRegistryNo": {
            "type": "string",
            "nullable": true
          },
          "integrationPartnerID": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "webPage": {
            "type": "string",
            "nullable": true
          },
          "address1": {
            "type": "string",
            "nullable": true
          },
          "address2": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "postCode": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "correspondenceAddress1": {
            "type": "string",
            "nullable": true
          },
          "correspondenceCity": {
            "type": "string",
            "nullable": true
          },
          "correspondencePostCode": {
            "type": "string",
            "nullable": true
          },
          "correspondenceCountry": {
            "type": "string",
            "nullable": true
          },
          "contactEmail": {
            "type": "string",
            "nullable": true
          },
          "sealType": {
            "$ref": "#/components/schemas/SealType"
          },
          "signerType": {
            "$ref": "#/components/schemas/SealSignatureType"
          },
          "individualCollective": {
            "type": "string",
            "nullable": true
          },
          "qesNotarizedCommercialRegister": {
            "type": "string",
            "nullable": true
          },
          "qesNotarizedCommercialRegisterConfirmation": {
            "type": "boolean",
            "nullable": true
          },
          "qesProofOfSigningRights": {
            "type": "string",
            "nullable": true
          },
          "configurationOrganizationalUnit": {
            "type": "string",
            "nullable": true
          },
          "configurationCityMunicipality": {
            "type": "string",
            "nullable": true
          },
          "configurationCanton": {
            "type": "string",
            "nullable": true
          },
          "qesPublicLinks": {
            "type": "string",
            "nullable": true
          },
          "thirdPartySigners": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/eSealSigner"
            },
            "nullable": true
          },
          "apiSigners": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/eSealSigner"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "eSealSigner": {
        "type": "object",
        "properties": {
          "eSealSignerID": {
            "type": "string",
            "format": "uuid"
          },
          "eSealID": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "priority": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "nullable": true
          },
          "role": {
            "type": "string",
            "nullable": true
          },
          "signatoryAPI": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "apiKey",
        "description": "JWT Authorization header using the Bearer scheme. Enter 'Bearer ' followed by your token.",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "Bearer": [ ]
    }
  ],
  "tags": [
    {
      "name": "AcpCheckout"
    },
    {
      "name": "AgentIdentity"
    },
    {
      "name": "Documents"
    },
    {
      "name": "Heartbeat"
    },
    {
      "name": "LegalForms"
    },
    {
      "name": "Lei"
    },
    {
      "name": "LeiComplaint"
    },
    {
      "name": "Renewals"
    },
    {
      "name": "Transfers"
    },
    {
      "name": "UcpCheckout"
    },
    {
      "name": "Users"
    }
  ]
}