openapi: 3.0.1 info: title: Customer KYC Verification description: The Customer KYC(Know Your Client) Verification API will validate the 3PP Customer KYC information with MTN Customer KYC information license: name: MADAPI url: https://developers.mtn.com/ version: 3.0.0 - Last updated date:2026-09-11 09:35:36 servers: - url: https://api.mtn.com/v1 description: Production Server security: - OAuth2: [] tags: - name: CustomerKycVerification paths: /customers: get: tags: - CustomerKycVerification summary: Verify mtn customer kyc information against 3PP customer kyc information description: This endpoint is to enable trusted partners verify customer's KYC information passed in the request body. The verification logic will be carried out at the process layer where each KYC attributes will be validated to be TRUE or FALSE operationId: CustomerKycVerification_get_nibssKycVerification_customers parameters: - name: bvns in: header required: false schema: type: string - name: partnerName in: header required: false schema: type: string - name: targetSystem in: header required: false schema: type: string - name: transaction in: header required: false schema: type: string responses: "200": description: HTTP 200 indicating the request succeeded; the response body follows the documented schema for this operation and includes correlation identifiers where applicable for traceability across MTN MADAPI customer kyc verification flows. content: application/json: schema: title: NibssVerificationResponse type: object properties: responseCode: type: string BVN: type: string firstName: type: string middleName: type: string lastName: type: string dateOfBirth: type: string phoneNumber: type: string registrationDate: type: string enrollmentBank: type: string enrollmentBranch: type: string watchListed: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "502": description: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "503": description: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false post: tags: - CustomerKycVerification summary: Verify customer fingerprint kyc information using BVN description: Verify customer fingerprint kyc information using BVN. This endpoint is to enable trusted partners verify customer's KYC information by passing customer biometric details operationId: CustomerKycVerification_post_verifyFingerprintBVN_customers parameters: - name: partnerName in: header required: false schema: type: string - name: requestType in: query required: false schema: type: string - name: targetSystem in: header required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: verificationType in: query required: false schema: type: string requestBody: content: application/json: schema: title: BVNVerificationFingerPrintRequest type: object properties: bvns: type: array items: title: BVNFingerPrintVerificationData type: object properties: id: type: string firstName: type: string lastName: type: string otherNames: type: string email: type: string dateOfBirth: type: string gender: type: string stateOfOrigin: type: string lgaOfOrigin: type: string stateOfResidence: type: string lgaOfResidence: type: string nationality: type: string alternativePhoneNumber: type: string maritalStatus: type: string binaryAttachment: type: array items: title: BinaryAttachment type: object properties: id: type: string attachmentType: type: string content: type: string mimeType: type: string name: type: string status: type: string description: type: string deviceId: type: string required: true responses: "200": description: HTTP 200 indicating the request succeeded; the response body follows the documented schema for this operation and includes correlation identifiers where applicable for traceability across MTN MADAPI customer kyc verification flows. content: application/json: schema: title: BioMatchAPIResponseDataBVN type: object properties: statusCode: type: string statusMessage: type: string transactionId: type: string sequenceNo: type: string data: title: BVNDetails type: object properties: bvnDetails: type: array items: title: BVNData type: object properties: statusCode: type: string customerId: type: string firstName: type: string lastName: type: string otherNames: type: string email: type: string dateOfBirth: type: string gender: type: string stateOfOrigin: type: string lgaOfOrigin: type: string stateOfResidence: type: string lgaOfResidence: type: string nationality: type: string phoneNumber: type: string alternativePhoneNumber: type: string maritalStatus: type: string registrationDate: type: string enrollmentBank: type: string enrollmentBranch: type: string watchListed: type: string status: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "502": description: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "503": description: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /customers/{customerId}: get: tags: - CustomerKycVerification summary: Verify if customer MSISDN is active on either the bank or MTN description: Verify if customer MSISDN is active on either the bank or MTN. This endpoint is to enable a 3PP confirm if a mobile number is active on the bank and to get a hashed mobile number operationId: CustomerKycVerification_get_verifyActiveMsisdn_customerscustomerId parameters: - name: customerId in: path required: true schema: type: string - name: eValidatorType in: query required: false schema: type: string - name: endDate in: query required: false schema: type: string - name: externalCode in: query required: false schema: type: string - name: partnerName in: header required: false schema: type: string - name: startDate in: query required: false schema: type: string - name: targetSystem in: query required: false schema: type: string - name: transactionId in: query required: false schema: type: string - name: verificationType in: query required: true schema: type: string - name: x-country-code in: header required: false schema: type: string responses: "200": description: HTTP 200 indicating the request succeeded; the response body follows the documented schema for this operation and includes correlation identifiers where applicable for traceability across MTN MADAPI customer kyc verification flows. content: application/json: schema: title: VerificationResponse type: object properties: statusCode: type: string statusMessage: type: string transactionId: type: string customerId: type: string sequenceNo: type: string publicIdentifer: type: string operation: type: string type: type: string timestamp: type: string status: type: string data: title: VerificationData type: object properties: verificationStatus: title: VerificationStatus type: object properties: value: type: string verificationStatus2: $ref: '#/components/schemas/com_mtn_aggregator_enums_VerificationStatus' hashedMsisdn: type: string attemptCount: type: string details: title: VerificationDataDetails type: object properties: registrationDate: type: string phoneNumber: type: string status: type: boolean links: type: array items: title: LinkObject type: object properties: rel: type: string href: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "502": description: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "503": description: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false post: tags: - CustomerKycVerification summary: Verify mtn customer kyc information against 3PP customer kyc information description: This endpoint is to enable trusted partners verify customer's KYC information passed in the request body. The verification logic will be carried out at the process layer where each KYC attributes will be validated to be TRUE or FALSE operationId: CustomerKycVerification_post_verifyCustomerDetail_customerscustomerId parameters: - name: customerId in: path required: true schema: type: string - name: isConsentVerified in: query required: true schema: type: boolean - name: partnerName in: header required: false schema: type: string - name: verificationCheckType in: query required: false schema: type: string - name: x-registration-channel-id in: header required: false schema: type: string requestBody: content: application/json: schema: title: KycVerificationRequest type: object properties: firstName: type: string lastName: type: string middleName: type: string otherNames: type: string dateOfBirth: type: string idExpiryDate: type: string gender: type: string stateOfOrigin: type: string lgaOfOrigin: type: string stateOfResidence: type: string lgaOfResidence: type: string nationality: type: string alternativeNumber: type: string maritalStatus: type: string email: type: string alternativePhoneNumber: type: string postCode: type: string phoneNumber: type: string nationalIdNumber: type: string city: type: string streetAddress: type: string image: type: array items: $ref: '#/components/schemas/com_mtn_aggregator_models_request_kycverification_ImageData' pinRef: type: string useCase: type: string deviceId: type: string simSerial: type: string uniqueId: type: string required: true responses: "200": description: HTTP 200 indicating the request succeeded; the response body follows the documented schema for this operation and includes correlation identifiers where applicable for traceability across MTN MADAPI customer kyc verification flows. content: application/json: schema: $ref: '#/components/schemas/com_mtn_aggregator_models_response_kycverification_KycVerificationResponse' "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "502": description: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "503": description: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /customers/{customerId}/addressScore: post: tags: - CustomerKycVerification summary: Verify customer's KYC information description: "With this API, Chenosis should be able to verify customer's KYC\ \ information i.e. Address and validate. This api accept the customer id\ \ and validate the kyc info" operationId: CustomerKycVerification_post_kycAddressScoreIndicator_customerscustomerIda parameters: - name: customerId in: path required: true schema: type: string - name: transactionId in: header required: true schema: type: string requestBody: content: application/json: schema: title: KYCAddressRequest type: object properties: phoneNumber: type: string streetAddress: type: string city: type: string postCode: type: string country: type: string required: true responses: "200": description: HTTP 200 indicating the request succeeded; the response body follows the documented schema for this operation and includes correlation identifiers where applicable for traceability across MTN MADAPI customer kyc verification flows. content: application/json: schema: title: KYCScoreAddressResponse type: object properties: customerId: type: string statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string data: title: KYCAddressData type: object properties: phoneNumber: type: integer format: int32 streetAddress: type: integer format: int32 city: type: integer format: int32 postCode: type: integer format: int32 country: type: integer format: int32 sequenceNo: type: string path: type: string method: type: string timestamp: type: string _links: title: Links type: object properties: self: title: Self type: object properties: href: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "502": description: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "503": description: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /customers/{customerId}/biometric/verify: post: tags: - CustomerKycVerification summary: Verify customer kyc information by uploading customer biometric data description: Verify customer kyc information by uploading customer biometric data. This endpoint is to enable trusted partners verify customer's KYC information by passing customer biometric details operationId: CustomerKycVerification_post_verifyBioMetric_customerscustomerIdb parameters: - name: countryCode in: header required: false schema: type: string - name: customerId in: path required: true schema: type: string - name: partnerName in: header required: false schema: type: string - name: requestType in: query required: false schema: type: string - name: targetSystem in: header required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: verificationType in: query required: false schema: type: string requestBody: content: application/json: schema: title: BiomatchVerificationRequest type: object properties: email: type: string center: type: string binaryAttachment: type: array items: title: ImageData type: object properties: id: type: string attachmentType: type: string content: type: string mimeType: type: string name: type: string status: type: string value: type: string description: type: string uploadId: type: string description: type: string deviceId: type: string serialNumber: type: string correlationId: type: string partyRoleIdentified: type: array items: title: PartyRoleIdentified type: object properties: name: type: string required: true responses: "200": description: HTTP 200 indicating the request succeeded; the response body follows the documented schema for this operation and includes correlation identifiers where applicable for traceability across MTN MADAPI customer kyc verification flows. content: application/json: schema: title: BioMatchAPIResponseData type: object properties: statusCode: type: string statusMessage: type: string supportMessage: type: string customerId: type: string transactionId: type: string sequenceNo: type: string data: title: BioMatchData type: object properties: score: type: number format: double confidenceValidationScore: type: number format: double confidenceMinRange: type: number format: double confidenceMaxRange: type: number format: double matchDescription: type: string matchTime: type: string matchThreshold: type: number format: double id: type: string match: type: boolean creationDate: type: string status: type: string shortGuid: type: string transactionGuid: type: string center: type: string userId: type: string requestTimestamp: type: string responseTimestamp: type: string resourceIdentified: title: ResourceIdentified type: object properties: id: type: string href: type: string name: type: string binaryAttachment: type: array items: title: BinaryAttachment type: object properties: id: type: string content: type: string description: type: string name: type: string state: type: string additionalInformation: type: array items: title: AdditionalInformation type: object properties: name: type: string value: type: string additionalInformation: type: array items: $ref: '#/components/schemas/com_mtn_biomatch_models_biomatch_response_AdditionalInformation' path: type: string method: type: string error: title: APIError type: object properties: statusMessage: type: string supportMessage: type: string transactionId: type: string timestamp: type: string path: type: string method: type: string statusCode: type: string downstreamStatusCode: type: integer format: int32 sequenceNo: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "502": description: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "503": description: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /customers/{customerId}/facial/liveliness-check: post: tags: - CustomerKycVerification summary: Verify customer kyc information by initiating liveness check description: This endpoint is to enable trusted partners verify customer's KYC information by passing customer information to trigger liveness check. This accept the customer id and do liveness check operationId: CustomerKycVerification_post_initiateCustomerKycLiveliness_customerscustomerIdf parameters: - name: appId in: header required: true schema: type: string - name: countryCode in: header required: true schema: type: string - name: customerId in: path required: true schema: type: string - name: targetSystem in: header required: true schema: type: string - name: transactionId in: header required: false schema: type: string requestBody: content: application/json: schema: title: InitiateLivelinessRequest required: - idType - otherNames - purpose - surname type: object properties: surname: type: string otherNames: type: string purpose: type: string idType: type: string required: true responses: "200": description: HTTP 200 indicating the request succeeded; the response body follows the documented schema for this operation and includes correlation identifiers where applicable for traceability across MTN MADAPI customer kyc verification flows. content: application/json: schema: title: KycVerificationResponse type: object properties: statusCode: type: string statusMessage: type: string customerId: type: string transactionId: type: string data: type: string sequenceNo: type: string "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "502": description: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "503": description: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /customers/{customerId}/facial/liveliness-check/{referenceNumber}/status: get: tags: - CustomerKycVerification summary: Verify customer kyc information by performing liveliness check description: This endpoint is to enable trusted partners verify customer's KYC information by passing customer information to trigger liveliness check. This accept customer id and reference number operationId: CustomerKycVerification_get_verifyCustomerKycLivelinessStatus_customerscustomerIdf parameters: - name: countryCode in: header required: true schema: type: string - name: customerId in: path required: true schema: type: string - name: referenceNumber in: path required: true schema: type: string - name: transactionId in: header required: true schema: type: string responses: "200": description: HTTP 200 indicating the request succeeded; the response body follows the documented schema for this operation and includes correlation identifiers where applicable for traceability across MTN MADAPI customer kyc verification flows. content: application/json: schema: $ref: '#/components/schemas/com_mtn_aggregator_models_response_kycverification_KycVerificationResponse' "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "502": description: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "503": description: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /customers/{customerId}/kycScore: post: tags: - CustomerKycVerification summary: Verify customer's KYC information description: "With this API,Chenosis should be able to verify customer's KYC\ \ information and validate. This endpoint accept the customer id and retrieve\ \ the kyc score indicator" operationId: CustomerKycVerification_post_kycScoreIndicator_customerscustomerIdk parameters: - name: customerId in: path required: true schema: type: string - name: isConsentVerified in: query required: false schema: type: boolean - name: partnerName in: header required: false schema: type: string - name: targetSystem in: query required: false schema: type: string - name: transactionId in: header required: true schema: type: string - name: x-registration-channel-id in: header required: false schema: type: string requestBody: content: application/json: schema: title: KYCInfoRequest type: object properties: firstName: type: string lastName: type: string phoneNumber: type: string emailAddress: type: string nationalIdNumber: type: string streetAddress: type: string city: type: string postCode: type: string country: type: string startDate: type: string endDate: type: string otherNames: type: string dateOfBirth: type: string gender: type: string stateOfOrigin: type: string lgaOfOrigin: type: string stateOfResidence: type: string lgaOfResidence: type: string nationality: type: string alternativeNumber: type: string maritalStatus: type: string email: type: string alternativePhoneNumber: type: string idExpiryDate: type: string required: true responses: "200": description: HTTP 200 indicating the request succeeded; the response body follows the documented schema for this operation and includes correlation identifiers where applicable for traceability across MTN MADAPI customer kyc verification flows. content: application/json: schema: title: KYCScoreIndResponse type: object properties: customerId: type: string statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string data: type: string sequenceNo: type: string path: type: string method: type: string timestamp: type: string _links: $ref: '#/components/schemas/com_mtn_aggregator_models_response_bankverification_Links' "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "502": description: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "503": description: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false /customers/{customerId}/nameScore: post: tags: - CustomerKycVerification summary: Verify customer's KYC information description: "With this API, Chenosis should be able to verify customer's KYC\ \ information i.e. Name and validate. This api accept the customer id and\ \ retrieve the kyc info" operationId: CustomerKycVerification_post_kycNameScoreIndicator_customerscustomerIdn parameters: - name: customerId in: path required: true schema: type: string - name: transactionId in: header required: true schema: type: string requestBody: content: application/json: schema: title: KYCNameRequest type: object properties: firstName: type: string lastName: type: string phoneNumber: type: string required: true responses: "200": description: HTTP 200 indicating the request succeeded; the response body follows the documented schema for this operation and includes correlation identifiers where applicable for traceability across MTN MADAPI customer kyc verification flows. content: application/json: schema: title: KYCScoreNameResponse type: object properties: customerId: type: string statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string data: title: KYCNameData type: object properties: firstName: type: integer format: int32 lastName: type: integer format: int32 phoneNumber: type: integer format: int32 sequenceNo: type: string path: type: string method: type: string timestamp: type: string _links: $ref: '#/components/schemas/com_mtn_aggregator_models_response_bankverification_Links' "400": description: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "400" statusMessage: "Bad request. Invalid request parameters, missing required\ \ fields, or validation errors." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "401": description: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "401" statusMessage: "Unauthorized. Invalid or missing authorization credentials,\ \ insufficient permissions, or authentication failure." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "403": description: Forbidden. Access denied. The request is valid but the server refuses to perform it. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "403" statusMessage: Forbidden. Access denied. The request is valid but the server refuses to perform it. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "404": description: Not found. The requested resource was not found or does not exist. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "404" statusMessage: Not found. The requested resource was not found or does not exist. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "500": description: "Internal server error. Unexpected system failure, database\ \ connectivity issues, or external service integration problems." content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "500" statusMessage: "Internal server error. Unexpected system failure,\ \ database connectivity issues, or external service integration\ \ problems." supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "502": description: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "502" statusMessage: Bad gateway. The server acting as a gateway received an invalid response from an upstream server. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z "503": description: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. content: application/json: schema: $ref: '#/components/schemas/APIError' example: statusCode: "503" statusMessage: Service unavailable. The server is temporarily unable to handle the request due to maintenance or overload. supportMessage: API_ERROR transactionId: "1234567890" sequenceNo: "20250115120000001" timestamp: 2025-01-15T12:00:00Z deprecated: false components: schemas: com_mtn_aggregator_models_request_kycverification_KYCAddressRequest: title: KYCAddressRequest type: object properties: phoneNumber: type: string streetAddress: type: string city: type: string postCode: type: string country: type: string com_mtn_aggregator_models_request_kycverification_KYCInfoRequest: title: KYCInfoRequest type: object properties: firstName: type: string lastName: type: string phoneNumber: type: string emailAddress: type: string nationalIdNumber: type: string streetAddress: type: string city: type: string postCode: type: string country: type: string startDate: type: string endDate: type: string otherNames: type: string dateOfBirth: type: string gender: type: string stateOfOrigin: type: string lgaOfOrigin: type: string stateOfResidence: type: string lgaOfResidence: type: string nationality: type: string alternativeNumber: type: string maritalStatus: type: string email: type: string alternativePhoneNumber: type: string idExpiryDate: type: string com_mtn_aggregator_models_response_kycverification_KYCScoreAddressResponse: title: KYCScoreAddressResponse type: object properties: customerId: type: string statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string data: title: KYCAddressData type: object properties: phoneNumber: type: integer format: int32 streetAddress: type: integer format: int32 city: type: integer format: int32 postCode: type: integer format: int32 country: type: integer format: int32 sequenceNo: type: string path: type: string method: type: string timestamp: type: string _links: title: Links type: object properties: self: title: Self type: object properties: href: type: string com_mtn_aggregator_models_response_kycverification_KYCAddressData: title: KYCAddressData type: object properties: phoneNumber: type: integer format: int32 streetAddress: type: integer format: int32 city: type: integer format: int32 postCode: type: integer format: int32 country: type: integer format: int32 com_mtn_aggregator_models_response_bankverification_VerificationDataDetails: title: VerificationDataDetails type: object properties: registrationDate: type: string phoneNumber: type: string status: type: boolean com_mtn_biomatch_models_response_digital_ResourceIdentified: title: ResourceIdentified type: object properties: id: type: string href: type: string name: type: string com_mtn_biomatch_models_response_digital_BinaryAttachment: title: BinaryAttachment type: object properties: id: type: string content: type: string description: type: string name: type: string state: type: string com_mtn_aggregator_models_request_kycverification_InitiateLivelinessRequest: title: InitiateLivelinessRequest required: - idType - otherNames - purpose - surname type: object properties: surname: type: string otherNames: type: string purpose: type: string idType: type: string com_mtn_aggregator_models_response_kycverification_KYCNameData: title: KYCNameData type: object properties: firstName: type: integer format: int32 lastName: type: integer format: int32 phoneNumber: type: integer format: int32 com_mtn_aggregator_models_response_bankverification_Self: title: Self type: object properties: href: type: string com_mtn_aggregator_models_response_bankverification_LinkObject: title: LinkObject type: object properties: rel: type: string href: type: string com_mtn_aggregator_models_response_bankverification_Links: title: Links type: object properties: self: title: Self type: object properties: href: type: string com_mtn_aggregator_models_response_biomatch_BioMatchAPIResponseData: title: BioMatchAPIResponseData type: object properties: statusCode: type: string statusMessage: type: string supportMessage: type: string customerId: type: string transactionId: type: string sequenceNo: type: string data: title: BioMatchData type: object properties: score: type: number format: double confidenceValidationScore: type: number format: double confidenceMinRange: type: number format: double confidenceMaxRange: type: number format: double matchDescription: type: string matchTime: type: string matchThreshold: type: number format: double id: type: string match: type: boolean creationDate: type: string status: type: string shortGuid: type: string transactionGuid: type: string center: type: string userId: type: string requestTimestamp: type: string responseTimestamp: type: string resourceIdentified: title: ResourceIdentified type: object properties: id: type: string href: type: string name: type: string binaryAttachment: type: array items: title: BinaryAttachment type: object properties: id: type: string content: type: string description: type: string name: type: string state: type: string additionalInformation: type: array items: title: AdditionalInformation type: object properties: name: type: string value: type: string additionalInformation: type: array items: $ref: '#/components/schemas/com_mtn_biomatch_models_biomatch_response_AdditionalInformation' path: type: string method: type: string error: title: APIError type: object properties: statusMessage: type: string supportMessage: type: string transactionId: type: string timestamp: type: string path: type: string method: type: string statusCode: type: string downstreamStatusCode: type: integer format: int32 sequenceNo: type: string com_mtn_aggregator_models_request_kycverification_KYCNameRequest: title: KYCNameRequest type: object properties: firstName: type: string lastName: type: string phoneNumber: type: string APIError: title: APIError required: - statusCode - statusMessage type: object properties: statusCode: type: string description: Error status code statusMessage: type: string description: Human-readable error message supportMessage: type: string description: Technical support message or error code for troubleshooting transactionId: type: string description: Transaction identifier for tracking and correlation sequenceNo: type: string description: Sequence number for request tracking timestamp: type: string description: Error timestamp in ISO 8601 format format: date-time path: type: string description: API endpoint path where the error occurred method: type: string description: HTTP method of the request that caused the error downstreamStatusCode: type: string description: Downstream service error code if applicable description: Generic MADAPI error response structure com_mtn_aggregator_models_response_kycverification_KYCScoreNameResponse: title: KYCScoreNameResponse type: object properties: customerId: type: string statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string data: title: KYCNameData type: object properties: firstName: type: integer format: int32 lastName: type: integer format: int32 phoneNumber: type: integer format: int32 sequenceNo: type: string path: type: string method: type: string timestamp: type: string _links: $ref: '#/components/schemas/com_mtn_aggregator_models_response_bankverification_Links' com_mtn_aggregator_models_request_kycverification_BiomatchVerificationRequest: title: BiomatchVerificationRequest type: object properties: email: type: string center: type: string binaryAttachment: type: array items: title: ImageData type: object properties: id: type: string attachmentType: type: string content: type: string mimeType: type: string name: type: string status: type: string value: type: string description: type: string uploadId: type: string description: type: string deviceId: type: string serialNumber: type: string correlationId: type: string partyRoleIdentified: type: array items: title: PartyRoleIdentified type: object properties: name: type: string com_mtn_aggregator_enums_VerificationStatus: title: VerificationStatus type: object properties: value: type: string com_mtn_biomatch_models_response_BioMatchData: title: BioMatchData type: object properties: score: type: number format: double confidenceValidationScore: type: number format: double confidenceMinRange: type: number format: double confidenceMaxRange: type: number format: double matchDescription: type: string matchTime: type: string matchThreshold: type: number format: double id: type: string match: type: boolean creationDate: type: string status: type: string shortGuid: type: string transactionGuid: type: string center: type: string userId: type: string requestTimestamp: type: string responseTimestamp: type: string resourceIdentified: title: ResourceIdentified type: object properties: id: type: string href: type: string name: type: string binaryAttachment: type: array items: title: BinaryAttachment type: object properties: id: type: string content: type: string description: type: string name: type: string state: type: string additionalInformation: type: array items: title: AdditionalInformation type: object properties: name: type: string value: type: string com_mtn_aggregator_models_response_kycverification_KycVerificationResponse: title: KycVerificationResponse type: object properties: statusCode: type: string statusMessage: type: string customerId: type: string transactionId: type: string data: type: string sequenceNo: type: string com_mtn_aggregator_models_response_biomatch_BVNData: title: BVNData type: object properties: statusCode: type: string customerId: type: string firstName: type: string lastName: type: string otherNames: type: string email: type: string dateOfBirth: type: string gender: type: string stateOfOrigin: type: string lgaOfOrigin: type: string stateOfResidence: type: string lgaOfResidence: type: string nationality: type: string phoneNumber: type: string alternativePhoneNumber: type: string maritalStatus: type: string registrationDate: type: string enrollmentBank: type: string enrollmentBranch: type: string watchListed: type: string status: type: string com_mtn_aggregator_models_response_kycverification_nibss_BVNVerificationFingerPrintRequest: title: BVNVerificationFingerPrintRequest type: object properties: bvns: type: array items: title: BVNFingerPrintVerificationData type: object properties: id: type: string firstName: type: string lastName: type: string otherNames: type: string email: type: string dateOfBirth: type: string gender: type: string stateOfOrigin: type: string lgaOfOrigin: type: string stateOfResidence: type: string lgaOfResidence: type: string nationality: type: string alternativePhoneNumber: type: string maritalStatus: type: string binaryAttachment: type: array items: title: BinaryAttachment type: object properties: id: type: string attachmentType: type: string content: type: string mimeType: type: string name: type: string status: type: string description: type: string deviceId: type: string com_mtn_aggregator_models_response_bankverification_VerificationResponse: title: VerificationResponse type: object properties: statusCode: type: string statusMessage: type: string transactionId: type: string customerId: type: string sequenceNo: type: string publicIdentifer: type: string operation: type: string type: type: string timestamp: type: string status: type: string data: title: VerificationData type: object properties: verificationStatus: title: VerificationStatus type: object properties: value: type: string verificationStatus2: $ref: '#/components/schemas/com_mtn_aggregator_enums_VerificationStatus' hashedMsisdn: type: string attemptCount: type: string details: title: VerificationDataDetails type: object properties: registrationDate: type: string phoneNumber: type: string status: type: boolean links: type: array items: title: LinkObject type: object properties: rel: type: string href: type: string com_mtn_aggregator_models_request_kycverification_ImageData: title: ImageData type: object properties: id: type: string attachmentType: type: string content: type: string mimeType: type: string name: type: string status: type: string value: type: string description: type: string com_mtn_aggregator_models_response_biomatch_BVNDetails: title: BVNDetails type: object properties: bvnDetails: type: array items: title: BVNData type: object properties: statusCode: type: string customerId: type: string firstName: type: string lastName: type: string otherNames: type: string email: type: string dateOfBirth: type: string gender: type: string stateOfOrigin: type: string lgaOfOrigin: type: string stateOfResidence: type: string lgaOfResidence: type: string nationality: type: string phoneNumber: type: string alternativePhoneNumber: type: string maritalStatus: type: string registrationDate: type: string enrollmentBank: type: string enrollmentBranch: type: string watchListed: type: string status: type: string com_mtn_madapi_commons_models_error_APIError: title: APIError type: object properties: statusMessage: type: string supportMessage: type: string transactionId: type: string timestamp: type: string path: type: string method: type: string statusCode: type: string downstreamStatusCode: type: integer format: int32 sequenceNo: type: string com_mtn_aggregator_models_request_kycverification_KycVerificationRequest: title: KycVerificationRequest type: object properties: firstName: type: string lastName: type: string middleName: type: string otherNames: type: string dateOfBirth: type: string idExpiryDate: type: string gender: type: string stateOfOrigin: type: string lgaOfOrigin: type: string stateOfResidence: type: string lgaOfResidence: type: string nationality: type: string alternativeNumber: type: string maritalStatus: type: string email: type: string alternativePhoneNumber: type: string postCode: type: string phoneNumber: type: string nationalIdNumber: type: string city: type: string streetAddress: type: string image: type: array items: $ref: '#/components/schemas/com_mtn_aggregator_models_request_kycverification_ImageData' pinRef: type: string useCase: type: string deviceId: type: string simSerial: type: string uniqueId: type: string com_mtn_biomatch_models_biomatch_response_AdditionalInformation: title: AdditionalInformation type: object properties: name: type: string value: type: string com_mtn_aggregator_models_response_biomatch_BioMatchAPIResponseDataBVN: title: BioMatchAPIResponseDataBVN type: object properties: statusCode: type: string statusMessage: type: string transactionId: type: string sequenceNo: type: string data: title: BVNDetails type: object properties: bvnDetails: type: array items: title: BVNData type: object properties: statusCode: type: string customerId: type: string firstName: type: string lastName: type: string otherNames: type: string email: type: string dateOfBirth: type: string gender: type: string stateOfOrigin: type: string lgaOfOrigin: type: string stateOfResidence: type: string lgaOfResidence: type: string nationality: type: string phoneNumber: type: string alternativePhoneNumber: type: string maritalStatus: type: string registrationDate: type: string enrollmentBank: type: string enrollmentBranch: type: string watchListed: type: string status: type: string com_mtn_aggregator_models_response_bankverification_VerificationData: title: VerificationData type: object properties: verificationStatus: title: VerificationStatus type: object properties: value: type: string verificationStatus2: $ref: '#/components/schemas/com_mtn_aggregator_enums_VerificationStatus' hashedMsisdn: type: string attemptCount: type: string details: title: VerificationDataDetails type: object properties: registrationDate: type: string phoneNumber: type: string status: type: boolean com_mtn_aggregator_models_response_kycverification_nibss_BinaryAttachment: title: BinaryAttachment type: object properties: id: type: string attachmentType: type: string content: type: string mimeType: type: string name: type: string status: type: string description: type: string com_mtn_aggregator_models_response_kycverification_nibss_NibssVerificationResponse: title: NibssVerificationResponse type: object properties: responseCode: type: string BVN: type: string firstName: type: string middleName: type: string lastName: type: string dateOfBirth: type: string phoneNumber: type: string registrationDate: type: string enrollmentBank: type: string enrollmentBranch: type: string watchListed: type: string com_mtn_aggregator_models_response_kycverification_nibss_BVNFingerPrintVerificationData: title: BVNFingerPrintVerificationData type: object properties: id: type: string firstName: type: string lastName: type: string otherNames: type: string email: type: string dateOfBirth: type: string gender: type: string stateOfOrigin: type: string lgaOfOrigin: type: string stateOfResidence: type: string lgaOfResidence: type: string nationality: type: string alternativePhoneNumber: type: string maritalStatus: type: string com_mtn_aggregator_models_response_kycverification_KYCScoreIndResponse: title: KYCScoreIndResponse type: object properties: customerId: type: string statusCode: type: string statusMessage: type: string supportMessage: type: string transactionId: type: string data: type: string sequenceNo: type: string path: type: string method: type: string timestamp: type: string _links: $ref: '#/components/schemas/com_mtn_aggregator_models_response_bankverification_Links' com_mtn_aggregator_models_request_kycverification_PartyRoleIdentified: title: PartyRoleIdentified type: object properties: name: type: string securitySchemes: OAuth2: type: oauth2 flows: clientCredentials: tokenUrl: https://api.mtn.com/v1/oauth/access_token scopes: {} Bearer: type: http description: Bearer token received from OAuth2.0 authentication with the MADAPI scheme: bearer bearerFormat: JWT