{
  "openapi": "3.1.1",
  "info": {
    "title": "TriniDrop.Backend | v1",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://trinidrop-staging.piedol.top/"
    }
  ],
  "paths": {
    "/api/auth/login": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthLoginRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auth/register/merchant": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthRegisterMerchantRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auth/register/driver": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthRegisterDriverRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/login": {
      "post": {
        "tags": [
          "Auth v1"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthLoginRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/register/merchant": {
      "post": {
        "tags": [
          "Auth v1"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthRegisterMerchantRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/auth/register/driver": {
      "post": {
        "tags": [
          "Auth v1"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthRegisterDriverRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/health": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/account/profile": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/stats": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/reports/operations": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/merchants": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/merchants/applications": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MerchantApplicationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/merchants/{merchantId}/approve": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/drivers": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/drivers/applications": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DriverApplicationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/driver/documents": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DriverDocumentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/driver/onboarding-conditions": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "patch": {
        "tags": [
          "TriniDrop"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DriverOnboardingConditionsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/driver/documents/metadata": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DriverDocumentMetadataRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/drivers/{driverId}/approve": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "driverId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/drivers/{driverId}/documents": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "driverId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/driver-documents/{documentId}/review": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "documentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DriverDocumentReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/merchants/{merchantId}/preferred-drivers/{driverId}": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "driverId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/deliveries": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDeliveryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/deliveries/{deliveryId}": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/deliveries/{deliveryId}/driver-location": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/deliveries/{deliveryId}/proof": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/deliveries/{deliveryId}/assign": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminDeliveryAssignmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/deliveries/{deliveryId}/publish-to-pool": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminDeliveryPoolRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/deliveries/{deliveryId}/unpublish-from-pool": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminDeliveryPoolRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/deliveries/{deliveryId}/cancel": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminDeliveryCancellationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/deliveries/{deliveryId}/tracking/revoke": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RevokeTrackingRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/deliveries/{deliveryId}/customer-eta": {
      "put": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerEtaRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/merchant/delivery-quotes": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDeliveryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/merchant/deliveries": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/merchant/preferred-drivers": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/merchant/driver-ratings": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DriverRatingRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/locations/search": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/locations/search": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/tracking/{token}": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/tracking/{token}/pin": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfirmPinRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/tracking/{token}/locations/search": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "query",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/driver/jobs": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/driver/earnings": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/driver/availability": {
      "patch": {
        "tags": [
          "TriniDrop"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DriverAvailabilityRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/drivers/{driverId}/jobs": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "driverId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/deliveries/{deliveryId}/accept": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/deliveries/{deliveryId}/events": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DriverDeliveryEventRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/deliveries/{deliveryId}/complete": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompleteDeliveryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/deliveries/{deliveryId}/driver-location": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DriverLocationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/deliveries/{deliveryId}/settle-cod": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/deliveries/{deliveryId}/cod-settlement": {
      "put": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CodSettlementRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/notes": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/deliveries/{deliveryId}/notes": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminNoteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/notifications": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/deliveries/{deliveryId}/notifications": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/notifications/send-pending": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/observability/sentry-test": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/service-zones": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceZoneRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/service-zones/{zoneId}": {
      "put": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "zoneId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceZoneRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/finance-settings": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "TriniDrop"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FinanceSettingsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/finance-adjustments": {
      "get": {
        "tags": [
          "TriniDrop"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/deliveries/{deliveryId}/finance-adjustments": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FinanceAdjustmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/merchants/{merchantId}/invoices": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StatementGenerationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/merchant-invoices/{invoiceId}/payment": {
      "put": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "invoiceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MerchantInvoicePaymentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/admin/drivers/{driverId}/payout-statements": {
      "post": {
        "tags": [
          "TriniDrop"
        ],
        "parameters": [
          {
            "name": "driverId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StatementGenerationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/health": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/account/profile": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/stats": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/reports/operations": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/merchants": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/merchants/applications": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MerchantApplicationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/merchants/{merchantId}/approve": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/drivers": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/drivers/applications": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DriverApplicationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/driver/documents": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DriverDocumentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/driver/onboarding-conditions": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "patch": {
        "tags": [
          "TriniDrop v1"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DriverOnboardingConditionsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/driver/documents/metadata": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DriverDocumentMetadataRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/drivers/{driverId}/approve": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "driverId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/drivers/{driverId}/documents": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "driverId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/driver-documents/{documentId}/review": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "documentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DriverDocumentReviewRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/merchants/{merchantId}/preferred-drivers/{driverId}": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "driverId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/deliveries": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDeliveryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/deliveries/{deliveryId}": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/deliveries/{deliveryId}/driver-location": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/deliveries/{deliveryId}/proof": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/deliveries/{deliveryId}/assign": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminDeliveryAssignmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/deliveries/{deliveryId}/publish-to-pool": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminDeliveryPoolRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/deliveries/{deliveryId}/unpublish-from-pool": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminDeliveryPoolRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/deliveries/{deliveryId}/cancel": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminDeliveryCancellationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/deliveries/{deliveryId}/tracking/revoke": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RevokeTrackingRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/deliveries/{deliveryId}/customer-eta": {
      "put": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerEtaRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/merchant/delivery-quotes": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDeliveryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/merchant/deliveries": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/merchant/preferred-drivers": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/merchant/driver-ratings": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DriverRatingRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/locations/search": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/locations/search": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/tracking/{token}": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/tracking/{token}/pin": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfirmPinRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/tracking/{token}/locations/search": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "query",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/driver/jobs": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/driver/earnings": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/driver/availability": {
      "patch": {
        "tags": [
          "TriniDrop v1"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DriverAvailabilityRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/drivers/{driverId}/jobs": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "driverId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/deliveries/{deliveryId}/accept": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/deliveries/{deliveryId}/events": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DriverDeliveryEventRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/deliveries/{deliveryId}/complete": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompleteDeliveryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/deliveries/{deliveryId}/driver-location": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DriverLocationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/deliveries/{deliveryId}/settle-cod": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/deliveries/{deliveryId}/cod-settlement": {
      "put": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CodSettlementRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/notes": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/deliveries/{deliveryId}/notes": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminNoteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/notifications": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/deliveries/{deliveryId}/notifications": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/notifications/send-pending": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/observability/sentry-test": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/service-zones": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceZoneRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/service-zones/{zoneId}": {
      "put": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "zoneId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceZoneRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/finance-settings": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "put": {
        "tags": [
          "TriniDrop v1"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FinanceSettingsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/finance-adjustments": {
      "get": {
        "tags": [
          "TriniDrop v1"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/deliveries/{deliveryId}/finance-adjustments": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FinanceAdjustmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/merchants/{merchantId}/invoices": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StatementGenerationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/merchant-invoices/{invoiceId}/payment": {
      "put": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "invoiceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MerchantInvoicePaymentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v1/admin/drivers/{driverId}/payout-statements": {
      "post": {
        "tags": [
          "TriniDrop v1"
        ],
        "parameters": [
          {
            "name": "driverId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StatementGenerationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AdminDeliveryAssignmentRequest": {
        "required": [
          "driverId",
          "note"
        ],
        "type": "object",
        "properties": {
          "driverId": {
            "type": "string",
            "format": "uuid"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "AdminDeliveryCancellationRequest": {
        "required": [
          "note"
        ],
        "type": "object",
        "properties": {
          "note": {
            "type": "string"
          }
        }
      },
      "AdminDeliveryPoolRequest": {
        "required": [
          "note"
        ],
        "type": "object",
        "properties": {
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "AdminNoteRequest": {
        "required": [
          "note"
        ],
        "type": "object",
        "properties": {
          "note": {
            "type": "string"
          }
        }
      },
      "AuthLoginRequest": {
        "required": [
          "email",
          "password"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          }
        }
      },
      "AuthRegisterDriverRequest": {
        "required": [
          "email",
          "password",
          "fullName",
          "phone",
          "permitNumber",
          "vehicleDescription"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "fullName": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "permitNumber": {
            "type": "string"
          },
          "vehicleDescription": {
            "type": "string"
          }
        }
      },
      "AuthRegisterMerchantRequest": {
        "required": [
          "email",
          "password",
          "businessName",
          "ownerName",
          "phone",
          "pickupAddress",
          "productCategories"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "businessName": {
            "type": "string"
          },
          "ownerName": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "pickupAddress": {
            "type": "string"
          },
          "productCategories": {
            "type": "string"
          }
        }
      },
      "CodSettlementRequest": {
        "required": [
          "status",
          "note"
        ],
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/CodSettlementStatus"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CodSettlementStatus": {
        "enum": [
          "Pending",
          "Settled",
          "Partial",
          "Disputed",
          "Overdue"
        ]
      },
      "CompleteDeliveryRequest": {
        "required": [
          "driverId",
          "proofMethod",
          "proofValue",
          "codCollectedAmount"
        ],
        "type": "object",
        "properties": {
          "driverId": {
            "type": "string",
            "format": "uuid"
          },
          "proofMethod": {
            "$ref": "#/components/schemas/ProofMethod"
          },
          "proofValue": {
            "type": "string"
          },
          "codCollectedAmount": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "clientActionId": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "ConfirmPinRequest": {
        "required": [
          "addressText",
          "latitude",
          "longitude",
          "landmark"
        ],
        "type": "object",
        "properties": {
          "addressText": {
            "type": "string"
          },
          "latitude": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "longitude": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "landmark": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "CreateDeliveryRequest": {
        "required": [
          "merchantId",
          "recipientName",
          "recipientPhone",
          "addressText",
          "latitude",
          "longitude",
          "landmark",
          "parcelCategory",
          "parcelSize",
          "declaredValueRange",
          "codAmount",
          "dispatchChoice",
          "preferredDriverId",
          "prohibitedItemsConfirmed"
        ],
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "string",
            "format": "uuid"
          },
          "recipientName": {
            "type": "string"
          },
          "recipientPhone": {
            "type": "string"
          },
          "addressText": {
            "type": "string"
          },
          "latitude": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "longitude": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "landmark": {
            "type": [
              "null",
              "string"
            ]
          },
          "parcelCategory": {
            "type": "string"
          },
          "parcelSize": {
            "$ref": "#/components/schemas/ParcelSize"
          },
          "declaredValueRange": {
            "type": "string"
          },
          "codAmount": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "dispatchChoice": {
            "$ref": "#/components/schemas/DispatchChoice"
          },
          "preferredDriverId": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          },
          "prohibitedItemsConfirmed": {
            "type": "boolean"
          }
        }
      },
      "CustomerEtaRequest": {
        "required": [
          "estimatedDeliveryWindow",
          "note"
        ],
        "type": "object",
        "properties": {
          "estimatedDeliveryWindow": {
            "type": "string"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "DeliveryEventType": {
        "enum": [
          "Created",
          "CustomerPinConfirmed",
          "CustomerPinEdited",
          "PublishedToDriverPool",
          "PreferredDriverRequested",
          "Assigned",
          "UnpublishedFromDriverPool",
          "Accepted",
          "DriverCancelledBeforePickup",
          "EnRouteToPickup",
          "ArrivedAtPickup",
          "PickedUp",
          "EnRouteToDropoff",
          "ArrivedAtDropoff",
          "OtpRejected",
          "OtpVerified",
          "SignatureCaptured",
          "CodCollected",
          "Delivered",
          "DeliveryFailed",
          "RetryRequested",
          "ReturnToMerchantStarted",
          "ReturnedToMerchant",
          "AdminCancelled",
          "AdminAdjustedFee",
          "CodSettled",
          "StatementGenerated",
          "TrackingTokenRevoked",
          "CustomerEtaUpdated",
          "DriverLocationUpdated"
        ]
      },
      "DispatchChoice": {
        "enum": [
          "PreferredDriver",
          "DriverPool"
        ]
      },
      "DocumentReviewStatus": {
        "enum": [
          "Pending",
          "Approved",
          "Rejected"
        ]
      },
      "DriverApplicationRequest": {
        "required": [
          "fullName",
          "phone",
          "permitNumber",
          "vehicleDescription"
        ],
        "type": "object",
        "properties": {
          "fullName": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "permitNumber": {
            "type": "string"
          },
          "vehicleDescription": {
            "type": "string"
          }
        }
      },
      "DriverAvailabilityRequest": {
        "required": [
          "isAvailable"
        ],
        "type": "object",
        "properties": {
          "isAvailable": {
            "type": "boolean"
          }
        }
      },
      "DriverDeliveryEventRequest": {
        "required": [
          "driverId",
          "type",
          "note"
        ],
        "type": "object",
        "properties": {
          "driverId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "$ref": "#/components/schemas/DeliveryEventType"
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          },
          "clientActionId": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "DriverDocumentMetadataRequest": {
        "required": [
          "type",
          "documentNumber"
        ],
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/DriverDocumentType"
          },
          "documentNumber": {
            "type": "string"
          },
          "documentDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "expiryDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "relatedVehicle": {
            "type": [
              "null",
              "string"
            ]
          },
          "relatedThirdPartyHolder": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "DriverDocumentRequest": {
        "required": [
          "type",
          "documentNumber",
          "storageKey",
          "contentType",
          "length",
          "sha256"
        ],
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/DriverDocumentType"
          },
          "documentNumber": {
            "type": "string"
          },
          "storageKey": {
            "type": "string"
          },
          "contentType": {
            "type": "string"
          },
          "length": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int64"
          },
          "sha256": {
            "type": "string"
          },
          "documentDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "expiryDate": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "relatedVehicle": {
            "type": [
              "null",
              "string"
            ]
          },
          "relatedThirdPartyHolder": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "DriverDocumentReviewRequest": {
        "required": [
          "reviewStatus",
          "reviewNote"
        ],
        "type": "object",
        "properties": {
          "reviewStatus": {
            "$ref": "#/components/schemas/DocumentReviewStatus"
          },
          "reviewNote": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "DriverDocumentType": {
        "enum": [
          "GovernmentId",
          "DrivingPermit",
          "DriverPhoto",
          "VehiclePhoto",
          "CertificateOfCharacter",
          "Passport",
          "NationalId",
          "VehicleOwnershipCertifiedCopy",
          "DriverProofOfAddress",
          "VehicleOwnerAuthorizationLetter",
          "VehicleOwnerId",
          "VehicleOwnerProofOfAddress",
          "ThirdPartyAddressConfirmationLetter",
          "ThirdPartyAddressHolderId",
          "VehicleInsurance",
          "VehicleInspection",
          "Other"
        ]
      },
      "DriverLocationRequest": {
        "required": [
          "driverId",
          "latitude",
          "longitude",
          "accuracyMeters",
          "reportedAt"
        ],
        "type": "object",
        "properties": {
          "driverId": {
            "type": "string",
            "format": "uuid"
          },
          "latitude": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "longitude": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "accuracyMeters": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "reportedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          }
        }
      },
      "DriverOnboardingConditionsRequest": {
        "required": [
          "vehicleOwnerAuthorizationRequired",
          "thirdPartyAddressHolderRequired",
          "thirdPartyAddressHolderName"
        ],
        "type": "object",
        "properties": {
          "vehicleOwnerAuthorizationRequired": {
            "type": "boolean"
          },
          "thirdPartyAddressHolderRequired": {
            "type": "boolean"
          },
          "thirdPartyAddressHolderName": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "DriverRatingRequest": {
        "required": [
          "deliveryId",
          "stars"
        ],
        "type": "object",
        "properties": {
          "deliveryId": {
            "type": "string",
            "format": "uuid"
          },
          "stars": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "FinanceAdjustmentRequest": {
        "required": [
          "merchantAmount",
          "driverAmount",
          "reason"
        ],
        "type": "object",
        "properties": {
          "merchantAmount": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "driverAmount": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "reason": {
            "type": "string"
          }
        }
      },
      "FinanceSettingsRequest": {
        "required": [
          "deliveryBaseFee",
          "deliveryPerKilometerRate"
        ],
        "type": "object",
        "properties": {
          "deliveryBaseFee": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "deliveryPerKilometerRate": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "MerchantApplicationRequest": {
        "required": [
          "businessName",
          "ownerName",
          "phone",
          "pickupAddress",
          "productCategories"
        ],
        "type": "object",
        "properties": {
          "businessName": {
            "type": "string"
          },
          "ownerName": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "pickupAddress": {
            "type": "string"
          },
          "productCategories": {
            "type": "string"
          }
        }
      },
      "MerchantInvoicePaymentRequest": {
        "required": [
          "status",
          "paymentReference",
          "note"
        ],
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/MerchantInvoicePaymentStatus"
          },
          "paymentReference": {
            "type": [
              "null",
              "string"
            ]
          },
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "MerchantInvoicePaymentStatus": {
        "enum": [
          "Unpaid",
          "Paid",
          "Disputed",
          "Waived"
        ]
      },
      "NotificationRequest": {
        "required": [
          "channel",
          "recipient"
        ],
        "type": "object",
        "properties": {
          "channel": {
            "type": "string"
          },
          "recipient": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "ParcelSize": {
        "enum": [
          "Small",
          "Large"
        ]
      },
      "ProofMethod": {
        "enum": [
          "Otp",
          "Signature"
        ]
      },
      "RevokeTrackingRequest": {
        "required": [
          "note"
        ],
        "type": "object",
        "properties": {
          "note": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "ServiceZoneRequest": {
        "required": [
          "name",
          "minLatitude",
          "maxLatitude",
          "minLongitude",
          "maxLongitude",
          "isActive"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "minLatitude": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "maxLatitude": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "minLongitude": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "maxLongitude": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "isActive": {
            "type": "boolean"
          }
        }
      },
      "StatementGenerationRequest": {
        "required": [
          "periodStart",
          "periodEnd"
        ],
        "type": "object",
        "properties": {
          "periodStart": {
            "type": "string",
            "format": "date-time"
          },
          "periodEnd": {
            "type": "string",
            "format": "date-time"
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Auth"
    },
    {
      "name": "Auth v1"
    },
    {
      "name": "TriniDrop"
    },
    {
      "name": "TriniDrop v1"
    }
  ]
}