openapi: 3.0.1 info: title: Customer KYC description: "MTN Customer KYC API -Customer KYC Aggregator: The Customer KYC API\ \ facilitates capturing and retrieval of Customer Information for KYC (Know Your\ \ Client) purposes." license: name: MADAPI url: https://developers.mtn.com/ version: V3.0.0 servers: - url: https://api.mtn.com/v1 description: Production Server security: - OAuth2: [] tags: - name: KycAggregator paths: /customer: get: tags: - KycAggregator summary: Modify customer's eyeballing info description: Modify a customer's KYC info - This endpoint facilitates to update a customer for KYC. This accepts the customer id a customer identifier and request for kyc operationId: KycAggregator_get_updateNormalEyeballingRequest_customer parameters: - name: channel in: query required: false schema: type: string - name: deviceId in: query required: false schema: type: string - name: endDate in: query required: false schema: type: string - name: limit in: query required: false schema: type: string - name: name in: query required: false schema: type: string - name: offset in: query required: false schema: type: string - name: requestType in: query required: false schema: type: string - name: sort in: query required: false schema: type: string - name: startDate in: query required: false schema: type: string - name: subType 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: x-country-code in: header required: false schema: type: string responses: "200": description: OK content: application/json: schema: title: CustomerEyeballingResponse type: object properties: statusCode: type: string statusMessage: type: string transactionId: type: string data: type: array items: title: CustomerData type: object properties: "0": type: string "1": type: string "2": type: string "3": type: string "4": type: string "5": type: string "6": type: string "7": type: string id: type: string orderID: type: string createdDate: type: string format: date-time status: type: string substatus: type: string modifiedDate: type: string format: date-time request: title: CustomerRequest type: object properties: type: type: string subType: type: string customerType: type: string resourceType: type: string transactionId: type: string offlineVerification: type: boolean biometricUpdateType: type: string consentType: type: string businessType: type: string registrationDate: type: string format: date-time eformReference: type: string linkingProcessReference: type: string identification: title: Identification type: object properties: additionalidetification: type: array items: type: string id: type: string type: type: string issuer: type: string expiryDate: type: string givenName: type: string familyName: type: string gender: type: string birthDate: type: string format: date-time status: type: string subStatus: type: string customFields: title: CustomerCustomerFields type: object properties: vnin: type: string userId: type: string contactMedium: title: CustomerContactMediums type: object properties: contactNo: type: string emailId: type: string fullName: type: string individual: title: CustomerIndividualRequest type: object properties: id: type: string title: type: string givenName: type: string middleName: type: string familyName: type: string fullName: type: string maritalStatus: type: string mothersName: type: string gender: type: string birthDate: type: string format: date-time nationality: type: string residencyStatus: type: string motherName: type: string stateOfOrigin: type: string lgaOfOrigin: type: string religion: type: string citizenType: type: string vip: type: boolean stateOrProvince: type: string city: type: string occupationalDetails: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_OccupationalDetails' disabilityDetails: title: DisabilityDetails type: object properties: isDisabled: type: boolean type: type: string language: type: string isForeigner: type: boolean foreignerType: type: string visitor: type: boolean contactMedium: title: IndividualContactMedium type: object properties: residenceAddress: title: CustomerAddress type: object properties: postalCode: type: string city: type: string stateOrProvince: type: string country: type: string addressLine1: type: string addressLine2: type: string addressLine3: type: string physicalAddress: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_CustomerAddress' contactNo: type: string email: type: string agent: title: CustomerAgent type: object properties: id: type: string name: type: string deviceId: type: string contactMedium: title: CustomerAgentContactMedium type: object properties: address: title: CustomerAgentAddress type: object properties: addressLine1: type: string addressLine2: type: string stateOrProvince: type: string lga: type: string city: type: string postalCode: type: string contactNo: type: string dealerDetails: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_DealerDetails' geographicLocation: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_GeographicLocation' role: type: array items: type: string document: type: array items: title: CustomerDocument type: object properties: id: type: string type: type: string subType: type: string name: type: string docChannel: type: string href: type: string mimeType: type: string channel: title: Channel type: object properties: name: type: string role: type: string id: type: string referredType: type: string type: type: string resource: title: CustomerResource type: object properties: sim: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_Sim' msisdn: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_Msisdn' starterPack: title: StarterPack type: object properties: id: type: string value: type: string reservationID: type: string device: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_Device' verificationDetails: title: CustomerVerificationDetails type: object properties: verificationStatus: type: string simRegImg: title: SimRegImg type: object properties: value: type: string byPass: type: boolean reason: type: string nimcImg: title: NimcImg type: object properties: value: type: integer format: int32 byPass: type: boolean reason: type: string eyeballing: title: EyeballingReg type: object properties: userName: type: string action: type: string lockedTill: type: string locked: type: boolean fasteyeballing: title: FastEyeballing type: object properties: userName: type: string date: type: string remarks: type: string reason: type: boolean demoData: type: array items: title: DemoData type: object properties: id: type: string title: type: string ninValue: type: string indvValue: type: string match: type: integer format: int32 mnpDetails: type: array items: type: string organization: title: Organization type: object properties: tradingName: type: string noOfEmployees: type: string position: type: string businessSector: type: string businessSubSector: type: string businessAddress: type: string organizationIdentification: title: OrganizationIdentification type: object properties: identificationId: type: string identificationType: type: string expiryDate: type: string eValidator: type: object additionalProperties: type: string additionalDetails: title: CustomerAdditionalDetails type: object properties: fingerPrintPosition: type: string kycHistory: type: array items: title: CustomerKycHistory type: object properties: actionDate: type: string format: date-time statusCode: type: string userName: type: string transactionNumber: type: string x-forwarded-for: type: string user-agent: type: string remarks: type: string reason: type: string orderItemId: type: string publicIdentifier: type: string customer: title: Customer type: object properties: id: type: string demoMatch: type: string productDetails: type: array items: title: ProductDetail type: object properties: status: type: string publicIdentifier: type: string id: type: string customerID: type: string role: type: string control: title: Control type: object properties: productCreated: type: boolean "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/associatedNumbers/kyc: get: tags: - KycAggregator summary: Retrieve associated mobile numbers with the customer by passing name and date of birth description: "Retrieve all details associated with a customer by providing first\ \ name, last name and date of birth. This API is responsible for getting list\ \ of associated mobile numbers for the customer." operationId: KycAggregator_get_associatedNumbersGetKyc_customersassociatedN parameters: - name: countryCode in: header required: false schema: type: string - name: dob in: query required: true schema: type: string - name: firstName in: query required: true schema: type: string - name: lastName in: query required: true schema: type: string - name: targetSystem in: header required: false schema: type: string - name: transactionId in: header required: false schema: type: string responses: "200": description: Success content: application/json: schema: title: AssociatedNumbersResponse type: object properties: statusCode: type: string statusMessage: type: string transactionId: type: string responseCode: type: string supportMessage: type: string sequenceNo: type: string timestamp: type: string data: title: KycAssociatedNumbersData type: object properties: summary: title: Summary type: object properties: code: type: integer format: int32 rows: type: array items: title: SummaryRow type: object properties: totalUniqueMSISDN: type: integer format: int32 detail: title: Detail type: object properties: code: type: string rows: type: array items: title: DetailRow type: object properties: MSISDN: type: string totalTimesRegistered: type: integer format: int32 "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/kyc/bvn: get: tags: - KycAggregator 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: KycAggregator_get_nibssGetKyc_customerskycbvn parameters: - name: bvns in: header required: false schema: type: string - name: kycType in: query required: false schema: type: string - name: partnerName in: header required: false schema: type: string - name: targetSystem in: header required: false schema: type: string - name: transactionId in: header required: false schema: type: string responses: "200": description: OK content: application/json: schema: title: NibssGetBVNResponse 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 email: type: string gender: type: string phoneNumber2: type: string levelOfAccount: type: string lgaOfOrigin: type: string lgaOfResidence: type: string maritalStatus: type: string NIN: type: string nameOnCard: type: string nationality: type: string residentialAddress: type: string stateOfOrigin: type: string stateOfResidence: type: string title: type: string watchListed: type: string base64Image: 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}/kyc: get: tags: - KycAggregator summary: Retrieve Customer Information description: Retrieve Customer KYC information by specifying the 'customerId'. This functionality shall only be successful only when the user validates his/her consent (via OTP or USSD/OTA) on allowing the 3PP get such information. User’s shall have enough credit in his/her main account(MA) and shall be debited upon every successful consent validation for this service. User shall be notified via sms of the debit action operationId: KycAggregator_get_getKycData_customerscustomerIdk parameters: - name: action in: query required: false schema: type: string - name: additionalFlag in: query required: false schema: type: boolean - name: ban in: query required: false schema: type: string - name: contractType in: query required: false schema: type: string - name: customerId in: path required: true schema: type: string - name: depth in: query required: false schema: type: string - name: endDate in: query required: false schema: type: string - name: idNumber in: query required: false schema: type: string - name: idType in: query required: false schema: type: string - name: kycType in: query required: false schema: type: string - name: operation in: query required: false schema: type: string - name: partnerId in: query required: false schema: type: string - name: prefLang in: query required: false schema: type: string - name: serviceCode in: query required: false schema: type: string - name: startDate in: query required: false schema: type: string - name: status in: query required: false schema: type: string - name: surname in: query required: false schema: type: string - name: targetSystem in: query required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-authorization-claims in: header required: false schema: type: string - name: x-country-code in: header required: false schema: type: string - name: x-kyc-attributes in: header required: false schema: type: string - name: x-origin-channelid in: header required: false schema: type: string responses: "200": description: Success content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_models_response_kyc_CustomerKYCDetailsResponse' "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: - KycAggregator summary: Retrieve Customer Information with Consent validation description: Retrieve Customer KYC information by specifying the 'customerId'. Required the user consent. This functionality shall only be successful only when the user validates his/her consent (via OTP or USSD/OTA) on allowing the 3PP get such information. User’s shall have enough credit in his/her main account(MA) and shall be debited upon every successful consent validation for this service. User shall be notified via sms of the debit action operationId: KycAggregator_post_getKycDataConsentCheck_customerscustomerIdk parameters: - name: customerId in: path required: true schema: type: string - name: depth in: query required: false schema: type: string - name: kycType in: query required: false schema: type: string - name: status 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: x-authorization-claims in: header required: false schema: type: string - name: x-country-code in: header required: false schema: type: string - name: x-kyc-attributes in: header required: false schema: type: string - name: x-origin-channelid in: header required: false schema: type: string requestBody: content: application/json: schema: title: KycRequest type: object properties: consentType: type: string consentMessage: type: string callbackUrl: type: string targetSystem: type: string callingSystem: type: string alternateClientCallbackUrl: type: string required: true responses: "200": description: Success content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_models_response_APIResponse' "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}/kyc/biometric: delete: tags: - KycAggregator summary: Disable Customer Biometric Data description: Disable Customer Biometric Data - Endpoint shall be used by a third party system to disable a customer's biometric data from a number. This accept the customer id as identification of customer operationId: KycAggregator_delete_disableCustomerBiometricData_customerscustomerIdk parameters: - name: channel in: header required: false schema: type: string - name: customerId in: path required: true schema: type: string - name: targetSystem in: header required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-authorization in: header required: false schema: type: string responses: "200": description: Success content: application/json: schema: title: APIResponse type: object "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}/kyc/delinkAccount: delete: tags: - KycAggregator summary: Delete Secondary Number description: Request for delete/unlink a customer's secondary number from a primary number. -Endpoint shall be used by a third party system to delete/unlink a customer's secondary number from a primary number operationId: KycAggregator_delete_dLinkAccount_customerscustomerIdk parameters: - name: base64Image in: query required: false schema: type: string - name: customerId in: path required: true schema: type: string - name: delinkReason in: query required: false schema: type: string - name: facialMatchResult in: query required: false schema: type: string - name: facialMatchingScore in: query required: false schema: type: string - name: idType in: query required: false schema: type: string - name: otp in: query required: false schema: type: string - name: secondaryNumber in: query required: true schema: type: string - name: secondaryNumberAlias in: query required: false schema: type: string - name: segment in: query 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: header required: false schema: type: string - name: x-Authorization in: header required: false schema: type: string - name: x-channel-id in: header required: false schema: type: string - name: x-country-code in: header required: false schema: type: string responses: "200": description: OK content: application/json: schema: title: LinkdAccount type: object "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}/kyc/identification: get: tags: - KycAggregator summary: Retrieve Customer Information based on calling channel description: Retrieve Customer information based on calling channel by specifying the 'customerId'. MTN Customer identification API allows clients to identify the KYC (Know Your Customer) details of an MTN customer. operationId: KycAggregator_get_getKycData_customerscustomerIdk_1 parameters: - name: additionalFlag in: query required: false schema: type: boolean - name: ban in: query required: false schema: type: string - name: channelName in: query required: false schema: type: string - name: contractType in: query required: false schema: type: string - name: customerId in: path required: true schema: type: string - name: endDate in: query required: false schema: type: string - name: idNumber in: query required: false schema: type: string - name: kycType in: query required: false schema: type: string - name: operation in: query required: false schema: type: string - name: prefLanguage in: query required: false schema: type: string - name: registrationStatus in: query required: false schema: type: string - name: serviceCode in: query 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: header required: false schema: type: string - name: x-authorization-claims in: header required: false schema: type: string - name: x-country-code in: header required: false schema: type: string - name: x-origin-channelid in: header required: false schema: type: string responses: "200": description: Success content: application/json: schema: title: CustomerKYCDetailsResponse type: object properties: statusCode: type: string transactionId: type: string statusMessage: type: string supportMessage: type: string customerId: type: string submittedTime: type: string sequenceNo: type: string registrationStatus: type: string preferredLanguage: type: string path: type: string data: title: FetchDetailsDataResponse type: object properties: firstName: type: string lastName: type: string dateOfBirth: type: string idNumber: type: string phoneNumber: type: string momoFlag: type: string msisdn: type: string idExpiryDate: type: string fullName: type: string transactionlogreference: type: string characteristic: type: string primaryContacts: type: array items: title: MsisdnInfo type: object properties: MSISDN: type: string RegistrationStatus: 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}/kyc/linkAccount: post: tags: - KycAggregator summary: Request for update/link a customer's secondary number to a primary number description: Customer Linked Accounts - Update secondary number - Endpoint shall be used by a third party system to update/link a customer's secondary number from a primary number. operationId: KycAggregator_post_postLinkAccount_customerscustomerIdk parameters: - name: customerId in: path required: true schema: type: string - name: idType in: query required: false schema: type: string - name: segment in: query required: false schema: type: string - name: targetSystem in: query required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-authorization in: header required: false schema: type: string - name: x-channel-id in: header required: false schema: type: string requestBody: content: application/json: schema: title: LinkAccount type: object properties: secondaryNumber: type: string linkReason: type: string secondaryNumberAlias: type: string otp: type: string segment: type: string required: true responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_models_response_linked_LinkdAccount' "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}/kyc/linkedAccounts: get: tags: - KycAggregator summary: Retrieve Customer Linked Numbers description: "Retrieve all Customer Linked Numbers - Request to retrieve customer\ \ secondary linked numbers information. ID of the customer. It could be MSISDN,\ \ email address, or any other customer identifier" operationId: KycAggregator_get_getLinkedNumbers_customerscustomerIdk parameters: - name: countryCode in: header required: false schema: type: string - name: customerId in: path required: true schema: type: string - name: customerIdCardNumber in: query required: false schema: type: string - name: customerIdType in: query required: false schema: type: string - name: productType in: query required: false schema: type: string - name: requestType in: query required: false schema: type: string - name: requesterId in: query required: false schema: type: string - name: segment in: query required: false schema: type: string - name: targetSystem in: query required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-authorization in: header required: false schema: type: string - name: x-origin-channelid in: header required: false schema: type: string responses: "200": description: OK content: application/json: schema: title: LinkedNumbersResponse type: object properties: statusCode: type: string statusMessage: type: string customerId: type: string transactionId: type: string sequenceNo: type: string data: title: LinkedNumbersData type: object properties: firstName: type: string lastName: type: string gender: type: string idNumber: type: string dateOfBirth: type: string emailAddress: type: string primaryNumbers: type: array items: title: LinkedNumber type: object properties: mobileNumber: type: string mobileNumberAlias: type: string startDate: type: string secondaryNumbers: type: array items: $ref: '#/components/schemas/za_co_mtn_models_linked_LinkedNumber' "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: - KycAggregator summary: Request for update/link a customer's secondary number to a primary number description: Customer Linked Accounts - Update secondary number - Endpoint shall be used by a third party system to update/link a customer's secondary number from a primary number. operationId: KycAggregator_post_postLinkedAccount_customerscustomerIdk parameters: - name: customerId in: path required: true schema: type: string - name: idType in: query required: false schema: type: string - name: segment in: query required: false schema: type: string - name: targetSystem in: query required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-authorization in: header required: false schema: type: string - name: x-channel-id in: header required: false schema: type: string - name: x-country-code in: header required: false schema: type: string - name: x-requester-id in: header required: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_LinkAccount' required: true responses: "200": description: OK content: application/json: schema: title: LinkAccountResponse type: object properties: statusCode: type: string statusMessage: type: string statusDescription: type: string transactionId: type: string sequenceNo: type: string customerId: type: string data: type: string error: title: LinkAccountError 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: 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}/kyc/registration: post: tags: - KycAggregator summary: Capture or Create Customer KYC description: Capture or create customer KYC - This endpoint facilitates to register a customer for KYC. This accepts the customer id a customer identifier and request for kyc operationId: KycAggregator_post_handleCustomerRegistration_customerscustomerIdk parameters: - name: X-Authorization in: header required: false schema: type: string - name: consentFlag in: query required: false schema: type: boolean - name: customerId in: path required: true schema: type: string - name: targetSystem in: query required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-country-code in: header required: false schema: type: string - name: x-requester-id in: header required: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_CustomerKYCReq' required: true responses: "200": description: OK content: application/json: schema: title: CustomerKycCreateResponse type: object properties: statusCode: type: string customerId: type: string statusMessage: type: string substatus: type: string createddate: type: string registrationDate: type: string supportMessage: type: string transactionId: type: string kycType: $ref: '#/components/schemas/za_co_mtn_enums_KycType' sequenceNo: type: string isFullKycResubmit: type: boolean services: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_Services' data: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_RegistrationData' order: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_OrderDetails' geoTag: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_GeoTagging' kycSubType: type: string id: 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 patch: tags: - KycAggregator summary: Modify Customer's KYC info description: Modify a customer's KYC info - This endpoint facilitates to update a customer for KYC. This accepts the customer id a customer identifier and request for kyc operationId: KycAggregator_patch_handleCustomerModification_customerscustomerIdk parameters: - name: X-Authorization in: header required: false schema: type: string - name: customerId in: path required: true schema: type: string - name: targetSystem in: query required: false schema: type: string - name: transactionId in: header required: false schema: type: string - name: x-country-code in: header required: false schema: type: string requestBody: content: application/json: schema: title: CustomerKYCReq type: object properties: kycType: title: KycType type: object properties: value: type: string isFullKycResubmit: type: boolean registrationDate: type: string services: title: Services type: object properties: moMoFlag: type: boolean dataServicesFlag: type: boolean voiceServicesFlag: type: boolean moMoFlagtype: type: string serviceType: type: string data: title: RegistrationData type: object properties: firstName: type: string lastName: type: string middleName: type: string fullname: type: string motherName: type: string religion: type: string citizenType: type: string VIP: type: boolean resourceType: type: string title: type: string idType: type: string idNumber: type: string idCardNumber: type: string idImage: type: string idExpiryDate: type: string format: date-time idIssuanceDate: type: string isIdNationalDbMatched: type: string isIdValid: type: boolean dateOfBirth: type: string format: date-time gender: type: string currency: type: string nationality: type: string languagePref: type: string maritalStatus: type: string visaExpiryDate: type: string format: date-time simNumber: type: string phoneNumber: type: string alternativePhoneNumber: type: string mobileMoneyNumber: type: string emailAddress: type: string registrationStatus: title: RegistrationStatus type: object properties: description: type: string notificationPref: type: string taxIdNumber: type: string vatNumber: type: string designation: type: string termsAndConditionsAccepted: type: boolean productOfferings: type: array items: title: ProductOfferings type: object properties: code: type: string name: type: string customerIdentification: title: CustomerIdentification type: object properties: idNumber: type: string type: type: string issuerName: type: string expiryDate: type: string givenName: type: string familyName: type: string gender: type: string birthDate: type: string status: type: string subStatus: type: string customFields: title: CustomFields type: object properties: vnin: type: string contactMedium: title: ContactMedium type: object properties: contactNo: type: string emailId: type: string address: title: Address type: object properties: addressLine1: type: string addressLine2: type: string stateOrProvince: type: string city: type: string postalCode: type: string agent: title: Agent type: object properties: id: type: string name: type: string deviceId: type: string contactMedium: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_ContactMedium' dealerDetails: title: DealerDetails type: object properties: id: type: string name: type: string division: type: string contactMedium: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_ContactMedium' geographicLocation: title: GeographicLocation type: object properties: spatialRef: type: string geometry: title: Geometry type: object properties: x: type: string "y": type: string z: type: string document: type: array items: type: object verificationDetails: title: VerificationDetails type: object properties: verificationStatus: type: string simRegImg: title: SimRegImg type: object properties: value: type: integer format: int64 byPass: type: string reason: type: string nimcImg: title: NimcImg type: object properties: value: type: integer format: int64 byPass: type: string reason: type: string occupationalDetails: title: OccupationalDetails type: object properties: occupation: type: string organizationName: type: string socialMediaDetail: type: array items: title: SocialMediaDetail type: object properties: name: type: string link: type: string sim: title: Sim type: object properties: id: type: string reservationID: type: string value: type: string number: type: string resourceCharacteristics: title: ResourceCharacteristics type: object properties: pin1: type: string pin2: type: string puk1: type: string puk2: type: string imsiNumber: type: string kiNumberData: type: string cardProfile: type: string KindValue: type: string msisdn: title: Msisdn type: object properties: id: type: string reservationID: type: string value: type: string productId: type: string device: title: Device type: object properties: id: type: string reservationID: type: string value: type: string businessInfo: title: BusinessInfo type: object properties: username: type: string phoneNumber: type: string businessType: type: string vatNumber: type: string licenseNumber: type: string registrationDocImage: type: string resellerUsername: type: string dateOfIncorporation: type: string shopName: type: string location: type: string region: title: Region type: object properties: description: type: string legalStatus: title: LegalStatus type: object properties: value: type: string director: title: Director type: object properties: name: type: string designation: type: string postalAddress: title: AddressDetails type: object properties: addressType: type: string addressOne: type: string addressTwo: type: string addressThree: type: string street: type: string streetDesc: type: string poBox: type: string city: type: string cityDesc: type: string district: type: string districtDesc: type: string country: type: string countryDesc: type: string countryState: type: string countryLga: type: string countryPostal: type: string residencyStatus: type: string region: type: string regionDescription: type: string email: type: string postbox: type: string agentName: type: string area: type: string digitalAddress: type: string latitude: type: string gpsName: type: string longitude: type: string businessAddress: $ref: '#/components/schemas/za_co_mtn_models_response_kyc_AddressDetails' residentialAddress: $ref: '#/components/schemas/za_co_mtn_models_response_kyc_AddressDetails' nextOfKin: title: NextOfKin type: object properties: firstName: type: string middleName: type: string lastName: type: string phoneNumber: type: string idNumber: type: string idType: type: string residentialAddress: $ref: '#/components/schemas/za_co_mtn_models_response_kyc_AddressDetails' fingerPrint: type: string customerSubscriberType: type: string contractType: type: string vas: type: string momoDeclaration: type: string customerOrigin: type: string momoTerms: type: string momoAcceptTerms: type: string registrationDate: type: string channel: type: string idName: type: string idDescription: type: string idFileType: type: string idVersion: type: string placeOfIdIssue: type: string placeOfBirth: type: string callbackUrl: type: string id: type: string givenName: type: string familyName: type: string birthDate: type: string residencyStatus: type: string stateOrProvince: type: string city: type: string language: type: string isForeigner: type: string foreignerType: type: string visitor: type: string customerType: type: string offlineVerification: type: boolean biometricUpdateType: type: string consentType: type: string businessType: type: string rejected: type: array items: title: KycBeneficiaryData type: object properties: name: type: string registrationStatus: type: string order: title: OrderDetails type: object properties: id: type: string serviceId: type: string itemId: type: string senderIdImage: type: string senderIds: type: array items: type: string geoTag: title: GeoTagging type: object properties: regLocationLat: type: number format: double regLocationLong: type: number format: double cellGlobalId: type: string kycCaptureDateTime: type: string _links: title: HateoasContainer type: object phoneNumber: type: string beneficiaries: type: array items: title: BeneficiariesInfo type: object properties: name: type: string phoneNumber: type: string kycSubType: type: string required: true responses: "200": description: OK content: application/json: schema: title: CustomerKycUpdateResponse type: object properties: statusCode: type: string customerId: type: string statusMessage: type: string substatus: type: string createddate: type: string registrationDate: type: string supportMessage: type: string transactionId: type: string kycType: $ref: '#/components/schemas/za_co_mtn_enums_KycType' sequenceNo: type: string isFullKycResubmit: type: boolean services: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_Services' data: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_RegistrationData' order: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_OrderDetails' geoTag: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_GeoTagging' kycSubType: type: string id: 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 /notification: post: tags: - KycAggregator summary: User Consent Response object description: The users consent information posted here as a callback notification. The callback data is posted back to callback url defined. It accept the callback data and send it as it is. operationId: KycAggregator_post_handleConsentNotification_notification parameters: - name: transactionId in: header required: false schema: type: string requestBody: content: application/json: schema: title: ConsentNotificationRequest type: object properties: statusCode: type: string msisdn: type: string userResponse: type: string customData: type: array items: type: string consented: type: boolean countryCode: type: string transactionId: type: string required: true responses: "201": description: Notification processed "200": description: Success "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: za_co_mtn_models_request_kyc_VerificationDetails_NimcImg: title: NimcImg type: object properties: value: type: integer format: int64 byPass: type: string reason: type: string za_co_mtn_models_response_linked_LinkAccountResponse: title: LinkAccountResponse type: object properties: statusCode: type: string statusMessage: type: string statusDescription: type: string transactionId: type: string sequenceNo: type: string customerId: type: string data: type: string error: title: LinkAccountError 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: string sequenceNo: type: string za_co_mtn_models_response_linked_LinkedNumbersResponse: title: LinkedNumbersResponse type: object properties: statusCode: type: string statusMessage: type: string customerId: type: string transactionId: type: string sequenceNo: type: string data: title: LinkedNumbersData type: object properties: firstName: type: string lastName: type: string gender: type: string idNumber: type: string dateOfBirth: type: string emailAddress: type: string primaryNumbers: type: array items: title: LinkedNumber type: object properties: mobileNumber: type: string mobileNumberAlias: type: string startDate: type: string secondaryNumbers: type: array items: $ref: '#/components/schemas/za_co_mtn_models_linked_LinkedNumber' za_co_mtn_enums_LegalStatus: title: LegalStatus type: object properties: value: type: string za_co_mtn_models_request_kyc_Director: title: Director type: object properties: name: type: string designation: type: string za_co_mtn_models_request_kyc_Address: title: Address type: object properties: addressLine1: type: string addressLine2: type: string stateOrProvince: type: string city: type: string postalCode: type: string za_co_mtn_models_request_kyc_OrganizationIdentification: title: OrganizationIdentification type: object properties: identificationId: type: string identificationType: type: string expiryDate: type: string za_co_mtn_models_request_kyc_Device: title: Device type: object properties: id: type: string reservationID: type: string value: type: string za_co_mtn_models_request_kyc_DisabilityDetails: title: DisabilityDetails type: object properties: isDisabled: type: boolean type: type: string za_co_mtn_models_request_consent_ConsentNotificationRequest: title: ConsentNotificationRequest type: object properties: statusCode: type: string msisdn: type: string userResponse: type: string customData: type: array items: type: string consented: type: boolean countryCode: type: string transactionId: type: string za_co_mtn_models_request_kyc_CustomerAddress: title: CustomerAddress type: object properties: postalCode: type: string city: type: string stateOrProvince: type: string country: type: string addressLine1: type: string addressLine2: type: string addressLine3: type: string za_co_mtn_models_request_kyc_CustomerKYCReq: title: CustomerKYCReq type: object properties: kycType: title: KycType type: object properties: value: type: string isFullKycResubmit: type: boolean registrationDate: type: string services: title: Services type: object properties: moMoFlag: type: boolean dataServicesFlag: type: boolean voiceServicesFlag: type: boolean moMoFlagtype: type: string serviceType: type: string data: title: RegistrationData type: object properties: firstName: type: string lastName: type: string middleName: type: string fullname: type: string motherName: type: string religion: type: string citizenType: type: string VIP: type: boolean resourceType: type: string title: type: string idType: type: string idNumber: type: string idCardNumber: type: string idImage: type: string idExpiryDate: type: string format: date-time idIssuanceDate: type: string isIdNationalDbMatched: type: string isIdValid: type: boolean dateOfBirth: type: string format: date-time gender: type: string currency: type: string nationality: type: string languagePref: type: string maritalStatus: type: string visaExpiryDate: type: string format: date-time simNumber: type: string phoneNumber: type: string alternativePhoneNumber: type: string mobileMoneyNumber: type: string emailAddress: type: string registrationStatus: title: RegistrationStatus type: object properties: description: type: string notificationPref: type: string taxIdNumber: type: string vatNumber: type: string designation: type: string termsAndConditionsAccepted: type: boolean productOfferings: type: array items: title: ProductOfferings type: object properties: code: type: string name: type: string customerIdentification: title: CustomerIdentification type: object properties: idNumber: type: string type: type: string issuerName: type: string expiryDate: type: string givenName: type: string familyName: type: string gender: type: string birthDate: type: string status: type: string subStatus: type: string customFields: title: CustomFields type: object properties: vnin: type: string contactMedium: title: ContactMedium type: object properties: contactNo: type: string emailId: type: string address: title: Address type: object properties: addressLine1: type: string addressLine2: type: string stateOrProvince: type: string city: type: string postalCode: type: string agent: title: Agent type: object properties: id: type: string name: type: string deviceId: type: string contactMedium: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_ContactMedium' dealerDetails: title: DealerDetails type: object properties: id: type: string name: type: string division: type: string contactMedium: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_ContactMedium' geographicLocation: title: GeographicLocation type: object properties: spatialRef: type: string geometry: title: Geometry type: object properties: x: type: string "y": type: string z: type: string document: type: array items: type: object verificationDetails: title: VerificationDetails type: object properties: verificationStatus: type: string simRegImg: title: SimRegImg type: object properties: value: type: integer format: int64 byPass: type: string reason: type: string nimcImg: title: NimcImg type: object properties: value: type: integer format: int64 byPass: type: string reason: type: string occupationalDetails: title: OccupationalDetails type: object properties: occupation: type: string organizationName: type: string socialMediaDetail: type: array items: title: SocialMediaDetail type: object properties: name: type: string link: type: string sim: title: Sim type: object properties: id: type: string reservationID: type: string value: type: string number: type: string resourceCharacteristics: title: ResourceCharacteristics type: object properties: pin1: type: string pin2: type: string puk1: type: string puk2: type: string imsiNumber: type: string kiNumberData: type: string cardProfile: type: string KindValue: type: string msisdn: title: Msisdn type: object properties: id: type: string reservationID: type: string value: type: string productId: type: string device: title: Device type: object properties: id: type: string reservationID: type: string value: type: string businessInfo: title: BusinessInfo type: object properties: username: type: string phoneNumber: type: string businessType: type: string vatNumber: type: string licenseNumber: type: string registrationDocImage: type: string resellerUsername: type: string dateOfIncorporation: type: string shopName: type: string location: type: string region: title: Region type: object properties: description: type: string legalStatus: title: LegalStatus type: object properties: value: type: string director: title: Director type: object properties: name: type: string designation: type: string postalAddress: title: AddressDetails type: object properties: addressType: type: string addressOne: type: string addressTwo: type: string addressThree: type: string street: type: string streetDesc: type: string poBox: type: string city: type: string cityDesc: type: string district: type: string districtDesc: type: string country: type: string countryDesc: type: string countryState: type: string countryLga: type: string countryPostal: type: string residencyStatus: type: string region: type: string regionDescription: type: string email: type: string postbox: type: string agentName: type: string area: type: string digitalAddress: type: string latitude: type: string gpsName: type: string longitude: type: string businessAddress: $ref: '#/components/schemas/za_co_mtn_models_response_kyc_AddressDetails' residentialAddress: $ref: '#/components/schemas/za_co_mtn_models_response_kyc_AddressDetails' nextOfKin: title: NextOfKin type: object properties: firstName: type: string middleName: type: string lastName: type: string phoneNumber: type: string idNumber: type: string idType: type: string residentialAddress: $ref: '#/components/schemas/za_co_mtn_models_response_kyc_AddressDetails' fingerPrint: type: string customerSubscriberType: type: string contractType: type: string vas: type: string momoDeclaration: type: string customerOrigin: type: string momoTerms: type: string momoAcceptTerms: type: string registrationDate: type: string channel: type: string idName: type: string idDescription: type: string idFileType: type: string idVersion: type: string placeOfIdIssue: type: string placeOfBirth: type: string callbackUrl: type: string id: type: string givenName: type: string familyName: type: string birthDate: type: string residencyStatus: type: string stateOrProvince: type: string city: type: string language: type: string isForeigner: type: string foreignerType: type: string visitor: type: string customerType: type: string offlineVerification: type: boolean biometricUpdateType: type: string consentType: type: string businessType: type: string rejected: type: array items: title: KycBeneficiaryData type: object properties: name: type: string registrationStatus: type: string order: title: OrderDetails type: object properties: id: type: string serviceId: type: string itemId: type: string senderIdImage: type: string senderIds: type: array items: type: string geoTag: title: GeoTagging type: object properties: regLocationLat: type: number format: double regLocationLong: type: number format: double cellGlobalId: type: string kycCaptureDateTime: type: string _links: title: HateoasContainer type: object phoneNumber: type: string beneficiaries: type: array items: title: BeneficiariesInfo type: object properties: name: type: string phoneNumber: type: string kycSubType: type: string za_co_mtn_models_response_kyc_CustomerEyeballingResponse: title: CustomerEyeballingResponse type: object properties: statusCode: type: string statusMessage: type: string transactionId: type: string data: type: array items: title: CustomerData type: object properties: "0": type: string "1": type: string "2": type: string "3": type: string "4": type: string "5": type: string "6": type: string "7": type: string id: type: string orderID: type: string createdDate: type: string format: date-time status: type: string substatus: type: string modifiedDate: type: string format: date-time request: title: CustomerRequest type: object properties: type: type: string subType: type: string customerType: type: string resourceType: type: string transactionId: type: string offlineVerification: type: boolean biometricUpdateType: type: string consentType: type: string businessType: type: string registrationDate: type: string format: date-time eformReference: type: string linkingProcessReference: type: string identification: title: Identification type: object properties: additionalidetification: type: array items: type: string id: type: string type: type: string issuer: type: string expiryDate: type: string givenName: type: string familyName: type: string gender: type: string birthDate: type: string format: date-time status: type: string subStatus: type: string customFields: title: CustomerCustomerFields type: object properties: vnin: type: string userId: type: string contactMedium: title: CustomerContactMediums type: object properties: contactNo: type: string emailId: type: string fullName: type: string individual: title: CustomerIndividualRequest type: object properties: id: type: string title: type: string givenName: type: string middleName: type: string familyName: type: string fullName: type: string maritalStatus: type: string mothersName: type: string gender: type: string birthDate: type: string format: date-time nationality: type: string residencyStatus: type: string motherName: type: string stateOfOrigin: type: string lgaOfOrigin: type: string religion: type: string citizenType: type: string vip: type: boolean stateOrProvince: type: string city: type: string occupationalDetails: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_OccupationalDetails' disabilityDetails: title: DisabilityDetails type: object properties: isDisabled: type: boolean type: type: string language: type: string isForeigner: type: boolean foreignerType: type: string visitor: type: boolean contactMedium: title: IndividualContactMedium type: object properties: residenceAddress: title: CustomerAddress type: object properties: postalCode: type: string city: type: string stateOrProvince: type: string country: type: string addressLine1: type: string addressLine2: type: string addressLine3: type: string physicalAddress: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_CustomerAddress' contactNo: type: string email: type: string agent: title: CustomerAgent type: object properties: id: type: string name: type: string deviceId: type: string contactMedium: title: CustomerAgentContactMedium type: object properties: address: title: CustomerAgentAddress type: object properties: addressLine1: type: string addressLine2: type: string stateOrProvince: type: string lga: type: string city: type: string postalCode: type: string contactNo: type: string dealerDetails: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_DealerDetails' geographicLocation: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_GeographicLocation' role: type: array items: type: string document: type: array items: title: CustomerDocument type: object properties: id: type: string type: type: string subType: type: string name: type: string docChannel: type: string href: type: string mimeType: type: string channel: title: Channel type: object properties: name: type: string role: type: string id: type: string referredType: type: string type: type: string resource: title: CustomerResource type: object properties: sim: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_Sim' msisdn: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_Msisdn' starterPack: title: StarterPack type: object properties: id: type: string value: type: string reservationID: type: string device: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_Device' verificationDetails: title: CustomerVerificationDetails type: object properties: verificationStatus: type: string simRegImg: title: SimRegImg type: object properties: value: type: string byPass: type: boolean reason: type: string nimcImg: title: NimcImg type: object properties: value: type: integer format: int32 byPass: type: boolean reason: type: string eyeballing: title: EyeballingReg type: object properties: userName: type: string action: type: string lockedTill: type: string locked: type: boolean fasteyeballing: title: FastEyeballing type: object properties: userName: type: string date: type: string remarks: type: string reason: type: boolean demoData: type: array items: title: DemoData type: object properties: id: type: string title: type: string ninValue: type: string indvValue: type: string match: type: integer format: int32 mnpDetails: type: array items: type: string organization: title: Organization type: object properties: tradingName: type: string noOfEmployees: type: string position: type: string businessSector: type: string businessSubSector: type: string businessAddress: type: string organizationIdentification: title: OrganizationIdentification type: object properties: identificationId: type: string identificationType: type: string expiryDate: type: string eValidator: type: object additionalProperties: type: string additionalDetails: title: CustomerAdditionalDetails type: object properties: fingerPrintPosition: type: string kycHistory: type: array items: title: CustomerKycHistory type: object properties: actionDate: type: string format: date-time statusCode: type: string userName: type: string transactionNumber: type: string x-forwarded-for: type: string user-agent: type: string remarks: type: string reason: type: string orderItemId: type: string publicIdentifier: type: string customer: title: Customer type: object properties: id: type: string demoMatch: type: string productDetails: type: array items: title: ProductDetail type: object properties: status: type: string publicIdentifier: type: string id: type: string customerID: type: string role: type: string control: title: Control type: object properties: productCreated: type: boolean za_co_mtn_models_response_kyc_KycBeneficiaryData: title: KycBeneficiaryData type: object properties: name: type: string registrationStatus: type: string za_co_mtn_models_request_kyc_CustomerIdentification_CustomFields: title: CustomFields type: object properties: vnin: type: string za_co_mtn_models_response_metamorphose_Channel: title: Channel type: object properties: name: type: string role: type: string id: type: string referredType: type: string type: type: string za_co_mtn_models_response_MsisdnInfo: title: MsisdnInfo type: object properties: MSISDN: type: string RegistrationStatus: type: string za_co_mtn_models_request_kyc_SocialMediaDetail: title: SocialMediaDetail type: object properties: name: type: string link: 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 za_co_mtn_models_response_linked_LinkedNumbersData: title: LinkedNumbersData type: object properties: firstName: type: string lastName: type: string gender: type: string idNumber: type: string dateOfBirth: type: string emailAddress: type: string primaryNumbers: type: array items: title: LinkedNumber type: object properties: mobileNumber: type: string mobileNumberAlias: type: string startDate: type: string secondaryNumbers: type: array items: $ref: '#/components/schemas/za_co_mtn_models_linked_LinkedNumber' za_co_mtn_models_request_kyc_CustomerAgent: title: CustomerAgent type: object properties: id: type: string name: type: string deviceId: type: string contactMedium: title: CustomerAgentContactMedium type: object properties: address: title: CustomerAgentAddress type: object properties: addressLine1: type: string addressLine2: type: string stateOrProvince: type: string lga: type: string city: type: string postalCode: type: string contactNo: type: string dealerDetails: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_DealerDetails' geographicLocation: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_GeographicLocation' role: type: array items: type: string za_co_mtn_models_response_kyc_CustomerKYCDetailsResponse: title: CustomerKYCDetailsResponse type: object properties: statusCode: type: string transactionId: type: string statusMessage: type: string supportMessage: type: string customerId: type: string submittedTime: type: string sequenceNo: type: string registrationStatus: type: string preferredLanguage: type: string path: type: string data: title: FetchDetailsDataResponse type: object properties: firstName: type: string lastName: type: string dateOfBirth: type: string idNumber: type: string phoneNumber: type: string momoFlag: type: string msisdn: type: string idExpiryDate: type: string fullName: type: string transactionlogreference: type: string characteristic: type: string primaryContacts: type: array items: title: MsisdnInfo type: object properties: MSISDN: type: string RegistrationStatus: type: string za_co_mtn_models_request_kyc_CustomerResource: title: CustomerResource type: object properties: sim: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_Sim' msisdn: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_Msisdn' starterPack: title: StarterPack type: object properties: id: type: string value: type: string reservationID: type: string device: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_Device' za_co_mtn_models_request_kyc_CustomerVerificationDetails: title: CustomerVerificationDetails type: object properties: verificationStatus: type: string simRegImg: title: SimRegImg type: object properties: value: type: string byPass: type: boolean reason: type: string nimcImg: title: NimcImg type: object properties: value: type: integer format: int32 byPass: type: boolean reason: type: string eyeballing: title: EyeballingReg type: object properties: userName: type: string action: type: string lockedTill: type: string locked: type: boolean fasteyeballing: title: FastEyeballing type: object properties: userName: type: string date: type: string remarks: type: string reason: type: boolean demoData: type: array items: title: DemoData type: object properties: id: type: string title: type: string ninValue: type: string indvValue: type: string match: type: integer format: int32 za_co_mtn_models_request_kyc_OccupationalDetails: title: OccupationalDetails type: object properties: occupation: type: string organizationName: type: string za_co_mtn_models_request_kyc_CustomerCustomerFields: title: CustomerCustomerFields type: object properties: vnin: type: string userId: type: string za_co_mtn_models_request_kyc_Msisdn: title: Msisdn type: object properties: id: type: string reservationID: type: string value: type: string productId: type: string za_co_mtn_enums_RegistrationStatus: title: RegistrationStatus type: object properties: description: type: string za_co_mtn_models_response_kyc_DetailRow: title: DetailRow type: object properties: MSISDN: type: string totalTimesRegistered: type: integer format: int32 za_co_mtn_models_request_kyc_SimRegImg: title: SimRegImg type: object properties: value: type: string byPass: type: boolean reason: type: string za_co_mtn_models_request_kyc_ProductDetail: title: ProductDetail type: object properties: status: type: string publicIdentifier: type: string id: type: string customerID: type: string role: type: string za_co_mtn_models_request_kyc_Identification: title: Identification type: object properties: additionalidetification: type: array items: type: string id: type: string type: type: string issuer: type: string expiryDate: type: string givenName: type: string familyName: type: string gender: type: string birthDate: type: string format: date-time status: type: string subStatus: type: string customFields: title: CustomerCustomerFields type: object properties: vnin: type: string userId: type: string contactMedium: title: CustomerContactMediums type: object properties: contactNo: type: string emailId: type: string fullName: type: string za_co_mtn_models_request_kyc_CustomerAgentAddress: title: CustomerAgentAddress type: object properties: addressLine1: type: string addressLine2: type: string stateOrProvince: type: string lga: type: string city: type: string postalCode: type: string za_co_mtn_models_request_kyc_CustomerAgentContactMedium: title: CustomerAgentContactMedium type: object properties: address: title: CustomerAgentAddress type: object properties: addressLine1: type: string addressLine2: type: string stateOrProvince: type: string lga: type: string city: type: string postalCode: type: string contactNo: type: string za_co_mtn_models_request_kyc_Sim: title: Sim type: object properties: id: type: string reservationID: type: string value: type: string number: type: string resourceCharacteristics: title: ResourceCharacteristics type: object properties: pin1: type: string pin2: type: string puk1: type: string puk2: type: string imsiNumber: type: string kiNumberData: type: string cardProfile: type: string KindValue: type: string za_co_mtn_models_request_kyc_VerificationDetails: title: VerificationDetails type: object properties: verificationStatus: type: string simRegImg: title: SimRegImg type: object properties: value: type: integer format: int64 byPass: type: string reason: type: string nimcImg: title: NimcImg type: object properties: value: type: integer format: int64 byPass: type: string reason: type: string za_co_mtn_models_response_kyc_CustomerKycUpdateResponse: title: CustomerKycUpdateResponse type: object properties: statusCode: type: string customerId: type: string statusMessage: type: string substatus: type: string createddate: type: string registrationDate: type: string supportMessage: type: string transactionId: type: string kycType: $ref: '#/components/schemas/za_co_mtn_enums_KycType' sequenceNo: type: string isFullKycResubmit: type: boolean services: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_Services' data: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_RegistrationData' order: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_OrderDetails' geoTag: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_GeoTagging' kycSubType: type: string id: type: string za_co_mtn_models_request_kyc_ProductOfferings: title: ProductOfferings type: object properties: code: type: string name: type: string za_co_mtn_models_request_kyc_CustomerContactMediums: title: CustomerContactMediums type: object properties: contactNo: type: string emailId: type: string za_co_mtn_models_request_kyc_CustomerRequest: title: CustomerRequest type: object properties: type: type: string subType: type: string customerType: type: string resourceType: type: string transactionId: type: string offlineVerification: type: boolean biometricUpdateType: type: string consentType: type: string businessType: type: string registrationDate: type: string format: date-time eformReference: type: string linkingProcessReference: type: string za_co_mtn_models_response_kyc_Detail: title: Detail type: object properties: code: type: string rows: type: array items: title: DetailRow type: object properties: MSISDN: type: string totalTimesRegistered: type: integer format: int32 za_co_mtn_models_response_kyc_SummaryRow: title: SummaryRow type: object properties: totalUniqueMSISDN: type: integer format: int32 za_co_mtn_models_request_kyc_LinkAccount: title: LinkAccount type: object properties: secondaryNumber: type: string linkReason: type: string secondaryNumberAlias: type: string otp: type: string segment: type: string za_co_mtn_models_request_kyc_Services: title: Services type: object properties: moMoFlag: type: boolean dataServicesFlag: type: boolean voiceServicesFlag: type: boolean moMoFlagtype: type: string serviceType: type: string za_co_mtn_models_request_kyc_DemoData: title: DemoData type: object properties: id: type: string title: type: string ninValue: type: string indvValue: type: string match: type: integer format: int32 za_co_mtn_models_response_kyc_CustomerKycCreateResponse: title: CustomerKycCreateResponse type: object properties: statusCode: type: string customerId: type: string statusMessage: type: string substatus: type: string createddate: type: string registrationDate: type: string supportMessage: type: string transactionId: type: string kycType: $ref: '#/components/schemas/za_co_mtn_enums_KycType' sequenceNo: type: string isFullKycResubmit: type: boolean services: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_Services' data: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_RegistrationData' order: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_OrderDetails' geoTag: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_GeoTagging' kycSubType: type: string id: type: string za_co_mtn_models_request_kyc_GeographicLocation_Geometry: title: Geometry type: object properties: x: type: string "y": type: string z: type: string za_co_mtn_models_request_kyc_Agent: title: Agent type: object properties: id: type: string name: type: string deviceId: type: string contactMedium: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_ContactMedium' dealerDetails: title: DealerDetails type: object properties: id: type: string name: type: string division: type: string contactMedium: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_ContactMedium' geographicLocation: title: GeographicLocation type: object properties: spatialRef: type: string geometry: title: Geometry type: object properties: x: type: string "y": type: string z: type: string za_co_mtn_models_request_kyc_ContactMedium: title: ContactMedium type: object properties: contactNo: type: string emailId: type: string address: title: Address type: object properties: addressLine1: type: string addressLine2: type: string stateOrProvince: type: string city: type: string postalCode: type: string za_co_mtn_models_request_kyc_CustomerIndividualRequest: title: CustomerIndividualRequest type: object properties: id: type: string title: type: string givenName: type: string middleName: type: string familyName: type: string fullName: type: string maritalStatus: type: string mothersName: type: string gender: type: string birthDate: type: string format: date-time nationality: type: string residencyStatus: type: string motherName: type: string stateOfOrigin: type: string lgaOfOrigin: type: string religion: type: string citizenType: type: string vip: type: boolean stateOrProvince: type: string city: type: string occupationalDetails: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_OccupationalDetails' disabilityDetails: title: DisabilityDetails type: object properties: isDisabled: type: boolean type: type: string language: type: string isForeigner: type: boolean foreignerType: type: string visitor: type: boolean contactMedium: title: IndividualContactMedium type: object properties: residenceAddress: title: CustomerAddress type: object properties: postalCode: type: string city: type: string stateOrProvince: type: string country: type: string addressLine1: type: string addressLine2: type: string addressLine3: type: string physicalAddress: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_CustomerAddress' contactNo: type: string email: type: string za_co_mtn_models_request_kyc_EyeballingReg: title: EyeballingReg type: object properties: userName: type: string action: type: string lockedTill: type: string locked: type: boolean za_co_mtn_models_response_kyc_FetchDetailsDataResponse: title: FetchDetailsDataResponse type: object properties: firstName: type: string lastName: type: string dateOfBirth: type: string idNumber: type: string phoneNumber: type: string momoFlag: type: string msisdn: type: string idExpiryDate: type: string fullName: type: string transactionlogreference: type: string characteristic: type: string za_co_mtn_models_request_kyc_KycRequest: title: KycRequest type: object properties: consentType: type: string consentMessage: type: string callbackUrl: type: string targetSystem: type: string callingSystem: type: string alternateClientCallbackUrl: type: string za_co_mtn_models_request_kyc_RegistrationData: title: RegistrationData type: object properties: firstName: type: string lastName: type: string middleName: type: string fullname: type: string motherName: type: string religion: type: string citizenType: type: string VIP: type: boolean resourceType: type: string title: type: string idType: type: string idNumber: type: string idCardNumber: type: string idImage: type: string idExpiryDate: type: string format: date-time idIssuanceDate: type: string isIdNationalDbMatched: type: string isIdValid: type: boolean dateOfBirth: type: string format: date-time gender: type: string currency: type: string nationality: type: string languagePref: type: string maritalStatus: type: string visaExpiryDate: type: string format: date-time simNumber: type: string phoneNumber: type: string alternativePhoneNumber: type: string mobileMoneyNumber: type: string emailAddress: type: string registrationStatus: title: RegistrationStatus type: object properties: description: type: string notificationPref: type: string taxIdNumber: type: string vatNumber: type: string designation: type: string termsAndConditionsAccepted: type: boolean productOfferings: type: array items: title: ProductOfferings type: object properties: code: type: string name: type: string customerIdentification: title: CustomerIdentification type: object properties: idNumber: type: string type: type: string issuerName: type: string expiryDate: type: string givenName: type: string familyName: type: string gender: type: string birthDate: type: string status: type: string subStatus: type: string customFields: title: CustomFields type: object properties: vnin: type: string contactMedium: title: ContactMedium type: object properties: contactNo: type: string emailId: type: string address: title: Address type: object properties: addressLine1: type: string addressLine2: type: string stateOrProvince: type: string city: type: string postalCode: type: string agent: title: Agent type: object properties: id: type: string name: type: string deviceId: type: string contactMedium: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_ContactMedium' dealerDetails: title: DealerDetails type: object properties: id: type: string name: type: string division: type: string contactMedium: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_ContactMedium' geographicLocation: title: GeographicLocation type: object properties: spatialRef: type: string geometry: title: Geometry type: object properties: x: type: string "y": type: string z: type: string document: type: array items: type: object verificationDetails: title: VerificationDetails type: object properties: verificationStatus: type: string simRegImg: title: SimRegImg type: object properties: value: type: integer format: int64 byPass: type: string reason: type: string nimcImg: title: NimcImg type: object properties: value: type: integer format: int64 byPass: type: string reason: type: string occupationalDetails: title: OccupationalDetails type: object properties: occupation: type: string organizationName: type: string socialMediaDetail: type: array items: title: SocialMediaDetail type: object properties: name: type: string link: type: string sim: title: Sim type: object properties: id: type: string reservationID: type: string value: type: string number: type: string resourceCharacteristics: title: ResourceCharacteristics type: object properties: pin1: type: string pin2: type: string puk1: type: string puk2: type: string imsiNumber: type: string kiNumberData: type: string cardProfile: type: string KindValue: type: string msisdn: title: Msisdn type: object properties: id: type: string reservationID: type: string value: type: string productId: type: string device: title: Device type: object properties: id: type: string reservationID: type: string value: type: string businessInfo: title: BusinessInfo type: object properties: username: type: string phoneNumber: type: string businessType: type: string vatNumber: type: string licenseNumber: type: string registrationDocImage: type: string resellerUsername: type: string dateOfIncorporation: type: string shopName: type: string location: type: string region: title: Region type: object properties: description: type: string legalStatus: title: LegalStatus type: object properties: value: type: string director: title: Director type: object properties: name: type: string designation: type: string postalAddress: title: AddressDetails type: object properties: addressType: type: string addressOne: type: string addressTwo: type: string addressThree: type: string street: type: string streetDesc: type: string poBox: type: string city: type: string cityDesc: type: string district: type: string districtDesc: type: string country: type: string countryDesc: type: string countryState: type: string countryLga: type: string countryPostal: type: string residencyStatus: type: string region: type: string regionDescription: type: string email: type: string postbox: type: string agentName: type: string area: type: string digitalAddress: type: string latitude: type: string gpsName: type: string longitude: type: string businessAddress: $ref: '#/components/schemas/za_co_mtn_models_response_kyc_AddressDetails' residentialAddress: $ref: '#/components/schemas/za_co_mtn_models_response_kyc_AddressDetails' nextOfKin: title: NextOfKin type: object properties: firstName: type: string middleName: type: string lastName: type: string phoneNumber: type: string idNumber: type: string idType: type: string residentialAddress: $ref: '#/components/schemas/za_co_mtn_models_response_kyc_AddressDetails' fingerPrint: type: string customerSubscriberType: type: string contractType: type: string vas: type: string momoDeclaration: type: string customerOrigin: type: string momoTerms: type: string momoAcceptTerms: type: string registrationDate: type: string channel: type: string idName: type: string idDescription: type: string idFileType: type: string idVersion: type: string placeOfIdIssue: type: string placeOfBirth: type: string callbackUrl: type: string id: type: string givenName: type: string familyName: type: string birthDate: type: string residencyStatus: type: string stateOrProvince: type: string city: type: string language: type: string isForeigner: type: string foreignerType: type: string visitor: type: string customerType: type: string offlineVerification: type: boolean biometricUpdateType: type: string consentType: type: string businessType: type: string rejected: type: array items: title: KycBeneficiaryData type: object properties: name: type: string registrationStatus: type: string za_co_mtn_models_request_kyc_CustomerDocument: title: CustomerDocument type: object properties: id: type: string type: type: string subType: type: string name: type: string docChannel: type: string href: type: string mimeType: type: string za_co_mtn_models_response_nibss_NibssGetBVNResponse: title: NibssGetBVNResponse 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 email: type: string gender: type: string phoneNumber2: type: string levelOfAccount: type: string lgaOfOrigin: type: string lgaOfResidence: type: string maritalStatus: type: string NIN: type: string nameOnCard: type: string nationality: type: string residentialAddress: type: string stateOfOrigin: type: string stateOfResidence: type: string title: type: string watchListed: type: string base64Image: type: string za_co_mtn_models_request_kyc_CustomerKycHistory: title: CustomerKycHistory type: object properties: actionDate: type: string format: date-time statusCode: type: string userName: type: string transactionNumber: type: string x-forwarded-for: type: string user-agent: type: string remarks: type: string reason: type: string orderItemId: type: string publicIdentifier: type: string za_co_mtn_models_response_linked_LinkdAccount: title: LinkdAccount type: object za_co_mtn_models_linked_LinkedNumber: title: LinkedNumber type: object properties: mobileNumber: type: string mobileNumberAlias: type: string startDate: type: string za_co_mtn_models_request_kyc_NimcImg: title: NimcImg type: object properties: value: type: integer format: int32 byPass: type: boolean reason: type: string za_co_mtn_models_request_kyc_BusinessInfo: title: BusinessInfo type: object properties: username: type: string phoneNumber: type: string businessType: type: string vatNumber: type: string licenseNumber: type: string registrationDocImage: type: string resellerUsername: type: string dateOfIncorporation: type: string shopName: type: string location: type: string region: title: Region type: object properties: description: type: string legalStatus: title: LegalStatus type: object properties: value: type: string director: title: Director type: object properties: name: type: string designation: type: string za_co_mtn_models_response_kyc_AssociatedNumbersResponse: title: AssociatedNumbersResponse type: object properties: statusCode: type: string statusMessage: type: string transactionId: type: string responseCode: type: string supportMessage: type: string sequenceNo: type: string timestamp: type: string data: title: KycAssociatedNumbersData type: object properties: summary: title: Summary type: object properties: code: type: integer format: int32 rows: type: array items: title: SummaryRow type: object properties: totalUniqueMSISDN: type: integer format: int32 detail: title: Detail type: object properties: code: type: string rows: type: array items: title: DetailRow type: object properties: MSISDN: type: string totalTimesRegistered: type: integer format: int32 za_co_mtn_models_request_kyc_FastEyeballing: title: FastEyeballing type: object properties: userName: type: string date: type: string remarks: type: string reason: type: boolean za_co_mtn_models_request_kyc_BeneficiariesInfo: title: BeneficiariesInfo type: object properties: name: type: string phoneNumber: type: string za_co_mtn_models_request_kyc_GeographicLocation: title: GeographicLocation type: object properties: spatialRef: type: string geometry: title: Geometry type: object properties: x: type: string "y": type: string z: type: string za_co_mtn_models_request_kyc_CustomerIdentification: title: CustomerIdentification type: object properties: idNumber: type: string type: type: string issuerName: type: string expiryDate: type: string givenName: type: string familyName: type: string gender: type: string birthDate: type: string status: type: string subStatus: type: string customFields: title: CustomFields type: object properties: vnin: type: string contactMedium: title: ContactMedium type: object properties: contactNo: type: string emailId: type: string address: title: Address type: object properties: addressLine1: type: string addressLine2: type: string stateOrProvince: type: string city: type: string postalCode: type: string za_co_mtn_models_response_kyc_AddressDetails: title: AddressDetails type: object properties: addressType: type: string addressOne: type: string addressTwo: type: string addressThree: type: string street: type: string streetDesc: type: string poBox: type: string city: type: string cityDesc: type: string district: type: string districtDesc: type: string country: type: string countryDesc: type: string countryState: type: string countryLga: type: string countryPostal: type: string residencyStatus: type: string region: type: string regionDescription: type: string email: type: string postbox: type: string agentName: type: string area: type: string digitalAddress: type: string latitude: type: string gpsName: type: string longitude: type: string za_co_mtn_models_response_kyc_CustomerData: title: CustomerData type: object properties: "0": type: string "1": type: string "2": type: string "3": type: string "4": type: string "5": type: string "6": type: string "7": type: string id: type: string orderID: type: string createdDate: type: string format: date-time status: type: string substatus: type: string modifiedDate: type: string format: date-time request: title: CustomerRequest type: object properties: type: type: string subType: type: string customerType: type: string resourceType: type: string transactionId: type: string offlineVerification: type: boolean biometricUpdateType: type: string consentType: type: string businessType: type: string registrationDate: type: string format: date-time eformReference: type: string linkingProcessReference: type: string identification: title: Identification type: object properties: additionalidetification: type: array items: type: string id: type: string type: type: string issuer: type: string expiryDate: type: string givenName: type: string familyName: type: string gender: type: string birthDate: type: string format: date-time status: type: string subStatus: type: string customFields: title: CustomerCustomerFields type: object properties: vnin: type: string userId: type: string contactMedium: title: CustomerContactMediums type: object properties: contactNo: type: string emailId: type: string fullName: type: string individual: title: CustomerIndividualRequest type: object properties: id: type: string title: type: string givenName: type: string middleName: type: string familyName: type: string fullName: type: string maritalStatus: type: string mothersName: type: string gender: type: string birthDate: type: string format: date-time nationality: type: string residencyStatus: type: string motherName: type: string stateOfOrigin: type: string lgaOfOrigin: type: string religion: type: string citizenType: type: string vip: type: boolean stateOrProvince: type: string city: type: string occupationalDetails: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_OccupationalDetails' disabilityDetails: title: DisabilityDetails type: object properties: isDisabled: type: boolean type: type: string language: type: string isForeigner: type: boolean foreignerType: type: string visitor: type: boolean contactMedium: title: IndividualContactMedium type: object properties: residenceAddress: title: CustomerAddress type: object properties: postalCode: type: string city: type: string stateOrProvince: type: string country: type: string addressLine1: type: string addressLine2: type: string addressLine3: type: string physicalAddress: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_CustomerAddress' contactNo: type: string email: type: string agent: title: CustomerAgent type: object properties: id: type: string name: type: string deviceId: type: string contactMedium: title: CustomerAgentContactMedium type: object properties: address: title: CustomerAgentAddress type: object properties: addressLine1: type: string addressLine2: type: string stateOrProvince: type: string lga: type: string city: type: string postalCode: type: string contactNo: type: string dealerDetails: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_DealerDetails' geographicLocation: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_GeographicLocation' role: type: array items: type: string document: type: array items: title: CustomerDocument type: object properties: id: type: string type: type: string subType: type: string name: type: string docChannel: type: string href: type: string mimeType: type: string channel: title: Channel type: object properties: name: type: string role: type: string id: type: string referredType: type: string type: type: string resource: title: CustomerResource type: object properties: sim: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_Sim' msisdn: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_Msisdn' starterPack: title: StarterPack type: object properties: id: type: string value: type: string reservationID: type: string device: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_Device' verificationDetails: title: CustomerVerificationDetails type: object properties: verificationStatus: type: string simRegImg: title: SimRegImg type: object properties: value: type: string byPass: type: boolean reason: type: string nimcImg: title: NimcImg type: object properties: value: type: integer format: int32 byPass: type: boolean reason: type: string eyeballing: title: EyeballingReg type: object properties: userName: type: string action: type: string lockedTill: type: string locked: type: boolean fasteyeballing: title: FastEyeballing type: object properties: userName: type: string date: type: string remarks: type: string reason: type: boolean demoData: type: array items: title: DemoData type: object properties: id: type: string title: type: string ninValue: type: string indvValue: type: string match: type: integer format: int32 mnpDetails: type: array items: type: string organization: title: Organization type: object properties: tradingName: type: string noOfEmployees: type: string position: type: string businessSector: type: string businessSubSector: type: string businessAddress: type: string organizationIdentification: title: OrganizationIdentification type: object properties: identificationId: type: string identificationType: type: string expiryDate: type: string eValidator: type: object additionalProperties: type: string additionalDetails: title: CustomerAdditionalDetails type: object properties: fingerPrintPosition: type: string kycHistory: type: array items: title: CustomerKycHistory type: object properties: actionDate: type: string format: date-time statusCode: type: string userName: type: string transactionNumber: type: string x-forwarded-for: type: string user-agent: type: string remarks: type: string reason: type: string orderItemId: type: string publicIdentifier: type: string customer: title: Customer type: object properties: id: type: string demoMatch: type: string productDetails: type: array items: title: ProductDetail type: object properties: status: type: string publicIdentifier: type: string id: type: string customerID: type: string role: type: string control: title: Control type: object properties: productCreated: type: boolean za_co_mtn_models_request_kyc_Customer: title: Customer type: object properties: id: type: string za_co_mtn_models_response_linked_LinkAccountError: title: LinkAccountError 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: string sequenceNo: type: string za_co_mtn_models_request_kyc_IndividualContactMedium: title: IndividualContactMedium type: object properties: residenceAddress: title: CustomerAddress type: object properties: postalCode: type: string city: type: string stateOrProvince: type: string country: type: string addressLine1: type: string addressLine2: type: string addressLine3: type: string physicalAddress: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_CustomerAddress' contactNo: type: string email: type: string za_co_mtn_models_response_APIResponse: title: APIResponse type: object za_co_mtn_enums_Region: title: Region type: object properties: description: type: string za_co_mtn_models_request_kyc_DealerDetails: title: DealerDetails type: object properties: id: type: string name: type: string division: type: string contactMedium: $ref: '#/components/schemas/za_co_mtn_models_request_kyc_ContactMedium' za_co_mtn_models_response_kyc_KycAssociatedNumbersData: title: KycAssociatedNumbersData type: object properties: summary: title: Summary type: object properties: code: type: integer format: int32 rows: type: array items: title: SummaryRow type: object properties: totalUniqueMSISDN: type: integer format: int32 detail: title: Detail type: object properties: code: type: string rows: type: array items: title: DetailRow type: object properties: MSISDN: type: string totalTimesRegistered: type: integer format: int32 za_co_mtn_models_request_kyc_Organization: title: Organization type: object properties: tradingName: type: string noOfEmployees: type: string position: type: string businessSector: type: string businessSubSector: type: string businessAddress: type: string organizationIdentification: title: OrganizationIdentification type: object properties: identificationId: type: string identificationType: type: string expiryDate: type: string za_co_mtn_models_response_HateoasContainer: title: HateoasContainer type: object za_co_mtn_models_request_kyc_ResourceCharacteristics: title: ResourceCharacteristics type: object properties: pin1: type: string pin2: type: string puk1: type: string puk2: type: string imsiNumber: type: string kiNumberData: type: string cardProfile: type: string KindValue: type: string za_co_mtn_models_request_kyc_CustomerAdditionalDetails: title: CustomerAdditionalDetails type: object properties: fingerPrintPosition: type: string za_co_mtn_models_request_kyc_Control: title: Control type: object properties: productCreated: type: boolean za_co_mtn_models_request_kyc_NextOfKin: title: NextOfKin type: object properties: firstName: type: string middleName: type: string lastName: type: string phoneNumber: type: string idNumber: type: string idType: type: string residentialAddress: $ref: '#/components/schemas/za_co_mtn_models_response_kyc_AddressDetails' za_co_mtn_models_response_kyc_Summary: title: Summary type: object properties: code: type: integer format: int32 rows: type: array items: title: SummaryRow type: object properties: totalUniqueMSISDN: type: integer format: int32 za_co_mtn_models_request_kyc_OrderDetails: title: OrderDetails type: object properties: id: type: string serviceId: type: string itemId: type: string senderIdImage: type: string senderIds: type: array items: type: string za_co_mtn_models_request_kyc_GeoTagging: title: GeoTagging type: object properties: regLocationLat: type: number format: double regLocationLong: type: number format: double cellGlobalId: type: string kycCaptureDateTime: type: string za_co_mtn_models_request_kyc_StarterPack: title: StarterPack type: object properties: id: type: string value: type: string reservationID: type: string za_co_mtn_models_request_kyc_VerificationDetails_SimRegImg: title: SimRegImg type: object properties: value: type: integer format: int64 byPass: type: string reason: type: string za_co_mtn_enums_KycType: title: KycType type: object properties: value: 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