openapi: 3.0.1 info: title: Loan Aggregator 2 service description: This API enables the capabilities of facilitating(i.e. checking the eligible loan bundles and the provision of loan bundles) loan in advance for an MTN customer license: name: MADAPI url: https://developers.mtn.com/ version: "2.0" servers: - url: https://api.mtn.com/ description: Generated server url paths: /customers/{customerId}/loans/specialList: get: tags: - loan-controller summary: Check if user is on the special list description: This operation enables the capability of checking if a customer is on a special list using customer id(unique identifier). operationId: getSpecialList parameters: - name: customerId in: path required: true schema: type: string - name: channelId in: header required: false schema: type: string default: "" - name: specialListName in: query required: false schema: type: string default: EXCL_MARKETING - name: transactionId in: header required: false schema: type: string default: "" - name: x-loan-key in: header required: false schema: type: string default: "" - name: x-origin-channelid in: header required: false schema: type: string default: "" responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/LoanSpecialListResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorResponse' "401": description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthorizedErrorResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ServerErrorResponse' put: tags: - loan-controller summary: Add a customer to a special list description: This operation enables the capability of adding an MTN customer to a special list using customer id(unique identifier). operationId: addCustomerToSpecialList parameters: - name: customerId in: path required: true schema: type: string - name: channelId in: header required: false schema: type: string default: "" - name: transactionId in: header required: false schema: type: string default: "" - name: x-origin-channelid in: header required: false schema: type: string default: "" - name: x-loan-key in: header required: false schema: type: string default: "" - name: specialListName in: query required: false schema: type: string default: EXCL_MARKETING responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/LoanSpecialListResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorResponse' "401": description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthorizedErrorResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ServerErrorResponse' delete: tags: - loan-controller summary: Delete a user from a special list description: This operation enables the capability of deleting an MTN customer from a special list using customer id(unique identifier). operationId: deleteSpecialList parameters: - name: customerId in: path required: true schema: type: string - name: channelId in: header required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-origin-channelid in: header required: false schema: type: string default: "" - name: x-loan-key in: header required: false schema: type: string default: "" - name: specialListName in: query required: false schema: type: string default: EXCL_MARKETING responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/LoanSpecialListResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorResponse' "401": description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthorizedErrorResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ServerErrorResponse' /customers/{customerId}/loans/serviceExclude: put: tags: - loan-controller summary: Exclude services for user description: This operation enables the capability of excluding(blacklisting) services for a specific customer using customer id(unique identifier). operationId: excludeService parameters: - name: customerId in: path required: true schema: type: string - name: channelId in: header required: true schema: type: string - name: transactionId in: header required: true schema: type: string - name: x-loan-key in: header required: false schema: type: string default: "" - name: x-origin-channelid in: header required: false schema: type: string default: "" responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/LoanStatusResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorResponse' "401": description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthorizedErrorResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ServerErrorResponse' /customers/{customerId}/loans/repayLoanAdvance: post: tags: - loan-controller summary: Repay the pre-existing loan before grace period. description: This operation enables the capability of repaying the pre-existing loan before grace period for an MTN customer using customer id. operationId: repayLoanAdvance parameters: - name: customerId in: path required: true schema: type: string - name: channelId in: header required: false schema: type: string default: "" - name: transactionId in: header required: false schema: type: string default: "" - name: targetSystem in: header required: false schema: type: string default: "" - name: x-origin-channelid in: header required: false schema: type: string default: "" - name: x-loan-key in: header required: false schema: type: string default: "" - name: loanId in: query required: false schema: type: string default: "" responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/RepayLoanAdvanceResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorResponse' "401": description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthorizedErrorResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ServerErrorResponse' /customers/{customerId}/loans/refund: post: tags: - loan-controller summary: Retrieves refund loan. description: This operation enables the capability of retrieving a loan refund status of an MTN customer by using customer id(unique identifier). operationId: getLoansRefund parameters: - name: customerId in: path required: true schema: type: string - name: channelId in: header required: false schema: type: string default: "" - name: transactionId in: header required: false schema: type: string default: "" - name: x-origin-channelid in: header required: false schema: type: string default: "" - name: x-country-code in: header required: false schema: type: string default: ZAF - name: targetSystem in: header required: false schema: type: string default: "" - name: x-loan-key in: header required: false schema: type: string default: "" requestBody: content: application/json: schema: $ref: '#/components/schemas/RefundBody' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/EligibilityResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorResponse' "401": description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthorizedErrorResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ServerErrorResponse' /customers/{customerId}/loans/advance: post: tags: - loan-controller summary: Gets a loan advance. description: This operation enables the capability of Getting a loan advance for an MTN customer using customer id(unique identifier). operationId: getLoanAdvance parameters: - name: customerId in: path required: true schema: type: string - name: channelId in: header required: false schema: type: string default: "" - name: transactionId in: header required: false schema: type: string default: "" - name: x-channel-id in: header required: false schema: type: string default: "" - name: x-country-code in: header required: false schema: type: string default: "" - name: allowPoll in: query required: false schema: type: boolean default: true - name: x-origin-channelid in: header required: false schema: type: string default: "" - name: x-loan-key in: header required: false schema: type: string default: "" - name: targetSystem in: header required: false schema: type: string default: "" - name: bearer in: header required: false schema: type: string default: "" - name: prefLanguage in: query required: false schema: type: string default: "" - name: serviceId in: query required: false schema: type: string default: "" requestBody: content: application/json: schema: $ref: '#/components/schemas/BundleRequest' required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/LoanResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorResponse' "401": description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthorizedErrorResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ServerErrorResponse' /customers/{customerId}/loans/serviceBands: get: tags: - loan-controller summary: Retrieves the list of service bands. description: This operation enables the capability of retrieving the list of service bands(bundle names available in the backend system). operationId: getServiceBands parameters: - name: customerId in: path required: true schema: type: string - name: responseType in: query required: false schema: type: string default: Basic - name: channelId in: header required: false schema: type: string default: "" - name: transactionId in: header required: false schema: type: string default: "" - name: x-origin-channelid in: header required: false schema: type: string default: "" - name: x-loan-key in: header required: false schema: type: string default: "" responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/ServiceBandsResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorResponse' "401": description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthorizedErrorResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ServerErrorResponse' /customers/{customerId}/loans/open: get: tags: - loan-controller summary: Get a list of open loans and data. description: This operation enables the capability of retrieving Open Loans and data for an MTN customer using customer id(unique identifier). operationId: getOpenLoan parameters: - name: customerId in: path required: true schema: type: string - name: channelId in: header required: false schema: type: string default: "" - name: x-origin-channelid in: header required: false schema: type: string default: "" - name: x-loan-key in: header required: false schema: type: string default: "" responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/OpenLoanResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorResponse' "401": description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthorizedErrorResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ServerErrorResponse' /customers/{customerId}/loans/history: get: tags: - loan-controller summary: Gets loan history. description: This operation enables the capability of retrieving loan history for an MTN customer using customer id(unique identifier). operationId: getHistory parameters: - name: customerId in: path required: true schema: type: string - name: channelId in: header required: false schema: type: string default: "" - name: transactionId in: header required: false schema: type: string default: "" - name: x-origin-channelid in: header required: false schema: type: string default: "" - name: x-loan-key in: header required: false schema: type: string default: "" responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/LoanHistoryResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorResponse' "401": description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthorizedErrorResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ServerErrorResponse' /customers/{customerId}/loans/eligibleBundle: get: tags: - loan-controller summary: Retrieves the list of eligible loan bundles description: This operation enables the capability of retrieving loan eligibility status(eligible loan bundles) of an MTN customer by using customer id(unique identifier). operationId: checkEligibility parameters: - name: customerId in: path required: true schema: type: string - name: type in: query required: false schema: type: string default: "" - name: channelId in: header required: false schema: type: string default: "" - name: transactionId in: header required: false schema: type: string default: "" - name: x-channel-id in: header required: false schema: type: string default: "" - name: targetSystem in: header required: false schema: type: string default: "" - name: x-origin-channelid in: header required: false schema: type: string default: "" - name: x-loan-key in: header required: false schema: type: string default: "" - name: amount in: query required: false schema: type: number default: 0 - name: prefLang in: query required: false schema: type: string default: En - name: serviceId in: query required: false schema: type: string default: "" - name: x-country-code in: header required: false schema: type: string default: "" responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/EligibilityResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorResponse' "401": description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthorizedErrorResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ServerErrorResponse' /customers/{customerId}/loans/eligibility: get: tags: - loan-controller summary: Retrieves the list of eligibility loan. description: This operation enables the retrieving of a loan eligibility status of an MTN customerby using customer id(unique identifier). operationId: checkEligibilityOffer parameters: - name: customerId in: path required: true schema: type: string - name: type in: query required: false schema: type: string default: "" - name: channelId in: header required: false schema: type: string default: "" - name: transactionId in: header required: false schema: type: string default: "" - name: targetSystem in: header required: false schema: type: string default: "" - name: x-origin-channelid in: header required: false schema: type: string default: "" - name: amount in: query required: false schema: type: string default: "" - name: lookup3PP in: query required: false schema: type: boolean default: true - name: x-loan-key in: header required: false schema: type: string default: "" - name: x-country-code in: header required: false schema: type: string default: ZAF responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/EligibilityResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorResponse' "401": description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthorizedErrorResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ServerErrorResponse' /customers/{customerId}/loans/availableBalance: get: tags: - loan-controller summary: Retrieves XtraTime Balance for an MTN customer . description: This operation enables the capability of retrieving XtraTime Balance for an MTN customer using customer id(unique identifier). operationId: getXtraTimeBalance parameters: - name: customerId in: path required: true schema: type: string - name: channelId in: header required: false schema: type: string default: "" - name: transactionId in: header required: false schema: type: string default: "" - name: x-origin-channelid in: header required: false schema: type: string default: "" - name: x-loan-key in: header required: false schema: type: string default: "" - name: targetSystem in: header required: false schema: type: string default: "" - name: type in: query required: false schema: type: string default: "" - name: nodeId in: header required: false schema: type: string default: "" - name: serviceId in: header required: false schema: type: string default: "" responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/XtraTimeBalanceResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorResponse' "401": description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthorizedErrorResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ServerErrorResponse' /customers/{customerId}/loans/advance/status: get: tags: - loan-controller summary: Gets loan advance status. description: This operation enables the capability of getting a loan advance status for an MTN customer using customer id(unique identifier). operationId: checkLoanStatus parameters: - name: customerId in: path required: true schema: type: string - name: transactionId in: header required: false schema: type: string default: "" - name: x-country-code in: header required: false schema: type: string default: "" - name: x-origin-channelid in: header required: false schema: type: string default: "" - name: targetSystem in: header required: false schema: type: string default: ' ' - name: channelId in: header required: false schema: type: string default: "" - name: x-loan-key in: header required: false schema: type: string default: "" - name: internalLoanId in: header required: false schema: type: string default: "" responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/LoanStatusResponse' "400": description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestErrorResponse' "401": description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthorizedErrorResponse' "500": description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ServerErrorResponse' components: schemas: Links: type: object additionalProperties: $ref: '#/components/schemas/Link' LoanSpecialListResponse: type: object properties: statusCode: type: string transactionId: type: string supportMessage: type: string timeStamp: type: string path: type: string data: type: object statusMessage: type: string enable: type: string sequenceNo: type: string _links: $ref: '#/components/schemas/Links' LoanStatusResponse: type: object properties: statusCode: type: string transactionId: type: string supportMessage: type: string timeStamp: type: string path: type: string data: $ref: '#/components/schemas/Status' statusMessage: type: string sequenceNo: type: string channelId: type: string customerId: type: string _links: $ref: '#/components/schemas/Links' Status: type: object properties: timestamp: type: string status: type: string RepayLoanAdvanceResponse: type: object properties: statusCode: type: string statusMessage: type: string customerId: type: string transactionId: type: string supportMessage: type: string timeStamp: type: string path: type: string data: type: object _links: $ref: '#/components/schemas/Links' AdditionalInfo: type: object properties: name: type: string value: type: object Bundle: type: object properties: correlationId: type: string bundleName: type: string bundleValue: type: string bandGroup: type: string amount: type: number currency: type: string bundleType: type: string serviceType: type: string loanProviderId: type: string loanProviderFRI: type: string customerAccountFRI: type: string serviceFee: type: number maximumBalance: type: number validity: type: string fee: type: number repay: type: number customerId: type: string bundleGroup: type: string bundleId: type: string creditServiceId: type: string quantity: type: string unit: type: string feePercentage: type: string totalAmount: type: string additionalInfo: type: array items: $ref: '#/components/schemas/AdditionalInfo' productid: type: string Eligibility: type: object properties: eligibilityType: type: string bundles: type: array items: $ref: '#/components/schemas/Bundle' EligibilityResponse: type: object properties: statusCode: type: string transactionId: type: string supportMessage: type: string timeStamp: type: string path: type: string data: type: object statusMessage: type: string eligibilityStatus: type: string eligible: type: array items: $ref: '#/components/schemas/Eligibility' sequenceNo: type: string customerId: type: string eligibilityStatusByCommodity: type: array items: $ref: '#/components/schemas/EligibilityStatusByCommodity' lang: type: string _links: $ref: '#/components/schemas/Links' amount: type: array items: type: number format: double qualifiedAmount: type: number format: double loanBalance: type: number format: double EligibilityStatusByCommodity: type: object properties: commodityType: type: string eligibilityStatus: type: string RefundBody: type: object properties: sequenceNo: type: string refundMethod: type: string LoanResponse: type: object properties: statusCode: type: string statusMessage: type: string transactionId: type: string customerId: type: string loanDetails: $ref: '#/components/schemas/Bundle' supportMessage: type: string timeStamp: type: string path: type: string data: type: object sequenceNo: type: string channelId: type: string httpStatus: type: string enum: - 100 CONTINUE - 101 SWITCHING_PROTOCOLS - 102 PROCESSING - 103 EARLY_HINTS - 103 CHECKPOINT - 200 OK - 201 CREATED - 202 ACCEPTED - 203 NON_AUTHORITATIVE_INFORMATION - 204 NO_CONTENT - 205 RESET_CONTENT - 206 PARTIAL_CONTENT - 207 MULTI_STATUS - 208 ALREADY_REPORTED - 226 IM_USED - 300 MULTIPLE_CHOICES - 301 MOVED_PERMANENTLY - 302 FOUND - 302 MOVED_TEMPORARILY - 303 SEE_OTHER - 304 NOT_MODIFIED - 305 USE_PROXY - 307 TEMPORARY_REDIRECT - 308 PERMANENT_REDIRECT - 400 BAD_REQUEST - 401 UNAUTHORIZED - 402 PAYMENT_REQUIRED - 403 FORBIDDEN - 404 NOT_FOUND - 405 METHOD_NOT_ALLOWED - 406 NOT_ACCEPTABLE - 407 PROXY_AUTHENTICATION_REQUIRED - 408 REQUEST_TIMEOUT - 409 CONFLICT - 410 GONE - 411 LENGTH_REQUIRED - 412 PRECONDITION_FAILED - 413 PAYLOAD_TOO_LARGE - 413 REQUEST_ENTITY_TOO_LARGE - 414 URI_TOO_LONG - 414 REQUEST_URI_TOO_LONG - 415 UNSUPPORTED_MEDIA_TYPE - 416 REQUESTED_RANGE_NOT_SATISFIABLE - 417 EXPECTATION_FAILED - 418 I_AM_A_TEAPOT - 419 INSUFFICIENT_SPACE_ON_RESOURCE - 420 METHOD_FAILURE - 421 DESTINATION_LOCKED - 422 UNPROCESSABLE_ENTITY - 423 LOCKED - 424 FAILED_DEPENDENCY - 425 TOO_EARLY - 426 UPGRADE_REQUIRED - 428 PRECONDITION_REQUIRED - 429 TOO_MANY_REQUESTS - 431 REQUEST_HEADER_FIELDS_TOO_LARGE - 451 UNAVAILABLE_FOR_LEGAL_REASONS - 500 INTERNAL_SERVER_ERROR - 501 NOT_IMPLEMENTED - 502 BAD_GATEWAY - 503 SERVICE_UNAVAILABLE - 504 GATEWAY_TIMEOUT - 505 HTTP_VERSION_NOT_SUPPORTED - 506 VARIANT_ALSO_NEGOTIATES - 507 INSUFFICIENT_STORAGE - 508 LOOP_DETECTED - 509 BANDWIDTH_LIMIT_EXCEEDED - 510 NOT_EXTENDED - 511 NETWORK_AUTHENTICATION_REQUIRED _links: $ref: '#/components/schemas/Links' BundleRequest: type: object properties: bundleName: type: string bundleValue: type: string prefLang: type: string repay: type: number fee: type: number amount: type: number bundleType: type: string correlationId: type: string currency: type: string serviceType: type: string loanProviderId: type: string loanProviderFRI: type: string customerAccountFRI: type: string callbackURL: type: string isBundlePurchase: type: boolean checkCreditRecord: type: boolean customerId: type: string loanTransactionDetails: $ref: '#/components/schemas/LoanTransactionDetails' LoanTransactionDetails: type: object properties: bearer: type: string feeAmount: type: string feeAmountLeft: type: string loanAmount: type: string loanAmountLeft: type: string loanTransactionType: type: string serviceType: type: string serviceId: type: string dateTime: type: string ExtendedBundle: type: object properties: bundleName: type: string bandGroup: type: string bandFee: type: number bandAmount: type: number ServiceBandsResponse: type: object properties: statusCode: type: string transactionId: type: string supportMessage: type: string timeStamp: type: string path: type: string data: type: object statusMessage: type: string timestamp: type: string bundles: type: array items: $ref: '#/components/schemas/ExtendedBundle' sequenceNo: type: string _links: $ref: '#/components/schemas/Links' LoanBand: type: object properties: bandName: type: string bandGroup: type: integer format: int32 LoanListItem: type: object properties: feeAmount: type: number format: double loanBand: $ref: '#/components/schemas/LoanBand' outstandingPrincipalAmount: type: number format: double loanId: type: string principalAmount: type: number format: double outstandingFeeAmount: type: number format: double lastLoanDate: type: integer format: int64 OpenLoanResponse: type: object properties: statusCode: type: string transactionId: type: string supportMessage: type: string timeStamp: type: string path: type: string data: $ref: '#/components/schemas/OpenLoanResponseData' statusMessage: type: string timestamp: type: string sequenceNo: type: string _links: $ref: '#/components/schemas/Links' OpenLoanResponseData: type: object properties: loanList: type: array items: $ref: '#/components/schemas/LoanListItem' LoanHistory: type: object properties: type: type: string operationId: type: string operationStatus: type: string loanId: type: string principalAmount: type: number feeAmount: type: number principalLeft: type: number principalAdjustment: type: number feeLeft: type: number feeAdjustment: type: number timestamp: type: integer format: int64 msisdn: type: string channel: type: string loanBand: $ref: '#/components/schemas/LoanBand' transactionId: type: string LoanHistoryResponse: type: object properties: statusCode: type: string transactionId: type: string supportMessage: type: string timeStamp: type: string path: type: string data: $ref: '#/components/schemas/LoanHistoryResponseData' statusMessage: type: string sequenceNo: type: string _links: $ref: '#/components/schemas/Links' LoanHistoryResponseData: type: object properties: operationList: type: array items: $ref: '#/components/schemas/LoanHistory' Plan: type: object properties: xtraTimeBalanceDetails: type: array items: $ref: '#/components/schemas/XtraTimeBalanceDetail' XtraTimeBalanceDetail: type: object properties: accountId: type: string accountName: type: string availableBalance: type: string availableBalanceUom: type: string XtraTimeBalanceResponse: type: object properties: statusCode: type: string transactionId: type: string supportMessage: type: string timeStamp: type: string path: type: string data: $ref: '#/components/schemas/Plan' statusMessage: type: string sequenceNo: type: string _links: $ref: '#/components/schemas/Links' loan-count: type: integer format: int32 total-loan-balance: type: number format: double BadRequestErrorResponse: type: object properties: statusCode: type: string example: "5000" statusMessage: type: string example: INVALID_INPUT_PARAMETERS supportMessage: type: string example: The input parameters provided are invalid. httpStatus;: type: object example: code: 400 series: CLIENT_ERROR reason: Bad Request timestamp: type: string example: 2025-08-05T20:57:21Z UnauthorizedErrorResponse: type: object properties: statusCode: type: string example: "4000" statusMessage: type: string example: Unauthorized supportMessage: type: string example: The supplied authentication is invalid. httpStatus;: type: object example: code: 401 series: CLIENT_ERROR reason: Unauthorized timestamp: type: string example: 2025-08-05T20:57:21Z ServerErrorResponse: type: object properties: statusCode: type: string example: "3001" statusMessage: type: string example: INTERNAL_SERVER_ERROR supportMessage: type: string example: An internal server error occurred and processing could not be completed. httpStatus;: type: object example: code: 500 series: SERVER_ERROR reason: Internal Server Error timestamp: type: string example: 2025-08-05T20:57:21Z Link: type: object properties: href: type: string hreflang: type: string title: type: string type: type: string deprecation: type: string profile: type: string name: type: string templated: type: boolean