Files
FirstCore/app/swagger/digifi_swagger.json
T
Azeez Muibi 3ee973ddaa update
2025-04-14 00:13:02 +01:00

614 lines
16 KiB
JSON

{
"openapi": "3.0.3",
"info": {
"title": "Swagger OfficeCore - OpenAPI 3.0",
"description": "This is a Simbrella FirstAdvance BackOffice Server with the OpenAPI 3.0 specification. \n\n\nSome useful links:\n- [Web Simulated Demo Page](https://digifi-salaryloan.chiefsoft.net/)\n- [Web Management Support Portal](https://digifi-office.chiefsoft.net/auth/login)",
"termsOfService": "http://swagger.io/terms/",
"contact": {
"email": "support@chiefsoft.com"
},
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
},
"version": "1.0.11"
},
"servers": [
{
"url": "http://localhost:4700"
}
],
"tags": [
{
"name": "Authorize",
"description": "This feature will be used for authorizing customers.",
"externalDocs": {
"description": "Find out more",
"url": "https://www.simbrellang.net"
}
},
{
"name": "AuthorizeRefresh",
"description": "This feature will be used for refreshing authorized customers.",
"externalDocs": {
"description": "Find out more",
"url": "https://www.simbrellang.net"
}
},
{
"name": "EligibilityCheck",
"description": "Eligibility Check Request",
"externalDocs": {
"description": "Find out more",
"url": "https://www.simbrellang.net"
}
},
{
"name": "SelectOffer",
"description": "This method is used the send the offer the customer selected to Simbrella.",
"externalDocs": {
"description": "Find out more",
"url": "https://www.simbrellang.net"
}
},
{
"name": "ProvideLoan",
"description": "Provide Loan Request.",
"externalDocs": {
"description": "Find out more",
"url": "https://www.simbrellang.net"
}
},
{
"name": "LoanStatus",
"description": "Loan Information Request.",
"externalDocs": {
"description": "Find out more",
"url": "https://www.simbrellang.net"
}
},
{
"name": "Repayment",
"description": "Repayment Request.",
"externalDocs": {
"description": "Find out more",
"url": "https://www.simbrellang.net"
}
},
{
"name": "Loans",
"description": "Get all loans with optional filtering.",
"externalDocs": {
"description": "Find out more",
"url": "https://www.simbrellang.net"
}
},
{
"name": "Transactions",
"description": "Get all transactions with optional filtering.",
"externalDocs": {
"description": "Find out more",
"url": "https://www.simbrellang.net"
}
}
],
"paths": {
"/Authorize": {
"post": {
"tags": [
"Authorize"
],
"summary": "Authorize a user",
"description": "Authorize a user with credentials",
"operationId": "authorize",
"requestBody": {
"description": "User credentials",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AuthorizeRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AuthorizeResponse"
}
}
}
},
"400": {
"description": "Invalid request"
},
"401": {
"description": "Unauthorized"
},
"500": {
"description": "Internal server error"
}
}
}
},
"/AuthorizeRefresh": {
"post": {
"tags": [
"AuthorizeRefresh"
],
"summary": "Refresh authorization token",
"description": "Refresh an expired authorization token",
"operationId": "authorizeRefresh",
"requestBody": {
"description": "Refresh token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AuthorizeRefreshRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AuthorizeRefreshResponse"
}
}
}
},
"400": {
"description": "Invalid request"
},
"401": {
"description": "Unauthorized"
},
"500": {
"description": "Internal server error"
}
}
}
},
"/loans": {
"get": {
"tags": [
"Loans"
],
"summary": "Get all loans with optional filtering",
"description": "Retrieve loans with various filter options including customer ID, account ID, status, etc.",
"operationId": "getLoans",
"parameters": [
{
"name": "customer_id",
"in": "query",
"description": "Filter by customer ID",
"required": false,
"schema": {
"type": "string"
},
"example": "CUST123"
},
{
"name": "account_id",
"in": "query",
"description": "Filter by account ID",
"required": false,
"schema": {
"type": "string"
},
"example": "ACC456"
},
{
"name": "status",
"in": "query",
"description": "Filter by loan status",
"required": false,
"schema": {
"type": "string"
},
"example": "active"
},
{
"name": "offer_id",
"in": "query",
"description": "Filter by offer ID",
"required": false,
"schema": {
"type": "string"
},
"example": "OFFER789"
},
{
"name": "product_id",
"in": "query",
"description": "Filter by product ID",
"required": false,
"schema": {
"type": "string"
},
"example": "PROD101"
},
{
"name": "start_date",
"in": "query",
"description": "Filter by start date (ISO format)",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
},
"example": "2023-01-01T00:00:00Z"
},
{
"name": "end_date",
"in": "query",
"description": "Filter by end date (ISO format)",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
},
"example": "2023-12-31T23:59:59Z"
},
{
"name": "due_before",
"in": "query",
"description": "Filter loans due before this date (ISO format)",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
},
"example": "2023-12-31T23:59:59Z"
},
{
"name": "due_after",
"in": "query",
"description": "Filter loans due after this date (ISO format)",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
},
"example": "2023-01-01T00:00:00Z"
}
],
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LoansResponse"
}
}
}
},
"400": {
"description": "Invalid request"
},
"500": {
"description": "Internal server error"
}
}
}
},
"/transactions": {
"get": {
"tags": [
"Transactions"
],
"summary": "Get all transactions with optional filtering",
"description": "Retrieve transactions with various filter options including account ID, type, channel, etc.",
"operationId": "getTransactions",
"parameters": [
{
"name": "account_id",
"in": "query",
"description": "Filter by account ID",
"required": false,
"schema": {
"type": "string"
},
"example": "ACC456"
},
{
"name": "type",
"in": "query",
"description": "Filter by transaction type",
"required": false,
"schema": {
"type": "string"
},
"example": "PAYMENT"
},
{
"name": "channel",
"in": "query",
"description": "Filter by channel",
"required": false,
"schema": {
"type": "string"
},
"example": "MOBILE"
},
{
"name": "start_date",
"in": "query",
"description": "Filter by start date (ISO format)",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
},
"example": "2023-01-01T00:00:00Z"
},
{
"name": "end_date",
"in": "query",
"description": "Filter by end date (ISO format)",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
},
"example": "2023-12-31T23:59:59Z"
}
],
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TransactionsResponse"
}
}
}
},
"400": {
"description": "Invalid request"
},
"500": {
"description": "Internal server error"
}
}
}
}
},
"components": {
"schemas": {
"ApiResponse": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"type": {
"type": "string"
},
"message": {
"type": "string"
}
}
},
"AuthorizeRequest": {
"type": "object",
"properties": {
"username": {
"type": "string",
"example": "user123"
},
"password": {
"type": "string",
"example": "password123"
}
},
"required": ["username", "password"]
},
"AuthorizeResponse": {
"type": "object",
"properties": {
"access_token": {
"type": "string",
"example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
},
"refresh_token": {
"type": "string",
"example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
},
"token_type": {
"type": "string",
"example": "bearer"
},
"expires_in": {
"type": "integer",
"example": 3600
}
}
},
"AuthorizeRefreshRequest": {
"type": "object",
"properties": {
"refresh_token": {
"type": "string",
"example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
},
"required": ["refresh_token"]
},
"AuthorizeRefreshResponse": {
"type": "object",
"properties": {
"access_token": {
"type": "string",
"example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
},
"token_type": {
"type": "string",
"example": "bearer"
},
"expires_in": {
"type": "integer",
"example": 3600
}
}
},
"LoansResponse": {
"type": "object",
"properties": {
"loans": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 1
},
"customer_id": {
"type": "string",
"example": "CUST123"
},
"account_id": {
"type": "string",
"example": "ACC456"
},
"offer_id": {
"type": "string",
"example": "OFFER789"
},
"initial_loan_amount": {
"type": "number",
"format": "float",
"example": 10000.0
},
"current_loan_amount": {
"type": "number",
"format": "float",
"example": 8500.0
},
"status": {
"type": "string",
"example": "active"
},
"product_id": {
"type": "string",
"example": "PROD101"
},
"default_penalty_fee": {
"type": "number",
"format": "float",
"example": 500.0
},
"continuous_fee": {
"type": "number",
"format": "float",
"example": 50.0
},
"due_date": {
"type": "string",
"format": "date-time",
"example": "2023-12-31T23:59:59Z"
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2023-01-15T10:30:00Z"
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2023-01-20T14:45:00Z"
}
}
}
},
"count": {
"type": "integer",
"example": 1
}
},
"xml": {
"name": "LoansResponse"
}
},
"TransactionsResponse": {
"type": "object",
"properties": {
"transactions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 1
},
"transaction_id": {
"type": "string",
"example": "TRX123456"
},
"account_id": {
"type": "string",
"example": "ACC456"
},
"type": {
"type": "string",
"example": "PAYMENT"
},
"channel": {
"type": "string",
"example": "MOBILE"
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2023-01-15T10:30:00Z"
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2023-01-15T10:30:00Z"
}
}
}
},
"count": {
"type": "integer",
"example": 1
}
},
"xml": {
"name": "TransactionsResponse"
}
}
},
"securitySchemes": {
"basicAuth": {
"type": "http",
"scheme": "basic"
},
"bearerAuth": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "JWT"
}
}
},
"security": [
{
"basicAuth": [],
"bearerAuth": []
}
]
}