{
  "openapi": "3.1.0",
  "info": {
    "title": "Loan Service",
    "version": "415911f24706",
    "summary": "DgCore platform API surface for the Loan Service domain.",
    "description": "The Loan Service domain: 204 operations across 22 resource groups.\n\nThis is the published contract, not a description of a running deployment: the environment\nyou were granted may carry operations this document does not, and may not carry every\noperation listed here."
  },
  "servers": [
    {
      "url": "https://{gateway}/loan-service",
      "description": "The full route is `https://<gateway>/loan-service/<path>`. The service segment is fixed; the gateway host is the one you were granted. Substitute it below.",
      "variables": {
        "gateway": {
          "default": "gateway.example"
        }
      }
    }
  ],
  "tags": [
    {
      "name": "batch-catalog",
      "description": "Operations addressed under `/batch-catalog` — 1 operation.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "caches",
      "description": "Operations addressed under `/caches` — 2 operations.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "compensating-transactions",
      "description": "Operations addressed under `/compensating-transactions` — 2 operations.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "customer-loan-collections",
      "description": "Operations addressed under `/customer-loan-collections` — 1 operation.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "customer-risks",
      "description": "Operations addressed under `/customer-risks` — 1 operation.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "data-migrations",
      "description": "Operations addressed under `/data-migrations` — 1 operation.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "external-vendors",
      "description": "Operations addressed under `/external-vendors` — 28 operations.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "get-corrupted-loan-payback-plan-installment-detail-list",
      "description": "Operations addressed under `/get-corrupted-loan-payback-plan-installment-detail-list` — 1 operation.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "get-corrupted-loan-payback-plan-installment-detail-list-for-delay-penalties",
      "description": "Operations addressed under `/get-corrupted-loan-payback-plan-installment-detail-list-for-delay-penalties` — 1 operation.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "get-customer-risk-excluded-loan-amount",
      "description": "Operations addressed under `/get-customer-risk-excluded-loan-amount` — 1 operation.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "get-ready-to-close-loans",
      "description": "Operations addressed under `/get-ready-to-close-loans` — 1 operation.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "get-upcoming-installments",
      "description": "Operations addressed under `/get-upcoming-installments` — 1 operation.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "get-vendor_disbursements-by-loan-id-query",
      "description": "Operations addressed under `/get-vendor_disbursements-by-loan-id-query` — 1 operation.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "internal-vendors",
      "description": "Operations addressed under `/internal-vendors` — 10 operations.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "key-formats",
      "description": "Operations addressed under `/key-formats` — 10 operations.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "loan-payout-reservations",
      "description": "Operations addressed under `/loan-payout-reservations` — 3 operations.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "loans",
      "description": "Operations addressed under `/loans` — 79 operations.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "localizations",
      "description": "Operations addressed under `/localizations` — 10 operations.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "matrix",
      "description": "Operations addressed under `/matrix` — 22 operations.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "parameters",
      "description": "Operations addressed under `/parameters` — 21 operations.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "product-groups",
      "description": "Operations addressed under `/product-groups` — 1 operation.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    },
    {
      "name": "vendor-external",
      "description": "Operations addressed under `/vendor-external` — 6 operations.",
      "x-aura-documentation": {
        "language": "en",
        "status": "structural-fallback",
        "source": "catalog-structure"
      }
    }
  ],
  "paths": {
    "/batch-catalog": {
      "post": {
        "operationId": "loan-batch-catalog",
        "tags": [
          "batch-catalog"
        ],
        "summary": "loan-batch-catalog",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sequenceNumber": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "sequenceNumber"
                  },
                  "serviceCode": {
                    "type": "string",
                    "x-aura-field-code": "serviceCode"
                  },
                  "variables": {
                    "type": "object",
                    "x-aura-field-code": "variables"
                  }
                },
                "required": [
                  "sequenceNumber",
                  "serviceCode",
                  "variables"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 3,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-batch-catalog",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "batch-catalog",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "declared-non-dto",
          "note": "The route declares `IEnumerable<object>`. `object` is the C# base type, so the code states that a body is returned and declines to say what is in it — the shape is chosen at runtime, and the body is a JSON array whose elements need not share a shape. That is the declaration, not a failure to read it, and nothing here narrows it.",
          "declared_type": "IEnumerable<object>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "object"
        }
      }
    },
    "/caches/keys": {
      "get": {
        "operationId": "loan-get-cache-key-list",
        "tags": [
          "caches"
        ],
        "summary": "loan-get-cache-key-list",
        "parameters": [
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 4
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "isSharedBetweenApplications": {
                        "type": "boolean",
                        "x-aura-field-code": "isSharedBetweenApplications"
                      },
                      "key": {
                        "type": "integer",
                        "format": "int64",
                        "x-aura-field-code": "key"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-cache-key-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "caches/keys",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<CacheKeyDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "CacheKeyDto",
          "collection": true,
          "members": [
            {
              "name": "Key",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsSharedBetweenApplications",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsSharedBetweenTenants",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Mode",
              "declared_type": "CacheMode",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      }
    },
    "/caches/refresh": {
      "post": {
        "operationId": "loan-refresh-cache",
        "tags": [
          "caches"
        ],
        "summary": "loan-refresh-cache",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string",
                    "x-aura-field-code": "cacheRefreshKey"
                  }
                },
                "required": [
                  "key"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration classifies this response as a collection.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-refresh-cache",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "caches/refresh",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<RefreshCacheDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "RefreshCacheDto",
          "collection": true,
          "members": [
            {
              "name": "Key",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsSuccess",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration classifies this response as a collection.",
          "code_response_state": "structure",
          "code_cardinality": "collection",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_AURA_2",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "CACHE_REFRESH_INPUT_MISSING"
            }
          ]
        }
      }
    },
    "/compensating-transactions/commit": {
      "post": {
        "operationId": "loan-commit-compensating-transaction",
        "tags": [
          "compensating-transactions"
        ],
        "summary": "loan-commit-compensating-transaction",
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-commit-compensating-transaction",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "compensating-transactions/commit",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        }
      }
    },
    "/compensating-transactions/rollback": {
      "post": {
        "operationId": "loan-rollback-compensating-transaction",
        "tags": [
          "compensating-transactions"
        ],
        "summary": "loan-rollback-compensating-transaction",
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-rollback-compensating-transaction",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "compensating-transactions/rollback",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        }
      }
    },
    "/customer-loan-collections/{id}/all-details": {
      "get": {
        "operationId": "get-customer-loan-collection-detail-query",
        "tags": [
          "customer-loan-collections"
        ],
        "summary": "get-customer-loan-collection-detail-query",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "customerRiskId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-customer-loan-collection-detail-query",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "customer-loan-collections/{id}/all-details",
        "x-aura-capabilities": {
          "filtering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/customer-risks/{id}/details": {
      "get": {
        "operationId": "get-customer-ledger-risk-list-query",
        "tags": [
          "customer-risks"
        ],
        "summary": "get-customer-ledger-risk-list-query",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "customerRiskId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-customer-ledger-risk-list-query",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "customer-risks/{id}/details",
        "x-aura-capabilities": {
          "filtering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/data-migrations": {
      "get": {
        "operationId": "loan-get-data-migration-list",
        "tags": [
          "data-migrations"
        ],
        "x-aura-documentation": {
          "language": "en",
          "status": "structural-fallback",
          "source": "catalog-structure"
        },
        "summary": "Returns data migration records",
        "description": "Invokes the `loan-get-data-migration-list` service definition through `GET /data-migrations`.\n\nTurkish display name: Data migration listesini döner",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-data-migration-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "data-migrations",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "List<DataMigrationDto>",
          "envelopes": [
            "List"
          ],
          "payload": "DataMigrationDto",
          "collection": true,
          "members": [
            {
              "name": "Id",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "BranchName",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "TableName",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LastCommittedId",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LastCommittedDate",
              "declared_type": "DateTime",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Script",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Parameters",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "HasError",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ErrorMessage",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "DatabaseName",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CreatedDate",
              "declared_type": "DateTime",
              "nullable": false,
              "collection": false
            },
            {
              "name": "TransactionStatus",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      }
    },
    "/external-vendors": {
      "get": {
        "operationId": "get-vendor-external-list",
        "tags": [
          "external-vendors"
        ],
        "summary": "get-vendor-external-list",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "citizenid": {
                        "type": "string",
                        "x-aura-field-code": "citizenid",
                        "x-aura-maskable": true
                      },
                      "customerId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerId"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "externalVendorId"
                      },
                      "isActive": {
                        "type": "boolean",
                        "x-aura-field-code": "isActive"
                      },
                      "marketPaymentType": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "marketPaymentType"
                      },
                      "sellerName": {
                        "type": "string",
                        "x-aura-field-code": "sellerName"
                      },
                      "transferType": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "transferType"
                      },
                      "vendorExternalNumber": {
                        "type": "string",
                        "x-aura-field-code": "vendorExternalNumber"
                      },
                      "vendorExternalType": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "vendorExternalType"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-external-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<VendorExternalDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "VendorExternalDto",
          "collection": true,
          "members": [
            {
              "name": "CustomerId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorExternalType",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorExternalNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsActive",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            },
            {
              "name": "MarketPaymentType",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "TransferType",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Citizenid",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "SellerName",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      },
      "post": {
        "operationId": "create-vendor-external",
        "tags": [
          "external-vendors"
        ],
        "summary": "create-vendor-external",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "citizenid": {
                    "type": "string",
                    "x-aura-field-code": "citizenid",
                    "x-aura-maskable": true
                  },
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "customerId"
                  },
                  "marketPaymentType": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "marketPaymentType"
                  },
                  "sellerName": {
                    "type": "string",
                    "x-aura-field-code": "sellerName"
                  },
                  "transferType": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "transferType"
                  },
                  "vendorExternalType": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "vendorExternalType",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "vendor_external_type",
                      "values": [
                        {
                          "value": 1,
                          "name": "SELLER"
                        },
                        {
                          "value": 2,
                          "name": "DISTRIBUTOR"
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "vendorExternalType"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 6,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration classifies this response as a single-record.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-vendor-external",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "CustomerId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "VendorExternalType",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "MarketPaymentType",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "TransferType",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "Citizenid",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "SellerName",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "CreateVendorExternalDto",
          "payload": "CreateVendorExternalDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorExternalNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration classifies this response as a single-record.",
          "code_response_state": "structure",
          "code_cardinality": "single-record",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_5",
              "status": 400,
              "message": {
                "ar": "هذه العميل لديه سجل مورد. المعرف:{0}",
                "en": "This person has a vendor record. :{0}",
                "tr": "Bu kişinin bir satıcı kaydı var. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_IS_NOT_NULL"
            }
          ]
        }
      }
    },
    "/external-vendors/accounts": {
      "get": {
        "operationId": "get-all-vendor-external-account-list",
        "tags": [
          "external-vendors"
        ],
        "summary": "get-all-vendor-external-account-list",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "bankCode": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "bankCode"
                      },
                      "currencyNumber": {
                        "type": "string",
                        "x-aura-field-code": "currencyNumber"
                      },
                      "customerAccountId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerAccountId"
                      },
                      "iban": {
                        "type": "string",
                        "x-aura-field-code": "iban"
                      },
                      "id": {
                        "x-aura-type": "unresolved"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-all-vendor-external-account-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/accounts",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<VendorExternalAccountDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "VendorExternalAccountDto",
          "collection": true,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Iban",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CurrencyNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "BankCode",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CustomerAccountId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      }
    },
    "/external-vendors/by-merchant-id/{merchantId}": {
      "get": {
        "operationId": "get-vendor-external-detail-list-by-merchant-id",
        "tags": [
          "external-vendors"
        ],
        "summary": "get-vendor-external-detail-list-by-merchant-id",
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "x-aura-field-code": "merchantId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "accounts": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "bankCode": {
                              "type": "integer",
                              "format": "int32",
                              "x-aura-field-code": "bankCode"
                            },
                            "currencyNumber": {
                              "type": "string",
                              "x-aura-field-code": "currencyNumber"
                            },
                            "iban": {
                              "type": "string",
                              "x-aura-field-code": "iban"
                            },
                            "id": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "accountId"
                            }
                          },
                          "x-aura-field-code": "accounts"
                        }
                      },
                      "customerId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerId"
                      },
                      "distributors": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "distributorVendorExternalId": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "distributorVendorExternalId"
                            },
                            "id": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "vendorExternalDistributorId"
                            }
                          },
                          "x-aura-field-code": "distributors"
                        }
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "vendorExternalId"
                      },
                      "isActive": {
                        "type": "boolean",
                        "x-aura-field-code": "isActive"
                      },
                      "merchantid": {
                        "type": "string",
                        "x-aura-field-code": "merchantId"
                      },
                      "poses": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "vendorExternalPosId"
                            },
                            "isActive": {
                              "type": "boolean",
                              "x-aura-field-code": "isActive"
                            },
                            "mccCode": {
                              "type": "integer",
                              "format": "int32",
                              "x-aura-field-code": "mccCode"
                            },
                            "terminalCode": {
                              "type": "string",
                              "x-aura-field-code": "terminalCode"
                            }
                          },
                          "x-aura-field-code": "poses"
                        }
                      },
                      "vendorExternalNumber": {
                        "type": "string",
                        "x-aura-field-code": "vendorExternalNumber"
                      },
                      "vendorExternalType": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "vendorExternalType"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-external-detail-list-by-merchant-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/by-merchant-id/{merchantId}",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/external-vendors/details": {
      "get": {
        "operationId": "get-vendor-external-list-details",
        "tags": [
          "external-vendors"
        ],
        "summary": "get-vendor-external-list-details",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string",
                  "x-aura-field-code": "filterCode"
                },
                "expression": {
                  "type": "string",
                  "x-aura-field-code": "expression"
                },
                "parameters": {
                  "type": "object",
                  "x-aura-field-code": "filterParameters"
                }
              },
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "accounts": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "accountId": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "accountId"
                            },
                            "bankCode": {
                              "type": "integer",
                              "format": "int32",
                              "x-aura-field-code": "bankCode"
                            },
                            "currencyNumber": {
                              "type": "string",
                              "x-aura-field-code": "currencyNumber"
                            },
                            "iban": {
                              "type": "string",
                              "x-aura-field-code": "iban"
                            }
                          },
                          "x-aura-field-code": "accounts"
                        }
                      },
                      "citizenNumber": {
                        "type": "string",
                        "x-aura-field-code": "citizenNumber"
                      },
                      "customerId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerId"
                      },
                      "distributors": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "distributorVendorExternalId": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "distributorVendorExternalId"
                            },
                            "vendorExternalDistributorId": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "vendorExternalDistributorId"
                            }
                          },
                          "x-aura-field-code": "distributors"
                        }
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "externalVendorId"
                      },
                      "isActive": {
                        "type": "boolean",
                        "x-aura-field-code": "isActive"
                      },
                      "merchants": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "bankCode": {
                              "type": "string",
                              "x-aura-field-code": "bankCodeContext"
                            },
                            "id": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "vendorExternalMerchantId"
                            },
                            "merchantId": {
                              "type": "string",
                              "x-aura-field-code": "merchantId"
                            },
                            "vendorExternalId": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "externalVendorId"
                            }
                          },
                          "x-aura-field-code": "merchants"
                        }
                      },
                      "name": {
                        "type": "string",
                        "x-aura-field-code": "externalVendorName"
                      },
                      "poses": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "isActive": {
                              "type": "boolean",
                              "x-aura-field-code": "isActive"
                            },
                            "mccCode": {
                              "type": "integer",
                              "format": "int32",
                              "x-aura-field-code": "mccCode"
                            },
                            "posId": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "vendorExternalPosId"
                            },
                            "terminalCode": {
                              "type": "string",
                              "x-aura-field-code": "terminalCode"
                            }
                          },
                          "x-aura-field-code": "poses"
                        }
                      },
                      "taxNumber": {
                        "type": "string",
                        "x-aura-field-code": "taxNumber"
                      },
                      "vendorExternalNumber": {
                        "type": "string",
                        "x-aura-field-code": "vendorExternalNumber"
                      },
                      "vendorExternalType": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "vendorExternalType"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-external-list-details",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/details",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<VendorExternalDetailsDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "VendorExternalDetailsDto",
          "collection": true,
          "members": [
            {
              "name": "Accounts",
              "declared_type": "List<VendorAccountDto>",
              "nullable": false,
              "collection": true
            },
            {
              "name": "Distributors",
              "declared_type": "List<VendorDistributorDto>",
              "nullable": false,
              "collection": true
            },
            {
              "name": "Poses",
              "declared_type": "List<VendorPosDto>",
              "nullable": false,
              "collection": true
            },
            {
              "name": "Merchants",
              "declared_type": "List<GetVendorExternalMerchantList.VendorExternalMerchantDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      }
    },
    "/external-vendors/{id}": {
      "delete": {
        "operationId": "delete-vendor-external",
        "tags": [
          "external-vendors"
        ],
        "summary": "delete-vendor-external",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "delete-vendor-external",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      },
      "get": {
        "operationId": "get-vendor-external-by-id",
        "tags": [
          "external-vendors"
        ],
        "summary": "get-vendor-external-by-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "citizenid": {
                      "type": "string",
                      "x-aura-field-code": "citizenid",
                      "x-aura-maskable": true
                    },
                    "customerId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "customerId"
                    },
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "externalVendorId"
                    },
                    "isActive": {
                      "type": "boolean",
                      "x-aura-field-code": "isActive"
                    },
                    "marketPaymentType": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "marketPaymentType"
                    },
                    "sellerName": {
                      "type": "string",
                      "x-aura-field-code": "sellerName"
                    },
                    "transferType": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "transferType"
                    },
                    "vendorExternalNumber": {
                      "type": "string",
                      "x-aura-field-code": "vendorExternalNumber"
                    },
                    "vendorExternalType": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "vendorExternalType"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-external-by-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "VendorExternalDto",
          "payload": "VendorExternalDto",
          "collection": false,
          "members": [
            {
              "name": "CustomerId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorExternalType",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorExternalNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsActive",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            },
            {
              "name": "MarketPaymentType",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "TransferType",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Citizenid",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "SellerName",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/external-vendors/{id}/accounts": {
      "get": {
        "operationId": "get-vendor-external-account-list",
        "tags": [
          "external-vendors"
        ],
        "summary": "get-vendor-external-account-list",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "bankCode": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "bankCode"
                      },
                      "currencyNumber": {
                        "type": "string",
                        "x-aura-field-code": "currencyNumber"
                      },
                      "customerAccountId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerAccountId"
                      },
                      "iban": {
                        "type": "string",
                        "x-aura-field-code": "iban"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "externalVendorAccountId"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-external-account-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/accounts",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<VendorExternalAccountDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "VendorExternalAccountDto",
          "collection": true,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Iban",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CurrencyNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "BankCode",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CustomerAccountId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      },
      "post": {
        "operationId": "create-vendor-external-account",
        "tags": [
          "external-vendors"
        ],
        "summary": "create-vendor-external-account",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accounts": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "bankCode": {
                          "type": "integer",
                          "format": "int32",
                          "x-aura-field-code": "bankCode"
                        },
                        "currencyNumber": {
                          "type": "string",
                          "x-aura-field-code": "currencyNumber"
                        },
                        "customerAccountId": {
                          "type": "string",
                          "format": "uuid",
                          "x-aura-field-code": "customerAccountId"
                        },
                        "iban": {
                          "type": "string",
                          "x-aura-field-code": "iban"
                        }
                      },
                      "required": [
                        "currencyNumber",
                        "iban"
                      ],
                      "x-aura-field-code": "accounts"
                    }
                  }
                },
                "required": [
                  "accounts"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-vendor-external-account",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/accounts",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/external-vendors/{id}/accounts/{vendorAccountId}": {
      "delete": {
        "operationId": "delete-vendor-external-account",
        "tags": [
          "external-vendors"
        ],
        "summary": "delete-vendor-external-account",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          },
          {
            "name": "vendorAccountId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorAccountId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "delete-vendor-external-account",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/accounts/{vendorAccountId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorAccountId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_10",
              "status": 400,
              "message": {
                "ar": "الحساب غير موجود. المعرف: {0}",
                "en": "Account cannot be found. :{0}",
                "tr": "Hesap bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_ACCOUNT_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/external-vendors/{id}/details": {
      "get": {
        "operationId": "get-vendor-external-details-by-id",
        "tags": [
          "external-vendors"
        ],
        "summary": "get-vendor-external-details-by-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "accounts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "bankCode": {
                            "type": "integer",
                            "format": "int32",
                            "x-aura-field-code": "bankCode"
                          },
                          "currencyNumber": {
                            "type": "string",
                            "x-aura-field-code": "currencyNumber"
                          },
                          "iban": {
                            "type": "string",
                            "x-aura-field-code": "iban"
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "accountId"
                          }
                        },
                        "x-aura-field-code": "accounts"
                      }
                    },
                    "citizenNumber": {
                      "type": "string",
                      "x-aura-field-code": "citizenNumber"
                    },
                    "customerId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "customerId"
                    },
                    "distributors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "distributorVendorExternalId": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "distributorVendorExternalId"
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "vendorExternalDistributorId"
                          }
                        },
                        "x-aura-field-code": "distributors"
                      }
                    },
                    "isActive": {
                      "type": "boolean",
                      "x-aura-field-code": "isActive"
                    },
                    "merchants": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "bankCode": {
                            "type": "string",
                            "x-aura-field-code": "bankCodeContext"
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "vendorExternalMerchantId"
                          },
                          "merchantId": {
                            "type": "string",
                            "x-aura-field-code": "merchantId"
                          },
                          "vendorExternalId": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "externalVendorId"
                          }
                        },
                        "x-aura-field-code": "merchants"
                      }
                    },
                    "name": {
                      "type": "string",
                      "x-aura-field-code": "name",
                      "x-aura-maskable": true
                    },
                    "poses": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "vendorExternalPosId"
                          },
                          "isActive": {
                            "type": "boolean",
                            "x-aura-field-code": "isActive"
                          },
                          "mccCode": {
                            "type": "integer",
                            "format": "int32",
                            "x-aura-field-code": "mccCode"
                          },
                          "terminalCode": {
                            "type": "string",
                            "x-aura-field-code": "terminalCode"
                          }
                        },
                        "x-aura-field-code": "poses"
                      }
                    },
                    "taxNumber": {
                      "type": "string",
                      "x-aura-field-code": "taxNumber"
                    },
                    "vendorExternalNumber": {
                      "type": "string",
                      "x-aura-field-code": "vendorExternalNumber"
                    },
                    "vendorExternalType": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "vendorExternalType"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-external-details-by-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/details",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "VendorExternalDetailsDto",
          "payload": "VendorExternalDetailsDto",
          "collection": false,
          "members": [
            {
              "name": "Accounts",
              "declared_type": "List<VendorAccountDto>",
              "nullable": false,
              "collection": true
            },
            {
              "name": "Distributors",
              "declared_type": "List<VendorDistributorDto>",
              "nullable": false,
              "collection": true
            },
            {
              "name": "Poses",
              "declared_type": "List<VendorPosDto>",
              "nullable": false,
              "collection": true
            },
            {
              "name": "Merchants",
              "declared_type": "List<GetVendorExternalMerchantList.VendorExternalMerchantDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/external-vendors/{id}/mails": {
      "get": {
        "operationId": "get-vendor-external-mail-list",
        "tags": [
          "external-vendors"
        ],
        "summary": "get-vendor-external-mail-list",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "email": {
                        "type": "string",
                        "x-aura-field-code": "email"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "emailId"
                      },
                      "isPriority": {
                        "type": "boolean",
                        "x-aura-field-code": "isPriority"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-external-mail-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/mails",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<VendorExternalMailDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "VendorExternalMailDto",
          "collection": true,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Email",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsPriority",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      },
      "post": {
        "operationId": "create-vendor-external-mail",
        "tags": [
          "external-vendors"
        ],
        "summary": "create-vendor-external-mail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string",
                    "x-aura-field-code": "email"
                  },
                  "isPriority": {
                    "type": "boolean",
                    "x-aura-field-code": "isPriority"
                  }
                },
                "required": [
                  "email",
                  "isPriority"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 2,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "vendorExternalEmailId"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-vendor-external-mail",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/mails",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "Email",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsPriority",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "AuraCommandDto",
          "payload": "AuraCommandDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/external-vendors/{id}/mails/{mailId}": {
      "delete": {
        "operationId": "delete-vendor-external-mail",
        "tags": [
          "external-vendors"
        ],
        "summary": "delete-vendor-external-mail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          },
          {
            "name": "mailId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "mailId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "delete-vendor-external-mail",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/mails/{mailId}",
        "x-aura-request-contract": {
          "state": "no-members"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        }
      },
      "put": {
        "operationId": "update-vendor-external-mail-priority",
        "tags": [
          "external-vendors"
        ],
        "summary": "update-vendor-external-mail-priority",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          },
          {
            "name": "mailId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "mailId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "isPriority": {
                    "type": "boolean",
                    "x-aura-field-code": "isPriority"
                  }
                },
                "required": [
                  "isPriority"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-vendor-external-mail-priority",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/mails/{mailId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "IsPriority",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        }
      }
    },
    "/external-vendors/{id}/merchantId": {
      "put": {
        "operationId": "update-vendor-external-merchant-id",
        "tags": [
          "external-vendors"
        ],
        "summary": "update-vendor-external-merchant-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "isActive": {
                    "type": "boolean",
                    "x-aura-field-code": "isActive"
                  },
                  "merchantid": {
                    "type": "string",
                    "x-aura-field-code": "merchantid"
                  }
                },
                "required": [
                  "isActive",
                  "merchantid"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 2,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-vendor-external-merchant-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/merchantId",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/external-vendors/{id}/phones": {
      "get": {
        "operationId": "get-vendor-external-phone-list",
        "tags": [
          "external-vendors"
        ],
        "summary": "get-vendor-external-phone-list",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "externalVendorPhoneId"
                      },
                      "isPriority": {
                        "type": "boolean",
                        "x-aura-field-code": "isPriority"
                      },
                      "phoneNumber": {
                        "type": "string",
                        "x-aura-field-code": "phoneNumber",
                        "x-aura-maskable": true
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-external-phone-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/phones",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<VendorExternalPhoneDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "VendorExternalPhoneDto",
          "collection": true,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "PhoneNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsPriority",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      },
      "post": {
        "operationId": "create-vendor-external-phone",
        "tags": [
          "external-vendors"
        ],
        "summary": "create-vendor-external-phone",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "isPriority": {
                    "type": "boolean",
                    "x-aura-field-code": "isPriority"
                  },
                  "phoneNumber": {
                    "type": "string",
                    "x-aura-field-code": "phoneNumber",
                    "x-aura-maskable": true
                  }
                },
                "required": [
                  "isPriority",
                  "phoneNumber"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 2,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "vendorExternalPhoneId"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-vendor-external-phone",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/phones",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "PhoneNumber",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsPriority",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "AuraCommandDto",
          "payload": "AuraCommandDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/external-vendors/{id}/phones/{phoneId}": {
      "delete": {
        "operationId": "delete-vendor-external-phone",
        "tags": [
          "external-vendors"
        ],
        "summary": "delete-vendor-external-phone",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          },
          {
            "name": "phoneId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "phoneId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "delete-vendor-external-phone",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/phones/{phoneId}",
        "x-aura-request-contract": {
          "state": "no-members"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        }
      },
      "put": {
        "operationId": "update-external-vendor-phone-priority",
        "tags": [
          "external-vendors"
        ],
        "summary": "update-external-vendor-phone-priority",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          },
          {
            "name": "phoneId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "phoneId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "isPriority": {
                    "type": "boolean",
                    "x-aura-field-code": "isPriority"
                  }
                },
                "required": [
                  "isPriority"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-external-vendor-phone-priority",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/phones/{phoneId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "IsPriority",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        }
      }
    },
    "/external-vendors/{id}/poses": {
      "get": {
        "operationId": "get-vendor-external-pos-list",
        "tags": [
          "external-vendors"
        ],
        "summary": "get-vendor-external-pos-list",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration classifies this response as a collection.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-external-pos-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/poses",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<VendorExternalPosDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "VendorExternalPosDto",
          "collection": true,
          "members": [
            {
              "name": "VendorExternalPosId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "TerminalCode",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "MccCode",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsActive",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration classifies this response as a collection.",
          "code_response_state": "structure",
          "code_cardinality": "collection",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      },
      "post": {
        "operationId": "create-vendor-external-pos",
        "tags": [
          "external-vendors"
        ],
        "summary": "create-vendor-external-pos",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "poses": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "mccCode": {
                          "type": "integer",
                          "format": "int32",
                          "x-aura-field-code": "mccCode"
                        },
                        "terminalCode": {
                          "type": "string",
                          "x-aura-field-code": "terminalCode"
                        }
                      },
                      "required": [
                        "mccCode",
                        "terminalCode"
                      ],
                      "x-aura-field-code": "poses"
                    }
                  }
                },
                "required": [
                  "poses"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-vendor-external-pos",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/poses",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/external-vendors/{id}/poses/{vendorExternalPosId}": {
      "delete": {
        "operationId": "delete-vendor-external-pos",
        "tags": [
          "external-vendors"
        ],
        "summary": "delete-vendor-external-pos",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          },
          {
            "name": "vendorExternalPosId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "vendorExternalPosId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "delete-vendor-external-pos",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/poses/{vendorExternalPosId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorExternalPosId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_43",
              "status": 400,
              "message": {
                "ar": "الموقع غير موجود. المعرف: {0}",
                "en": "Pos cannot be found. :{0}",
                "tr": "Pos bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_POS_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/external-vendors/{id}/poses/{vendorExternalPosId}/status": {
      "put": {
        "operationId": "update-vendor-external-pos-status",
        "tags": [
          "external-vendors"
        ],
        "summary": "update-vendor-external-pos-status",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          },
          {
            "name": "vendorExternalPosId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "vendorExternalPosId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "isActive": {
                    "type": "boolean",
                    "x-aura-field-code": "isActive"
                  }
                },
                "required": [
                  "isActive"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-vendor-external-pos-status",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/poses/{vendorExternalPosId}/status",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "vendorExternalPosId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsActive",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_43",
              "status": 400,
              "message": {
                "ar": "الموقع غير موجود. المعرف: {0}",
                "en": "Pos cannot be found. :{0}",
                "tr": "Pos bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_POS_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/external-vendors/{id}/status": {
      "put": {
        "operationId": "update-vendor-external-status",
        "tags": [
          "external-vendors"
        ],
        "x-aura-documentation": {
          "language": "en",
          "status": "structural-fallback",
          "source": "catalog-structure"
        },
        "summary": "update vendor external status",
        "description": "Invokes the `update-vendor-external-status` service definition through `PUT /external-vendors/{id}/status`.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "isActive": {
                    "type": "boolean",
                    "x-aura-field-code": "isActive"
                  }
                },
                "required": [
                  "isActive"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-vendor-external-status",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/status",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsActive",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/external-vendors/{id}/vendor-external-distributors": {
      "get": {
        "operationId": "get-vendor-external-distributor-list",
        "tags": [
          "external-vendors"
        ],
        "summary": "get-vendor-external-distributor-list",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration classifies this response as a collection.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-external-distributor-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/vendor-external-distributors",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<VendorExternalDistributorDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "VendorExternalDistributorDto",
          "collection": true,
          "members": [
            {
              "name": "VendorExternalDistributorId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "DistributorVendorExternalId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration classifies this response as a collection.",
          "code_response_state": "structure",
          "code_cardinality": "collection",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      },
      "post": {
        "operationId": "create-vendor-external-distributor",
        "tags": [
          "external-vendors"
        ],
        "summary": "create-vendor-external-distributor",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "distributors": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "distributorVendorExternalId": {
                          "type": "string",
                          "format": "uuid",
                          "x-aura-field-code": "distributorVendorExternalId"
                        }
                      },
                      "required": [
                        "distributorVendorExternalId"
                      ],
                      "x-aura-field-code": "distributors"
                    }
                  }
                },
                "required": [
                  "distributors"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-vendor-external-distributor",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/vendor-external-distributors",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_83",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على معرف المورد الخارجي (ExternalVendorId) للموزع الذي سيتم إضافته للبائع.",
                "en": "ExternalVendorId is not found for distributor to be added for vendor",
                "tr": "Satıcıya eklenecek distribütör için Dış Satıcı Id bulunamadı"
              },
              "message_available": true,
              "constant_name": "DISTRIBUTOR_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_87",
              "status": 400,
              "message": {
                "ar": "يجب تعريف نوع البائع الخارجي على أنه الموزع ليتم إضافة الموزع. المعرف: {0}",
                "en": "The vendor_external_type must be defined as distributor for the distributor to be added. Id: {0}",
                "tr": "Distribütörün eklenebilmesi için vendor_external_type distribütör olarak tanımlanmalıdır. Id: {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_TYPE_MUST_BE_DISTRIBUTOR"
            }
          ]
        }
      }
    },
    "/external-vendors/{id}/vendor-external-distributors/{vendorExternalDistributorId}": {
      "delete": {
        "operationId": "delete-vendor-external-distributor",
        "tags": [
          "external-vendors"
        ],
        "summary": "delete-vendor-external-distributor",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "vendorExternalId"
            }
          },
          {
            "name": "vendorExternalDistributorId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "vendorExternalDistributorId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "delete-vendor-external-distributor",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "external-vendors/{id}/vendor-external-distributors/{vendorExternalDistributorId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorExternalDistributorId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_84",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على علاقة الموزع الخارجي للبائع. المعرف: {0}",
                "en": "Vendor External Distributor Relation is not found. Id:{0}",
                "tr": "Dış Satıcı Distribütör İlişkisi bulunamadı. Id:{0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_DISTRIBUTOR_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/get-corrupted-loan-payback-plan-installment-detail-list": {
      "get": {
        "operationId": "get-corrupted-loan-payback-plan-installment-detail-list",
        "tags": [
          "get-corrupted-loan-payback-plan-installment-detail-list"
        ],
        "summary": "get-corrupted-loan-payback-plan-installment-detail-list",
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "bsmvAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "bsmvAmount"
                      },
                      "installmentId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "installmentId"
                      },
                      "kkdfAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "kkdfAmount"
                      },
                      "loanId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanId"
                      },
                      "loanPaybackPlanId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanPaybackPlanId"
                      },
                      "principalAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "principalAmount"
                      },
                      "profitAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "profitAmount"
                      },
                      "remainingBsmvAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "remainingBsmvAmount"
                      },
                      "remainingKkdfAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "remainingKkdfAmount"
                      },
                      "remainingPrincipalAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "remainingPrincipalAmount"
                      },
                      "remainingProfitAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "remainingProfitAmount"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-corrupted-loan-payback-plan-installment-detail-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "get-corrupted-loan-payback-plan-installment-detail-list",
        "x-aura-capabilities": {
          "filtering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/get-corrupted-loan-payback-plan-installment-detail-list-for-delay-penalties": {
      "get": {
        "operationId": "get-corrupted-loan-payback-plan-installment-detail-list-for-delay-penalties",
        "tags": [
          "get-corrupted-loan-payback-plan-installment-detail-list-for-delay-penalties"
        ],
        "x-aura-documentation": {
          "language": "en",
          "status": "structural-fallback",
          "source": "catalog-structure"
        },
        "summary": "get-corrupted-loan-payback-plan-installment-detail-list-for-delay-penalties",
        "description": "Invokes the `get-corrupted-loan-payback-plan-installment-detail-list-for-delay-penalties` service definition through `GET /get-corrupted-loan-payback-plan-installment-detail-list-for-delay-penalties`.",
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "bsmvAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "bsmvAmount"
                      },
                      "installmentId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "installmentId"
                      },
                      "kkdfAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "kkdfAmount"
                      },
                      "lastDelayPenaltyCreatedDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "lastDelayPenaltyCreatedDate"
                      },
                      "loanId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanId"
                      },
                      "loanPaybackPlanId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanPaybackPlanId"
                      },
                      "principalAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "principalAmount"
                      },
                      "profitAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "profitAmount"
                      },
                      "remainingBsmvAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "remainingBsmvAmount"
                      },
                      "remainingKkdfAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "remainingKkdfAmount"
                      },
                      "remainingPrincipalAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "remainingPrincipalAmount"
                      },
                      "remainingProfitAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "remainingProfitAmount"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-corrupted-loan-payback-plan-installment-detail-list-for-delay-penalties",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "get-corrupted-loan-payback-plan-installment-detail-list-for-delay-penalties",
        "x-aura-capabilities": {
          "filtering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/get-customer-risk-excluded-loan-amount": {
      "get": {
        "operationId": "get-customer-risk-excluded-loan-amount",
        "tags": [
          "get-customer-risk-excluded-loan-amount"
        ],
        "summary": "get-customer-risk-excluded-loan-amount",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "customerId"
                  }
                },
                "required": [
                  "customerId"
                ]
              }
            }
          },
          "description": "The catalog declares Body-bound fields on this GET operation. Request bodies on GET have no defined semantics in HTTP; this documents the catalog, not a recommendation. Not every field below is accepted: the platform selects which of them this operation admits and drops the rest. Of the fields below, the binder does not admit `customerId`, which this document nevertheless marks required because the catalog declares it so.",
          "x-aura-documentation": {
            "language": "en",
            "status": "structural-fallback",
            "source": "catalog-structure"
          }
        },
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 0
          },
          "dropped_binding_sources": [
            "body"
          ],
          "dropped_field_names": {
            "body": [
              "customerId"
            ]
          },
          "dropped_mandatory_field_names": [
            "customerId"
          ],
          "verdict": "declared-fields-not-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": "The HTTP edge in front of this operation comes in two shapes and they differ: the platform's typed route readers bind GET and DELETE from the URL and never read a body, while its untyped catalog-redirect reader collects the body whenever the request carries one. It does not change the answer above: the selection below happens after the edge, and excludes these fields either way."
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "totalAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "totalAmount"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-customer-risk-excluded-loan-amount",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "get-customer-risk-excluded-loan-amount",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/get-ready-to-close-loans": {
      "get": {
        "operationId": "get-ready-to-close-loans",
        "tags": [
          "get-ready-to-close-loans"
        ],
        "summary": "get-ready-to-close-loans",
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "closeType": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "closeType"
                      },
                      "customerId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerId"
                      },
                      "loanId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanId"
                      },
                      "loanNumber": {
                        "type": "string",
                        "x-aura-field-code": "loanNumber"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-ready-to-close-loans",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "get-ready-to-close-loans",
        "x-aura-capabilities": {
          "filtering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/get-upcoming-installments": {
      "get": {
        "operationId": "get-upcoming-installments",
        "tags": [
          "get-upcoming-installments"
        ],
        "x-aura-documentation": {
          "language": "en",
          "status": "structural-fallback",
          "source": "catalog-structure"
        },
        "summary": "get-upcoming-installments",
        "description": "Declared as Route-bound but absent from the route template, so not sendable: currentDate, differenceDayCount.",
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "currencyId": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "currencyId"
                      },
                      "customerId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerId"
                      },
                      "installmentMaturityDate": {
                        "type": "string",
                        "format": "date",
                        "x-aura-field-code": "installmentMaturityDate"
                      },
                      "sumInstallmentsTotalAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "sumInstallmentsTotalAmount"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-upcoming-installments",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "get-upcoming-installments",
        "x-aura-capabilities": {
          "filtering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/get-vendor_disbursements-by-loan-id-query": {
      "get": {
        "operationId": "get-vendor_disbursements-by-loan-id-query",
        "tags": [
          "get-vendor_disbursements-by-loan-id-query"
        ],
        "summary": "get-vendor_disbursements-by-loan-id-query",
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor_disbursements-by-loan-id-query",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "get-vendor_disbursements-by-loan-id-query",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/internal-vendors": {
      "get": {
        "operationId": "get-vendor-internal-list",
        "tags": [
          "internal-vendors"
        ],
        "summary": "get-vendor-internal-list",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "customerId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerId"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "internalVendorId"
                      },
                      "internalVendorNumber": {
                        "type": "string",
                        "x-aura-field-code": "internalVendorNumber"
                      },
                      "isActive": {
                        "type": "boolean",
                        "x-aura-field-code": "isActive"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-internal-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "internal-vendors",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<VendorInternalDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "VendorInternalDto",
          "collection": true,
          "members": [
            {
              "name": "CustomerId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "InternalVendorNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsActive",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      },
      "post": {
        "operationId": "create-vendor-internal",
        "tags": [
          "internal-vendors"
        ],
        "summary": "create-vendor-internal",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "customerId"
                  }
                },
                "required": [
                  "customerId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration classifies this response as a single-record.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-vendor-internal",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "internal-vendors",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "CustomerId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "CreateVendorInternalDto",
          "payload": "CreateVendorInternalDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "InternalVendorNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration classifies this response as a single-record.",
          "code_response_state": "structure",
          "code_cardinality": "single-record",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_1",
              "status": 400,
              "message": {
                "ar": "هذا العميل لديه سجل لمورد. المعرف: {0}",
                "en": "This customer has a vendor record. :{0}",
                "tr": "Bu müşterinin bir satıcı kaydı var. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_INTERNAL_HAS_CUSTOMER"
            }
          ]
        }
      }
    },
    "/internal-vendors/details": {
      "get": {
        "operationId": "get-vendor-internal-list-details",
        "tags": [
          "internal-vendors"
        ],
        "summary": "get-vendor-internal-list-details",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "accounts": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "currencyNumber": {
                              "type": "string",
                              "x-aura-field-code": "currencyNumber"
                            },
                            "customerAccountId": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "customerAccountId"
                            },
                            "iban": {
                              "type": "string",
                              "x-aura-field-code": "iban"
                            },
                            "vendorAccountId": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "vendorAccountId"
                            }
                          },
                          "x-aura-field-code": "accounts"
                        }
                      },
                      "customerId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerId"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "internalVendorId"
                      },
                      "internalVendorNumber": {
                        "type": "string",
                        "x-aura-field-code": "internalVendorNumber"
                      },
                      "isActive": {
                        "type": "boolean",
                        "x-aura-field-code": "isActive"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-internal-list-details",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "internal-vendors/details",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<VendorInternalDetailsDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "VendorInternalDetailsDto",
          "collection": true,
          "members": [
            {
              "name": "Accounts",
              "declared_type": "List<VendorAccountDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      }
    },
    "/internal-vendors/{id}": {
      "delete": {
        "operationId": "delete-vendor-internal",
        "tags": [
          "internal-vendors"
        ],
        "summary": "delete-vendor-internal",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "internalVendorId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "delete-vendor-internal",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "internal-vendors/{id}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_2",
              "status": 400,
              "message": {
                "ar": "المورد الداخلي غير موجود. المعرف: {0}",
                "en": "Internal vendor cannot be found. :{0}",
                "tr": "Dahili satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_INTERNAL_NOT_FOUND"
            }
          ]
        }
      },
      "get": {
        "operationId": "get-vendor-internal-by-id",
        "tags": [
          "internal-vendors"
        ],
        "summary": "get-vendor-internal-by-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "internalVendorId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "customerId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "customerId"
                    },
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "internalVendorId"
                    },
                    "internalVendorNumber": {
                      "type": "string",
                      "x-aura-field-code": "internalVendorNumber"
                    },
                    "isActive": {
                      "type": "boolean",
                      "x-aura-field-code": "isActive"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-internal-by-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "internal-vendors/{id}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "VendorInternalDto",
          "payload": "VendorInternalDto",
          "collection": false,
          "members": [
            {
              "name": "CustomerId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "InternalVendorNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsActive",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_2",
              "status": 400,
              "message": {
                "ar": "المورد الداخلي غير موجود. المعرف: {0}",
                "en": "Internal vendor cannot be found. :{0}",
                "tr": "Dahili satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_INTERNAL_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/internal-vendors/{id}/accounts": {
      "get": {
        "operationId": "get-vendor-internal-account-list",
        "tags": [
          "internal-vendors"
        ],
        "summary": "get-vendor-internal-account-list",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "internalVendorId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "currencyNumber": {
                        "type": "string",
                        "x-aura-field-code": "currencyNumber"
                      },
                      "customerAccountId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerAccountId"
                      },
                      "iban": {
                        "type": "string",
                        "x-aura-field-code": "iban"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "internalVendorAccountId"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-internal-account-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "internal-vendors/{id}/accounts",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<VendorInternalAccountDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "VendorInternalAccountDto",
          "collection": true,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Iban",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CurrencyNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CustomerAccountId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_2",
              "status": 400,
              "message": {
                "ar": "المورد الداخلي غير موجود. المعرف: {0}",
                "en": "Internal vendor cannot be found. :{0}",
                "tr": "Dahili satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_INTERNAL_NOT_FOUND"
            }
          ]
        }
      },
      "post": {
        "operationId": "create-vendor-internal-account",
        "tags": [
          "internal-vendors"
        ],
        "summary": "create-vendor-internal-account",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "internalVendorId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accounts": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "currencyNumber": {
                          "type": "string",
                          "x-aura-field-code": "currencyNumber"
                        },
                        "customerAccountId": {
                          "type": "string",
                          "format": "uuid",
                          "x-aura-field-code": "customerAccountId"
                        },
                        "iban": {
                          "type": "string",
                          "x-aura-field-code": "iban"
                        }
                      },
                      "required": [
                        "currencyNumber",
                        "customerAccountId",
                        "iban"
                      ],
                      "x-aura-field-code": "accounts"
                    }
                  }
                },
                "required": [
                  "accounts"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-vendor-internal-account",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "internal-vendors/{id}/accounts",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_2",
              "status": 400,
              "message": {
                "ar": "المورد الداخلي غير موجود. المعرف: {0}",
                "en": "Internal vendor cannot be found. :{0}",
                "tr": "Dahili satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_INTERNAL_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/internal-vendors/{id}/accounts/{vendorAccountId}": {
      "delete": {
        "operationId": "delete-vendor-internal-account",
        "tags": [
          "internal-vendors"
        ],
        "summary": "delete-vendor-internal-account",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "internalVendorId"
            }
          },
          {
            "name": "vendorAccountId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "internalVendorAccountId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "delete-vendor-internal-account",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "internal-vendors/{id}/accounts/{vendorAccountId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorAccountId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_2",
              "status": 400,
              "message": {
                "ar": "المورد الداخلي غير موجود. المعرف: {0}",
                "en": "Internal vendor cannot be found. :{0}",
                "tr": "Dahili satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_INTERNAL_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_4",
              "status": 400,
              "message": {
                "ar": "لا يوجد سجل حساب. المعرف:{0}",
                "en": "Account record cannot be found. :{0}",
                "tr": "Hesap kaydı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_INTERNAL_ACCOUNT_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/internal-vendors/{id}/details": {
      "get": {
        "operationId": "get-vendor-internal-details-by-id",
        "tags": [
          "internal-vendors"
        ],
        "summary": "get-vendor-internal-details-by-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "internalVendorId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "accounts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "currencyNumber": {
                            "type": "string",
                            "x-aura-field-code": "currencyNumber"
                          },
                          "customerAccountId": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "customerAccountId"
                          },
                          "iban": {
                            "type": "string",
                            "x-aura-field-code": "iban"
                          },
                          "vendorAccountId": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "vendorAccountId"
                          }
                        },
                        "x-aura-field-code": "accounts"
                      }
                    },
                    "customerId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "customerId"
                    },
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "internalVendorId"
                    },
                    "internalVendorNumber": {
                      "type": "string",
                      "x-aura-field-code": "internalVendorNumber"
                    },
                    "isActive": {
                      "type": "boolean",
                      "x-aura-field-code": "isActive"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-internal-details-by-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "internal-vendors/{id}/details",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "VendorInternalDetailsDto",
          "payload": "VendorInternalDetailsDto",
          "collection": false,
          "members": [
            {
              "name": "Accounts",
              "declared_type": "List<VendorAccountDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_2",
              "status": 400,
              "message": {
                "ar": "المورد الداخلي غير موجود. المعرف: {0}",
                "en": "Internal vendor cannot be found. :{0}",
                "tr": "Dahili satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_INTERNAL_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/internal-vendors/{id}/status": {
      "put": {
        "operationId": "update-vendor-internal-status",
        "tags": [
          "internal-vendors"
        ],
        "summary": "update-vendor-internal-status",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "internalVendorId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "isActive": {
                    "type": "boolean",
                    "x-aura-field-code": "isActive"
                  }
                },
                "required": [
                  "isActive"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-vendor-internal-status",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "internal-vendors/{id}/status",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsActive",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_2",
              "status": 400,
              "message": {
                "ar": "المورد الداخلي غير موجود. المعرف: {0}",
                "en": "Internal vendor cannot be found. :{0}",
                "tr": "Dahili satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_INTERNAL_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/key-formats": {
      "get": {
        "operationId": "loan-get-key-format-list",
        "tags": [
          "key-formats"
        ],
        "summary": "loan-get-key-format-list",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string",
                        "x-aura-field-code": "code"
                      },
                      "description": {
                        "type": "string",
                        "x-aura-field-code": "loanProductGroupDescription"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "id"
                      },
                      "isActive": {
                        "type": "boolean",
                        "x-aura-field-code": "isActive"
                      },
                      "maxLength": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "maxLength"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-key-format-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "key-formats",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<KeyFormatDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "KeyFormatDto",
          "collection": true,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Code",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Description",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "MaxLength",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsActive",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      },
      "post": {
        "operationId": "loan-create-key-format",
        "tags": [
          "key-formats"
        ],
        "summary": "loan-create-key-format",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "x-aura-field-code": "code"
                  },
                  "maxLength": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "maxLength"
                  },
                  "translations": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "description": {
                          "type": "string",
                          "x-aura-field-code": "description"
                        },
                        "languageCode": {
                          "type": "string",
                          "x-aura-field-code": "languageCode"
                        }
                      },
                      "required": [
                        "description",
                        "languageCode"
                      ],
                      "x-aura-field-code": "translations"
                    }
                  }
                },
                "required": [
                  "code",
                  "maxLength",
                  "translations"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 3,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "id"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-create-key-format",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "key-formats",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "AuraCommandDto",
          "payload": "AuraCommandDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_KYGNR_7",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "KEY_FORMAT_CODE_DUPLICATED"
            }
          ]
        }
      }
    },
    "/key-formats/by-code/{code}": {
      "get": {
        "operationId": "loan-get-key-format-id-by-code",
        "tags": [
          "key-formats"
        ],
        "summary": "loan-get-key-format-id-by-code",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "x-aura-field-code": "code"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-key-format-id-by-code",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "key-formats/by-code/{code}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "declared-non-dto",
          "note": "The route returns `Guid`, a scalar rather than an object. There is no field tree below because there are no fields: the body is a JSON string holding a UUID. This is a complete answer read from the declaration, not a gap.",
          "declared_type": "Guid",
          "payload": "Guid"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_KYGNR_1",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "KEY_FORMAT_NOT_FOUND_BY_CODE"
            }
          ]
        }
      }
    },
    "/key-formats/by-code/{code}/generate": {
      "post": {
        "operationId": "loan-generate-key",
        "tags": [
          "key-formats"
        ],
        "summary": "loan-generate-key",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "x-aura-field-code": "code"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "itemValues": {
                    "type": "object",
                    "x-aura-field-code": "itemValues"
                  }
                },
                "required": [
                  "itemValues"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-generate-key",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "key-formats/by-code/{code}/generate",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "declared-non-dto",
          "note": "The route returns `string`, a scalar rather than an object. There is no field tree below because there are no fields: the body is a JSON string. This is a complete answer read from the declaration, not a gap.",
          "declared_type": "string",
          "payload": "string"
        }
      }
    },
    "/key-formats/{id}": {
      "get": {
        "operationId": "loan-get-key-format-by-id",
        "tags": [
          "key-formats"
        ],
        "summary": "loan-get-key-format-by-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "x-aura-field-code": "code"
                    },
                    "description": {
                      "type": "string",
                      "x-aura-field-code": "loanProductGroupDescription"
                    },
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "id"
                    },
                    "isActive": {
                      "type": "boolean",
                      "x-aura-field-code": "isActive"
                    },
                    "maxLength": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "maxLength"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-key-format-by-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "key-formats/{id}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "KeyFormatDto",
          "payload": "KeyFormatDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Code",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Description",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "MaxLength",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsActive",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_KYGNR_16",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "KEY_FORMAT_NOT_FOUND_BY_ID"
            }
          ]
        }
      },
      "put": {
        "operationId": "loan-update-key-format",
        "tags": [
          "key-formats"
        ],
        "summary": "loan-update-key-format",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "maxLength": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "maxLength"
                  },
                  "translations": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "description": {
                          "type": "string",
                          "x-aura-field-code": "description"
                        },
                        "languageCode": {
                          "type": "string",
                          "x-aura-field-code": "languageCode"
                        }
                      },
                      "required": [
                        "description",
                        "languageCode"
                      ],
                      "x-aura-field-code": "translations"
                    }
                  }
                },
                "required": [
                  "maxLength",
                  "translations"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 2,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-update-key-format",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "key-formats/{id}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_KYGNR_16",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "KEY_FORMAT_NOT_FOUND_BY_ID"
            }
          ]
        }
      }
    },
    "/key-formats/{id}/item-summaries": {
      "get": {
        "operationId": "loan-get-key-format-item-id-by-key-format-id",
        "tags": [
          "key-formats"
        ],
        "summary": "loan-get-key-format-item-id-by-key-format-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "itemList": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "keyFormatItemId": {
                            "x-aura-type": "unresolved"
                          },
                          "name": {
                            "type": "string",
                            "x-aura-field-code": "name",
                            "x-aura-maskable": true
                          }
                        },
                        "x-aura-field-code": "itemList"
                      }
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-key-format-item-id-by-key-format-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "key-formats/{id}/item-summaries",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "KeyFormatItemSummaryListDto",
          "payload": "KeyFormatItemSummaryListDto",
          "collection": false,
          "members": [
            {
              "name": "ItemList",
              "declared_type": "IEnumerable<KeyFormatItemSummaryDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_KYGNR_16",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "KEY_FORMAT_NOT_FOUND_BY_ID"
            }
          ]
        }
      }
    },
    "/key-formats/{id}/items": {
      "get": {
        "operationId": "loan-get-key-format-item-by-key-format-id",
        "tags": [
          "key-formats"
        ],
        "summary": "loan-get-key-format-item-by-key-format-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "itemList": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "defaultValue": {
                            "type": "string",
                            "x-aura-field-code": "defaultValue"
                          },
                          "hasPadding": {
                            "type": "boolean",
                            "x-aura-field-code": "hasPadding"
                          },
                          "keyFormatItemId": {
                            "x-aura-type": "unresolved"
                          },
                          "length": {
                            "type": "integer",
                            "format": "int32",
                            "x-aura-field-code": "length"
                          },
                          "name": {
                            "type": "string",
                            "x-aura-field-code": "name",
                            "x-aura-maskable": true
                          },
                          "paddingDirection": {
                            "type": "integer",
                            "format": "int32",
                            "x-aura-field-code": "paddingDirection"
                          },
                          "seperator": {
                            "type": "string",
                            "x-aura-field-code": "seperator"
                          },
                          "sequence": {
                            "type": "integer",
                            "format": "int32",
                            "x-aura-field-code": "sequence"
                          },
                          "type": {
                            "type": "string",
                            "x-aura-field-code": "type"
                          },
                          "value": {
                            "type": "string",
                            "x-aura-field-code": "value"
                          }
                        },
                        "x-aura-field-code": "itemList"
                      }
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-key-format-item-by-key-format-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "key-formats/{id}/items",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "KeyFormatItemListDto",
          "payload": "KeyFormatItemListDto",
          "collection": false,
          "members": [
            {
              "name": "ItemList",
              "declared_type": "IEnumerable<KeyFormatItemDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_KYGNR_16",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "KEY_FORMAT_NOT_FOUND_BY_ID"
            }
          ]
        }
      },
      "post": {
        "operationId": "loan-create-key-format-item",
        "tags": [
          "key-formats"
        ],
        "summary": "loan-create-key-format-item",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "itemList": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "defaultValue": {
                          "type": "string",
                          "x-aura-field-code": "defaultValue"
                        },
                        "hasPadding": {
                          "type": "boolean",
                          "x-aura-field-code": "hasPadding"
                        },
                        "itemLenght": {
                          "type": "integer",
                          "format": "int32",
                          "x-aura-field-code": "itemLength"
                        },
                        "itemSequence": {
                          "type": "integer",
                          "format": "int32",
                          "x-aura-field-code": "itemSequence"
                        },
                        "itemValue": {
                          "type": "string",
                          "x-aura-field-code": "itemValue"
                        },
                        "paddingDirection": {
                          "type": "integer",
                          "format": "int32",
                          "x-aura-field-code": "paddingDirection"
                        },
                        "resetValue": {
                          "type": "integer",
                          "format": "int32",
                          "x-aura-field-code": "resetValue"
                        },
                        "seperator": {
                          "type": "string",
                          "x-aura-field-code": "seperator"
                        },
                        "translations": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "languageCode": {
                                "type": "string",
                                "x-aura-field-code": "languageCode"
                              },
                              "name": {
                                "type": "string",
                                "x-aura-field-code": "name",
                                "x-aura-maskable": true
                              }
                            },
                            "required": [
                              "languageCode",
                              "name"
                            ],
                            "x-aura-field-code": "translations"
                          }
                        },
                        "type": {
                          "type": "integer",
                          "format": "int32",
                          "x-aura-field-code": "itemType"
                        }
                      },
                      "required": [
                        "hasPadding",
                        "itemLenght",
                        "itemSequence",
                        "seperator",
                        "translations",
                        "type"
                      ],
                      "x-aura-field-code": "itemList"
                    }
                  }
                },
                "required": [
                  "itemList"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "itemList": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "itemId": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "itemId"
                          },
                          "name": {
                            "type": "string",
                            "x-aura-field-code": "name",
                            "x-aura-maskable": true
                          }
                        },
                        "x-aura-field-code": "itemList"
                      }
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-create-key-format-item",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "key-formats/{id}/items",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "CreateKeyFormatItemListDto",
          "payload": "CreateKeyFormatItemListDto",
          "collection": false,
          "members": [
            {
              "name": "ItemList",
              "declared_type": "IEnumerable<CreateKeyFormatItemDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_KYGNR_16",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "KEY_FORMAT_NOT_FOUND_BY_ID"
            }
          ]
        }
      }
    },
    "/key-formats/{id}/items/{itemId}": {
      "delete": {
        "operationId": "loan-delete-key-format-item",
        "tags": [
          "key-formats"
        ],
        "summary": "loan-delete-key-format-item",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "itemId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-delete-key-format-item",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "key-formats/{id}/items/{itemId}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_KYGNR_16",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "KEY_FORMAT_NOT_FOUND_BY_ID"
            },
            {
              "code": "ERR_KYGNR_3",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "KEY_FORMAT_NOT_EXIST_ITEMS"
            }
          ]
        }
      }
    },
    "/loan-payout-reservations": {
      "get": {
        "operationId": "get-loan-payout-reservation-list",
        "tags": [
          "loan-payout-reservations"
        ],
        "summary": "get-loan-payout-reservation-list",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "amount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "amount"
                      },
                      "customerId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerId"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanPayoutReservationId"
                      },
                      "loanProductId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanProductId"
                      },
                      "reservationStatus": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "reservationStatus"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-payout-reservation-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loan-payout-reservations",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<LoanPayoutReservationDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "LoanPayoutReservationDto",
          "collection": true,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ReservationStatus",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Amount",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CustomerId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanProductId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      }
    },
    "/loan-payout-reservations/{id}": {
      "delete": {
        "operationId": "delete-loan-payout-reservation",
        "tags": [
          "loan-payout-reservations"
        ],
        "summary": "delete-loan-payout-reservation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "x-aura-type": "unresolved"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "delete-loan-payout-reservation",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loan-payout-reservations/{id}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_109",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_PAYOUT_RESERVATION_NOT_FOUND"
            }
          ]
        }
      },
      "get": {
        "operationId": "get-loan-payout-reservation-by-id",
        "tags": [
          "loan-payout-reservations"
        ],
        "summary": "get-loan-payout-reservation-by-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanPayoutReservationId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "amount": {
                      "type": "number",
                      "format": "decimal",
                      "x-aura-field-code": "amount"
                    },
                    "customerId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "customerId"
                    },
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "loanPayoutReservationId"
                    },
                    "loanProductId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "loanProductId"
                    },
                    "reservationStatus": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "reservationStatus"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-payout-reservation-by-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loan-payout-reservations/{id}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "LoanPayoutReservationDto",
          "payload": "LoanPayoutReservationDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ReservationStatus",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Amount",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CustomerId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanProductId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_109",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_PAYOUT_RESERVATION_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/loans": {
      "get": {
        "operationId": "get-loan-list",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-list",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "accountingEntryId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "accountingEntryId"
                      },
                      "accrualStatus": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "accrualStatus"
                      },
                      "amount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "loanAmount"
                      },
                      "cancelDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "cancelDate"
                      },
                      "cancelDescription": {
                        "type": "string",
                        "x-aura-field-code": "cancelDescription"
                      },
                      "cancelReason": {
                        "type": "string",
                        "x-aura-field-code": "cancelReason"
                      },
                      "currencyNumber": {
                        "type": "string",
                        "x-aura-field-code": "currencyNumber"
                      },
                      "customerAccountId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerAccountId"
                      },
                      "customerApplicationId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerApplicationId"
                      },
                      "customerId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerId"
                      },
                      "customerRiskId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerRiskId"
                      },
                      "exchangeRate": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "exchangeRate"
                      },
                      "externalReference": {
                        "type": "string",
                        "x-aura-field-code": "externalReference"
                      },
                      "externalTransactionid": {
                        "type": "string",
                        "x-aura-field-code": "externalTransactionid"
                      },
                      "fundingSource": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "fundingSource"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanId"
                      },
                      "latePenaltyRate": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "latePenaltyRate"
                      },
                      "loanCloseDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "loanCloseDate"
                      },
                      "loanCloseType": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "loanCloseType"
                      },
                      "loanDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "loanDate"
                      },
                      "loanNumber": {
                        "type": "string",
                        "x-aura-field-code": "loanNumber"
                      },
                      "loanProductId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanProductId"
                      },
                      "organizationId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "organizationId"
                      },
                      "parentLoanId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "parentLoanId"
                      },
                      "proposalId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "proposalId"
                      },
                      "status": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "loanStatus"
                      },
                      "vendorExternalId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "externalVendorId"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<LoanDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "LoanDto",
          "collection": true,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CustomerId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ProposalId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CustomerApplicationId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CustomerAccountId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "LoanProductId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "FundingSource",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrganizationId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CurrencyNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Amount",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "LoanDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Status",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ExchangeRate",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "AccountingEntryId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "LoanCloseDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "LoanCloseType",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CustomerRiskId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "AllotmentQueryId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ParentLoanId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CancelDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CancelReason",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CancelDescription",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LatePenaltyRate",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "EarlyPaymentDiscountRate",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "AccrualStatus",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ExternalReference",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ExternalTransactionid",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorExternalId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "StatusContext",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "PartnerId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      },
      "post": {
        "operationId": "create-loan",
        "tags": [
          "loans"
        ],
        "summary": "create-loan",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "currencyNumber": {
                    "type": "string",
                    "x-aura-field-code": "currencyNumber"
                  },
                  "customerApplicationId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "customerApplicationId"
                  },
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "customerId"
                  },
                  "earlyPaymentDiscountRate": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "earlyPaymentDiscountRate"
                  },
                  "exchangeRate": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "exchangeRate"
                  },
                  "expenses": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "createLoanExpenses"
                    }
                  },
                  "externalReference": {
                    "type": "string",
                    "x-aura-field-code": "externalReference"
                  },
                  "externalTransactionid": {
                    "type": "string",
                    "x-aura-field-code": "externalTransactionid"
                  },
                  "fundingSource": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "fundingSource",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "funding_source",
                      "values": [
                        {
                          "value": 1,
                          "name": "equity",
                          "labels": {
                            "en": "equity",
                            "tr": "Öz Kaynak",
                            "ar": "الملكية"
                          }
                        },
                        {
                          "value": 2,
                          "name": "pool",
                          "labels": {
                            "en": "pool",
                            "tr": "Havuz",
                            "ar": "حوض سباحة"
                          }
                        }
                      ]
                    }
                  },
                  "latePenaltyRate": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "latePenaltyRate"
                  },
                  "loanProductId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "loanProductId"
                  },
                  "monthlyRepaymentRate": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "monthlyRepaymentRate"
                  },
                  "organizationId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "organizationId"
                  },
                  "proposalId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "proposalId"
                  },
                  "proposalPaybackPlanId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "proposalPaybackPlanId"
                  },
                  "vendorExternalId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "externalVendorId"
                  }
                },
                "required": [
                  "customerApplicationId",
                  "customerId",
                  "earlyPaymentDiscountRate",
                  "exchangeRate",
                  "fundingSource",
                  "latePenaltyRate",
                  "loanProductId",
                  "monthlyRepaymentRate",
                  "organizationId",
                  "proposalPaybackPlanId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 16,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "loanId"
                    },
                    "loanNumber": {
                      "type": "string",
                      "x-aura-field-code": "loanNumber"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-loan",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "CustomerId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "ProposalId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "ProposalPaybackPlanId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "LoanProductId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "MonthlyRepaymentRate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "FundingSource",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrganizationId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "CustomerApplicationId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "ExchangeRate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "LatePenaltyRate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "EarlyPaymentDiscountRate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "ExternalReference",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "ExternalTransactionid",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "CurrencyNumber",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorExternalId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "CreateLoanDto",
          "payload": "CreateLoanDto",
          "collection": false,
          "members": [
            {
              "name": "LoanNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_11",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على المقترح. المعرف: {0}",
                "en": "Proposal cannot be found. : {0}",
                "tr": "Teklif bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "LOAN_PROPOSAL_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_12",
              "status": 400,
              "message": {
                "ar": "الاقتراح غير صالح. المعرف: {0}",
                "en": "Proposal is not valid. : {0}",
                "tr": "Teklif geçerli değil. : {0}"
              },
              "message_available": true,
              "constant_name": "LOAN_PROPOSAL_IS_NOT_VALID"
            },
            {
              "code": "ERR_LOAN_13",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_PAYBACK_PLAN_IS_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_14",
              "status": 400,
              "message": {
                "ar": "لم يتم اختيار خطة السداد. رقم المعرف: {0}",
                "en": "Payback plan is not selected.: {0}",
                "tr": "Geri ödeme planı seçili değil. : {0}"
              },
              "message_available": true,
              "constant_name": "LOAN_PAYBACK_PLAN_IS_NOT_SELECTED"
            }
          ]
        }
      }
    },
    "/loans/base-prices": {
      "get": {
        "operationId": "get-loan-base-price-list",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-base-price-list",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string",
                  "x-aura-field-code": "code"
                }
              },
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "basePriceId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "basePriceId"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "id"
                      },
                      "loanId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanId"
                      },
                      "termType": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "termType"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-base-price-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/base-prices",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<LoanBasePriceDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "LoanBasePriceDto",
          "collection": true,
          "members": [
            {
              "name": "LoanId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      }
    },
    "/loans/by-installment-id/{installmentId}/installment": {
      "get": {
        "operationId": "get-loan-installment-details-by-installment-id",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-installment-details-by-installment-id",
        "parameters": [
          {
            "name": "installmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "installmentId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collectionDetails": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "calculatedDate": {
                            "type": "string",
                            "format": "date-time",
                            "x-aura-field-code": "calculatedDate"
                          },
                          "collectionDetailType": {
                            "type": "integer",
                            "format": "int32",
                            "x-aura-field-code": "collectionDetailType"
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "installmentDetailId"
                          },
                          "remainingAmount": {
                            "type": "number",
                            "format": "decimal",
                            "x-aura-field-code": "remainingAmount"
                          },
                          "totalAmount": {
                            "type": "number",
                            "format": "decimal",
                            "x-aura-field-code": "totalAmount"
                          }
                        },
                        "x-aura-field-code": "installmentCollectionDetails"
                      }
                    },
                    "collectionStatus": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "collectionStatus"
                    },
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "installmentId"
                    },
                    "installmentDate": {
                      "type": "string",
                      "format": "date-time",
                      "x-aura-field-code": "installmentDate"
                    },
                    "installmentNo": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "installmentNo"
                    },
                    "installmentTotalAmount": {
                      "type": "number",
                      "format": "decimal",
                      "x-aura-field-code": "installmentTotalAmount"
                    },
                    "isAccrual": {
                      "type": "boolean",
                      "x-aura-field-code": "isAccrual"
                    },
                    "loanId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "loanId"
                    },
                    "loanPaybackPlanId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "loanPaybackPlanId"
                    },
                    "principalAmount": {
                      "type": "number",
                      "format": "decimal",
                      "x-aura-field-code": "principalAmount"
                    },
                    "profitAmount": {
                      "type": "number",
                      "format": "decimal",
                      "x-aura-field-code": "profitAmount"
                    },
                    "remainingPrincipalAmount": {
                      "type": "number",
                      "format": "decimal",
                      "x-aura-field-code": "remainingPrincipalAmount"
                    },
                    "taxes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "loanPaybackPlanInstallmentTaxId"
                          },
                          "taxAmount": {
                            "type": "number",
                            "format": "decimal",
                            "x-aura-field-code": "taxAmount"
                          },
                          "taxId": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "taxId"
                          },
                          "taxName": {
                            "type": "string",
                            "x-aura-field-code": "taxName"
                          }
                        },
                        "x-aura-field-code": "taxes"
                      }
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-installment-details-by-installment-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/by-installment-id/{installmentId}/installment",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "InstallmentId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "InstallmentDto",
          "payload": "InstallmentDto",
          "collection": false,
          "members": [
            {
              "name": "InstallmentNo",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "InstallmentDate",
              "declared_type": "DateTime",
              "nullable": false,
              "collection": false
            },
            {
              "name": "InstallmentTotalAmount",
              "declared_type": "decimal",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CollectionStatus",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsAccrual",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            },
            {
              "name": "PrincipalAmount",
              "declared_type": "decimal",
              "nullable": false,
              "collection": false
            },
            {
              "name": "RemainingPrincipalAmount",
              "declared_type": "decimal",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ProfitAmount",
              "declared_type": "decimal",
              "nullable": false,
              "collection": false
            },
            {
              "name": "BalloonPaymentAmount",
              "declared_type": "decimal",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CalculateInstallmentDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "IsManual",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "LoanPaybackPlanId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Taxes",
              "declared_type": "List<InstallmentTaxDto>",
              "nullable": false,
              "collection": true
            },
            {
              "name": "CollectionDetails",
              "declared_type": "List<InstallmentDetailDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_30",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على القسط. المعرف: {0}",
                "en": "Installment cannot be found. :{0}",
                "tr": "Taksit bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "LOAN_INSTALLMENT_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/by-proposal-id/{proposalId}/id": {
      "get": {
        "operationId": "get-loan-id-by-proposal-id",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-id-by-proposal-id",
        "parameters": [
          {
            "name": "proposalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "proposalId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "loanId"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-id-by-proposal-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/by-proposal-id/{proposalId}/id",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "ProposalId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "AuraCommandDto",
          "payload": "AuraCommandDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      }
    },
    "/loans/collateral-usages": {
      "get": {
        "operationId": "get-loan-collateral-usage-list",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-collateral-usage-list",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "collateralUsageId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "collateralUsageId"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "collateralId"
                      },
                      "loanId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanId"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-collateral-usage-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/collateral-usages",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<LoanCollateralUsageDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "LoanCollateralUsageDto",
          "collection": true,
          "members": [
            {
              "name": "LoanId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      }
    },
    "/loans/delegations": {
      "get": {
        "operationId": "get-delegation-list",
        "tags": [
          "loans"
        ],
        "summary": "get-delegation-list",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "amount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "delegationAmount"
                      },
                      "beginDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "delegationBeginDate"
                      },
                      "currencyNumber": {
                        "type": "string",
                        "x-aura-field-code": "currencyNumber"
                      },
                      "customerId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerId"
                      },
                      "endDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "delegationEndDate"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "delegationId"
                      },
                      "loanDelegationDetail": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "amount": {
                              "type": "number",
                              "format": "decimal",
                              "x-aura-field-code": "amount"
                            },
                            "loanDelegationDetailId": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "loanDelegationDetailId"
                            },
                            "loanDelegationId": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "loanDelegationId"
                            },
                            "productCategoryId": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "productCategoryId"
                            },
                            "productCount": {
                              "type": "integer",
                              "format": "int32",
                              "x-aura-field-code": "productCount"
                            }
                          },
                          "x-aura-field-code": "loanDelegationDetail"
                        }
                      },
                      "loanId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanId"
                      },
                      "partnerId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "partnerId"
                      },
                      "productCount": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "productCount"
                      },
                      "productName": {
                        "type": "string",
                        "x-aura-field-code": "productName"
                      },
                      "productType": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "productType"
                      },
                      "status": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "delegationStatus"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-delegation-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/delegations",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<LoanDelegationDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "LoanDelegationDto",
          "collection": true,
          "members": [
            {
              "name": "LoanId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      }
    },
    "/loans/installments": {
      "get": {
        "operationId": "get-loan-installment-list",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-installment-list",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "loanId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 6
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "collectionStatus": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "collectionStatus"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanInstallmentId"
                      },
                      "installmentDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "installmentDate"
                      },
                      "installmentNo": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "installmentNo"
                      },
                      "installmentTotalAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "installmentTotalAmount"
                      },
                      "isAccrual": {
                        "type": "boolean",
                        "x-aura-field-code": "isAccrual"
                      },
                      "loanId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanId"
                      },
                      "paybackPlanId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "paybackPlanId"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-installment-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/installments",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "LoanId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "unresolved",
          "note": "`LoanInstallmentItem` is not among the C# declarations parsed from this repository. The resolver checks this repository first, then permits a lookup in `aura/framework` or `aura/kernel` only when this repository declares the matching 0.2-line PackageReference. This unresolved verdict means neither licensed lookup produced exactly one parsed declaration. The view does not expose whether that was because no eligible package proof exists or because the entitled platform source does not declare the name, so this page does not guess between them. It is a dependency-boundary gap in what this portal can resolve, not evidence that the service returns no body.",
          "declared_type": "IEnumerable<LoanInstallmentItem>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "LoanInstallmentItem"
        }
      }
    },
    "/loans/insurances": {
      "get": {
        "operationId": "get-insurance-list",
        "tags": [
          "loans"
        ],
        "summary": "get-insurance-list",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "chassisNumber": {
                        "type": "string",
                        "x-aura-field-code": "chassisNumber"
                      },
                      "company": {
                        "type": "string",
                        "x-aura-field-code": "company"
                      },
                      "coverageAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "coverageAmount"
                      },
                      "coverageCurrencyNumber": {
                        "type": "string",
                        "x-aura-field-code": "coverageCurrencyNumber"
                      },
                      "endDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "insuranceEndDate"
                      },
                      "engineNumber": {
                        "type": "string",
                        "x-aura-field-code": "engineNumber"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "insuranceId"
                      },
                      "loanId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanId"
                      },
                      "lossPayee": {
                        "type": "string",
                        "x-aura-field-code": "lossPayee"
                      },
                      "plate": {
                        "type": "string",
                        "x-aura-field-code": "plate"
                      },
                      "policyHolderFullname": {
                        "type": "string",
                        "x-aura-field-code": "policyHolderFullname"
                      },
                      "policyHolderNumber": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "policyHolderNumber"
                      },
                      "policyNumber": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "policyNumber"
                      },
                      "premiumAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "premiumAmount"
                      },
                      "premiumCurrencyNumber": {
                        "type": "string",
                        "x-aura-field-code": "premiumCurrencyId"
                      },
                      "productName": {
                        "type": "string",
                        "x-aura-field-code": "productName"
                      },
                      "startDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "insuranceStartDate"
                      },
                      "type": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "insuranceType"
                      },
                      "vehicleBrand": {
                        "type": "string",
                        "x-aura-field-code": "vehicleBrand"
                      },
                      "vehicleModel": {
                        "type": "string",
                        "x-aura-field-code": "vehicleModel"
                      },
                      "vehicleType": {
                        "type": "string",
                        "x-aura-field-code": "vehicleType"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-insurance-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/insurances",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<InsuranceDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "InsuranceDto",
          "collection": true,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Type",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "PolicyNumber",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ProductName",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Company",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "PolicyHolderNumber",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CoverageCurrencyNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "PolicyHolderFullname",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LossPayee",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VehicleBrand",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VehicleModel",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VehicleType",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "EngineNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ChassisNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Plate",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "PremiumAmount",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "PremiumCurrencyNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CoverageAmount",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "StartDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "EndDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      }
    },
    "/loans/internal-external-disbursement": {
      "get": {
        "operationId": "get-vendor-disbursement-list-query",
        "tags": [
          "loans"
        ],
        "summary": "get-vendor-disbursement-list-query",
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-disbursement-list-query",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/internal-external-disbursement",
        "x-aura-capabilities": {
          "filtering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/loans/orders": {
      "get": {
        "operationId": "get-loan-order-list",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-order-list",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration classifies this response as a collection.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-order-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/orders",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<LoanOrderDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "LoanOrderDto",
          "collection": true,
          "members": [
            {
              "name": "LoanId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration classifies this response as a collection.",
          "code_response_state": "structure",
          "code_cardinality": "collection",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        }
      }
    },
    "/loans/return-payments": {
      "get": {
        "operationId": "get-loan-return-payment-list",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-return-payment-list",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "amount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "amount"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanReturnPaymentId"
                      },
                      "loanId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanId"
                      },
                      "returnDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "returnDate"
                      },
                      "returnProcessingDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "returnProcessingDate"
                      },
                      "status": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "status"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-return-payment-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/return-payments",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<LoanReturnPaymentBaseDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "LoanReturnPaymentBaseDto",
          "collection": true,
          "members": [
            {
              "name": "Amount",
              "declared_type": "decimal",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Status",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ReturnProcessingDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ReturnDate",
              "declared_type": "DateTime",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      }
    },
    "/loans/vendor-disbursements": {
      "get": {
        "operationId": "get-vendor-disbursement-list",
        "tags": [
          "loans"
        ],
        "summary": "get-vendor-disbursement-list",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "accountingEntryId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "accountingEntryId"
                      },
                      "amount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "vendorDisbursementAmount"
                      },
                      "currencyNumber": {
                        "type": "string",
                        "x-aura-field-code": "currencyNumber"
                      },
                      "customerId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerId"
                      },
                      "disbursementDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "disbursementDate"
                      },
                      "exchangeRate": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "exchangeRate"
                      },
                      "externalVendorAccountId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "externalVendorAccountId"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "vendorDisbursementId"
                      },
                      "internalVendorAccountId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "internalVendorAccountId"
                      },
                      "isCancel": {
                        "type": "boolean",
                        "x-aura-field-code": "isCancel"
                      },
                      "loanId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanId"
                      },
                      "paymentType": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "paymentType"
                      },
                      "status": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "status"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-disbursement-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/vendor-disbursements",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "InternalVendorId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "ExternalVendorId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<VendorDisbursementDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "VendorDisbursementDto",
          "collection": true,
          "members": [
            {
              "name": "InternalVendorId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ExternalVendorId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "LoanId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CustomerId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      }
    },
    "/loans/without-partner": {
      "get": {
        "operationId": "get-loan-list-without-partner",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-list-without-partner",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "accountingEntryId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "accountingEntryId"
                      },
                      "accrualStatus": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "accrualStatus"
                      },
                      "allotmentQueryId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "allotmentQueryId"
                      },
                      "amount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "amount"
                      },
                      "cancelDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "cancelDate"
                      },
                      "cancelDescription": {
                        "type": "string",
                        "x-aura-field-code": "cancelDescription"
                      },
                      "cancelReason": {
                        "type": "string",
                        "x-aura-field-code": "cancelReason"
                      },
                      "currencyNumber": {
                        "type": "string",
                        "x-aura-field-code": "currencyNumber"
                      },
                      "customerAccountId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerAccountId"
                      },
                      "customerApplicationId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerApplicationId"
                      },
                      "customerId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerId"
                      },
                      "customerRiskId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerRiskId"
                      },
                      "earlyPaymentDiscountRate": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "earlyPaymentDiscountRate"
                      },
                      "exchangeRate": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "exchangeRate"
                      },
                      "externalReference": {
                        "type": "string",
                        "x-aura-field-code": "externalReference"
                      },
                      "externalTransactionid": {
                        "type": "string",
                        "x-aura-field-code": "externalTransactionid"
                      },
                      "fundingSource": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "fundingSource"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "id"
                      },
                      "latePenaltyRate": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "latePenaltyRate"
                      },
                      "loanCloseDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "loanCloseDate"
                      },
                      "loanCloseType": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "loanCloseType"
                      },
                      "loanDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "loanDate"
                      },
                      "loanNumber": {
                        "type": "string",
                        "x-aura-field-code": "loanNumber"
                      },
                      "loanProductId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanProductId"
                      },
                      "organizationId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "organizationId"
                      },
                      "parentLoanId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "parentLoanId"
                      },
                      "proposalId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "proposalId"
                      },
                      "status": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "status"
                      },
                      "vendorExternalId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "externalVendorId"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-list-without-partner",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/without-partner",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<LoanDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "LoanDto",
          "collection": true,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CustomerId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ProposalId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CustomerApplicationId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CustomerAccountId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "LoanProductId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "FundingSource",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrganizationId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CurrencyNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Amount",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "LoanDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Status",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ExchangeRate",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "AccountingEntryId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "LoanCloseDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "LoanCloseType",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CustomerRiskId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "AllotmentQueryId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ParentLoanId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CancelDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CancelReason",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CancelDescription",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LatePenaltyRate",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "EarlyPaymentDiscountRate",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "AccrualStatus",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ExternalReference",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ExternalTransactionid",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorExternalId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "StatusContext",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "PartnerId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      }
    },
    "/loans/{externalTransactionid}/vendor-disbursements/disbursementDate": {
      "put": {
        "operationId": "update-vendor-disbursement-disbursement-date",
        "tags": [
          "loans"
        ],
        "summary": "update-vendor-disbursement-disbursement-date",
        "parameters": [
          {
            "name": "externalTransactionid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "x-aura-field-code": "externalTransactionid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "disbursementDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "disbursementDate"
                  }
                },
                "required": [
                  "disbursementDate"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-vendor-disbursement-disbursement-date",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{externalTransactionid}/vendor-disbursements/disbursementDate",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "ExternalTransactionid",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "DisbursementDate",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        }
      }
    },
    "/loans/{id}": {
      "get": {
        "operationId": "get-loan-by-id",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-by-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "accountingEntryId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "accountingEntryId"
                    },
                    "accrualStatus": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "accrualStatus"
                    },
                    "allotmentAssignmentId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "allotmentAssignmentId"
                    },
                    "amount": {
                      "type": "number",
                      "format": "decimal",
                      "x-aura-field-code": "loanAmount"
                    },
                    "cancelDate": {
                      "type": "string",
                      "format": "date-time",
                      "x-aura-field-code": "cancelDate"
                    },
                    "cancelDescription": {
                      "type": "string",
                      "x-aura-field-code": "cancelDescription"
                    },
                    "cancelReason": {
                      "type": "string",
                      "x-aura-field-code": "cancelReason"
                    },
                    "currencyNumber": {
                      "type": "string",
                      "x-aura-field-code": "currencyNumber"
                    },
                    "customerAccountId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "customerAccountId"
                    },
                    "customerApplicationId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "customerApplicationId"
                    },
                    "customerId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "customerId"
                    },
                    "customerRiskId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "customerRiskId"
                    },
                    "exchangeRate": {
                      "type": "number",
                      "format": "decimal",
                      "x-aura-field-code": "exchangeRate"
                    },
                    "externalReference": {
                      "type": "string",
                      "x-aura-field-code": "externalReference"
                    },
                    "externalTransactionid": {
                      "type": "string",
                      "x-aura-field-code": "externalTransactionid"
                    },
                    "fundingSource": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "fundingSource"
                    },
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "loanId"
                    },
                    "latePenaltyRate": {
                      "type": "number",
                      "format": "decimal",
                      "x-aura-field-code": "latePenaltyRate"
                    },
                    "loanCloseDate": {
                      "type": "string",
                      "format": "date-time",
                      "x-aura-field-code": "loanCloseDate"
                    },
                    "loanCloseType": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "loanCloseType"
                    },
                    "loanDate": {
                      "type": "string",
                      "format": "date-time",
                      "x-aura-field-code": "loanDate"
                    },
                    "loanNumber": {
                      "type": "string",
                      "x-aura-field-code": "loanNumber"
                    },
                    "loanProductId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "loanProductId"
                    },
                    "organizationId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "organizationId"
                    },
                    "parentLoanId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "parentLoanId"
                    },
                    "proposalId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "proposalId"
                    },
                    "status": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "loanStatus"
                    },
                    "vendorExternalId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "externalVendorId"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-by-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "LoanDto",
          "payload": "LoanDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CustomerId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ProposalId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CustomerApplicationId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CustomerAccountId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "LoanProductId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "FundingSource",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrganizationId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CurrencyNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Amount",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "LoanDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Status",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ExchangeRate",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "AccountingEntryId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "LoanCloseDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "LoanCloseType",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CustomerRiskId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "AllotmentQueryId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ParentLoanId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CancelDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CancelReason",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CancelDescription",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LatePenaltyRate",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "EarlyPaymentDiscountRate",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "AccrualStatus",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ExternalReference",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ExternalTransactionid",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorExternalId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "StatusContext",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "PartnerId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/account-id": {
      "put": {
        "operationId": "update-loan-account-id",
        "tags": [
          "loans"
        ],
        "summary": "update-loan-account-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "accountId"
                  }
                },
                "required": [
                  "accountId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-loan-account-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/account-id",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "AccountId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/accounting-entry-id": {
      "put": {
        "operationId": "update-loan-accounting-entry-id",
        "tags": [
          "loans"
        ],
        "summary": "update-loan-accounting-entry-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountingEntryId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "accountingEntryId"
                  }
                },
                "required": [
                  "accountingEntryId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-loan-accounting-entry-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/accounting-entry-id",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "AccountingEntryId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/allotment-query-id": {
      "put": {
        "operationId": "update-loan-allotment-query-id",
        "tags": [
          "loans"
        ],
        "summary": "update-loan-allotment-query-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "allotmentQueryId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "allotmentQueryId"
                  }
                },
                "required": [
                  "allotmentQueryId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-loan-allotment-query-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/allotment-query-id",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "AllotmentQueryId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/base-prices": {
      "get": {
        "operationId": "get-loan-base-price-list-by-loan-id",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-base-price-list-by-loan-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "basePriceId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "basePriceId"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "id"
                      },
                      "termType": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "termType"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-base-price-list-by-loan-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/base-prices",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<LoanBasePriceBaseDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "LoanBasePriceBaseDto",
          "collection": true,
          "members": [
            {
              "name": "BasePriceId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "TermType",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      },
      "post": {
        "operationId": "create-loan-base-price",
        "tags": [
          "loans"
        ],
        "summary": "create-loan-base-price",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "basePriceId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "basePriceId"
                  },
                  "termType": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "termType",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "term_type",
                      "values": [
                        {
                          "value": 1,
                          "name": "30 Days Term",
                          "labels": {
                            "en": "30 Days Term",
                            "tr": "30 Günlük Dönem"
                          }
                        },
                        {
                          "value": 2,
                          "name": "90 Days Term",
                          "labels": {
                            "en": "90 Days Term",
                            "tr": "90 Günlük Dönem"
                          }
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "basePriceId",
                  "termType"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 2,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Body shape declared by the exact route registration for the catalog's 200 response.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Identifier returned by the command.",
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "source-grounded",
                        "source": "exact-pinned-code-response"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "source-grounded",
                    "source": "exact-pinned-code-response"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-loan-base-price",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/base-prices",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "BasePriceId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "TermType",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "command-id",
          "note": "The route returns `AuraCommandDto<Guid>`, which is the response body itself and not a wrapper around one: the framework declares it as a class with a single property, `Id`, of type `Guid`. A caller gets a JSON OBJECT with one field, not a bare value. The field is `id` on the wire.",
          "declared_type": "AuraCommandDto<Guid>",
          "envelopes": [
            "AuraCommandDto"
          ],
          "payload": "Guid",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false,
              "wire_name": "id",
              "wire_name_basis": "framework-naming-policy"
            }
          ],
          "naming": "Member names are the service's declaration names.",
          "synthesized": true
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
          "code_response_state": "command-id",
          "code_cardinality": "single-record",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/cancel": {
      "post": {
        "operationId": "cancel-loan",
        "tags": [
          "loans"
        ],
        "summary": "cancel-loan",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "description": {
                    "type": "string",
                    "x-aura-field-code": "loanCancelDescription"
                  },
                  "reason": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "loanCancelReason",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "cancel_reason",
                      "values": [
                        {
                          "value": 1,
                          "name": "customer request",
                          "labels": {
                            "en": "customer request",
                            "tr": "müşteri talebi",
                            "ar": "طلب العميل"
                          }
                        },
                        {
                          "value": 2,
                          "name": "Failed Transaction"
                        },
                        {
                          "value": 3,
                          "name": "Mismatched Transaction"
                        },
                        {
                          "value": 4,
                          "name": "Cancel For Rules",
                          "labels": {
                            "en": "Cancel For Rules",
                            "tr": "Kurallar için iptal",
                            "ar": "إلغاء وفقًا للقواعد"
                          }
                        },
                        {
                          "value": 5,
                          "name": "Cancel due to refund",
                          "labels": {
                            "en": "Cancel due to refund",
                            "tr": "İade ödemesi nedeniyle iptal et",
                            "ar": "إلغاء بسبب استرداد المبلغ"
                          }
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "description",
                  "reason"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 2,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "cancel-loan",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/cancel",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "Reason",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "Description",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_75",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_STATUS_NOT_SUITABLE_TO_UPDATE"
            }
          ]
        }
      }
    },
    "/loans/{id}/cancel-finalization": {
      "post": {
        "operationId": "cancel-loan-finalization",
        "tags": [
          "loans"
        ],
        "summary": "cancel-loan-finalization",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "description": {
                    "type": "string",
                    "x-aura-field-code": "loanCancelDescription"
                  },
                  "reason": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "loanCancelReason",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "cancel_reason",
                      "values": [
                        {
                          "value": 1,
                          "name": "customer request",
                          "labels": {
                            "en": "customer request",
                            "tr": "müşteri talebi",
                            "ar": "طلب العميل"
                          }
                        },
                        {
                          "value": 2,
                          "name": "Failed Transaction"
                        },
                        {
                          "value": 3,
                          "name": "Mismatched Transaction"
                        },
                        {
                          "value": 4,
                          "name": "Cancel For Rules",
                          "labels": {
                            "en": "Cancel For Rules",
                            "tr": "Kurallar için iptal",
                            "ar": "إلغاء وفقًا للقواعد"
                          }
                        },
                        {
                          "value": 5,
                          "name": "Cancel due to refund",
                          "labels": {
                            "en": "Cancel due to refund",
                            "tr": "İade ödemesi nedeniyle iptal et",
                            "ar": "إلغاء بسبب استرداد المبلغ"
                          }
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "description",
                  "reason"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 2,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "cancel-loan-finalization",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/cancel-finalization",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "Reason",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "Description",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_26",
              "status": 400,
              "message": {
                "ar": "حالة القرض ليست غير مناسبة للإلغاء.",
                "en": "Loan status is not unsuitable for cancellation.",
                "tr": "Kredi durumu iptal için uygun değildir."
              },
              "message_available": true,
              "constant_name": "LOAN_STATUS_MUST_NOT_BE_DIFFERENT_FINALIZED"
            },
            {
              "code": "ERR_LOAN_27",
              "status": 400,
              "message": {
                "ar": "لا يمكن إلغاء القرض لأنه قسط تم تحصيله.",
                "en": "Loan cannot be canceled as it is a collected installment.",
                "tr": "Kredi tahsil edilen bir taksit olduğu için iptal edilemez."
              },
              "message_available": true,
              "constant_name": "LOAN_INSTALLMENTS_COLLECTION_STATUS_MUST_NOT_BE_UNCOLLECTED"
            }
          ]
        }
      }
    },
    "/loans/{id}/channels": {
      "post": {
        "operationId": "create-loan-channels",
        "tags": [
          "loans"
        ],
        "summary": "create-loan-channels",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "channelType": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "cashType",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "channel_type",
                      "values": [
                        {
                          "value": 1,
                          "name": "Credit Channel",
                          "labels": {
                            "en": "Credit Channel"
                          }
                        },
                        {
                          "value": 2,
                          "name": "Foreign Trade Channel",
                          "labels": {
                            "en": "Foreign Trade Channel"
                          }
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "channelType"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Body shape declared by the exact route registration for the catalog's 200 response.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Identifier returned by the command.",
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "source-grounded",
                        "source": "exact-pinned-code-response"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "source-grounded",
                    "source": "exact-pinned-code-response"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-loan-channels",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/channels",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "ChannelType",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "command-id",
          "note": "The route returns `AuraCommandDto<Guid>`, which is the response body itself and not a wrapper around one: the framework declares it as a class with a single property, `Id`, of type `Guid`. A caller gets a JSON OBJECT with one field, not a bare value. The field is `id` on the wire.",
          "declared_type": "AuraCommandDto<Guid>",
          "envelopes": [
            "AuraCommandDto"
          ],
          "payload": "Guid",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false,
              "wire_name": "id",
              "wire_name_basis": "framework-naming-policy"
            }
          ],
          "naming": "Member names are the service's declaration names.",
          "synthesized": true
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
          "code_response_state": "command-id",
          "code_cardinality": "single-record",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/close": {
      "put": {
        "operationId": "close-loan",
        "tags": [
          "loans"
        ],
        "summary": "close-loan",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "closeDate": {
                    "type": "string",
                    "format": "date",
                    "x-aura-field-code": "closeDate"
                  },
                  "closeType": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "closeType",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "loan_close_type",
                      "values": [
                        {
                          "value": 1,
                          "name": "Early Payment",
                          "labels": {
                            "en": "Early Payment",
                            "tr": "Erken Ödeme",
                            "ar": "الدفع المبكر"
                          }
                        },
                        {
                          "value": 2,
                          "name": "On Time Payment",
                          "labels": {
                            "en": "On Time Payment",
                            "tr": "Zamanında Ödeme",
                            "ar": "الدفع في الوقت المحدد"
                          }
                        },
                        {
                          "value": 3,
                          "name": "Cancelled",
                          "labels": {
                            "en": "Cancelled",
                            "tr": "İptal Edildi",
                            "ar": "ملغاة"
                          }
                        },
                        {
                          "value": 4,
                          "name": "Legal Follow",
                          "labels": {
                            "en": "Legal Follow",
                            "tr": "Yasal Takip",
                            "ar": "متابعة قانونية"
                          }
                        },
                        {
                          "value": 5,
                          "name": "Restructure",
                          "labels": {
                            "en": "Restructure",
                            "tr": "Yapılandırma"
                          }
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "closeDate",
                  "closeType"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 2,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "close-loan",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/close",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "CloseDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "CloseType",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/collateral-usages": {
      "get": {
        "operationId": "get-loan-collateral-usage-list-by-loan-id",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-collateral-usage-list-by-loan-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "collateralUsageId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "collateralUsageId"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "collateralUsageRecordId"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-collateral-usage-list-by-loan-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/collateral-usages",
        "x-aura-capabilities": {
          "filtering": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<LoanCollateralUsageBaseDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "LoanCollateralUsageBaseDto",
          "collection": true,
          "members": [
            {
              "name": "CollateralUsageId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      },
      "post": {
        "operationId": "create-loan-collateral-usage",
        "tags": [
          "loans"
        ],
        "summary": "create-loan-collateral-usage",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "collateralUsages": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "x-aura-field-code": "collateralUsages"
                    }
                  }
                },
                "required": [
                  "collateralUsages"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-loan-collateral-usage",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/collateral-usages",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_36",
              "status": 400,
              "message": {
                "ar": "تم ربط معرف استخدام الضمان هذا بقرض. رقم القرض:{0}، معرف استخدام الضمان:{1}",
                "en": "This collateral usage was associated with a loan. Loan:{0}, Collatera ln Usage:{1}",
                "tr": "Bu teminat kullanımı bir krediyle ilişkilendirildi. Kredi: {0}, teminat kullanım: {1}"
              },
              "message_available": true,
              "constant_name": "LOAN_USAGE_ALREADY_EXISTS"
            }
          ]
        }
      }
    },
    "/loans/{id}/customer-risk-id": {
      "put": {
        "operationId": "update-loan-customer-risk-id",
        "tags": [
          "loans"
        ],
        "summary": "update-loan-customer-risk-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "customerRiskId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "customerRiskId"
                  }
                },
                "required": [
                  "customerRiskId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-loan-customer-risk-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/customer-risk-id",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "CustomerRiskId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/delegations": {
      "get": {
        "operationId": "get-loan-delegation-list",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-delegation-list",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "amount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "delegationAmount"
                      },
                      "beginDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "delegationBeginDate"
                      },
                      "currencyNumber": {
                        "type": "string",
                        "x-aura-field-code": "currencyNumber"
                      },
                      "customerId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerId"
                      },
                      "endDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "delegationEndDate"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "delegationId"
                      },
                      "partnerId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "partnerId"
                      },
                      "productCount": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "productCount"
                      },
                      "productName": {
                        "type": "string",
                        "x-aura-field-code": "productName"
                      },
                      "productType": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "productType"
                      },
                      "status": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "delegationStatus"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-delegation-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/delegations",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<LoanDelegationBaseDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "LoanDelegationBaseDto",
          "collection": true,
          "members": [
            {
              "name": "CustomerId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Amount",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Status",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "BeginDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "EndDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "PartnerId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanDelegationDetail",
              "declared_type": "List<LoanDelegationDetailDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      },
      "post": {
        "operationId": "create-loan-delegation",
        "tags": [
          "loans"
        ],
        "summary": "create-loan-delegation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "beginDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "delegationBeginDate"
                  },
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "customerId"
                  },
                  "delegationItems": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "amount": {
                          "type": "number",
                          "format": "decimal",
                          "x-aura-field-code": "amount"
                        },
                        "productCategory": {
                          "type": "string",
                          "format": "uuid",
                          "x-aura-field-code": "productCategory"
                        },
                        "productCount": {
                          "type": "integer",
                          "format": "int32",
                          "x-aura-field-code": "productCount"
                        }
                      },
                      "required": [
                        "amount",
                        "productCategory",
                        "productCount"
                      ],
                      "x-aura-field-code": "delegationItems"
                    }
                  },
                  "endDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "delegationEndDate"
                  }
                },
                "required": [
                  "beginDate",
                  "customerId",
                  "delegationItems",
                  "endDate"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 4,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "delegationId"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-loan-delegation",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/delegations",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "CustomerId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "BeginDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "EndDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "AuraCommandDto",
          "payload": "AuraCommandDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_40",
              "status": 400,
              "message": {
                "ar": "يجب أن يكون تاريخ البدء قبل تاريخ الانتهاء",
                "en": "The start date must be less than the end date",
                "tr": "Başlangıç tarihi bitiş tarihinden küçük olmalıdır"
              },
              "message_available": true,
              "constant_name": "START_DATE_NOT_ALLOWED_TO_BE_GREATER_THAN_END_DATE"
            }
          ]
        }
      }
    },
    "/loans/{id}/delegations/{delegationId}": {
      "get": {
        "operationId": "get-delegation-by-id",
        "tags": [
          "loans"
        ],
        "summary": "get-delegation-by-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "delegationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "delegationId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "amount": {
                      "type": "number",
                      "format": "decimal",
                      "x-aura-field-code": "delegationAmount"
                    },
                    "beginDate": {
                      "type": "string",
                      "format": "date-time",
                      "x-aura-field-code": "delegationBeginDate"
                    },
                    "currencyNumber": {
                      "type": "string",
                      "x-aura-field-code": "delegationCurrencyNumber"
                    },
                    "customerId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "customerId"
                    },
                    "endDate": {
                      "type": "string",
                      "format": "date-time",
                      "x-aura-field-code": "delegationEndDate"
                    },
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "delegationId"
                    },
                    "loanDelegationDetail": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "amount": {
                            "type": "number",
                            "format": "decimal",
                            "x-aura-field-code": "amount"
                          },
                          "loanDelegationDetailId": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "loanDelegationDetailId"
                          },
                          "loanDelegationId": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "loanDelegationId"
                          },
                          "productCategoryId": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "productCategoryId"
                          },
                          "productCount": {
                            "type": "integer",
                            "format": "int32",
                            "x-aura-field-code": "productCount"
                          }
                        },
                        "x-aura-field-code": "loanDelegationDetail"
                      }
                    },
                    "loanId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "loanId"
                    },
                    "partnerId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "partnerId"
                    },
                    "productCount": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "productCount"
                    },
                    "productName": {
                      "type": "string",
                      "x-aura-field-code": "productName"
                    },
                    "productType": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "productType"
                    },
                    "status": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "delegationStatus"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-delegation-by-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/delegations/{delegationId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "DelegationId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "LoanDelegationDto",
          "payload": "LoanDelegationDto",
          "collection": false,
          "members": [
            {
              "name": "LoanId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_39",
              "status": 400,
              "message": {
                "ar": "القرض - الوفد غير موجود. المعرف: {0}",
                "en": "Loan - delegation cannot be found. :{0}",
                "tr": "Kredi vekaleti bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "DELEGATION_IS_NOT_FOUND"
            }
          ]
        }
      },
      "put": {
        "operationId": "update-loan-delegation",
        "tags": [
          "loans"
        ],
        "summary": "update-loan-delegation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "delegationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "delegationId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "beginDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "delegationBeginDate"
                  },
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "customerId"
                  },
                  "delegationItems": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "amount": {
                          "type": "number",
                          "format": "decimal",
                          "x-aura-field-code": "amount"
                        },
                        "productCategory": {
                          "type": "string",
                          "format": "uuid",
                          "x-aura-field-code": "productCategory"
                        },
                        "productCount": {
                          "type": "integer",
                          "format": "int32",
                          "x-aura-field-code": "productCount"
                        }
                      },
                      "required": [
                        "amount",
                        "productCategory",
                        "productCount"
                      ],
                      "x-aura-field-code": "delegationItems"
                    }
                  },
                  "endDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "delegationEndDate"
                  }
                },
                "required": [
                  "beginDate",
                  "customerId",
                  "delegationItems",
                  "endDate"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 4,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-loan-delegation",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/delegations/{delegationId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "DelegationId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "CustomerId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "BeginDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "EndDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_39",
              "status": 400,
              "message": {
                "ar": "القرض - الوفد غير موجود. المعرف: {0}",
                "en": "Loan - delegation cannot be found. :{0}",
                "tr": "Kredi vekaleti bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "DELEGATION_IS_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_40",
              "status": 400,
              "message": {
                "ar": "يجب أن يكون تاريخ البدء قبل تاريخ الانتهاء",
                "en": "The start date must be less than the end date",
                "tr": "Başlangıç tarihi bitiş tarihinden küçük olmalıdır"
              },
              "message_available": true,
              "constant_name": "START_DATE_NOT_ALLOWED_TO_BE_GREATER_THAN_END_DATE"
            }
          ]
        }
      }
    },
    "/loans/{id}/delegations/{delegationId}/status": {
      "put": {
        "operationId": "update-loan-delegation-status",
        "tags": [
          "loans"
        ],
        "summary": "update-loan-delegation-status",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "delegationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "delegationId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "delegationStatus",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "loan_delegation_status",
                      "values": [
                        {
                          "value": 1,
                          "name": "Pending",
                          "labels": {
                            "en": "Pending",
                            "tr": "Bekleme",
                            "ar": "قيد الانتظار"
                          }
                        },
                        {
                          "value": 2,
                          "name": "Active",
                          "labels": {
                            "en": "active",
                            "tr": "Aktif",
                            "ar": "نشيط"
                          }
                        },
                        {
                          "value": 3,
                          "name": "Cancel",
                          "labels": {
                            "en": "cancel",
                            "tr": "İptal",
                            "ar": "إلغاء"
                          }
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "status"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-loan-delegation-status",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/delegations/{delegationId}/status",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "DelegationId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Status",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_39",
              "status": 400,
              "message": {
                "ar": "القرض - الوفد غير موجود. المعرف: {0}",
                "en": "Loan - delegation cannot be found. :{0}",
                "tr": "Kredi vekaleti bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "DELEGATION_IS_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/loans/{id}/expenses": {
      "post": {
        "operationId": "create-loan-expense",
        "tags": [
          "loans"
        ],
        "x-aura-documentation": {
          "language": "en",
          "status": "structural-fallback",
          "source": "catalog-structure"
        },
        "summary": "Create Loan Expense",
        "description": "Invokes the `create-loan-expense` service definition through `POST /loans/{id}/expenses`.\n\nTurkish display name: Kredi Masrafı Oluşturma",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "expenseId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "expenseId"
                  }
                },
                "required": [
                  "expenseId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Body shape declared by the exact route registration for the catalog's 200 response.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Identifier returned by the command.",
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "source-grounded",
                        "source": "exact-pinned-code-response"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "source-grounded",
                    "source": "exact-pinned-code-response"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-loan-expense",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/expenses",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "ExpenseId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "command-id",
          "note": "The route returns `AuraCommandDto<Guid>`, which is the response body itself and not a wrapper around one: the framework declares it as a class with a single property, `Id`, of type `Guid`. A caller gets a JSON OBJECT with one field, not a bare value. The field is `id` on the wire.",
          "declared_type": "AuraCommandDto<Guid>",
          "envelopes": [
            "AuraCommandDto"
          ],
          "payload": "Guid",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false,
              "wire_name": "id",
              "wire_name_basis": "framework-naming-policy"
            }
          ],
          "naming": "Member names are the service's declaration names.",
          "synthesized": true
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
          "code_response_state": "command-id",
          "code_cardinality": "single-record",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/expenses/{loanExpenseId}": {
      "delete": {
        "operationId": "delete-loan-expense",
        "tags": [
          "loans"
        ],
        "x-aura-documentation": {
          "language": "en",
          "status": "structural-fallback",
          "source": "catalog-structure"
        },
        "summary": "Delete Loan Expense",
        "description": "Invokes the `delete-loan-expense` service definition through `DELETE /loans/{id}/expenses/{loanExpenseId}`.\n\nTurkish display name: Kredi Masrafı Silme",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "loanExpenseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanExpenseId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "delete-loan-expense",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/expenses/{loanExpenseId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanExpenseId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_111",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_EXPENSE_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/expenses/{loanExpenseId}/include": {
      "put": {
        "operationId": "update-loan-expense-include",
        "tags": [
          "loans"
        ],
        "summary": "update-loan-expense-include",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          },
          {
            "name": "loanExpenseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanExpenseId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "isInclude": {
                    "type": "boolean",
                    "x-aura-field-code": "isInclude"
                  }
                },
                "required": [
                  "isInclude"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-loan-expense-include",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/expenses/{loanExpenseId}/include",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanExpenseId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsInclude",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_111",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_EXPENSE_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/external-transaction-id": {
      "put": {
        "operationId": "update-loan-external-transaction-id",
        "tags": [
          "loans"
        ],
        "summary": "update-loan-external-transaction-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "externalTransactionid": {
                    "type": "string",
                    "x-aura-field-code": "externalTransactionid"
                  }
                },
                "required": [
                  "externalTransactionid"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-loan-external-transaction-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/external-transaction-id",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "ExternalTransactionid",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/finalization": {
      "post": {
        "operationId": "loan-finalization",
        "tags": [
          "loans"
        ],
        "summary": "loan-finalization",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "accountingEntryId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "accountingEntryId"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-finalization",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/finalization",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_24",
              "status": 400,
              "message": {
                "ar": "لم يتم الانتهاء من صرف المستحقات للبائع. لا يمكن إنهاء القرض.",
                "en": "Vendor disbursement is not completed. Loan cannot be finalized.",
                "tr": "Satıcı ödemesi tamamlanmadı.Kredi kesinleştirilemez."
              },
              "message_available": true,
              "constant_name": "LOAN_VENDOR_DISBURSEMENT_SUM_AMOUNT_CONTROL"
            },
            {
              "code": "ERR_LOAN_25",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_CANCEL_PROCESS_STATUS_CONTROL"
            }
          ]
        }
      }
    },
    "/loans/{id}/guarantors": {
      "get": {
        "operationId": "get-loan-guarantor-list",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-guarantor-list",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "amount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "amount"
                      },
                      "currencyNumber": {
                        "type": "string",
                        "x-aura-field-code": "currencyNumber"
                      },
                      "customerId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerId"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "guarantorId"
                      },
                      "proximity": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "proximity"
                      },
                      "status": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "status"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-guarantor-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/guarantors",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<GetLoanGuarantorDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "GetLoanGuarantorDto",
          "collection": true,
          "members": [
            {
              "name": "CustomerId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Proximity",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Amount",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CurrencyNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Status",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      },
      "post": {
        "operationId": "create-loan-guarantor",
        "tags": [
          "loans"
        ],
        "summary": "create-loan-guarantor",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "guarantorAmount"
                  },
                  "currencyNumber": {
                    "type": "string",
                    "x-aura-field-code": "currencyNumber"
                  },
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "customerId"
                  },
                  "proximity": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "proximity",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "guarantor_proximity",
                      "values": [
                        {
                          "value": 1,
                          "name": "mother",
                          "labels": {
                            "en": "mother",
                            "tr": "anne",
                            "ar": "أم"
                          }
                        },
                        {
                          "value": 2,
                          "name": "father",
                          "labels": {
                            "en": "father",
                            "tr": "baba",
                            "ar": "أب"
                          }
                        },
                        {
                          "value": 3,
                          "name": "spouse",
                          "labels": {
                            "en": "spouse",
                            "tr": "eş",
                            "ar": "الزوج أو الزوجة"
                          }
                        },
                        {
                          "value": 4,
                          "name": "sibling",
                          "labels": {
                            "en": "sibling",
                            "tr": "kardeş",
                            "ar": "أخ أو أخت"
                          }
                        },
                        {
                          "value": 5,
                          "name": "other",
                          "labels": {
                            "en": "other",
                            "tr": "diğer",
                            "ar": "آخر"
                          }
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "amount",
                  "currencyNumber",
                  "customerId",
                  "proximity"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 4,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "loanGuarantorId"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-loan-guarantor",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/guarantors",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "CustomerId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Proximity",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Amount",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "CurrencyNumber",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "AuraCommandDto",
          "payload": "AuraCommandDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_38",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على رقم العملة.",
                "en": "Currency Number cannot be found.",
                "tr": "Döviz Kodu bulunamadı."
              },
              "message_available": true,
              "constant_name": "CURRENCY_ID_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_41",
              "status": 400,
              "message": {
                "ar": "تمت إضافة استخدام الكفيل بالفعل إلى القرض. الرقم التعريفي: {0}",
                "en": "The use of guarantor has already been added to the loan.:{0}",
                "tr": "Kefil kullanımı zaten krediye eklenmiştir :{0}"
              },
              "message_available": true,
              "constant_name": "GUARANTOR_HAS_BEEN_REGISTERED"
            }
          ]
        }
      }
    },
    "/loans/{id}/guarantors/{guarantorId}": {
      "delete": {
        "operationId": "delete-loan-guarantor",
        "tags": [
          "loans"
        ],
        "summary": "delete-loan-guarantor",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "guarantorId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "guarantorId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "delete-loan-guarantor",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/guarantors/{guarantorId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "GuarantorId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_42",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على الضامن. الرقم التعريفي:{0}",
                "en": "Guarantor cannot be found. :{0}",
                "tr": "Kefil bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "GUARANTOR_IS_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/loans/{id}/guarantors/{guarantorId}/status": {
      "put": {
        "operationId": "update-loan-guarantor-status",
        "tags": [
          "loans"
        ],
        "summary": "update-loan-guarantor-status",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "guarantorId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "guarantorId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "status",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "loan_guarantor_status",
                      "values": [
                        {
                          "value": 1,
                          "name": "active",
                          "labels": {
                            "en": "active",
                            "tr": "aktif",
                            "ar": "نشط"
                          }
                        },
                        {
                          "value": 2,
                          "name": "passive",
                          "labels": {
                            "en": "passive",
                            "tr": "pasif",
                            "ar": "مبني للمجهول"
                          }
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "status"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-loan-guarantor-status",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/guarantors/{guarantorId}/status",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "GuarantorId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Status",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_42",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على الضامن. الرقم التعريفي:{0}",
                "en": "Guarantor cannot be found. :{0}",
                "tr": "Kefil bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "GUARANTOR_IS_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/loans/{id}/installment-accruals/change-bulk-status": {
      "put": {
        "operationId": "update-installment-accrual-status",
        "tags": [
          "loans"
        ],
        "summary": "update-installment-accrual-status",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "installments": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "installmentId": {
                          "type": "string",
                          "format": "uuid",
                          "x-aura-field-code": "installmentId"
                        },
                        "isAccrual": {
                          "type": "boolean",
                          "x-aura-field-code": "isAccrual"
                        }
                      },
                      "required": [
                        "installmentId",
                        "isAccrual"
                      ],
                      "x-aura-field-code": "installments"
                    }
                  }
                },
                "required": [
                  "installments"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-installment-accrual-status",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/installment-accruals/change-bulk-status",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_34",
              "status": 400,
              "message": {
                "ar": "لا يمكن إرسال القسط نفسه أكثر من مرة في القائمة. رقم القسط:{0}",
                "en": "The same installment cannot be sent more than once in the list. Installment:{0}",
                "tr": "Aynı taksit listede birden fazla gönderilemez. Taksit: {0}"
              },
              "message_available": true,
              "constant_name": "LOAN_INSTALLMENT_MUST_NOT_BE_SAME"
            }
          ]
        }
      }
    },
    "/loans/{id}/installment-collections/change-bulk-status": {
      "put": {
        "operationId": "update-installment-collection-status",
        "tags": [
          "loans"
        ],
        "summary": "update-installment-collection-status",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "installments": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "collectionStatus": {
                          "type": "integer",
                          "format": "int32",
                          "x-aura-field-code": "collectionStatus"
                        },
                        "installmentId": {
                          "type": "string",
                          "format": "uuid",
                          "x-aura-field-code": "installmentId"
                        }
                      },
                      "required": [
                        "collectionStatus",
                        "installmentId"
                      ],
                      "x-aura-field-code": "installments"
                    }
                  }
                },
                "required": [
                  "installments"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-installment-collection-status",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/installment-collections/change-bulk-status",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_34",
              "status": 400,
              "message": {
                "ar": "لا يمكن إرسال القسط نفسه أكثر من مرة في القائمة. رقم القسط:{0}",
                "en": "The same installment cannot be sent more than once in the list. Installment:{0}",
                "tr": "Aynı taksit listede birden fazla gönderilemez. Taksit: {0}"
              },
              "message_available": true,
              "constant_name": "LOAN_INSTALLMENT_MUST_NOT_BE_SAME"
            }
          ]
        }
      }
    },
    "/loans/{id}/installments": {
      "get": {
        "operationId": "get-installment-list-by-id",
        "tags": [
          "loans"
        ],
        "summary": "get-installment-list-by-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "collectionStatus": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "collectionStatus"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "installmentId"
                      },
                      "installmentDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "installmentDate"
                      },
                      "installmentDetails": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "calculatedDate": {
                              "type": "string",
                              "format": "date-time",
                              "x-aura-field-code": "calculatedDate"
                            },
                            "collectionDetailType": {
                              "type": "integer",
                              "format": "int32",
                              "x-aura-field-code": "collectionDetailType"
                            },
                            "id": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "installmentDetailId"
                            },
                            "remainingAmount": {
                              "type": "number",
                              "format": "decimal",
                              "x-aura-field-code": "remainingAmount"
                            },
                            "totalAmount": {
                              "type": "number",
                              "format": "decimal",
                              "x-aura-field-code": "totalAmount"
                            }
                          },
                          "x-aura-field-code": "installmentCollectionDetails"
                        }
                      },
                      "installmentNo": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "installmentNo"
                      },
                      "installmentTotalAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "installmentTotalAmount"
                      },
                      "isAccrual": {
                        "type": "boolean",
                        "x-aura-field-code": "isAccrual"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-installment-list-by-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/installments",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<InstallmentQueryDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "InstallmentQueryDto",
          "collection": true,
          "members": [
            {
              "name": "InstallmentNo",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "InstallmentDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "CollectionStatus",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "IsAccrual",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            },
            {
              "name": "InstallmentTotalAmount",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "InstallmentDetails",
              "declared_type": "List<InstallmentDetailDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      }
    },
    "/loans/{id}/insurances": {
      "get": {
        "operationId": "get-insurance-by-loan-id",
        "tags": [
          "loans"
        ],
        "summary": "get-insurance-by-loan-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "chassisNumber": {
                        "type": "string",
                        "x-aura-field-code": "chassisNumber"
                      },
                      "company": {
                        "type": "string",
                        "x-aura-field-code": "company"
                      },
                      "coverageAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "coverageAmount"
                      },
                      "coverageCurrencyNumber": {
                        "type": "string",
                        "x-aura-field-code": "coverageCurrencyNumber"
                      },
                      "endDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "insuranceEndDate"
                      },
                      "engineNumber": {
                        "type": "string",
                        "x-aura-field-code": "engineNumber"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "insuranceId"
                      },
                      "loanId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanId"
                      },
                      "lossPayee": {
                        "type": "string",
                        "x-aura-field-code": "lossPayee"
                      },
                      "plate": {
                        "type": "string",
                        "x-aura-field-code": "plate"
                      },
                      "policyHolderFullname": {
                        "type": "string",
                        "x-aura-field-code": "policyHolderFullname"
                      },
                      "policyHolderNumber": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "policyHolderNumber"
                      },
                      "policyNumber": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "policyNumber"
                      },
                      "premiumAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "premiumAmount"
                      },
                      "premiumCurrencyNumber": {
                        "type": "string",
                        "x-aura-field-code": "premiumCurrencyId"
                      },
                      "productName": {
                        "type": "string",
                        "x-aura-field-code": "productName"
                      },
                      "startDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "insuranceStartDate"
                      },
                      "type": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "insuranceType"
                      },
                      "vehicleBrand": {
                        "type": "string",
                        "x-aura-field-code": "vehicleBrand"
                      },
                      "vehicleModel": {
                        "type": "string",
                        "x-aura-field-code": "vehicleModel"
                      },
                      "vehicleType": {
                        "type": "string",
                        "x-aura-field-code": "vehicleType"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-insurance-by-loan-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/insurances",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<InsuranceDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "InsuranceDto",
          "collection": true,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Type",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "PolicyNumber",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ProductName",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Company",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "PolicyHolderNumber",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CoverageCurrencyNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "PolicyHolderFullname",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LossPayee",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VehicleBrand",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VehicleModel",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VehicleType",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "EngineNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ChassisNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Plate",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "PremiumAmount",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "PremiumCurrencyNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CoverageAmount",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "StartDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "EndDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      },
      "post": {
        "operationId": "create-insurance",
        "tags": [
          "loans"
        ],
        "summary": "create-insurance",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chassisNumber": {
                    "type": "string",
                    "x-aura-field-code": "chassisNumber"
                  },
                  "company": {
                    "type": "string",
                    "x-aura-field-code": "company"
                  },
                  "coverageAmount": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "coverageAmount"
                  },
                  "coverageCurrencyNumber": {
                    "type": "string",
                    "x-aura-field-code": "coverageCurrencyNumber"
                  },
                  "endDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "insuranceEndDate"
                  },
                  "engineNumber": {
                    "type": "string",
                    "x-aura-field-code": "engineNumber"
                  },
                  "lossPayee": {
                    "type": "string",
                    "x-aura-field-code": "lossPayee"
                  },
                  "plate": {
                    "type": "string",
                    "x-aura-field-code": "plate"
                  },
                  "policyHolderFullname": {
                    "type": "string",
                    "x-aura-field-code": "policyHolderFullname"
                  },
                  "policyHolderNumber": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "policyHolderNumber"
                  },
                  "policyNumber": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "policyNumber"
                  },
                  "premiumAmount": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "premiumAmount"
                  },
                  "premiumCurrencyNumber": {
                    "type": "string",
                    "x-aura-field-code": "premiumCurrencyNumber"
                  },
                  "productName": {
                    "type": "string",
                    "x-aura-field-code": "productName"
                  },
                  "startDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "insuranceStartDate"
                  },
                  "type": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "insuranceType",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "insurance_type",
                      "values": [
                        {
                          "value": 1,
                          "name": "Trafik Sigortasi",
                          "labels": {
                            "en": "Traffic Insurance",
                            "tr": "Trafik Sigortasi"
                          }
                        },
                        {
                          "value": 2,
                          "name": "Kasko",
                          "labels": {
                            "tr": "Kasko"
                          }
                        }
                      ]
                    }
                  },
                  "vehicleBrand": {
                    "type": "string",
                    "x-aura-field-code": "vehicleBrand"
                  },
                  "vehicleModel": {
                    "type": "string",
                    "x-aura-field-code": "vehicleModel"
                  },
                  "vehicleType": {
                    "type": "string",
                    "x-aura-field-code": "vehicleType"
                  }
                },
                "required": [
                  "company",
                  "policyHolderNumber",
                  "policyNumber",
                  "productName",
                  "type"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 19,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Body shape declared by the exact route registration for the catalog's 200 response.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Identifier returned by the command.",
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "source-grounded",
                        "source": "exact-pinned-code-response"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "source-grounded",
                    "source": "exact-pinned-code-response"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-insurance",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/insurances",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Type",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PolicyNumber",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "ProductName",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Company",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PolicyHolderNumber",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "CoverageCurrencyNumber",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PolicyHolderFullname",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "LossPayee",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "VehicleBrand",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "VehicleModel",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "VehicleType",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "EngineNumber",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "ChassisNumber",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Plate",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PremiumAmount",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "PremiumCurrencyNumber",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "CoverageAmount",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "StartDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "EndDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "command-id",
          "note": "The route returns `AuraCommandDto<Guid>`, which is the response body itself and not a wrapper around one: the framework declares it as a class with a single property, `Id`, of type `Guid`. A caller gets a JSON OBJECT with one field, not a bare value. The field is `id` on the wire.",
          "declared_type": "AuraCommandDto<Guid>",
          "envelopes": [
            "AuraCommandDto"
          ],
          "payload": "Guid",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false,
              "wire_name": "id",
              "wire_name_basis": "framework-naming-policy"
            }
          ],
          "naming": "Member names are the service's declaration names.",
          "synthesized": true
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
          "code_response_state": "command-id",
          "code_cardinality": "single-record",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/insurances/{insuranceId}": {
      "delete": {
        "operationId": "delete-insurance",
        "tags": [
          "loans"
        ],
        "summary": "delete-insurance",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "insuranceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "insuranceId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "delete-insurance",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/insurances/{insuranceId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "InsuranceId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_95",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_INSURANCE_NOT_FOUND"
            }
          ]
        }
      },
      "get": {
        "operationId": "get-insurance-by-id",
        "tags": [
          "loans"
        ],
        "summary": "get-insurance-by-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "insuranceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "insuranceId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "chassisNumber": {
                      "type": "string",
                      "x-aura-field-code": "chassisNumber"
                    },
                    "company": {
                      "type": "string",
                      "x-aura-field-code": "company"
                    },
                    "coverageAmount": {
                      "type": "number",
                      "format": "decimal",
                      "x-aura-field-code": "coverageAmount"
                    },
                    "coverageCurrencyNumber": {
                      "type": "string",
                      "x-aura-field-code": "coverageCurrencyNumber"
                    },
                    "endDate": {
                      "type": "string",
                      "format": "date-time",
                      "x-aura-field-code": "insuranceEndDate"
                    },
                    "engineNumber": {
                      "type": "string",
                      "x-aura-field-code": "engineNumber"
                    },
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "insuranceId"
                    },
                    "loanId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "loanId"
                    },
                    "lossPayee": {
                      "type": "string",
                      "x-aura-field-code": "lossPayee"
                    },
                    "plate": {
                      "type": "string",
                      "x-aura-field-code": "plate"
                    },
                    "policyHolderFullname": {
                      "type": "string",
                      "x-aura-field-code": "policyHolderFullname"
                    },
                    "policyHolderNumber": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "policyHolderNumber"
                    },
                    "policyNumber": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "policyNumber"
                    },
                    "premiumAmount": {
                      "type": "number",
                      "format": "decimal",
                      "x-aura-field-code": "premiumAmount"
                    },
                    "premiumCurrencyNumber": {
                      "type": "string",
                      "x-aura-field-code": "premiumCurrencyId"
                    },
                    "productName": {
                      "type": "string",
                      "x-aura-field-code": "productName"
                    },
                    "startDate": {
                      "type": "string",
                      "format": "date-time",
                      "x-aura-field-code": "insuranceStartDate"
                    },
                    "type": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "insuranceType"
                    },
                    "vehicleBrand": {
                      "type": "string",
                      "x-aura-field-code": "vehicleBrand"
                    },
                    "vehicleModel": {
                      "type": "string",
                      "x-aura-field-code": "vehicleModel"
                    },
                    "vehicleType": {
                      "type": "string",
                      "x-aura-field-code": "vehicleType"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-insurance-by-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/insurances/{insuranceId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "InsuranceId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "InsuranceDto",
          "payload": "InsuranceDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Type",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "PolicyNumber",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ProductName",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Company",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "PolicyHolderNumber",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CoverageCurrencyNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "PolicyHolderFullname",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LossPayee",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VehicleBrand",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VehicleModel",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VehicleType",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "EngineNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ChassisNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Plate",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "PremiumAmount",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "PremiumCurrencyNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CoverageAmount",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "StartDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "EndDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_95",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_INSURANCE_NOT_FOUND"
            }
          ]
        }
      },
      "put": {
        "operationId": "update-insurance",
        "tags": [
          "loans"
        ],
        "summary": "update-insurance",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "insuranceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "insuranceId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chassisNumber": {
                    "type": "string",
                    "x-aura-field-code": "chassisNumber"
                  },
                  "company": {
                    "type": "string",
                    "x-aura-field-code": "company"
                  },
                  "coverageAmount": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "coverageAmount"
                  },
                  "coverageCurrencyNumber": {
                    "type": "string",
                    "x-aura-field-code": "coverageCurrencyNumber"
                  },
                  "endDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "insuranceEndDate"
                  },
                  "engineNumber": {
                    "type": "string",
                    "x-aura-field-code": "engineNumber"
                  },
                  "lossPayee": {
                    "type": "string",
                    "x-aura-field-code": "lossPayee"
                  },
                  "plate": {
                    "type": "string",
                    "x-aura-field-code": "plate"
                  },
                  "policyHolderFullname": {
                    "type": "string",
                    "x-aura-field-code": "policyHolderFullname"
                  },
                  "policyHolderNumber": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "policyHolderNumber"
                  },
                  "policyNumber": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "policyNumber"
                  },
                  "premiumAmount": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "premiumAmount"
                  },
                  "premiumCurrencyNumber": {
                    "type": "string",
                    "x-aura-field-code": "premiumCurrencyNumber"
                  },
                  "productName": {
                    "type": "string",
                    "x-aura-field-code": "productName"
                  },
                  "startDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "insuranceStartDate"
                  },
                  "type": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "insuranceType",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "insurance_type",
                      "values": [
                        {
                          "value": 1,
                          "name": "Trafik Sigortasi",
                          "labels": {
                            "en": "Traffic Insurance",
                            "tr": "Trafik Sigortasi"
                          }
                        },
                        {
                          "value": 2,
                          "name": "Kasko",
                          "labels": {
                            "tr": "Kasko"
                          }
                        }
                      ]
                    }
                  },
                  "vehicleBrand": {
                    "type": "string",
                    "x-aura-field-code": "vehicleBrand"
                  },
                  "vehicleModel": {
                    "type": "string",
                    "x-aura-field-code": "vehicleModel"
                  },
                  "vehicleType": {
                    "type": "string",
                    "x-aura-field-code": "vehicleType"
                  }
                },
                "required": [
                  "type"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 19,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-insurance",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/insurances/{insuranceId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "InsuranceId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Type",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PolicyNumber",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "ProductName",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Company",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PolicyHolderNumber",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "CoverageCurrencyNumber",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PolicyHolderFullname",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "LossPayee",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "VehicleBrand",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "VehicleModel",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "VehicleType",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "EngineNumber",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "ChassisNumber",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Plate",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PremiumAmount",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "PremiumCurrencyNumber",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "CoverageAmount",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "StartDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "EndDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_95",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_INSURANCE_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/loans/{id}/invoices": {
      "get": {
        "operationId": "get-loan-invoice-by-loan-id",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-invoice-by-loan-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "invoiceId"
                      },
                      "invoiceAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "invoiceAmount"
                      },
                      "invoiceDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "invoiceDate"
                      },
                      "invoiceIssuer": {
                        "type": "string",
                        "x-aura-field-code": "invoiceIssuer"
                      },
                      "isOfficialInvoice": {
                        "type": "boolean",
                        "x-aura-field-code": "isOfficialInvoice"
                      },
                      "loanId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanId"
                      },
                      "serialNumber": {
                        "type": "string",
                        "x-aura-field-code": "serialNumber"
                      },
                      "shipmentDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "shipmentDate"
                      },
                      "usingInvoiceAmount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "usingInvoiceAmount"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-invoice-by-loan-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/invoices",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<LoanInvoiceDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "LoanInvoiceDto",
          "collection": true,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "InvoiceAmount",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "InvoiceDate",
              "declared_type": "DateOnly?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "SerialNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "UsingInvoiceAmount",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ShipmentDate",
              "declared_type": "DateOnly?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "InvoiceIssuer",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsOfficialInvoice",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      },
      "post": {
        "operationId": "create-loan-invoice",
        "tags": [
          "loans"
        ],
        "summary": "create-loan-invoice",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "invoiceAmount": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "invoiceAmount"
                  },
                  "invoiceDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "invoiceDate"
                  },
                  "invoiceIssuer": {
                    "type": "string",
                    "x-aura-field-code": "invoiceIssuer"
                  },
                  "isOfficialInvoice": {
                    "type": "boolean",
                    "x-aura-field-code": "isOfficialInvoice"
                  },
                  "serialNumber": {
                    "type": "string",
                    "x-aura-field-code": "serialNumber"
                  },
                  "shipmentDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "shipmentDate"
                  },
                  "usingInvoiceAmount": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "usingInvoiceAmount"
                  }
                },
                "required": [
                  "invoiceAmount",
                  "invoiceDate",
                  "invoiceIssuer",
                  "serialNumber",
                  "shipmentDate",
                  "usingInvoiceAmount"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 7,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Body shape declared by the exact route registration for the catalog's 200 response.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Identifier returned by the command.",
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "source-grounded",
                        "source": "exact-pinned-code-response"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "source-grounded",
                    "source": "exact-pinned-code-response"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-loan-invoice",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/invoices",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "InvoiceAmount",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "InvoiceDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "SerialNumber",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "UsingInvoiceAmount",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "ShipmentDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "InvoiceIssuer",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsOfficialInvoice",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "command-id",
          "note": "The route returns `AuraCommandDto<Guid>`, which is the response body itself and not a wrapper around one: the framework declares it as a class with a single property, `Id`, of type `Guid`. A caller gets a JSON OBJECT with one field, not a bare value. The field is `id` on the wire.",
          "declared_type": "AuraCommandDto<Guid>",
          "envelopes": [
            "AuraCommandDto"
          ],
          "payload": "Guid",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false,
              "wire_name": "id",
              "wire_name_basis": "framework-naming-policy"
            }
          ],
          "naming": "Member names are the service's declaration names.",
          "synthesized": true
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
          "code_response_state": "command-id",
          "code_cardinality": "single-record",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/invoices/{invoiceId}": {
      "get": {
        "operationId": "get-loan-invoice-by-id",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-invoice-by-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "invoiceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "invoiceId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration classifies this response as a single-record.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-invoice-by-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/invoices/{invoiceId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "InvoiceId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "LoanInvoiceDto",
          "payload": "LoanInvoiceDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "InvoiceAmount",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "InvoiceDate",
              "declared_type": "DateOnly?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "SerialNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "UsingInvoiceAmount",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ShipmentDate",
              "declared_type": "DateOnly?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "InvoiceIssuer",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsOfficialInvoice",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration classifies this response as a single-record.",
          "code_response_state": "structure",
          "code_cardinality": "single-record",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_107",
              "status": 400,
              "message": {
                "ar": "يجب أن يكون تاريخ القرض اليوم للإلغاء",
                "en": "Loan Date Must Be Today For Cancel"
              },
              "message_available": true,
              "constant_name": "LOAN_INVOICE_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      },
      "put": {
        "operationId": "update-loan-invoice",
        "tags": [
          "loans"
        ],
        "summary": "update-loan-invoice",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "invoiceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "invoiceId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "invoiceAmount": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "invoiceAmount"
                  },
                  "invoiceDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "invoiceDate"
                  },
                  "invoiceIssuer": {
                    "type": "string",
                    "x-aura-field-code": "invoiceIssuer"
                  },
                  "isOfficialInvoice": {
                    "type": "boolean",
                    "x-aura-field-code": "isOfficialInvoice"
                  },
                  "serialNumber": {
                    "type": "string",
                    "x-aura-field-code": "serialNumber"
                  },
                  "shipmentDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "shipmentDate"
                  },
                  "usingInvoiceAmount": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "usingInvoiceAmount"
                  }
                },
                "required": [
                  "invoiceAmount",
                  "invoiceDate",
                  "invoiceIssuer",
                  "serialNumber",
                  "shipmentDate",
                  "usingInvoiceAmount"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 7,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-loan-invoice",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/invoices/{invoiceId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "InvoiceId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "InvoiceAmount",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "InvoiceDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "SerialNumber",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "UsingInvoiceAmount",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "ShipmentDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "InvoiceIssuer",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsOfficialInvoice",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_107",
              "status": 400,
              "message": {
                "ar": "يجب أن يكون تاريخ القرض اليوم للإلغاء",
                "en": "Loan Date Must Be Today For Cancel"
              },
              "message_available": true,
              "constant_name": "LOAN_INVOICE_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/metal-purchases": {
      "post": {
        "operationId": "create-loan-metal-purchase",
        "tags": [
          "loans"
        ],
        "summary": "create-loan-metal-purchase",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "x-aura-field-code": "code"
                  },
                  "currencyId": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "currencyId"
                  },
                  "glBalanceId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "glBalanceId"
                  },
                  "unitPrice": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "unitPrice"
                  },
                  "weight": {
                    "type": "number",
                    "x-aura-field-code": "weight"
                  }
                },
                "required": [
                  "code",
                  "currencyId",
                  "glBalanceId",
                  "unitPrice",
                  "weight"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 5,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Body shape declared by the exact route registration for the catalog's 200 response.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Identifier returned by the command.",
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "source-grounded",
                        "source": "exact-pinned-code-response"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "source-grounded",
                    "source": "exact-pinned-code-response"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-loan-metal-purchase",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/metal-purchases",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "CurrencyId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Code",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "UnitPrice",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Weight",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "GlBalanceId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "command-id",
          "note": "The route returns `AuraCommandDto<Guid>`, which is the response body itself and not a wrapper around one: the framework declares it as a class with a single property, `Id`, of type `Guid`. A caller gets a JSON OBJECT with one field, not a bare value. The field is `id` on the wire.",
          "declared_type": "AuraCommandDto<Guid>",
          "envelopes": [
            "AuraCommandDto"
          ],
          "payload": "Guid",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false,
              "wire_name": "id",
              "wire_name_basis": "framework-naming-policy"
            }
          ],
          "naming": "Member names are the service's declaration names.",
          "synthesized": true
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
          "code_response_state": "command-id",
          "code_cardinality": "single-record",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/orders": {
      "get": {
        "operationId": "get-loan-order-list-by-loan-id",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-order-list-by-loan-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "amount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "amount"
                      },
                      "billNo": {
                        "type": "string",
                        "x-aura-field-code": "billNo"
                      },
                      "currencyNumber": {
                        "type": "string",
                        "x-aura-field-code": "currencyNumber"
                      },
                      "externalVendorId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "externalVendorId"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "orderId"
                      },
                      "internalVendorId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "internalVendorId"
                      },
                      "orderDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "orderDate"
                      },
                      "productCount": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "productCount"
                      },
                      "productName": {
                        "type": "string",
                        "x-aura-field-code": "productName"
                      },
                      "productType": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "productType"
                      },
                      "status": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "status"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-order-list-by-loan-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/orders",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<LoanOrderBaseDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "LoanOrderBaseDto",
          "collection": true,
          "members": [
            {
              "name": "InternalVendorId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ExternalVendorId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Amount",
              "declared_type": "decimal",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CurrencyNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Status",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ProductType",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ProductName",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ProductCount",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "BillNo",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      },
      "post": {
        "operationId": "create-loan-order",
        "tags": [
          "loans"
        ],
        "summary": "create-loan-order",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "loanOrderAmount"
                  },
                  "billNo": {
                    "type": "string",
                    "x-aura-field-code": "billNo"
                  },
                  "currencyNumber": {
                    "type": "string",
                    "x-aura-field-code": "currencyNumber"
                  },
                  "externalVendorId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "externalVendorId"
                  },
                  "internalVendorId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "internalVendorId"
                  },
                  "orderDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "orderDate"
                  },
                  "productCount": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "productCount"
                  },
                  "productName": {
                    "type": "string",
                    "x-aura-field-code": "productName"
                  },
                  "productType": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "productType",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "product_type",
                      "values": [
                        {
                          "value": 1,
                          "name": "Electronik goods",
                          "labels": {
                            "en": "electronic goods",
                            "tr": "Elektronik eşyalar",
                            "ar": "سلع إلكترونية"
                          }
                        },
                        {
                          "value": 2,
                          "name": "Telecommunication products",
                          "labels": {
                            "en": "Telecommunication products",
                            "tr": "Telekominasyon ürünü",
                            "ar": "منتجات الاتصالات"
                          }
                        },
                        {
                          "value": 3,
                          "name": "Construction Materials",
                          "labels": {
                            "en": "Construction Materials",
                            "tr": "İnşaat malzemeleri",
                            "ar": "مواد البناء"
                          }
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "amount",
                  "billNo",
                  "currencyNumber",
                  "externalVendorId",
                  "internalVendorId",
                  "orderDate",
                  "productCount",
                  "productName",
                  "productType"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 9,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "orderId"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-loan-order",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/orders",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "InternalVendorId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "ExternalVendorId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "Amount",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "CurrencyNumber",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "ProductType",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "ProductName",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "ProductCount",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "BillNo",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "AuraCommandDto",
          "payload": "AuraCommandDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_38",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على رقم العملة.",
                "en": "Currency Number cannot be found.",
                "tr": "Döviz Kodu bulunamadı."
              },
              "message_available": true,
              "constant_name": "CURRENCY_ID_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/loans/{id}/orders/{orderId}": {
      "put": {
        "operationId": "update-loan-order",
        "tags": [
          "loans"
        ],
        "summary": "update-loan-order",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "orderId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "loanOrderAmount"
                  },
                  "billNo": {
                    "type": "string",
                    "x-aura-field-code": "billNo"
                  },
                  "currencyNumber": {
                    "type": "string",
                    "x-aura-field-code": "currencyNumber"
                  },
                  "externalVendorId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "externalVendorId"
                  },
                  "internalVendorId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "internalVendorId"
                  },
                  "orderDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "orderDate"
                  },
                  "productCount": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "productCount"
                  },
                  "productName": {
                    "type": "string",
                    "x-aura-field-code": "productName"
                  },
                  "productType": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "productType",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "product_type",
                      "values": [
                        {
                          "value": 1,
                          "name": "Electronik goods",
                          "labels": {
                            "en": "electronic goods",
                            "tr": "Elektronik eşyalar",
                            "ar": "سلع إلكترونية"
                          }
                        },
                        {
                          "value": 2,
                          "name": "Telecommunication products",
                          "labels": {
                            "en": "Telecommunication products",
                            "tr": "Telekominasyon ürünü",
                            "ar": "منتجات الاتصالات"
                          }
                        },
                        {
                          "value": 3,
                          "name": "Construction Materials",
                          "labels": {
                            "en": "Construction Materials",
                            "tr": "İnşaat malzemeleri",
                            "ar": "مواد البناء"
                          }
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "amount",
                  "billNo",
                  "currencyNumber",
                  "externalVendorId",
                  "internalVendorId",
                  "orderDate",
                  "productCount",
                  "productName",
                  "productType"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 9,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-loan-order",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/orders/{orderId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "InternalVendorId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "ExternalVendorId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "Amount",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "CurrencyNumber",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "ProductType",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "ProductName",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "ProductCount",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "BillNo",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_2",
              "status": 400,
              "message": {
                "ar": "المورد الداخلي غير موجود. المعرف: {0}",
                "en": "Internal vendor cannot be found. :{0}",
                "tr": "Dahili satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_INTERNAL_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_37",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على الطلب. المعرف:{0}",
                "en": "Order cannot be found. :{0}",
                "tr": "Sıra bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "ORDER_IS_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_38",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على رقم العملة.",
                "en": "Currency Number cannot be found.",
                "tr": "Döviz Kodu bulunamadı."
              },
              "message_available": true,
              "constant_name": "CURRENCY_ID_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/loans/{id}/orders/{orderId}/status": {
      "put": {
        "operationId": "update-loan-order-status",
        "tags": [
          "loans"
        ],
        "summary": "update-loan-order-status",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "orderId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "status",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "loan_order_status",
                      "values": [
                        {
                          "value": 2,
                          "name": "Active",
                          "labels": {
                            "en": "active",
                            "tr": "Aktif",
                            "ar": "نشط"
                          }
                        },
                        {
                          "value": 1,
                          "name": "Pending",
                          "labels": {
                            "en": "pending",
                            "tr": "Onayda",
                            "ar": "قيد الانتظار"
                          }
                        },
                        {
                          "value": 3,
                          "name": "Cancel",
                          "labels": {
                            "en": "cancel",
                            "tr": "İptal",
                            "ar": "إلغاء"
                          }
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "status"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-loan-order-status",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/orders/{orderId}/status",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Status",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_37",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على الطلب. المعرف:{0}",
                "en": "Order cannot be found. :{0}",
                "tr": "Sıra bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "ORDER_IS_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/loans/{id}/payback-plans": {
      "post": {
        "operationId": "create-loan-payback-plan",
        "tags": [
          "loans"
        ],
        "summary": "create-loan-payback-plan",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "paybackPlanId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "paybackPlanId"
                  }
                },
                "required": [
                  "paybackPlanId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration classifies this response as a single-record.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-loan-payback-plan",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/payback-plans",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PaybackPlanId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "AuraCommandDto",
          "payload": "AuraCommandDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration classifies this response as a single-record.",
          "code_response_state": "structure",
          "code_cardinality": "single-record",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_13",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_PAYBACK_PLAN_IS_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/payback-plans/{loanPaybackPlanId}/taxes": {
      "get": {
        "operationId": "get-loan-payback-plan-tax-list-by-id",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-payback-plan-tax-list-by-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "loanPaybackPlanId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanPaybackPlanId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanPaybackPlanTaxId"
                      },
                      "taxId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "taxId"
                      },
                      "taxRate": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "taxRate"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-payback-plan-tax-list-by-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/payback-plans/{loanPaybackPlanId}/taxes",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanPaybackPlanId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<LoanPaybackPlanTaxDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "LoanPaybackPlanTaxDto",
          "collection": true,
          "members": [
            {
              "name": "TaxId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "TaxRate",
              "declared_type": "decimal",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_13",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_PAYBACK_PLAN_IS_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/payback-plans/{paybackPlanId}/installments/{installmentId}": {
      "post": {
        "operationId": "create-loan-paybackplan-installment-detail",
        "tags": [
          "loans"
        ],
        "summary": "create-loan-paybackplan-installment-detail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "paybackPlanId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanPaybackPlanId"
            }
          },
          {
            "name": "installmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "installmentId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "installmentDetailItems": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "calculatedDate": {
                          "type": "string",
                          "format": "date-time",
                          "x-aura-field-code": "calculatedDate"
                        },
                        "collectionDetailType": {
                          "type": "integer",
                          "format": "int32",
                          "x-aura-field-code": "collectionDetailType"
                        },
                        "remainingAmount": {
                          "type": "number",
                          "format": "decimal",
                          "x-aura-field-code": "remainingAmount"
                        },
                        "totalAmount": {
                          "type": "number",
                          "format": "decimal",
                          "x-aura-field-code": "totalAmount"
                        }
                      },
                      "required": [
                        "collectionDetailType",
                        "remainingAmount",
                        "totalAmount"
                      ],
                      "x-aura-field-code": "installmentDetailItems"
                    }
                  }
                },
                "required": [
                  "installmentDetailItems"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 3,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-loan-paybackplan-installment-detail",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/payback-plans/{paybackPlanId}/installments/{installmentId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PaybackPlanId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "InstallmentId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_104",
              "status": 400,
              "message": {
                "ar": "نوع جمع تفصيل أقساط القرض المحدد موجود بالفعل.",
                "en": "The specified loan installment detail collection type already exists.",
                "tr": "Belirtilen kredi taksit detaylarında gönderilen tahsilat türü zaten mevcut."
              },
              "message_available": true,
              "constant_name": "LOAN_INSTALLMENT_DETAIL_COLLECTION_TYPE_ALREADY_EXISTS"
            },
            {
              "code": "ERR_LOAN_105",
              "status": 400,
              "message": {
                "ar": "لا يمكن أن يكون مبلغ قسط القرض أقل من 0",
                "en": "Loan installment detail amount cannot be less than 0",
                "tr": "Kredi taksit detay tutarı 0'ın altında olamaz"
              },
              "message_available": true,
              "constant_name": "LOAN_INSTALLMENT_DETAIL_AMOUNT_CONTROL"
            },
            {
              "code": "ERR_LOAN_13",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_PAYBACK_PLAN_IS_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_30",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على القسط. المعرف: {0}",
                "en": "Installment cannot be found. :{0}",
                "tr": "Taksit bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "LOAN_INSTALLMENT_MUST_NOT_BE_NULL"
            }
          ]
        }
      },
      "put": {
        "operationId": "update-loan-paybackplan-installment-detail",
        "tags": [
          "loans"
        ],
        "summary": "update-loan-paybackplan-installment-detail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "paybackPlanId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanPaybackPlanId"
            }
          },
          {
            "name": "installmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "installmentId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "installmentDetailItems": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "calculatedDate": {
                          "type": "string",
                          "format": "date-time",
                          "x-aura-field-code": "calculatedDate"
                        },
                        "collectionDetailType": {
                          "type": "integer",
                          "format": "int32",
                          "x-aura-field-code": "collectionDetailType"
                        },
                        "remainingAmount": {
                          "type": "number",
                          "format": "decimal",
                          "x-aura-field-code": "remainingAmount"
                        },
                        "totalAmount": {
                          "type": "number",
                          "format": "decimal",
                          "x-aura-field-code": "totalAmount"
                        }
                      },
                      "required": [
                        "collectionDetailType",
                        "remainingAmount",
                        "totalAmount"
                      ],
                      "x-aura-field-code": "installmentDetailItems"
                    }
                  }
                },
                "required": [
                  "installmentDetailItems"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 3,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-loan-paybackplan-installment-detail",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/payback-plans/{paybackPlanId}/installments/{installmentId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PaybackPlanId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "InstallmentId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_105",
              "status": 400,
              "message": {
                "ar": "لا يمكن أن يكون مبلغ قسط القرض أقل من 0",
                "en": "Loan installment detail amount cannot be less than 0",
                "tr": "Kredi taksit detay tutarı 0'ın altında olamaz"
              },
              "message_available": true,
              "constant_name": "LOAN_INSTALLMENT_DETAIL_AMOUNT_CONTROL"
            },
            {
              "code": "ERR_LOAN_13",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_PAYBACK_PLAN_IS_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_30",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على القسط. المعرف: {0}",
                "en": "Installment cannot be found. :{0}",
                "tr": "Taksit bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "LOAN_INSTALLMENT_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/payback-plans/{paybackPlanId}/installments/{installmentId}/remaining-amount": {
      "put": {
        "operationId": "update-loan-paybackplan-installment-detail-remaining-amount",
        "tags": [
          "loans"
        ],
        "summary": "update-loan-paybackplan-installment-detail-remaining-amount",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "paybackPlanId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanPaybackPlanId"
            }
          },
          {
            "name": "installmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "installmentId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "collectionDetails": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "amount": {
                          "type": "number",
                          "format": "decimal",
                          "x-aura-field-code": "amount"
                        },
                        "collectionDetailType": {
                          "type": "integer",
                          "format": "int32",
                          "x-aura-field-code": "collectionDetailType"
                        }
                      },
                      "required": [
                        "amount",
                        "collectionDetailType"
                      ],
                      "x-aura-field-code": "installmentCollectionDetails"
                    }
                  }
                },
                "required": [
                  "collectionDetails"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 3,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-loan-paybackplan-installment-detail-remaining-amount",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/payback-plans/{paybackPlanId}/installments/{installmentId}/remaining-amount",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PaybackPlanId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "InstallmentId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_105",
              "status": 400,
              "message": {
                "ar": "لا يمكن أن يكون مبلغ قسط القرض أقل من 0",
                "en": "Loan installment detail amount cannot be less than 0",
                "tr": "Kredi taksit detay tutarı 0'ın altında olamaz"
              },
              "message_available": true,
              "constant_name": "LOAN_INSTALLMENT_DETAIL_AMOUNT_CONTROL"
            },
            {
              "code": "ERR_LOAN_13",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_PAYBACK_PLAN_IS_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_30",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على القسط. المعرف: {0}",
                "en": "Installment cannot be found. :{0}",
                "tr": "Taksit bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "LOAN_INSTALLMENT_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/payback-plans/{paybackPlanId}/status": {
      "put": {
        "operationId": "update-loan-payback-plan-status",
        "tags": [
          "loans"
        ],
        "summary": "update-loan-payback-plan-status",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "paybackPlanId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanPaybackPlanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "isActive": {
                    "type": "boolean",
                    "x-aura-field-code": "isActive"
                  }
                },
                "required": [
                  "isActive"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-loan-payback-plan-status",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/payback-plans/{paybackPlanId}/status",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PaybackPlanId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsActive",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_13",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_PAYBACK_PLAN_IS_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/pool-definition-rates": {
      "post": {
        "operationId": "create-loan-pool-definition-rate",
        "tags": [
          "loans"
        ],
        "summary": "create-loan-pool-definition-rate",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "poolDefinitionRateId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "poolDefinitionRateId"
                  }
                },
                "required": [
                  "poolDefinitionRateId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Body shape declared by the exact route registration for the catalog's 200 response.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Identifier returned by the command.",
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "source-grounded",
                        "source": "exact-pinned-code-response"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "source-grounded",
                    "source": "exact-pinned-code-response"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-loan-pool-definition-rate",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/pool-definition-rates",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PoolDefinitionRateId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "command-id",
          "note": "The route returns `AuraCommandDto<Guid>`, which is the response body itself and not a wrapper around one: the framework declares it as a class with a single property, `Id`, of type `Guid`. A caller gets a JSON OBJECT with one field, not a bare value. The field is `id` on the wire.",
          "declared_type": "AuraCommandDto<Guid>",
          "envelopes": [
            "AuraCommandDto"
          ],
          "payload": "Guid",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false,
              "wire_name": "id",
              "wire_name_basis": "framework-naming-policy"
            }
          ],
          "naming": "Member names are the service's declaration names.",
          "synthesized": true
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
          "code_response_state": "command-id",
          "code_cardinality": "single-record",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/return-payments": {
      "get": {
        "operationId": "get-loan-return-payment-list-by-loan-id",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-return-payment-list-by-loan-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "x-aura-type": "unresolved"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "amount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "amount"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanReturnPaymentId"
                      },
                      "loanId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanId"
                      },
                      "returnDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "returnDate"
                      },
                      "returnProcessingDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "returnProcessingDate"
                      },
                      "status": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "status"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-return-payment-list-by-loan-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/return-payments",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<LoanReturnPaymentBaseDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "LoanReturnPaymentBaseDto",
          "collection": true,
          "members": [
            {
              "name": "Amount",
              "declared_type": "decimal",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Status",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ReturnProcessingDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ReturnDate",
              "declared_type": "DateTime",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      },
      "post": {
        "operationId": "create-loan-return-payment",
        "tags": [
          "loans"
        ],
        "summary": "create-loan-return-payment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "amount"
                  },
                  "returnDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "returnDate"
                  },
                  "returnProcessingDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "returnProcessingDate"
                  },
                  "status": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "status",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "return_payment_status",
                      "values": [
                        {
                          "value": 1,
                          "name": "pending",
                          "labels": {
                            "tr": "bekliyor"
                          }
                        },
                        {
                          "value": 2,
                          "name": "error",
                          "labels": {
                            "tr": "hata"
                          }
                        },
                        {
                          "value": 3,
                          "name": "processed",
                          "labels": {
                            "tr": "tamamlandı"
                          }
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "amount",
                  "returnDate",
                  "status"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 4,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Body shape declared by the exact route registration for the catalog's 200 response.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Identifier returned by the command.",
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "source-grounded",
                        "source": "exact-pinned-code-response"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "source-grounded",
                    "source": "exact-pinned-code-response"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-loan-return-payment",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/return-payments",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Amount",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Status",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "ReturnProcessingDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "ReturnDate",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "command-id",
          "note": "The route returns `AuraCommandDto<Guid>`, which is the response body itself and not a wrapper around one: the framework declares it as a class with a single property, `Id`, of type `Guid`. A caller gets a JSON OBJECT with one field, not a bare value. The field is `id` on the wire.",
          "declared_type": "AuraCommandDto<Guid>",
          "envelopes": [
            "AuraCommandDto"
          ],
          "payload": "Guid",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false,
              "wire_name": "id",
              "wire_name_basis": "framework-naming-policy"
            }
          ],
          "naming": "Member names are the service's declaration names.",
          "synthesized": true
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
          "code_response_state": "command-id",
          "code_cardinality": "single-record",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/return-payments/{loanReturnPaymentId}": {
      "delete": {
        "operationId": "delete-loan-return-payment",
        "tags": [
          "loans"
        ],
        "summary": "delete-loan-return-payment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "loanReturnPaymentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanReturnPaymentId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "delete-loan-return-payment",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/return-payments/{loanReturnPaymentId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanReturnPaymentId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_92",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على دفعة المردودة. المعرف:{0}",
                "en": "Return Payment is not found. Id:{0}",
                "tr": "?ade kayd? bulunamad?. Id:{0}"
              },
              "message_available": true,
              "constant_name": "LOAN_RETURN_PAYMENT_NOT_FOUND"
            }
          ]
        }
      },
      "get": {
        "operationId": "get-loan-return-payment-detail-by-id",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-return-payment-detail-by-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "loanReturnPaymentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanReturnPaymentId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "amount": {
                      "type": "number",
                      "format": "decimal",
                      "x-aura-field-code": "amount"
                    },
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "loanReturnPaymentId"
                    },
                    "loanId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "loanId"
                    },
                    "loanReturnPaymentDetail": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "customerLoanCollectionId": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "customerLoanCollectionId"
                          },
                          "loanReturnPaymentDetailId": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "loanReturnPaymentDetailId"
                          }
                        },
                        "x-aura-field-code": "loanReturnPaymentDetail"
                      }
                    },
                    "returnDate": {
                      "type": "string",
                      "format": "date-time",
                      "x-aura-field-code": "returnDate"
                    },
                    "returnProcessingDate": {
                      "type": "string",
                      "format": "date-time",
                      "x-aura-field-code": "returnProcessingDate"
                    },
                    "status": {
                      "type": "integer",
                      "format": "int32",
                      "x-aura-field-code": "status"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-return-payment-detail-by-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/return-payments/{loanReturnPaymentId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanReturnPaymentId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "LoanReturnPaymentDto",
          "payload": "LoanReturnPaymentDto",
          "collection": false,
          "members": [
            {
              "name": "LoanReturnPaymentDetail",
              "declared_type": "List<LoanReturnPaymentDetailDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_92",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على دفعة المردودة. المعرف:{0}",
                "en": "Return Payment is not found. Id:{0}",
                "tr": "?ade kayd? bulunamad?. Id:{0}"
              },
              "message_available": true,
              "constant_name": "LOAN_RETURN_PAYMENT_NOT_FOUND"
            }
          ]
        }
      },
      "put": {
        "operationId": "update-loan-return-payment",
        "tags": [
          "loans"
        ],
        "summary": "update-loan-return-payment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "loanReturnPaymentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanReturnPaymentId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "returnDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "returnDate"
                  },
                  "returnProcessingDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "returnProcessingDate"
                  },
                  "status": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "status",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "return_payment_status",
                      "values": [
                        {
                          "value": 1,
                          "name": "pending",
                          "labels": {
                            "tr": "bekliyor"
                          }
                        },
                        {
                          "value": 2,
                          "name": "error",
                          "labels": {
                            "tr": "hata"
                          }
                        },
                        {
                          "value": 3,
                          "name": "processed",
                          "labels": {
                            "tr": "tamamlandı"
                          }
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "status"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 3,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-loan-return-payment",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/return-payments/{loanReturnPaymentId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanReturnPaymentId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Status",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "ReturnProcessingDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "ReturnDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_92",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على دفعة المردودة. المعرف:{0}",
                "en": "Return Payment is not found. Id:{0}",
                "tr": "?ade kayd? bulunamad?. Id:{0}"
              },
              "message_available": true,
              "constant_name": "LOAN_RETURN_PAYMENT_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/loans/{id}/return-payments/{loanReturnPaymentId}/details": {
      "post": {
        "operationId": "create-loan-return-payment-detail",
        "tags": [
          "loans"
        ],
        "summary": "create-loan-return-payment-detail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "loanReturnPaymentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanReturnPaymentId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "customerLoanCollectionId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "customerLoanCollectionId"
                  }
                },
                "required": [
                  "customerLoanCollectionId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Body shape declared by the exact route registration for the catalog's 200 response.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Identifier returned by the command.",
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "source-grounded",
                        "source": "exact-pinned-code-response"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "source-grounded",
                    "source": "exact-pinned-code-response"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-loan-return-payment-detail",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/return-payments/{loanReturnPaymentId}/details",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "LoanReturnPaymentId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "CustomerLoanCollectionId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "command-id",
          "note": "The route returns `AuraCommandDto<Guid>`, which is the response body itself and not a wrapper around one: the framework declares it as a class with a single property, `Id`, of type `Guid`. A caller gets a JSON OBJECT with one field, not a bare value. The field is `id` on the wire.",
          "declared_type": "AuraCommandDto<Guid>",
          "envelopes": [
            "AuraCommandDto"
          ],
          "payload": "Guid",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false,
              "wire_name": "id",
              "wire_name_basis": "framework-naming-policy"
            }
          ],
          "naming": "Member names are the service's declaration names.",
          "synthesized": true
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
          "code_response_state": "command-id",
          "code_cardinality": "single-record",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_92",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على دفعة المردودة. المعرف:{0}",
                "en": "Return Payment is not found. Id:{0}",
                "tr": "?ade kayd? bulunamad?. Id:{0}"
              },
              "message_available": true,
              "constant_name": "LOAN_RETURN_PAYMENT_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/loans/{id}/status": {
      "put": {
        "operationId": "update-loan-status",
        "tags": [
          "loans"
        ],
        "summary": "update-loan-status",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "status",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "loan_status",
                      "values": [
                        {
                          "value": 1,
                          "name": "INAPPROVAL",
                          "labels": {
                            "en": "INAPPROVAL",
                            "tr": "Onayda",
                            "ar": "غير موافق"
                          }
                        },
                        {
                          "value": 2,
                          "name": "APPROVED",
                          "labels": {
                            "en": "APPROVED",
                            "tr": "Onaylandı",
                            "ar": "موافق"
                          }
                        },
                        {
                          "value": 3,
                          "name": "REJECTED",
                          "labels": {
                            "en": "REJECTED",
                            "tr": "Reddedildi",
                            "ar": "مرفوض"
                          }
                        },
                        {
                          "value": 4,
                          "name": "PAYMENT",
                          "labels": {
                            "en": "PAYMENT",
                            "tr": "Ödeme",
                            "ar": "الدفع"
                          }
                        },
                        {
                          "value": 5,
                          "name": "FINALIZED",
                          "labels": {
                            "en": "Finalized",
                            "tr": "Kesinleştirildi",
                            "ar": "تم الانتهاء منه"
                          }
                        },
                        {
                          "value": 6,
                          "name": "CLOSED",
                          "labels": {
                            "en": "CLOSED",
                            "tr": "Kapandı",
                            "ar": "مُغلق"
                          }
                        },
                        {
                          "value": 7,
                          "name": "FINALIZATION CANCELLATION",
                          "labels": {
                            "en": "Finalization Cancellation",
                            "tr": "Kesinleştirme İptali",
                            "ar": "إلغاء الإنهاء"
                          }
                        },
                        {
                          "value": 8,
                          "name": "PAYMENT CANCELLATION",
                          "labels": {
                            "en": "Payment Cancellation",
                            "tr": "Ödeme İptali",
                            "ar": "إلغاء الدفع"
                          }
                        },
                        {
                          "value": 9,
                          "name": "CANCELLED",
                          "labels": {
                            "en": "CANCELED",
                            "tr": "İptal Edildi",
                            "ar": "ملغاة"
                          }
                        },
                        {
                          "value": 10,
                          "name": "SAVED",
                          "labels": {
                            "en": "Saved",
                            "tr": "Kaydedildi",
                            "ar": "تم الحفظ"
                          }
                        },
                        {
                          "value": 11,
                          "name": "WAITING FOR FINALIZATION",
                          "labels": {
                            "en": "Waiting For Finalization",
                            "tr": "Kesinleştirme Bekliyor",
                            "ar": "انتظار الانتهاء"
                          }
                        },
                        {
                          "value": 12,
                          "name": "WAITING FOR CANCELLIZATION",
                          "labels": {
                            "en": "Waiting For Cancellization",
                            "tr": "İptal Bekliyor",
                            "ar": "انتظار إلغاء الحجز"
                          }
                        },
                        {
                          "value": 13,
                          "name": "LATE CANCELLED",
                          "labels": {
                            "en": "LATE CANCELLED",
                            "tr": "Geç İptal Edildi",
                            "ar": "تم الإلغاء متأخرًا"
                          }
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "status"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-loan-status",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/status",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Status",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/vendor-disbursements": {
      "get": {
        "operationId": "get-loan-vendor-disbursement-list",
        "tags": [
          "loans"
        ],
        "summary": "get-loan-vendor-disbursement-list",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string",
                  "x-aura-field-code": "code"
                },
                "expression": {
                  "type": "string",
                  "x-aura-field-code": "expression"
                },
                "parameters": {
                  "type": "object",
                  "x-aura-field-code": "filterParameters"
                }
              },
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "accountingEntryId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "accountingEntryId"
                      },
                      "amount": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "vendorDisbursementAmount"
                      },
                      "currencyNumber": {
                        "type": "string",
                        "x-aura-field-code": "currencyNumber"
                      },
                      "disbursementDate": {
                        "type": "string",
                        "format": "date-time",
                        "x-aura-field-code": "disbursementDate"
                      },
                      "exchangeRate": {
                        "type": "number",
                        "format": "decimal",
                        "x-aura-field-code": "exchangeRate"
                      },
                      "externalVendorAccountId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "externalVendorAccountId"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "loanId"
                      },
                      "internalVendorAccountId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "internalVendorAccountId"
                      },
                      "isCancel": {
                        "type": "boolean",
                        "x-aura-field-code": "isCancel"
                      },
                      "paymentType": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "paymentType"
                      },
                      "status": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "vendorDisbursementStatus"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-vendor-disbursement-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/vendor-disbursements",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<BaseVendorDisbursementDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "BaseVendorDisbursementDto",
          "collection": true,
          "members": [
            {
              "name": "InternalVendorAccountId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ExternalVendorAccountId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "DisbursementDate",
              "declared_type": "DateTime?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Amount",
              "declared_type": "decimal",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CurrencyNumber",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ExchangeRate",
              "declared_type": "decimal?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "IsCancel",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Status",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "PaymentType",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "AccountingEntryId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            }
          ]
        }
      },
      "post": {
        "operationId": "create-vendor-disbursement",
        "tags": [
          "loans"
        ],
        "summary": "create-vendor-disbursement",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "vendorDisbursementAmount"
                  },
                  "currencyNumber": {
                    "type": "string",
                    "x-aura-field-code": "currencyNumber"
                  },
                  "disbursementDate": {
                    "type": "string",
                    "format": "date-time",
                    "x-aura-field-code": "disbursementDate"
                  },
                  "exchangeRate": {
                    "type": "number",
                    "format": "decimal",
                    "x-aura-field-code": "exchangeRate"
                  },
                  "externalVendorAccountId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "externalVendorAccountId"
                  },
                  "internalVendorAccountId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "internalVendorAccountId"
                  },
                  "paymentType": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "paymentType",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "vendor_disbursement_payment_type",
                      "values": [
                        {
                          "value": 1,
                          "name": "Kredi Ödemesi",
                          "labels": {
                            "en": "Loan Payment",
                            "tr": "Kredi Ödemesi",
                            "ar": "سداد القرض"
                          }
                        },
                        {
                          "value": 2,
                          "name": "Avans Ödemesi",
                          "labels": {
                            "en": "Advance Payment",
                            "tr": "Avans Ödemesi",
                            "ar": "الدفع المسبق"
                          }
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "amount",
                  "currencyNumber",
                  "exchangeRate",
                  "paymentType"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 7,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "vendorDisbursementId"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-vendor-disbursement",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/vendor-disbursements",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "InternalVendorAccountId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "ExternalVendorAccountId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "Amount",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "CurrencyNumber",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "ExchangeRate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "DisbursementDate",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "PaymentType",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "command-id",
          "note": "The route returns `AuraCommandDto<Guid>`, which is the response body itself and not a wrapper around one: the framework declares it as a class with a single property, `Id`, of type `Guid`. A caller gets a JSON OBJECT with one field, not a bare value. The field is `id` on the wire.",
          "declared_type": "AuraCommandDto<Guid>",
          "envelopes": [
            "AuraCommandDto"
          ],
          "payload": "Guid",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false,
              "wire_name": "id",
              "wire_name_basis": "framework-naming-policy"
            }
          ],
          "naming": "Member names are the service's declaration names.",
          "synthesized": true
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_10",
              "status": 400,
              "message": {
                "ar": "الحساب غير موجود. المعرف: {0}",
                "en": "Account cannot be found. :{0}",
                "tr": "Hesap bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_ACCOUNT_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_19",
              "status": 400,
              "message": {
                "ar": "لا يمكن أن يكون مبلغ صرف البائع الإجمالي أكبر من مبلغ القرض.",
                "en": "The total vendor disbursement amount cannot be greater than the loan amount.",
                "tr": "Toplam satıcı ödeme tutarı, kredi tutarından büyük olamaz."
              },
              "message_available": true,
              "constant_name": "LOAN_VENDOR_DISBURSEMENT_AMOUNT_CONTROL"
            },
            {
              "code": "ERR_LOAN_21",
              "status": 400,
              "message": {
                "ar": "عملة الحساب ليست متساوية",
                "en": "The currency of the account is not equal",
                "tr": "Hesabın para birimi eşit değil"
              },
              "message_available": true,
              "constant_name": "CURRENCY_NUMBER_MUST_NOT_BE_EQUAL"
            },
            {
              "code": "ERR_LOAN_4",
              "status": 400,
              "message": {
                "ar": "لا يوجد سجل حساب. المعرف:{0}",
                "en": "Account record cannot be found. :{0}",
                "tr": "Hesap kaydı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_INTERNAL_ACCOUNT_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/loans/{id}/vendor-disbursements/{vendorDisbursementId}": {
      "get": {
        "operationId": "get-vendor-disbursement-by-id",
        "tags": [
          "loans"
        ],
        "summary": "get-vendor-disbursement-by-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "vendorDisbursementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "vendorDisbursementId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration classifies this response as a single-record.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-disbursement-by-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/vendor-disbursements/{vendorDisbursementId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorDisbursementId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "VendorDisbursementDto",
          "payload": "VendorDisbursementDto",
          "collection": false,
          "members": [
            {
              "name": "InternalVendorId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "ExternalVendorId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "LoanId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "CustomerId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration classifies this response as a single-record.",
          "code_response_state": "structure",
          "code_cardinality": "single-record",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_22",
              "status": 400,
              "message": {
                "ar": "لا يتم العثور على صرف البائع. المعرف:{0}",
                "en": "Vendor disbursement cannot be found.:{0}",
                "tr": "Satıcı ödemesi bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "LOAN_VENDOR_DISBURSEMENT_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/vendor-disbursements/{vendorDisbursementId}/accounting-entry-id": {
      "put": {
        "operationId": "update-vendor-disbursement-accounting-entry-id",
        "tags": [
          "loans"
        ],
        "summary": "update-vendor-disbursement-accounting-entry-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "vendorDisbursementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "vendorDisbursementId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountingEntryId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "accountingEntryId"
                  }
                },
                "required": [
                  "accountingEntryId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-vendor-disbursement-accounting-entry-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/vendor-disbursements/{vendorDisbursementId}/accounting-entry-id",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorDisbursementId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "AccountingEntryId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_22",
              "status": 400,
              "message": {
                "ar": "لا يتم العثور على صرف البائع. المعرف:{0}",
                "en": "Vendor disbursement cannot be found.:{0}",
                "tr": "Satıcı ödemesi bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "LOAN_VENDOR_DISBURSEMENT_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/loans/{id}/vendor-disbursements/{vendorDisbursementId}/cancel": {
      "put": {
        "operationId": "cancel-vendor-disbursement",
        "tags": [
          "loans"
        ],
        "summary": "cancel-vendor-disbursement",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "vendorDisbursementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "vendorDisbursementId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "cancel-vendor-disbursement",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/vendor-disbursements/{vendorDisbursementId}/cancel",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "VendorDisbursementId",
              "declared_type": null,
              "nullable": true,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_22",
              "status": 400,
              "message": {
                "ar": "لا يتم العثور على صرف البائع. المعرف:{0}",
                "en": "Vendor disbursement cannot be found.:{0}",
                "tr": "Satıcı ödemesi bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "LOAN_VENDOR_DISBURSEMENT_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_28",
              "status": 400,
              "message": {
                "ar": "تم إلغاء دفعة البائع بالفعل.",
                "en": "The vendor payment has already been cancelled.",
                "tr": "Satıcı ödemesi zaten iptal edildi."
              },
              "message_available": true,
              "constant_name": "LOAN_VENDOR_DISBURSEMENT_STATUS_MUST_NOT_BE_CANCEL"
            }
          ]
        }
      }
    },
    "/loans/{id}/vendor-disbursements/{vendorDisbursementId}/status": {
      "put": {
        "operationId": "update-vendor-disbursement-status",
        "tags": [
          "loans"
        ],
        "summary": "update-vendor-disbursement-status",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          },
          {
            "name": "vendorDisbursementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "vendorDisbursementId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "disbursementStatus",
                    "x-aura-parameter-enumeration": {
                      "state": "resolved",
                      "parameter": "vendor_disbursement_status",
                      "values": [
                        {
                          "value": 1,
                          "name": "Pending Money Transfer",
                          "labels": {
                            "en": "Pending Money Transfer",
                            "tr": "Para Transferi Bekliyor",
                            "ar": "التحويل المالي المعلق"
                          }
                        },
                        {
                          "value": 2,
                          "name": "Completed",
                          "labels": {
                            "en": "Completed",
                            "tr": "Ödeme Gerçekleşti",
                            "ar": "تمّ."
                          }
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "status"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-vendor-disbursement-status",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "loans/{id}/vendor-disbursements/{vendorDisbursementId}/status",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorDisbursementId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Status",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_17",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "LOAN_MUST_NOT_BE_NULL"
            },
            {
              "code": "ERR_LOAN_22",
              "status": 400,
              "message": {
                "ar": "لا يتم العثور على صرف البائع. المعرف:{0}",
                "en": "Vendor disbursement cannot be found.:{0}",
                "tr": "Satıcı ödemesi bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "LOAN_VENDOR_DISBURSEMENT_MUST_NOT_BE_NULL"
            }
          ]
        }
      }
    },
    "/localizations": {
      "get": {
        "operationId": "loan-get-localization-list",
        "tags": [
          "localizations"
        ],
        "summary": "loan-get-localization-list",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string",
                        "x-aura-field-code": "localizationCode"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "localizationId"
                      },
                      "type": {
                        "type": "string",
                        "x-aura-field-code": "localizationType"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-localization-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "localizations",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<LocalizationDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "LocalizationDto",
          "collection": true,
          "members": [
            {
              "name": "Code",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Type",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Context",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Translations",
              "declared_type": "IEnumerable<LocalizationTranslationDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      },
      "post": {
        "operationId": "loan-create-localization",
        "tags": [
          "localizations"
        ],
        "summary": "loan-create-localization",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "x-aura-field-code": "localizationCode"
                  },
                  "translations": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "context": {
                          "type": "string",
                          "x-aura-field-code": "context"
                        },
                        "languageCode": {
                          "type": "string",
                          "x-aura-field-code": "languageCode"
                        }
                      },
                      "required": [
                        "context",
                        "languageCode"
                      ],
                      "x-aura-field-code": "translations"
                    }
                  },
                  "type": {
                    "type": "string",
                    "x-aura-field-code": "localizationType"
                  }
                },
                "required": [
                  "code",
                  "translations",
                  "type"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 3,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "id"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-create-localization",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "localizations",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "AuraCommandDto",
          "payload": "AuraCommandDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LCLZ_1",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": null
            }
          ]
        }
      }
    },
    "/localizations/by-code/{code}": {
      "get": {
        "operationId": "loan-get-localization-by-code",
        "tags": [
          "localizations"
        ],
        "summary": "loan-get-localization-by-code",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "x-aura-field-code": "localizationCode"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-localization-by-code",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "localizations/by-code/{code}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "LocalizationDto",
          "payload": "LocalizationDto",
          "collection": false,
          "members": [
            {
              "name": "Code",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Type",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Context",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Translations",
              "declared_type": "IEnumerable<LocalizationTranslationDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LCLZ_3",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": null
            }
          ]
        }
      }
    },
    "/localizations/{id}": {
      "delete": {
        "operationId": "loan-delete-localization",
        "tags": [
          "localizations"
        ],
        "summary": "loan-delete-localization",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-delete-localization",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "localizations/{id}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "declared_type": "Unit",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body",
          "payload": "Unit"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LCLZ_3",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": null
            }
          ]
        }
      },
      "get": {
        "operationId": "loan-get-localization-by-id",
        "tags": [
          "localizations"
        ],
        "summary": "loan-get-localization-by-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "x-aura-field-code": "code"
                    },
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "id"
                    },
                    "type": {
                      "type": "string",
                      "x-aura-field-code": "type"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-localization-by-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "localizations/{id}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "LocalizationDto",
          "payload": "LocalizationDto",
          "collection": false,
          "members": [
            {
              "name": "Code",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Type",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Context",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Translations",
              "declared_type": "IEnumerable<LocalizationTranslationDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LCLZ_3",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": null
            }
          ]
        }
      },
      "put": {
        "operationId": "loan-update-localization",
        "tags": [
          "localizations"
        ],
        "summary": "loan-update-localization",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "localizationId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "x-aura-field-code": "localizationType"
                  }
                },
                "required": [
                  "type"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-update-localization",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "localizations/{id}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "declared_type": "Unit",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body",
          "payload": "Unit"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LCLZ_3",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": null
            }
          ]
        }
      }
    },
    "/localizations/{id}/translations": {
      "get": {
        "operationId": "loan-get-localization-translation-by-localization-id",
        "tags": [
          "localizations"
        ],
        "summary": "loan-get-localization-translation-by-localization-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "context": {
                        "type": "string",
                        "x-aura-field-code": "context"
                      },
                      "languageCode": {
                        "type": "string",
                        "x-aura-field-code": "languageCode"
                      },
                      "translationId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "translationId"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-localization-translation-by-localization-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "localizations/{id}/translations",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<LocalizationTranslationDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "LocalizationTranslationDto",
          "collection": true,
          "members": [
            {
              "name": "TranslationId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "LanguageCode",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Context",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LCLZ_3",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": null
            }
          ]
        }
      },
      "post": {
        "operationId": "loan-create-localization-translation",
        "tags": [
          "localizations"
        ],
        "summary": "loan-create-localization-translation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "translations": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "context": {
                          "type": "string",
                          "x-aura-field-code": "context"
                        },
                        "languageCode": {
                          "type": "string",
                          "x-aura-field-code": "languageCode"
                        }
                      },
                      "required": [
                        "context",
                        "languageCode"
                      ],
                      "x-aura-field-code": "translations"
                    }
                  }
                },
                "required": [
                  "translations"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-create-localization-translation",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "localizations/{id}/translations",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LCLZ_2",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": null
            },
            {
              "code": "ERR_LCLZ_3",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": null
            }
          ]
        }
      }
    },
    "/localizations/{id}/translations/{translationId}": {
      "delete": {
        "operationId": "loan-delete-localization-translation",
        "tags": [
          "localizations"
        ],
        "summary": "loan-delete-localization-translation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          },
          {
            "name": "translationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "translationId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-delete-localization-translation",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "localizations/{id}/translations/{translationId}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "declared_type": "Unit",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body",
          "payload": "Unit"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LCLZ_3",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": null
            },
            {
              "code": "ERR_LCLZ_4",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": null
            }
          ]
        }
      },
      "put": {
        "operationId": "loan-update-localization-translation",
        "tags": [
          "localizations"
        ],
        "summary": "loan-update-localization-translation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          },
          {
            "name": "translationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "translationId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "context": {
                    "type": "string",
                    "x-aura-field-code": "context"
                  }
                },
                "required": [
                  "context"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-update-localization-translation",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "localizations/{id}/translations/{translationId}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "declared_type": "Unit",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body",
          "payload": "Unit"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LCLZ_3",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": null
            },
            {
              "code": "ERR_LCLZ_4",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": null
            }
          ]
        }
      }
    },
    "/matrix": {
      "get": {
        "operationId": "loan-get-matrix-list",
        "tags": [
          "matrix"
        ],
        "summary": "loan-get-matrix-list",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string",
                  "x-aura-field-code": "code"
                },
                "expression": {
                  "type": "string",
                  "x-aura-field-code": "expression"
                },
                "parameters": {
                  "type": "object",
                  "x-aura-field-code": "filterParameters"
                }
              },
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "description": {
                        "type": "string",
                        "x-aura-field-code": "matrixDescription"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "matrixId"
                      },
                      "name": {
                        "type": "string",
                        "x-aura-field-code": "matrixName"
                      },
                      "resultFieldDefinitionId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "resultFieldDefinitionId"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-matrix-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      },
      "post": {
        "operationId": "loan-create-matrix",
        "tags": [
          "matrix"
        ],
        "summary": "loan-create-matrix",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "description": {
                    "type": "string",
                    "x-aura-field-code": "matrixDescription"
                  },
                  "name": {
                    "type": "string",
                    "x-aura-field-code": "matrixName"
                  },
                  "resultFieldDefinitionId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "resultFieldDefinitionId"
                  }
                },
                "required": [
                  "description",
                  "name",
                  "resultFieldDefinitionId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 3,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The schema is an `anyOf` over three envelopes: the record, a bare array of it, and a page `{total, data[]}` carrying the same record.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Response whose record fields are declared but whose outer cardinality is not established by the catalog.",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "x-aura-field-code": "matrixId"
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Bare-array response possibility.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "matrixId"
                          }
                        }
                      },
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "structural-fallback",
                        "source": "catalog-structure"
                      }
                    },
                    {
                      "type": "object",
                      "description": "Paged response envelope observed on the BFF response path.",
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "structural-fallback",
                        "source": "catalog-structure"
                      },
                      "properties": {
                        "data": {
                          "type": "array",
                          "description": "Response records carried by this page.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "format": "uuid",
                                "x-aura-field-code": "matrixId"
                              }
                            }
                          },
                          "x-aura-documentation": {
                            "language": "en",
                            "status": "structural-fallback",
                            "source": "catalog-structure"
                          }
                        },
                        "total": {
                          "type": "integer",
                          "format": "int64",
                          "description": "Total matching records, ignoring paging.",
                          "x-aura-documentation": {
                            "language": "en",
                            "status": "structural-fallback",
                            "source": "catalog-structure"
                          }
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ],
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-create-matrix",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/matrix/products/by-account-product-id/{accountProductId}": {
      "get": {
        "operationId": "loan-get-matrix-product-map-by-product-id",
        "tags": [
          "matrix"
        ],
        "summary": "loan-get-matrix-product-map-by-product-id",
        "parameters": [
          {
            "name": "accountProductId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "accountProductId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "matrixId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "matrixId"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-matrix-product-map-by-product-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/products/by-account-product-id/{accountProductId}",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/matrix/results/by-product-id/{accountProductId}": {
      "get": {
        "operationId": "loan-get-matrix-result-value",
        "tags": [
          "matrix"
        ],
        "summary": "loan-get-matrix-result-value",
        "parameters": [
          {
            "name": "accountProductId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "accountProductId"
            }
          },
          {
            "name": "columnValues",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "columnCode": {
                    "type": "string",
                    "x-aura-field-code": "columnCode"
                  },
                  "columnValue": {
                    "type": "string",
                    "x-aura-field-code": "columnValue"
                  }
                },
                "x-aura-field-code": "columnValues"
              }
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 1
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "matrixId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "matrixId"
                    },
                    "resultFieldCode": {
                      "type": "string",
                      "x-aura-field-code": "resultFieldCode"
                    },
                    "resultValue": {
                      "type": "string",
                      "x-aura-field-code": "resultValue"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-matrix-result-value",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/results/by-product-id/{accountProductId}",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/matrix/{id}": {
      "delete": {
        "operationId": "loan-delete-matrix",
        "tags": [
          "matrix"
        ],
        "summary": "loan-delete-matrix",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-delete-matrix",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/{id}",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      },
      "get": {
        "operationId": "loan-get-matrix-by-id",
        "tags": [
          "matrix"
        ],
        "summary": "loan-get-matrix-by-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The schema is an `anyOf` over three envelopes: the record, a bare array of it, and a page `{total, data[]}` carrying the same record.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Response whose record fields are declared but whose outer cardinality is not established by the catalog.",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "description": {
                          "type": "string",
                          "x-aura-field-code": "matrixDescription"
                        },
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "x-aura-field-code": "matrixId"
                        },
                        "matrixColumns": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "x-aura-field-code": "matrixColumns"
                          }
                        },
                        "matrixResults": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "x-aura-field-code": "matrixResults"
                          }
                        },
                        "name": {
                          "type": "string",
                          "x-aura-field-code": "matrixName"
                        },
                        "resultFieldDefinitionId": {
                          "type": "string",
                          "format": "uuid",
                          "x-aura-field-code": "resultFieldDefinitionId"
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Bare-array response possibility.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "description": {
                            "type": "string",
                            "x-aura-field-code": "matrixDescription"
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "matrixId"
                          },
                          "matrixColumns": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "x-aura-field-code": "matrixColumns"
                            }
                          },
                          "matrixResults": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "x-aura-field-code": "matrixResults"
                            }
                          },
                          "name": {
                            "type": "string",
                            "x-aura-field-code": "matrixName"
                          },
                          "resultFieldDefinitionId": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "resultFieldDefinitionId"
                          }
                        }
                      },
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "structural-fallback",
                        "source": "catalog-structure"
                      }
                    },
                    {
                      "type": "object",
                      "description": "Paged response envelope observed on the BFF response path.",
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "structural-fallback",
                        "source": "catalog-structure"
                      },
                      "properties": {
                        "data": {
                          "type": "array",
                          "description": "Response records carried by this page.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "description": {
                                "type": "string",
                                "x-aura-field-code": "matrixDescription"
                              },
                              "id": {
                                "type": "string",
                                "format": "uuid",
                                "x-aura-field-code": "matrixId"
                              },
                              "matrixColumns": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "x-aura-field-code": "matrixColumns"
                                }
                              },
                              "matrixResults": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "x-aura-field-code": "matrixResults"
                                }
                              },
                              "name": {
                                "type": "string",
                                "x-aura-field-code": "matrixName"
                              },
                              "resultFieldDefinitionId": {
                                "type": "string",
                                "format": "uuid",
                                "x-aura-field-code": "resultFieldDefinitionId"
                              }
                            }
                          },
                          "x-aura-documentation": {
                            "language": "en",
                            "status": "structural-fallback",
                            "source": "catalog-structure"
                          }
                        },
                        "total": {
                          "type": "integer",
                          "format": "int64",
                          "description": "Total matching records, ignoring paging.",
                          "x-aura-documentation": {
                            "language": "en",
                            "status": "structural-fallback",
                            "source": "catalog-structure"
                          }
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ],
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-matrix-by-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/{id}",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      },
      "put": {
        "operationId": "loan-update-matrix",
        "tags": [
          "matrix"
        ],
        "summary": "loan-update-matrix",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "description": {
                    "type": "string",
                    "x-aura-field-code": "matrixDescription"
                  },
                  "matrixColumns": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "x-aura-field-code": "matrixColumns"
                    }
                  },
                  "matrixResults": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "x-aura-field-code": "matrixResults"
                    }
                  },
                  "name": {
                    "type": "string",
                    "x-aura-field-code": "matrixName"
                  },
                  "resultFieldDefinitionId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "resultFieldDefinitionId"
                  }
                },
                "required": [
                  "description",
                  "name",
                  "resultFieldDefinitionId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 5,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-update-matrix",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/{id}",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/matrix/{id}/columns": {
      "get": {
        "operationId": "loan-get-matrix-column-list",
        "tags": [
          "matrix"
        ],
        "summary": "loan-get-matrix-column-list",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "columnCode": {
                        "type": "string",
                        "x-aura-field-code": "columnCode"
                      },
                      "fieldDefinitionId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "fieldDefinitionId"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "matrixColumnId"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-matrix-column-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/{id}/columns",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      },
      "post": {
        "operationId": "loan-create-matrix-column",
        "tags": [
          "matrix"
        ],
        "summary": "loan-create-matrix-column",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "columnCode": {
                    "type": "string",
                    "x-aura-field-code": "columnCode"
                  },
                  "fieldDefinitionId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "fieldDefinitionId"
                  }
                },
                "required": [
                  "columnCode",
                  "fieldDefinitionId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 2,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The schema is an `anyOf` over three envelopes: the record, a bare array of it, and a page `{total, data[]}` carrying the same record.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Response whose record fields are declared but whose outer cardinality is not established by the catalog.",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "x-aura-field-code": "matrixColumnId"
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Bare-array response possibility.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "matrixColumnId"
                          }
                        }
                      },
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "structural-fallback",
                        "source": "catalog-structure"
                      }
                    },
                    {
                      "type": "object",
                      "description": "Paged response envelope observed on the BFF response path.",
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "structural-fallback",
                        "source": "catalog-structure"
                      },
                      "properties": {
                        "data": {
                          "type": "array",
                          "description": "Response records carried by this page.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "format": "uuid",
                                "x-aura-field-code": "matrixColumnId"
                              }
                            }
                          },
                          "x-aura-documentation": {
                            "language": "en",
                            "status": "structural-fallback",
                            "source": "catalog-structure"
                          }
                        },
                        "total": {
                          "type": "integer",
                          "format": "int64",
                          "description": "Total matching records, ignoring paging.",
                          "x-aura-documentation": {
                            "language": "en",
                            "status": "structural-fallback",
                            "source": "catalog-structure"
                          }
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ],
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-create-matrix-column",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/{id}/columns",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/matrix/{id}/columns/{matrixColumnId}": {
      "delete": {
        "operationId": "loan-delete-matrix-column",
        "tags": [
          "matrix"
        ],
        "summary": "loan-delete-matrix-column",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixId"
            }
          },
          {
            "name": "matrixColumnId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixColumnId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-delete-matrix-column",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/{id}/columns/{matrixColumnId}",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      },
      "put": {
        "operationId": "loan-update-matrix-column",
        "tags": [
          "matrix"
        ],
        "summary": "loan-update-matrix-column",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixId"
            }
          },
          {
            "name": "matrixColumnId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixColumnId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "columnCode": {
                    "type": "string",
                    "x-aura-field-code": "columnCode"
                  },
                  "fieldDefinitionId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "fieldDefinitionId"
                  }
                },
                "required": [
                  "columnCode",
                  "fieldDefinitionId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 2,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-update-matrix-column",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/{id}/columns/{matrixColumnId}",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/matrix/{id}/columns/{matrixColumnId}/inputs": {
      "post": {
        "operationId": "loan-create-matrix-input",
        "tags": [
          "matrix"
        ],
        "summary": "loan-create-matrix-input",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixId"
            }
          },
          {
            "name": "matrixColumnId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixColumnId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "inputValue": {
                    "type": "string",
                    "x-aura-field-code": "inputValue"
                  },
                  "matrixResultId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "matrixResultId"
                  }
                },
                "required": [
                  "inputValue",
                  "matrixResultId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 2,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The schema is an `anyOf` over three envelopes: the record, a bare array of it, and a page `{total, data[]}` carrying the same record.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Response whose record fields are declared but whose outer cardinality is not established by the catalog.",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "x-aura-field-code": "inputId"
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Bare-array response possibility.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "x-aura-field-code": "inputId"
                          }
                        }
                      },
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "structural-fallback",
                        "source": "catalog-structure"
                      }
                    },
                    {
                      "type": "object",
                      "description": "Paged response envelope observed on the BFF response path.",
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "structural-fallback",
                        "source": "catalog-structure"
                      },
                      "properties": {
                        "data": {
                          "type": "array",
                          "description": "Response records carried by this page.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "x-aura-field-code": "inputId"
                              }
                            }
                          },
                          "x-aura-documentation": {
                            "language": "en",
                            "status": "structural-fallback",
                            "source": "catalog-structure"
                          }
                        },
                        "total": {
                          "type": "integer",
                          "format": "int64",
                          "description": "Total matching records, ignoring paging.",
                          "x-aura-documentation": {
                            "language": "en",
                            "status": "structural-fallback",
                            "source": "catalog-structure"
                          }
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ],
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-create-matrix-input",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/{id}/columns/{matrixColumnId}/inputs",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/matrix/{id}/input-values": {
      "get": {
        "operationId": "loan-get-matrix-input-values",
        "tags": [
          "matrix"
        ],
        "summary": "loan-get-matrix-input-values",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "inputValues": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "inputValue": {
                              "type": "string",
                              "x-aura-field-code": "inputValue"
                            },
                            "matrixColumnId": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "matrixColumnId"
                            },
                            "matrixResultId": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "matrixResultId"
                            }
                          },
                          "x-aura-field-code": "matrixInputValues"
                        }
                      },
                      "resultValue": {
                        "type": "string",
                        "x-aura-field-code": "resultValue"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-matrix-input-values",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/{id}/input-values",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/matrix/{id}/product-maps": {
      "get": {
        "operationId": "loan-get-matrix-product-map-list",
        "tags": [
          "matrix"
        ],
        "summary": "loan-get-matrix-product-map-list",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "accountProductId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "accountProductId"
                      },
                      "matrixProductMapId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "matrixProductMapId"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-matrix-product-map-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/{id}/product-maps",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      },
      "post": {
        "operationId": "loan-create-matrix-product-map",
        "tags": [
          "matrix"
        ],
        "summary": "loan-create-matrix-product-map",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountProductId": {
                    "type": "string",
                    "format": "uuid",
                    "x-aura-field-code": "accountProductId"
                  }
                },
                "required": [
                  "accountProductId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The schema is an `anyOf` over three envelopes: the record, a bare array of it, and a page `{total, data[]}` carrying the same record.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Response whose record fields are declared but whose outer cardinality is not established by the catalog.",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "x-aura-field-code": "accountProductId"
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Bare-array response possibility.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "accountProductId"
                          }
                        }
                      },
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "structural-fallback",
                        "source": "catalog-structure"
                      }
                    },
                    {
                      "type": "object",
                      "description": "Paged response envelope observed on the BFF response path.",
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "structural-fallback",
                        "source": "catalog-structure"
                      },
                      "properties": {
                        "data": {
                          "type": "array",
                          "description": "Response records carried by this page.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "format": "uuid",
                                "x-aura-field-code": "accountProductId"
                              }
                            }
                          },
                          "x-aura-documentation": {
                            "language": "en",
                            "status": "structural-fallback",
                            "source": "catalog-structure"
                          }
                        },
                        "total": {
                          "type": "integer",
                          "format": "int64",
                          "description": "Total matching records, ignoring paging.",
                          "x-aura-documentation": {
                            "language": "en",
                            "status": "structural-fallback",
                            "source": "catalog-structure"
                          }
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ],
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-create-matrix-product-map",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/{id}/product-maps",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/matrix/{id}/product-maps/{matrixProductMapId}": {
      "delete": {
        "operationId": "loan-delete-matrix-product-map",
        "tags": [
          "matrix"
        ],
        "summary": "loan-delete-matrix-product-map",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixId"
            }
          },
          {
            "name": "matrixProductMapId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixProductMapId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-delete-matrix-product-map",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/{id}/product-maps/{matrixProductMapId}",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/matrix/{id}/results": {
      "get": {
        "operationId": "loan-get-matrix-result-list",
        "tags": [
          "matrix"
        ],
        "summary": "loan-get-matrix-result-list",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "matrixId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "matrixId"
                      },
                      "resultValue": {
                        "type": "string",
                        "x-aura-field-code": "resultValue"
                      },
                      "sortOrder": {
                        "type": "number",
                        "x-aura-field-code": "sortOrder"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-matrix-result-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/{id}/results",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      },
      "post": {
        "operationId": "loan-create-matrix-result",
        "tags": [
          "matrix"
        ],
        "summary": "loan-create-matrix-result",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "matrixInputs": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "x-aura-field-code": "matrixInputs"
                    }
                  },
                  "resultValue": {
                    "type": "string",
                    "x-aura-field-code": "resultValue"
                  }
                },
                "required": [
                  "resultValue"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 2,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The schema is an `anyOf` over three envelopes: the record, a bare array of it, and a page `{total, data[]}` carrying the same record.",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Response whose record fields are declared but whose outer cardinality is not established by the catalog.",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "x-aura-field-code": "matrixResultId"
                        }
                      }
                    },
                    {
                      "type": "array",
                      "description": "Bare-array response possibility.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "matrixResultId"
                          }
                        }
                      },
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "structural-fallback",
                        "source": "catalog-structure"
                      }
                    },
                    {
                      "type": "object",
                      "description": "Paged response envelope observed on the BFF response path.",
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "structural-fallback",
                        "source": "catalog-structure"
                      },
                      "properties": {
                        "data": {
                          "type": "array",
                          "description": "Response records carried by this page.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "type": "string",
                                "format": "uuid",
                                "x-aura-field-code": "matrixResultId"
                              }
                            }
                          },
                          "x-aura-documentation": {
                            "language": "en",
                            "status": "structural-fallback",
                            "source": "catalog-structure"
                          }
                        },
                        "total": {
                          "type": "integer",
                          "format": "int64",
                          "description": "Total matching records, ignoring paging.",
                          "x-aura-documentation": {
                            "language": "en",
                            "status": "structural-fallback",
                            "source": "catalog-structure"
                          }
                        }
                      },
                      "required": [
                        "data"
                      ]
                    }
                  ],
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-create-matrix-result",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/{id}/results",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/matrix/{id}/results/{matrixResultId}": {
      "delete": {
        "operationId": "loan-delete-matrix-result",
        "tags": [
          "matrix"
        ],
        "summary": "loan-delete-matrix-result",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixId"
            }
          },
          {
            "name": "matrixResultId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixResultId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-delete-matrix-result",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/{id}/results/{matrixResultId}",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      },
      "put": {
        "operationId": "loan-update-matrix-result",
        "tags": [
          "matrix"
        ],
        "summary": "loan-update-matrix-result",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixId"
            }
          },
          {
            "name": "matrixResultId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixResultId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "matrixInputs": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "x-aura-field-code": "matrixInputs"
                    }
                  },
                  "resultValue": {
                    "type": "string",
                    "x-aura-field-code": "resultValue"
                  }
                },
                "required": [
                  "resultValue"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 2,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-update-matrix-result",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/{id}/results/{matrixResultId}",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/matrix/{id}/results/{matrixResultId}/inputs/{matrixInputId}": {
      "delete": {
        "operationId": "loan-delete-matrix-input",
        "tags": [
          "matrix"
        ],
        "summary": "loan-delete-matrix-input",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixId"
            }
          },
          {
            "name": "matrixResultId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixResultId"
            }
          },
          {
            "name": "matrixInputId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixInputId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 3,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-delete-matrix-input",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/{id}/results/{matrixResultId}/inputs/{matrixInputId}",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      },
      "put": {
        "operationId": "loan-update-matrix-input",
        "tags": [
          "matrix"
        ],
        "summary": "loan-update-matrix-input",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixId"
            }
          },
          {
            "name": "matrixResultId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixResultId"
            }
          },
          {
            "name": "matrixInputId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "matrixInputId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "inputValue": {
                    "type": "string",
                    "x-aura-field-code": "inputValue"
                  }
                },
                "required": [
                  "inputValue"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 3,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-update-matrix-input",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "matrix/{id}/results/{matrixResultId}/inputs/{matrixInputId}",
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/parameters": {
      "get": {
        "operationId": "loan-get-parameter-list",
        "tags": [
          "parameters"
        ],
        "summary": "loan-get-parameter-list",
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string",
                        "x-aura-field-code": "code"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "id"
                      },
                      "isActive": {
                        "type": "boolean",
                        "x-aura-field-code": "isActive"
                      },
                      "name": {
                        "type": "string",
                        "x-aura-field-code": "name",
                        "x-aura-maskable": true
                      },
                      "parameterFields": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "x-aura-field-code": "code"
                            },
                            "id": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "id"
                            },
                            "isActive": {
                              "type": "boolean",
                              "x-aura-field-code": "isActive"
                            },
                            "translations": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "languageCode": {
                                    "type": "string",
                                    "x-aura-field-code": "languageCode"
                                  },
                                  "name": {
                                    "type": "string",
                                    "x-aura-field-code": "name",
                                    "x-aura-maskable": true
                                  }
                                },
                                "x-aura-field-code": "translations"
                              }
                            }
                          },
                          "x-aura-field-code": "parameterFields"
                        }
                      },
                      "translations": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "languageCode": {
                              "type": "string",
                              "x-aura-field-code": "languageCode"
                            },
                            "name": {
                              "type": "string",
                              "x-aura-field-code": "name",
                              "x-aura-maskable": true
                            }
                          },
                          "x-aura-field-code": "translations"
                        }
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-parameter-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters",
        "x-aura-capabilities": {
          "caching": true,
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<ParameterDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "ParameterDto",
          "collection": true,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Code",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsActive",
              "declared_type": "bool?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Name",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Translations",
              "declared_type": "IEnumerable<ParameterTranslationDto>",
              "nullable": false,
              "collection": true
            },
            {
              "name": "ParameterFields",
              "declared_type": "IEnumerable<ParameterFieldDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      },
      "post": {
        "operationId": "loan-create-parameter",
        "tags": [
          "parameters"
        ],
        "summary": "loan-create-parameter",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "x-aura-field-code": "parameterCode"
                  },
                  "isActive": {
                    "type": "boolean",
                    "x-aura-field-code": "isActive"
                  },
                  "translations": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "languageCode": {
                          "type": "string",
                          "x-aura-field-code": "languageCode"
                        },
                        "name": {
                          "type": "string",
                          "x-aura-field-code": "parameterName"
                        }
                      },
                      "required": [
                        "languageCode",
                        "name"
                      ],
                      "x-aura-field-code": "translations"
                    }
                  }
                },
                "required": [
                  "code",
                  "translations"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 3,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "id"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-create-parameter",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "AuraCommandDto",
          "payload": "AuraCommandDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_1",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_CODE_ALREADY_EXISTS"
            }
          ]
        }
      }
    },
    "/parameters/by-code/{code}": {
      "get": {
        "operationId": "loan-get-parameter-by-code",
        "tags": [
          "parameters"
        ],
        "summary": "loan-get-parameter-by-code",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "x-aura-field-code": "code"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "x-aura-field-code": "includeInactive"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 1
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "x-aura-field-code": "code"
                    },
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "id"
                    },
                    "isActive": {
                      "type": "boolean",
                      "x-aura-field-code": "isActive"
                    },
                    "name": {
                      "type": "string",
                      "x-aura-field-code": "name",
                      "x-aura-maskable": true
                    },
                    "parameterFields": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string",
                            "x-aura-field-code": "code"
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "id"
                          },
                          "isActive": {
                            "type": "boolean",
                            "x-aura-field-code": "isActive"
                          },
                          "translations": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "languageCode": {
                                  "type": "string",
                                  "x-aura-field-code": "languageCode"
                                },
                                "name": {
                                  "type": "string",
                                  "x-aura-field-code": "name",
                                  "x-aura-maskable": true
                                }
                              },
                              "x-aura-field-code": "translations"
                            }
                          }
                        },
                        "x-aura-field-code": "parameterFields"
                      }
                    },
                    "translations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "languageCode": {
                            "type": "string",
                            "x-aura-field-code": "languageCode"
                          },
                          "name": {
                            "type": "string",
                            "x-aura-field-code": "name",
                            "x-aura-maskable": true
                          }
                        },
                        "x-aura-field-code": "translations"
                      }
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-parameter-by-code",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/by-code/{code}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "ParameterDto",
          "payload": "ParameterDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Code",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsActive",
              "declared_type": "bool?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Name",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Translations",
              "declared_type": "IEnumerable<ParameterTranslationDto>",
              "nullable": false,
              "collection": true
            },
            {
              "name": "ParameterFields",
              "declared_type": "IEnumerable<ParameterFieldDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_12",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_CODE_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/parameters/by-code/{code}/default-value": {
      "get": {
        "operationId": "loan-get-parameter-default-value-by-parameter-code",
        "tags": [
          "parameters"
        ],
        "summary": "loan-get-parameter-default-value-by-parameter-code",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "x-aura-field-code": "code"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "x-aura-field-code": "includeInactive"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 1
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-parameter-default-value-by-parameter-code",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/by-code/{code}/default-value",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "declared-non-dto",
          "note": "The route returns `string`, a scalar rather than an object. There is no field tree below because there are no fields: the body is a JSON string. This is a complete answer read from the declaration, not a gap.",
          "declared_type": "string",
          "payload": "string"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_12",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_CODE_NOT_FOUND"
            },
            {
              "code": "ERR_PRMTR_14",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_DEFAULT_VALUE_BY_CODE_NOT_EXISTS"
            }
          ]
        }
      }
    },
    "/parameters/by-code/{code}/values": {
      "get": {
        "operationId": "loan-get-parameter-value-list-by-parameter-code",
        "tags": [
          "parameters"
        ],
        "summary": "loan-get-parameter-value-list-by-parameter-code",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "x-aura-field-code": "code"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "x-aura-field-code": "includeInactive"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 1
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "context": {
                        "type": "string",
                        "x-aura-field-code": "context"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "id"
                      },
                      "isActive": {
                        "type": "boolean",
                        "x-aura-field-code": "isActive"
                      },
                      "paramKey": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "paramKey"
                      },
                      "sortOrder": {
                        "type": "number",
                        "x-aura-field-code": "sortOrder"
                      },
                      "translations": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "context": {
                              "type": "string",
                              "x-aura-field-code": "context"
                            },
                            "languageCode": {
                              "type": "string",
                              "x-aura-field-code": "languageCode"
                            }
                          },
                          "x-aura-field-code": "translations"
                        }
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-parameter-value-list-by-parameter-code",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/by-code/{code}/values",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<ParameterValueDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "ParameterValueDto",
          "collection": true,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ParamKey",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Context",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "SortOrder",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "IsActive",
              "declared_type": "bool?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Translations",
              "declared_type": "IEnumerable<ParameterValueTranslationDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_12",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_CODE_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/parameters/{id}": {
      "delete": {
        "operationId": "loan-delete-parameter",
        "tags": [
          "parameters"
        ],
        "summary": "loan-delete-parameter",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-delete-parameter",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/{id}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "declared_type": "Unit",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body",
          "payload": "Unit"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_2",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_ID_NOT_FOUND"
            }
          ]
        }
      },
      "get": {
        "operationId": "loan-get-parameter-by-id",
        "tags": [
          "parameters"
        ],
        "summary": "loan-get-parameter-by-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "x-aura-field-code": "includeInactive"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 1
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "x-aura-field-code": "code"
                    },
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "id"
                    },
                    "isActive": {
                      "type": "boolean",
                      "x-aura-field-code": "isActive"
                    },
                    "name": {
                      "type": "string",
                      "x-aura-field-code": "name",
                      "x-aura-maskable": true
                    },
                    "parameterFields": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string",
                            "x-aura-field-code": "code"
                          },
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "x-aura-field-code": "id"
                          },
                          "isActive": {
                            "type": "boolean",
                            "x-aura-field-code": "isActive"
                          },
                          "translations": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "languageCode": {
                                  "type": "string",
                                  "x-aura-field-code": "languageCode"
                                },
                                "name": {
                                  "type": "string",
                                  "x-aura-field-code": "name",
                                  "x-aura-maskable": true
                                }
                              },
                              "x-aura-field-code": "translations"
                            }
                          }
                        },
                        "x-aura-field-code": "parameterFields"
                      }
                    },
                    "translations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "languageCode": {
                            "type": "string",
                            "x-aura-field-code": "languageCode"
                          },
                          "name": {
                            "type": "string",
                            "x-aura-field-code": "name",
                            "x-aura-maskable": true
                          }
                        },
                        "x-aura-field-code": "translations"
                      }
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-parameter-by-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/{id}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "ParameterDto",
          "payload": "ParameterDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Code",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsActive",
              "declared_type": "bool?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Name",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Translations",
              "declared_type": "IEnumerable<ParameterTranslationDto>",
              "nullable": false,
              "collection": true
            },
            {
              "name": "ParameterFields",
              "declared_type": "IEnumerable<ParameterFieldDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_2",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_ID_NOT_FOUND"
            }
          ]
        }
      },
      "put": {
        "operationId": "loan-update-parameter",
        "tags": [
          "parameters"
        ],
        "summary": "loan-update-parameter",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "isActive": {
                    "type": "boolean",
                    "x-aura-field-code": "isActive"
                  },
                  "translations": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "languageCode": {
                          "type": "string",
                          "x-aura-field-code": "languageCode"
                        },
                        "name": {
                          "type": "string",
                          "x-aura-field-code": "parameterName"
                        }
                      },
                      "required": [
                        "languageCode",
                        "name"
                      ],
                      "x-aura-field-code": "translations"
                    }
                  }
                },
                "required": [
                  "isActive",
                  "translations"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 2,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-update-parameter",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/{id}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "declared_type": "Unit",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body",
          "payload": "Unit"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_2",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_ID_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/parameters/{id}/default-value": {
      "get": {
        "operationId": "loan-get-parameter-default-value",
        "tags": [
          "parameters"
        ],
        "summary": "loan-get-parameter-default-value",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "x-aura-field-code": "includeInactive"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 1
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-parameter-default-value",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/{id}/default-value",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "declared-non-dto",
          "note": "The route returns `string`, a scalar rather than an object. There is no field tree below because there are no fields: the body is a JSON string. This is a complete answer read from the declaration, not a gap.",
          "declared_type": "string",
          "payload": "string"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_13",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_DEFAULT_VALUE_BY_ID_NOT_EXISTS"
            },
            {
              "code": "ERR_PRMTR_2",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_ID_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/parameters/{id}/field-values/{fieldValueId}": {
      "delete": {
        "operationId": "loan-delete-parameter-field-value",
        "tags": [
          "parameters"
        ],
        "summary": "loan-delete-parameter-field-value",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          },
          {
            "name": "fieldValueId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "fieldValueId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-delete-parameter-field-value",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/{id}/field-values/{fieldValueId}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "declared_type": "Unit",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body",
          "payload": "Unit"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_10",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_FIELD_VALUE_NOT_EXISTS"
            },
            {
              "code": "ERR_PRMTR_2",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_ID_NOT_FOUND"
            }
          ]
        }
      },
      "put": {
        "operationId": "loan-update-parameter-field-value",
        "tags": [
          "parameters"
        ],
        "summary": "loan-update-parameter-field-value",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          },
          {
            "name": "fieldValueId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "fieldValueId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "fieldValue": {
                    "type": "string",
                    "x-aura-field-code": "fieldValue"
                  }
                },
                "required": [
                  "fieldValue"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-update-parameter-field-value",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/{id}/field-values/{fieldValueId}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "declared_type": "Unit",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body",
          "payload": "Unit"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_10",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_FIELD_VALUE_NOT_EXISTS"
            },
            {
              "code": "ERR_PRMTR_2",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_ID_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/parameters/{id}/fields": {
      "get": {
        "operationId": "loan-get-parameter-field-list",
        "tags": [
          "parameters"
        ],
        "summary": "loan-get-parameter-field-list",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "x-aura-field-code": "includeInactive"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 1
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string",
                        "x-aura-field-code": "code"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "id"
                      },
                      "isActive": {
                        "type": "boolean",
                        "x-aura-field-code": "isActive"
                      },
                      "translations": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "languageCode": {
                              "type": "string",
                              "x-aura-field-code": "languageCode"
                            },
                            "name": {
                              "type": "string",
                              "x-aura-field-code": "name",
                              "x-aura-maskable": true
                            }
                          },
                          "x-aura-field-code": "translations"
                        }
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-parameter-field-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/{id}/fields",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<ParameterFieldDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "ParameterFieldDto",
          "collection": true,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Code",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsActive",
              "declared_type": "bool?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Translations",
              "declared_type": "IEnumerable<ParameterFieldTranslationDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_2",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_ID_NOT_FOUND"
            }
          ]
        }
      },
      "post": {
        "operationId": "loan-create-parameter-field",
        "tags": [
          "parameters"
        ],
        "summary": "loan-create-parameter-field",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "x-aura-field-code": "code"
                  },
                  "translations": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "languageCode": {
                          "type": "string",
                          "x-aura-field-code": "languageCode"
                        },
                        "name": {
                          "type": "string",
                          "x-aura-field-code": "name",
                          "x-aura-maskable": true
                        }
                      },
                      "required": [
                        "languageCode",
                        "name"
                      ],
                      "x-aura-field-code": "translations"
                    }
                  }
                },
                "required": [
                  "code",
                  "translations"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 2,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "id"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-create-parameter-field",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/{id}/fields",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "AuraCommandDto",
          "payload": "AuraCommandDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_2",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_ID_NOT_FOUND"
            },
            {
              "code": "ERR_PRMTR_3",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_FIELD_CODE_ALREADY_EXISTS"
            }
          ]
        }
      }
    },
    "/parameters/{id}/fields/{fieldId}": {
      "delete": {
        "operationId": "loan-delete-parameter-field",
        "tags": [
          "parameters"
        ],
        "summary": "loan-delete-parameter-field",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          },
          {
            "name": "fieldId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "fieldId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-delete-parameter-field",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/{id}/fields/{fieldId}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "declared_type": "Unit",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body",
          "payload": "Unit"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_2",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_ID_NOT_FOUND"
            },
            {
              "code": "ERR_PRMTR_5",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_FIELD_NOT_EXISTS"
            }
          ]
        }
      },
      "put": {
        "operationId": "loan-update-parameter-field",
        "tags": [
          "parameters"
        ],
        "summary": "loan-update-parameter-field",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          },
          {
            "name": "fieldId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "fieldId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "translations": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "languageCode": {
                          "type": "string",
                          "x-aura-field-code": "languageCode"
                        },
                        "name": {
                          "type": "string",
                          "x-aura-field-code": "name",
                          "x-aura-maskable": true
                        }
                      },
                      "required": [
                        "languageCode",
                        "name"
                      ],
                      "x-aura-field-code": "translations"
                    }
                  }
                },
                "required": [
                  "translations"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-update-parameter-field",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/{id}/fields/{fieldId}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "declared_type": "Unit",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body",
          "payload": "Unit"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_2",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_ID_NOT_FOUND"
            },
            {
              "code": "ERR_PRMTR_5",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_FIELD_NOT_EXISTS"
            }
          ]
        }
      }
    },
    "/parameters/{id}/values": {
      "get": {
        "operationId": "loan-get-parameter-value-list",
        "tags": [
          "parameters"
        ],
        "summary": "loan-get-parameter-value-list",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "x-aura-field-code": "includeInactive"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 1
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "context": {
                        "type": "string",
                        "x-aura-field-code": "context"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "id"
                      },
                      "isActive": {
                        "type": "boolean",
                        "x-aura-field-code": "isActive"
                      },
                      "paramKey": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "paramKey"
                      },
                      "sortOrder": {
                        "type": "number",
                        "x-aura-field-code": "sortOrder"
                      },
                      "translations": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "context": {
                              "type": "string",
                              "x-aura-field-code": "context"
                            },
                            "languageCode": {
                              "type": "string",
                              "x-aura-field-code": "languageCode"
                            }
                          },
                          "x-aura-field-code": "translations"
                        }
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-parameter-value-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/{id}/values",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<ParameterValueDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "ParameterValueDto",
          "collection": true,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ParamKey",
              "declared_type": "int",
              "nullable": false,
              "collection": false
            },
            {
              "name": "Context",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "SortOrder",
              "declared_type": "int?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "IsActive",
              "declared_type": "bool?",
              "nullable": true,
              "collection": false
            },
            {
              "name": "Translations",
              "declared_type": "IEnumerable<ParameterValueTranslationDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_2",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_ID_NOT_FOUND"
            }
          ]
        }
      },
      "post": {
        "operationId": "loan-create-parameter-value",
        "tags": [
          "parameters"
        ],
        "summary": "loan-create-parameter-value",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "context": {
                    "type": "string",
                    "x-aura-field-code": "context"
                  },
                  "isActive": {
                    "type": "boolean",
                    "x-aura-field-code": "isActive"
                  },
                  "paramKey": {
                    "type": "integer",
                    "format": "int32",
                    "x-aura-field-code": "paramKey"
                  },
                  "sortOrder": {
                    "type": "number",
                    "x-aura-field-code": "sortOrder"
                  },
                  "translations": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "context": {
                          "type": "string",
                          "x-aura-field-code": "context"
                        },
                        "languageCode": {
                          "type": "string",
                          "x-aura-field-code": "languageCode"
                        }
                      },
                      "required": [
                        "context",
                        "languageCode"
                      ],
                      "x-aura-field-code": "translations"
                    }
                  }
                },
                "required": [
                  "context",
                  "paramKey",
                  "translations"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 5,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "valueId"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-create-parameter-value",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/{id}/values",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "AuraCommandDto",
          "payload": "AuraCommandDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_2",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_ID_NOT_FOUND"
            },
            {
              "code": "ERR_PRMTR_7",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_VALUE_WITH_KEY_ALREADY_EXISTS"
            }
          ]
        }
      }
    },
    "/parameters/{id}/values/{valueId}": {
      "delete": {
        "operationId": "loan-delete-parameter-value",
        "tags": [
          "parameters"
        ],
        "summary": "loan-delete-parameter-value",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          },
          {
            "name": "valueId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "valueId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-delete-parameter-value",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/{id}/values/{valueId}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "declared_type": "Unit",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body",
          "payload": "Unit"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_2",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_ID_NOT_FOUND"
            },
            {
              "code": "ERR_PRMTR_4",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_VALUE_NOT_EXISTS"
            }
          ]
        }
      },
      "put": {
        "operationId": "loan-update-parameter-value",
        "tags": [
          "parameters"
        ],
        "summary": "loan-update-parameter-value",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          },
          {
            "name": "valueId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "valueId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "context": {
                    "type": "string",
                    "x-aura-field-code": "context"
                  },
                  "isActive": {
                    "type": "boolean",
                    "x-aura-field-code": "isActive"
                  },
                  "sortOrder": {
                    "type": "number",
                    "x-aura-field-code": "sortOrder"
                  },
                  "translations": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "context": {
                          "type": "string",
                          "x-aura-field-code": "context"
                        },
                        "languageCode": {
                          "type": "string",
                          "x-aura-field-code": "languageCode"
                        }
                      },
                      "required": [
                        "context",
                        "languageCode"
                      ],
                      "x-aura-field-code": "translations"
                    }
                  }
                },
                "required": [
                  "context",
                  "isActive",
                  "sortOrder",
                  "translations"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 4,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-update-parameter-value",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/{id}/values/{valueId}",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "declared_type": "Unit",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body",
          "payload": "Unit"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_2",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_ID_NOT_FOUND"
            },
            {
              "code": "ERR_PRMTR_4",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_VALUE_NOT_EXISTS"
            }
          ]
        }
      }
    },
    "/parameters/{id}/values/{valueId}/field-values": {
      "get": {
        "operationId": "loan-get-parameter-field-value-list",
        "tags": [
          "parameters"
        ],
        "summary": "loan-get-parameter-field-value-list",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          },
          {
            "name": "valueId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "valueId"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "x-aura-field-code": "includeInactive"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 1
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "fieldValue": {
                        "type": "string",
                        "x-aura-field-code": "fieldValue"
                      },
                      "isActive": {
                        "type": "boolean",
                        "x-aura-field-code": "isActive"
                      },
                      "parameterFieldId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "parameterFieldId"
                      },
                      "parameterFieldValueId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "parameterFieldValueId"
                      },
                      "parameterValueId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "parameterValueId"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-get-parameter-field-value-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/{id}/values/{valueId}/field-values",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<ParameterFieldValueDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "ParameterFieldValueDto",
          "collection": true,
          "members": [
            {
              "name": "ParameterFieldValueId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ParameterValueId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "ParameterFieldId",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "FieldValue",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "IsActive",
              "declared_type": "bool",
              "nullable": false,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_2",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_ID_NOT_FOUND"
            }
          ]
        }
      },
      "post": {
        "operationId": "loan-create-parameter-field-value",
        "tags": [
          "parameters"
        ],
        "summary": "loan-create-parameter-field-value",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "id"
            }
          },
          {
            "name": "valueId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "valueId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "fieldValues": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "fieldValue": {
                          "type": "string",
                          "x-aura-field-code": "fieldValue"
                        },
                        "isActive": {
                          "type": "boolean",
                          "x-aura-field-code": "isActive"
                        },
                        "parameterFieldId": {
                          "type": "string",
                          "format": "uuid",
                          "x-aura-field-code": "parameterFieldId"
                        }
                      },
                      "required": [
                        "fieldValue",
                        "isActive",
                        "parameterFieldId"
                      ],
                      "x-aura-field-code": "fieldValues"
                    }
                  }
                },
                "required": [
                  "fieldValues"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 1,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "loan-create-parameter-field-value",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "parameters/{id}/values/{valueId}/field-values",
        "x-aura-request-contract": {
          "state": "not-parsed-in-repo"
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "declared_type": "Unit",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body",
          "payload": "Unit"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_PRMTR_2",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_ID_NOT_FOUND"
            },
            {
              "code": "ERR_PRMTR_4",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "PARAMETER_VALUE_NOT_EXISTS"
            }
          ]
        }
      }
    },
    "/product-groups/{loanId}/all-details": {
      "get": {
        "operationId": "get-loan-product-group-ui-list",
        "tags": [
          "product-groups"
        ],
        "summary": "get-loan-product-group-ui-list",
        "parameters": [
          {
            "name": "loanId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "loanId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-loan-product-group-ui-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "product-groups/{loanId}/all-details",
        "x-aura-capabilities": {
          "filtering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-code-response": {
          "state": "no-code-endpoint",
          "note": "No endpoint registration was found at this address."
        }
      }
    },
    "/vendor-external/by-merchant/details": {
      "get": {
        "operationId": "get-vendor-external-detail-list-by-merchant",
        "tags": [
          "vendor-external"
        ],
        "summary": "get-vendor-external-detail-list-by-merchant",
        "parameters": [
          {
            "name": "bankCode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "bankCodeContext"
            }
          },
          {
            "name": "merchantId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "x-aura-field-code": "merchantId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 0,
            "query": 2
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "accounts": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "bankCode": {
                              "type": "integer",
                              "format": "int32",
                              "x-aura-field-code": "bankCode"
                            },
                            "currencyNumber": {
                              "type": "string",
                              "x-aura-field-code": "currencyNumber"
                            },
                            "iban": {
                              "type": "string",
                              "x-aura-field-code": "iban"
                            },
                            "id": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "accountId"
                            }
                          },
                          "x-aura-field-code": "accounts"
                        }
                      },
                      "customerId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "customerId"
                      },
                      "distributors": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "distributorVendorExternalId": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "distributorVendorExternalId"
                            },
                            "id": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "vendorExternalDistributorId"
                            }
                          },
                          "x-aura-field-code": "distributors"
                        }
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "externalVendorId"
                      },
                      "isActive": {
                        "type": "boolean",
                        "x-aura-field-code": "isActive"
                      },
                      "merchants": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "bankCode": {
                              "type": "string",
                              "x-aura-field-code": "bankCodeContext"
                            },
                            "id": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "vendorExternalMerchantId"
                            },
                            "merchantId": {
                              "type": "string",
                              "x-aura-field-code": "merchantId"
                            },
                            "vendorExternalId": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "externalVendorId"
                            }
                          },
                          "x-aura-field-code": "merchants"
                        }
                      },
                      "poses": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "format": "uuid",
                              "x-aura-field-code": "vendorExternalPosId"
                            },
                            "isActive": {
                              "type": "boolean",
                              "x-aura-field-code": "isActive"
                            },
                            "mccCode": {
                              "type": "integer",
                              "format": "int32",
                              "x-aura-field-code": "mccCode"
                            },
                            "terminalCode": {
                              "type": "string",
                              "x-aura-field-code": "terminalCode"
                            }
                          },
                          "x-aura-field-code": "poses"
                        }
                      },
                      "vendorExternalNumber": {
                        "type": "string",
                        "x-aura-field-code": "vendorExternalNumber"
                      },
                      "vendorExternalType": {
                        "type": "integer",
                        "format": "int32",
                        "x-aura-field-code": "vendorExternalType"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-external-detail-list-by-merchant",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "vendor-external/by-merchant/details",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "MerchantId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "BankCode",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<VendorExternalDetailsDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "VendorExternalDetailsDto",
          "collection": true,
          "members": [
            {
              "name": "Accounts",
              "declared_type": "List<VendorAccountDto>",
              "nullable": false,
              "collection": true
            },
            {
              "name": "Distributors",
              "declared_type": "List<VendorDistributorDto>",
              "nullable": false,
              "collection": true
            },
            {
              "name": "Poses",
              "declared_type": "List<VendorPosDto>",
              "nullable": false,
              "collection": true
            },
            {
              "name": "Merchants",
              "declared_type": "List<GetVendorExternalMerchantList.VendorExternalMerchantDto>",
              "nullable": false,
              "collection": true
            }
          ],
          "naming": "Member names are the service's declaration names."
        }
      }
    },
    "/vendor-external/{id}/merchants": {
      "get": {
        "operationId": "get-vendor-external-merchant-list",
        "tags": [
          "vendor-external"
        ],
        "summary": "get-vendor-external-merchant-list",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "x-aura-field-code": "filter"
            }
          },
          {
            "name": "orderBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderBy"
            }
          },
          {
            "name": "orderSort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "x-aura-field-code": "orderSort"
            }
          },
          {
            "name": "pageIndex",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageIndex"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "x-aura-field-code": "pageSize"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 5
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. Returns a collection of records. Of 135 operations in this state that were probed (measured against a reference deployment on parameterless GET routes only), 118 answered and 118 returned a bare JSON array.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "description": "Array of catalog-declared response records.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "bankCode": {
                        "type": "string",
                        "x-aura-field-code": "bankCodeContext"
                      },
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "vendorExternalMerchantId"
                      },
                      "merchantId": {
                        "type": "string",
                        "x-aura-field-code": "merchantId"
                      },
                      "vendorExternalId": {
                        "type": "string",
                        "format": "uuid",
                        "x-aura-field-code": "externalVendorId"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "structural-fallback",
                    "source": "catalog-structure"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-external-merchant-list",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "vendor-external/{id}/merchants",
        "x-aura-capabilities": {
          "filtering": true,
          "ordering": true,
          "paging": true,
          "note": "Platform-provided behaviours declared on the catalog entry. The catalog does not record the parameter names the platform uses for them, so they are not rendered as parameters here."
        },
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageIndex",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "PageSize",
              "declared_type": null,
              "nullable": true,
              "collection": false
            },
            {
              "name": "OrderBy",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "OrderSort",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "Filter",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "IEnumerable<VendorExternalMerchantDto>",
          "envelopes": [
            "IEnumerable"
          ],
          "payload": "VendorExternalMerchantDto",
          "collection": true,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "MerchantId",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "BankCode",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorExternalId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      },
      "post": {
        "operationId": "create-vendor-external-merchant",
        "tags": [
          "vendor-external"
        ],
        "summary": "create-vendor-external-merchant",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "bankCode": {
                    "type": "string",
                    "x-aura-field-code": "bankCodeContext"
                  },
                  "merchantId": {
                    "type": "string",
                    "x-aura-field-code": "merchantId"
                  }
                },
                "required": [
                  "merchantId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "POST",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 2,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 1,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Body shape declared by the exact route registration for the catalog's 200 response.",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "description": "Identifier returned by the command.",
                      "x-aura-documentation": {
                        "language": "en",
                        "status": "source-grounded",
                        "source": "exact-pinned-code-response"
                      }
                    }
                  },
                  "x-aura-documentation": {
                    "language": "en",
                    "status": "source-grounded",
                    "source": "exact-pinned-code-response"
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "create-vendor-external-merchant",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "vendor-external/{id}/merchants",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "MerchantId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "BankCode",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "command-id",
          "note": "The route returns `AuraCommandDto<Guid>`, which is the response body itself and not a wrapper around one: the framework declares it as a class with a single property, `Id`, of type `Guid`. A caller gets a JSON OBJECT with one field, not a bare value. The field is `id` on the wire.",
          "declared_type": "AuraCommandDto<Guid>",
          "envelopes": [
            "AuraCommandDto"
          ],
          "payload": "Guid",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false,
              "wire_name": "id",
              "wire_name_basis": "framework-naming-policy"
            }
          ],
          "naming": "Member names are the service's declaration names.",
          "synthesized": true
        },
        "x-aura-response-contract-disagreement": {
          "state": "catalog-union-withheld-for-exact-code-contract",
          "note": "An exact, uniquely bound route registration declares the command-id envelope, so this schema is the code-backed body contract.",
          "code_response_state": "command-id",
          "code_cardinality": "single-record",
          "catalog_cardinality": "undeclared",
          "catalog_success_status": 200
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_102",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "VENDOR_EXTERNAL_MERCHANT_FOUND"
            },
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      }
    },
    "/vendor-external/{id}/merchants/{vendorExternalMerchantId}": {
      "delete": {
        "operationId": "delete-vendor-external-merchant",
        "tags": [
          "vendor-external"
        ],
        "summary": "delete-vendor-external-merchant",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          },
          {
            "name": "vendorExternalMerchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "vendorExternalMerchantId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "DELETE",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "delete-vendor-external-merchant",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "vendor-external/{id}/merchants/{vendorExternalMerchantId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorExternalMerchantId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_103",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "VENDOR_EXTERNAL_MERCHANT_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      },
      "get": {
        "operationId": "get-vendor-external-merchant-by-id",
        "tags": [
          "vendor-external"
        ],
        "summary": "get-vendor-external-merchant-by-id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          },
          {
            "name": "vendorExternalMerchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "vendorExternalMerchantId"
            }
          }
        ],
        "x-aura-request-binding": {
          "method": "GET",
          "admits": [
            "route",
            "query",
            "header",
            "claim"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 0,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares this returns a single record. Of 25 operations in this state with a probeable route, 8 answered and 6 returned a single record — the other two returned a collection and a bare boolean.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "bankCode": {
                      "type": "string",
                      "x-aura-field-code": "bankCodeContext"
                    },
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "vendorExternalMerchantId"
                    },
                    "merchantId": {
                      "type": "string",
                      "x-aura-field-code": "merchantId"
                    },
                    "vendorExternalId": {
                      "type": "string",
                      "format": "uuid",
                      "x-aura-field-code": "externalVendorId"
                    }
                  }
                }
              }
            },
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "get-vendor-external-merchant-by-id",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "vendor-external/{id}/merchants/{vendorExternalMerchantId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorExternalMerchantId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "structure",
          "declared_type": "VendorExternalMerchantDto",
          "payload": "VendorExternalMerchantDto",
          "collection": false,
          "members": [
            {
              "name": "Id",
              "declared_type": "Guid",
              "nullable": false,
              "collection": false
            },
            {
              "name": "MerchantId",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "BankCode",
              "declared_type": "string",
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorExternalId",
              "declared_type": "Guid?",
              "nullable": true,
              "collection": false
            }
          ],
          "naming": "Member names are the service's declaration names."
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_103",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "VENDOR_EXTERNAL_MERCHANT_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      },
      "put": {
        "operationId": "update-vendor-external-merchant",
        "tags": [
          "vendor-external"
        ],
        "summary": "update-vendor-external-merchant",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "externalVendorId"
            }
          },
          {
            "name": "vendorExternalMerchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "x-aura-field-code": "vendorExternalMerchantId"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "bankCode": {
                    "type": "string",
                    "x-aura-field-code": "bankCodeContext"
                  },
                  "merchantId": {
                    "type": "string",
                    "x-aura-field-code": "merchantId"
                  }
                },
                "required": [
                  "merchantId"
                ]
              }
            }
          }
        },
        "x-aura-request-binding": {
          "method": "PUT",
          "admits": [
            "route",
            "header",
            "claim",
            "body",
            "form"
          ],
          "binder_filters_by_binding_source": true,
          "declared_root_fields_by_binding_source": {
            "body": 2,
            "claim": 0,
            "form": 0,
            "header": 0,
            "path": 2,
            "query": 0
          },
          "dropped_binding_sources": [],
          "dropped_field_names": {},
          "dropped_mandatory_field_names": [],
          "verdict": "all-declared-sources-admitted",
          "basis": "Read from the platform's service-invocation layer, which selects binding sources by the contract row's usage type and operation type and then keeps only fields bound to one of them.",
          "http_edge_note": null
        },
        "responses": {
          "200": {
            "description": "Success. The catalog declares no response fields for this operation. The body is UNKNOWN CONTENT. The response type this route registers was read from the service's own source and is published on this operation as `x-aura-code-response`.",
            "x-aura-documentation": {
              "language": "en",
              "status": "structural-fallback",
              "source": "catalog-structure"
            }
          },
          "400": {
            "$ref": "#/components/responses/Error400",
            "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one."
          },
          "408": {
            "$ref": "#/components/responses/Error408",
            "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`."
          },
          "409": {
            "$ref": "#/components/responses/Error409",
            "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`."
          },
          "500": {
            "$ref": "#/components/responses/Error500",
            "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`."
          },
          "502": {
            "$ref": "#/components/responses/Error502",
            "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`."
          },
          "default": {
            "description": "Error.\n\n**Platform error envelope:** The platform error envelope. The status is chosen by the KIND of failure, not by the error code, so one code can arrive with different statuses and one status covers many codes. Where this operation is known to raise specific codes they are listed under `x-aura-error-codes`; that list is what was found by reading its handler and validators, not a closed set.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformError"
                }
              }
            }
          }
        },
        "x-aura-service-code": "update-vendor-external-merchant",
        "x-aura-domain": "loan",
        "x-aura-raw-url-path": "vendor-external/{id}/merchants/{vendorExternalMerchantId}",
        "x-aura-request-contract": {
          "state": "structure",
          "note": "The fields a caller sends.",
          "members": [
            {
              "name": "Id",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "VendorExternalMerchantId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "MerchantId",
              "declared_type": null,
              "nullable": false,
              "collection": false
            },
            {
              "name": "BankCode",
              "declared_type": null,
              "nullable": false,
              "collection": false
            }
          ]
        },
        "x-aura-code-response": {
          "state": "empty-body",
          "note": "The registration passes ONE generic argument, which is the request type. There is no second argument because there is no response type to name: the constraint on that overload is `ICommand`/`IQuery`, both of which extend `IRequest<Unit>`, so the framework binds the result to `Unit` and `InvokeRequestAsync` returns before writing anything to the body.",
          "body": "empty",
          "success_status": 200,
          "derivation": "arity-1 registration; ICommand/IQuery : IRequest<Unit>, and the framework returns before writing a body"
        },
        "x-aura-error-codes": {
          "note": "Error codes this operation is known to raise, read from the handler and its validators. `message_available` says whether the error catalog carries text for a code at this ref — many are raised by code that has no seeded definition here, and for those the code itself is all the platform publishes. This is what was FOUND, not a closed list: an operation may raise a code through a path this scan does not follow.",
          "codes": [
            {
              "code": "ERR_LOAN_102",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "VENDOR_EXTERNAL_MERCHANT_FOUND"
            },
            {
              "code": "ERR_LOAN_103",
              "status": 400,
              "message": null,
              "message_available": false,
              "constant_name": "VENDOR_EXTERNAL_MERCHANT_NOT_FOUND"
            },
            {
              "code": "ERR_LOAN_6",
              "status": 400,
              "message": {
                "ar": "لم يتم العثور على بائع خارجي. المعرف: {0}",
                "en": "External vendor cannot be found. :{0}",
                "tr": "Dış satıcı bulunamadı. : {0}"
              },
              "message_available": true,
              "constant_name": "VENDOR_EXTERNAL_NOT_FOUND"
            }
          ]
        }
      }
    }
  },
  "x-aura-collapsed-targets": {
    "note": "These operations are served by this domain but are documented under the forwarder that fronts them, because a forwarder and its target are one logical API and only the caller-facing path is an address. They are listed here so an endpoint of this service is findable from this service's document.",
    "count": 15
  },
  "components": {
    "schemas": {
      "PlatformError": {
        "type": "object",
        "title": "PlatformError",
        "description": "The body a mapped failure returns. One `error` object; `error.code` is the only place the code appears. Not every failure carries it — see the individual statuses.",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "object",
            "required": [
              "code",
              "message"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "The platform error code. It is the identifier on the wire; a human-readable message for it is NOT guaranteed. The error catalog carries the codes seeded for this snapshot, with whichever of the published languages each one has text for, and many codes raised by services have no seeded entry at all. Where this portal knows which operations raise a code, they list it under `x-aura-error-codes`, each entry saying whether a message exists for it."
              },
              "message": {
                "type": "string",
                "description": "The resolved message for the code, in the language the request asked for."
              },
              "validationErrors": {
                "type": "array",
                "description": "Present on a validation failure only: one entry per rule that failed, each carrying its own code.",
                "items": {
                  "type": "object",
                  "additionalProperties": true
                }
              },
              "businessErrors": {
                "type": "array",
                "description": "Present on a bulk failure only: one code/message pair per failed item.",
                "items": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "responses": {
      "Error400": {
        "description": "Raised by: AuraValidationException, BatchException, BulkBusinessException, BusinessException, ChannelException, ChannelNotFoundException, JsonException, PartnerCodeNotFoundException, PartnerCodeNullException, PartnerException. Fixed codes for this status: ERR_AURA_30, ERR_AURA_31, ERR_AURA_32, ERR_AURA_39, ERR_AURA_4, ERR_AURA_5, VALIDATION_ERROR. Usually carries the error envelope, but 1 of the 10 failure classes mapped to this status do not — a client that always parses `error.code` must tolerate a body without one.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PlatformError"
            }
          }
        }
      },
      "Error408": {
        "description": "Raised by: AuraTimeoutException. Fixed code for this status: ERR_AURA_33. Carries the error envelope; read `error.code`.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PlatformError"
            }
          }
        }
      },
      "Error409": {
        "description": "Raised by: DbUpdateConcurrencyException, IdempotencyException. Fixed codes for this status: ERR_AURA_1, ERR_AURA_3. Carries the error envelope; read `error.code`.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PlatformError"
            }
          }
        }
      },
      "Error500": {
        "description": "Raised by: AuraException. Fixed code for this status: ERROR. Carries the error envelope; read `error.code`.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PlatformError"
            }
          }
        }
      },
      "Error502": {
        "description": "Raised by: AuraResponseTooLargeException. Fixed code for this status: ERR_AURA_41. Carries the error envelope; read `error.code`.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PlatformError"
            }
          }
        }
      }
    }
  }
}
