swagger: '2.0' info: title: Usage Management API description: |- API to retrieve usage history, OOB usage charge and recharge history details for a particular subscriber MSISDN ### ChangeLog: 02-Dec-21 - Added more fields in the loans history endpoint ### ChangeLog: 31-Jan-22 - Added agentRecord details on the GET /transaction/{id} endpoint. This is to return agent transaction records ### ChangeLog: 17-Oct-22 - Added agentRecord details on the GET /transaction/{id} endpoint. This is to return agent transaction records version: 1.0.5 host: api.mtn.com basePath: /usageManagement/v1/ schemes: - https securityDefinitions: OAuth2: type: oauth2 flow: application tokenUrl: "https://api.mtn.com/v1/oauth/access_token/accesstoken?grant_type=client_credentials" security: - OAuth2: [] consumes: - application/json;charset=utf-8 produces: - application/json;charset=utf-8 tags: - name: usage - name: recharge - name: banktech paths: /usage/{id}: get: operationId: retrieves usage history for a subscriber summary: Retrieves usage history for a subscriber's MSISDN description: "This operation retrieves all the call details record for a subscriber like SMS, Voice and Data usage history." tags: - usage parameters: - name: "transactionId" in: header required: true description: 'Client generated Id to include for tracing requests.' type: string x-example: '6f0bece6-7df3-4da4-af02-5e7f16e5e6fc' - name: "id" required: true type: string in: path description: Mobile number, this number reflects to Billing Number in CDR. Billing Number is the service number that pay this CDR. x-example: '250788123456' - name: "usageType" type: string in: query required: true enum: - VOI - SMS - DAT - VAS - ALL - CustomerDetails - OFFERS default: ALL description: "Type of usage. Valid values are 'VOI' for voice,'SMS' for sms, 'DAT' for data and 'ALL' for all type of usages, 'CustomerDetails' for all customer details" - name: targetSystem in: header type: string description: The name of the backend system required: false x-example: DAAS - name: "startTime" required: false type: string in: query description: Query filter based on the start time selected to fetch the CDR. x-example: '20200608000000' - name: "endTime" required: false type: string in: query description: Query filter based on the end time selected to fetch the CDR. x-example: '20200610235959' - name: "countryCode" type: string in: header required: false description: Will be used internally by application - name: attributes required: false type: string in: query - name: pageNumber required: false type: number in: query - name: pageSize required: false type: number in: query - name: channelId required: false type: string description: "Third parties unique identifier. Can also be called channelId" in: query x-example: 'chatbot' - name: "numberOfDays" type: number in: query required: false enum: - 3 - 7 - 10 - 15 responses: '200': description: Success schema: $ref: '#/definitions/ResponseQueryUsage' '400': description: Bad Request schema: $ref: '#/definitions/Error' '401': description: Unauthorized schema: $ref: '#/definitions/Error' '403': description: Forbidden schema: $ref: '#/definitions/Error' '404': description: Not Found schema: $ref: '#/definitions/Error' '405': description: Method Not allowed schema: $ref: '#/definitions/Error' '409': description: Conflict schema: $ref: '#/definitions/Error' '500': description: Internal Server Error schema: $ref: '#/definitions/Error' /caag/{id}: get: operationId: retrieves call at a glance for a subscriber summary: Retrieves call at a glance for a subscriber's MSISDN description: "This operation retrieves all the call details record for a subscriber like SMS, Voice and Data usage history." tags: - usage parameters: - name: "id" required: true type: string in: path description: Mobile number, this number reflects to Billing Number in CDR. Billing Number is the service number that pay this CDR. x-example: '250788123456' - name: "startTime" required: false type: string in: query description: Query filter based on the start time selected to fetch the CDR. x-example: '20200608000000' - name: "endTime" required: false type: string in: query description: Query filter based on the end time selected to fetch the CDR. x-example: '20200610235959' - name: "limit" type: integer in: header required: false - name: "pageNo" type: integer in: header required: false - name: "pageSize" type: integer in: header required: false description: Will be used internally by application responses: '200': description: Success schema: $ref: '#/definitions/CAAGResponse' '400': description: Bad Request schema: $ref: '#/definitions/Error' '401': description: Unauthorized schema: $ref: '#/definitions/Error' '403': description: Forbidden schema: $ref: '#/definitions/Error' '404': description: Not Found schema: $ref: '#/definitions/Error' '405': description: Method Not allowed schema: $ref: '#/definitions/Error' '409': description: Conflict schema: $ref: '#/definitions/Error' '500': description: Internal Server Error schema: $ref: '#/definitions/Error' /usageCharge/{id}: get: operationId: retrieve Out of bundle usage charge history for a subscriber summary: Retrieves Out of bundle usage charge for a Subscriber's MSISDN description: "This operation retrieves all the out of bundle usage charges applied to a subscriber." tags: - usage parameters: - name: "transactionId" in: header required: true description: 'Client generated Id to include for tracing requests.' type: string x-example: '6f0bece6-7df3-4da4-af02-5e7f16e5e6fc' - name: "id" required: true type: string in: path description: Mobile number, this number reflects to Billing Number in CDR. Billing Number is the service number that pay this CDR. x-example: '250788123456' - name: "countryCode" type: string in: header required: false description: Will be used internally by application - name: usageType type: string in: query required: true enum: - VOI - SMS - DAT - ALL default: ALL responses: '200': description: Success schema: $ref: '#/definitions/ResponseQueryUsageCharge' '400': description: Bad Request schema: $ref: '#/definitions/Error' '401': description: Unauthorized schema: $ref: '#/definitions/Error' '403': description: Forbidden schema: $ref: '#/definitions/Error' '404': description: Not Found schema: $ref: '#/definitions/Error' '405': description: Method Not allowed schema: $ref: '#/definitions/Error' '409': description: Conflict schema: $ref: '#/definitions/Error' '500': description: Internal Server Error schema: $ref: '#/definitions/Error' /usage/{customerId}/history: get: tags: - usage summary: Retrieves customer's loan related transaction history description: Retrieves data for a specific MSISDN. operationId: queryCustomerUsageHistoryUsingGET produces: - application/json parameters: - name: customerId in: path description: the customer msisdn required: true type: string - name: transactionId in: header description: Transaction Id to identify the request type: string - name: x-authorization in: header description: The partner account identifier type: string - name: startDate in: query description: The start date to retrieve records. Format yyyyMMdd eg. 20210302 type: string - name: endDate in: query description: The end date to retrieve records. Format yyyyMMdd eg. 20210302 type: string - name: momoPartnerId in: query description: Momo partner Identifier eg. 2600110005124 type: string responses: "200": description: Success schema: $ref: '#/definitions/DataFetchResponse' "400": description: Bad Request schema: $ref: '#/definitions/ErrorResponse' "401": description: Unauthorized schema: $ref: '#/definitions/ErrorResponse' "403": description: Forbidden schema: $ref: '#/definitions/ErrorResponse' "404": description: Not Found schema: $ref: '#/definitions/ErrorResponse' "405": description: Method No Allowed schema: $ref: '#/definitions/ErrorResponse' "406": description: Not acceptable schema: $ref: '#/definitions/ErrorResponse' "415": description: Unsopported media Type schema: $ref: '#/definitions/ErrorResponse' "500": description: Internal Server Error schema: $ref: '#/definitions/ErrorResponse' deprecated: false /usage/{customerId}/flags: post: tags: - usage summary: Turns Marketing and Datasharing flags ON/OFF. description: Turns Marketing and Datasharing flags ON/OFF. operationId: queryCustomerDataUsingPOST consumes: - application/json produces: - application/json parameters: - name: customerId in: path description: the customer msisdn required: true type: string - name: x-authorization in: header description: The partner account identifier required: true type: string - in: body name: customerInformation description: Operation Name Enum - MARKETING_ON, DATA_SHARING_ON, MARKETING_OFF required: true schema: $ref: '#/definitions/CustomerData' responses: "200": description: Success schema: $ref: '#/definitions/SetFlagResponse' "400": description: Bad Request schema: $ref: '#/definitions/ErrorResponse' "401": description: Unauthorized schema: $ref: '#/definitions/ErrorResponse' "403": description: Forbidden schema: $ref: '#/definitions/ErrorResponse' "404": description: Not Found schema: $ref: '#/definitions/ErrorResponse' "405": description: Method No Allowed schema: $ref: '#/definitions/ErrorResponse' "406": description: Not acceptable schema: $ref: '#/definitions/ErrorResponse' "415": description: Unsopported media Type schema: $ref: '#/definitions/ErrorResponse' "500": description: Internal Server Error schema: $ref: '#/definitions/ErrorResponse' deprecated: false /recharge/{id}: get: operationId: retrieve recharge history details summary: Retrieves recharge history details for a Subscriber's MSISDN description: "This operation retrieves all the recharge hostory of a subscriber." tags: - recharge parameters: - name: "id" required: true type: string in: path description: Mobile number, this number reflects to Billing Number in CDR. Billing Number is the service number that pay this CDR. x-example: '250788123456' - name: "transactionId" in: header required: false description: 'Client generated Id to include for tracing requests.' type: string x-example: '6f0bece6-7df3-4da4-af02-5e7f16e5e6fc' - name: startTime in: query type: string description: Query filter based on the start time selected to fetch the CDR. x-example: '20200608000000' - name: endTime in: query type: string description: Query filter based on the end time selected to fetch the CDR. x-example: '20200610235959' - name: pageNo in: query description: Current Page type: integer default: 1 - name: limit in: query description: "Limit the list of results returned by an API. Optional, If its not specified we should return all the values." type: integer default: 50 responses: '200': description: Success schema: $ref: '#/definitions/ResponseQueryRechargeHistory' '400': description: Bad Request schema: $ref: '#/definitions/Error' '401': description: Unauthorized schema: $ref: '#/definitions/Error' '403': description: Forbidden schema: $ref: '#/definitions/Error' '404': description: Not Found schema: $ref: '#/definitions/Error' '405': description: Method Not allowed schema: $ref: '#/definitions/Error' '409': description: Conflict schema: $ref: '#/definitions/Error' '500': description: Internal Server Error schema: $ref: '#/definitions/Error' /transaction/{id}: get: summary: Retrieves usage history for a subscriber's MSISDN description: "This operation retrieves all the call details record for a subscriber like SMS, Voice and Data usage history." tags: - transaction parameters: - name: "id" required: true type: string in: path description: Transaction Id or Mobile number(The format must be E.123). x-example: '250788123456' - name: "idType" required: true type: string in: query description: The type of Id to filter with. x-example: 'MSISDN' enum: - MSISDN - TRANSACTION_ID - HASHED_MSISDN - name: "subId" type: string in: query description: If the idType is set to TRANSACTION_ID, the subId will be set to the account MSISDN. - name: startTime in: query type: string description: Query filter based on the start time selected to fetch the data. x-example: '20200608000000' - name: endTime in: query type: string description: Query filter based on the end time selected to fetch the data. x-example: '20200610235959' - name: pageNo in: query description: Current Page type: integer default: 1 - name: limit in: query description: Limit the list of results returned by an API. Optional, If its not specified or if specified amount is too big, we should return 50 rows type: integer default: 50 - name: offset in: query description: number of first row to skip before returning maxRowsPerPage. e.g 100, 1000 type: integer default: 50 - name: order in: query description: Ascending ot Descending Order for the list of results returned by an API. type: string default: desc enum: - desc - asc - name: queryType in: query type: string description: This indicates the type of transactions being queried enum: [AGENT_TRANSACTIONS] - name: sort in: query description: The field to sort the order by. type: string default: date responses: '200': description: Success schema: type: object properties: resultCode: example: "200" type: string description: Result code. Example- '0000' resultDescription: example: "Success" type: string description: Result message. Example- 'Successfully processed' transactionId: example: "6f0bece6-7df3-4da4-af02-5e7f16e5e6fc" type: string description: Transaction id returned by the provider system. sequenceNo: type: string description: "A unique identifier for tracking all requests" example: '123888393982' data: type: array items: type: object description: "" properties: uid: example: "101114652149351570" type: string description: unique id amount: example: 100.00 type: integer description: "" account: example: "+2347030976868" type: string description: "" date: example: "2016-06-06T11:09:39Z" type: string description: "" bankId: example: 9 type: string description: "" bankName: example: "FBN" type: string description: "" externalCustomerId: example: "+2349001231231" type: string description: "" externalTransactionId: example: "internal-101114652149351570" type: string description: "" failureType: example: "PRODUCT_NOT_FOUND" type: string description: "" merchantName: example: null type: string description: "" paymentMethodId: example: "202XXXX627" type: string description: "" productName: example: null type: string description: "" status: example: successful type: string description: "Status value is an enum of pending, pproved and rejected" enum: - successful - reverted - failed - progress - chargedback terminalShortCode: example: null type: string description: "" channel: example: "USSD" type: string description: "" agentRecord: type: object description: "Agent Transactions" properties: commissionCashIn1m: type: number example: 0.0 commissionCashOut1m: type: number example: 0.0 voucherValue1m: type: number example: 0.0 cashInLast1m: type: number example: 0.0 commissioningVoucher1m: type: number example: 0.0 voucherVolume1m: type: number example: 0.0 voucherPeers1m: type: number example: 0.0 cashOutLast1m: type: string averageBalance1m: type: number example: 0.0 cashOutVolume1m: type: number example: 0.0 cashInVolume1m: type: number example: 0.0 commission1m: type: number example: 0.0 cashOutPeers1m: type: number example: 0.0 voucherLast1m: type: string cashOutValue1m: type: number example: 0.0 activatedAt: type: string format: date cashInValue1m: type: number example: 0.0 accountBalance1m: type: number example: 0.0 cashInPeers1m: type: number example: 0.0 revenue1m: type: number example: 0.0 accountNumber: type: string example: '0999889888988' accountBalance3m: type: number example: 0.0 averageBalance3m: type: number example: 0. commission3m: type: number example: 0.0 voucherVolume3m: type: number example: 0.0 voucherValue3m: type: number example: 0.0 voucherPeers3m: type: number example: 0.0 voucherLast3m: type: string example: "NULL" commissioningVoucher3m: type: string example: 0.0 cashInVolume3m: type: string example: 0.0 cashInValue3m: type: number example: 0.0 commissionCashIn3m: type: number example: 0.0 cashInPeers3m: type: number example: 0.0 cashInLast3m: type: string example: 'NULL' cashOutValue3m: type: number example: 0.0 cashOutVolume3m: type: number example: 0.0 commissionCashOut3m: type: number example: 0.0 cashOutPeers3m: type: number example: 0.0 cashOutLast3m: type: string example: 'NULL' revenue3m: type: number example: 0.0 accountBalance6m: type: number example: 0.0 averageBalance6m: type: number example: 0.0 commission6m: type: number example: 0.0 voucherVolume6m: type: number example: 0.0 voucherValue6m: type: number example: 0.0 voucherPeers6m: type: number example: 0.0 voucherLast6m: type: string example: 'NULL' commissioningVoucher6m: type: number example: 0.0 cashInVolume6m: type: number example: 0.0 cashInValue6m: type: number example: 0.0 commissionCashIn6m: type: number example: 0.0 cashInPeers6m: type: number example: 0.0 cashInLast6m: type: string example: 'NULL' cashOutValue6m: type: number example: 0.0 cashOutVolume6m: type: number example: 0.0 commissionCashOut6m: type: number example: 0.0 cashOutPeers6m: type: number example: 0.0 cashOutLast6m: type: string example: 'NULL' revenue6m: type: number example: 0.0 '400': description: Bad Request schema: $ref: '#/definitions/Error' '401': description: Unauthorized schema: $ref: '#/definitions/Error' '403': description: Forbidden schema: $ref: '#/definitions/Error' '404': description: Not Found schema: $ref: '#/definitions/Error' '405': description: Method Not allowed schema: $ref: '#/definitions/Error' '409': description: Conflict schema: $ref: '#/definitions/Error' '500': description: Internal Server Error schema: $ref: '#/definitions/Error' /customer/loanhistory: get: tags: - banktech summary: Retrieves customer's loan history. This is dedicated to banktech description: Retrieves loan history for a specific MSISDN. operationId: queryLoanHistoryUsingGET produces: - application/json parameters: - name: customerIdHash in: query description: the customer msisdn required: true type: string - name: transactionId in: header description: Transaction Id to identify the request type: string - name: x-country-code in: header description: This is the country code for the target opco required: true type: string - name: operationName type: string in: query - name: startDate in: query description: The start date to retrieve records. Format yyyy-MM-dd eg. 2021-03-02 required: true type: string - name: endDate in: query description: The end date to retrieve records. Format yyyy-MM-dd eg. 2021-03-02 required: true type: string - name: partnerId in: query description: Momo partner Identifier eg. 2600110005124 type: string - name: providerId in: query description: Id of the backend expected to fulfil the service type: string responses: "200": description: Success schema: $ref: '#/definitions/BankTechLoanHistoryResponse' "400": description: Bad Request schema: $ref: '#/definitions/ErrorResponse' "401": description: Unauthorized schema: $ref: '#/definitions/ErrorResponse' "403": description: Forbidden schema: $ref: '#/definitions/ErrorResponse' "404": description: Not Found schema: $ref: '#/definitions/ErrorResponse' "405": description: Method No Allowed schema: $ref: '#/definitions/ErrorResponse' "406": description: Not acceptable schema: $ref: '#/definitions/ErrorResponse' "415": description: Unsopported media Type schema: $ref: '#/definitions/ErrorResponse' "500": description: Internal Server Error schema: $ref: '#/definitions/ErrorResponse' deprecated: false definitions: BankTechLoanHistoryResponse: type: object properties: statusCode: type: string example: "0000" description: The canonical statusMessage: type: string example: OK transactionId: type: string example: "174478014184946374" customerId: type: string example: "233549004250" description: The customer msisdn sequenceNo: type: string description: "A unique identifier for tracking all requests" example: '123888393982' data: type: object properties: account_status: description: activity status of account at any point in time (Active|Dormant|Inactive|Closed|WOF) maxLength: 20 type: string activation_date: description: date of first drawdown on OD format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer atc_loans_amt_tot: description: Total loan amount type: integer atc_loans_first_date: description: First loan date format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer atc_loans_last_date: description: Last loan date format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer atc_loans_last_overdue: description: Last time loan was overdue type: integer atc_loans_max_term: description: Maximum loan term type: integer atc_loans_overdue: description: Number of loans overdue type: integer atc_loans_qty_1m: description: Number of Loans (1M) type: integer atc_loans_qty_3m: description: Number of Loans (3M) type: integer atc_loans_qty_6m: description: Number of Loans (6M) type: integer atc_loans_tot_term: description: Total loan term type: integer batch_id: description: 'EVA internal column ' type: integer behavioural_category: description: behavioural scorecard category maxLength: 20 type: string behavioural_score: description: behavioural score type: integer block_code_1: description: legal status of account at any point in time (Fraud|Admin|Insolvency|Sequestration|Deceased) maxLength: 20 type: string block_code_1_date: description: date block_code_1 triggered format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer block_code_2: description: legal status of account at any point in time (Fraud|Admin|Insolvency|Sequestration|Deceased) maxLength: 20 type: string block_code_2_date: description: date block_code_2 triggered format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer create_dt: description: Data the current data was created in BIB format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer credit_limit: description: Current MoMo Advance Credit Limit type: integer customer_type: description: 'new or existing ' maxLength: 20 type: string date_key: description: '' format: yyyyMMdd type: integer date_opened: description: First Drawdown Date format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer dw_cpart: description: 'EVA Enrich column ' type: integer dw_part: description: 'EVA Enrich column ' type: integer end_of_day_balance: description: momo end of day balance (1 day lag) type: integer ewp_account_holder_type_cd: description: 'Momo Account holder type ' maxLength: 50 type: string gsm_active_days_qty_1m: description: Number of activity days (1M) type: integer gsm_active_days_qty_3m: description: Number of activity days (3M) type: integer gsm_active_days_qty_6m: description: Number of activity days (6M) type: integer gsm_avg_bund_size_1m: description: Average bundle size purchased (1M) type: integer gsm_avg_bund_size_3m: description: Average bundle size purchased (3M) type: integer gsm_avg_bund_size_6m: description: Average bundle size purchased (6M) type: integer gsm_avg_topup_amt_1m: description: Average Top up amount (1M) type: integer gsm_avg_topup_amt_3m: description: Average Top up amount (3M) type: number gsm_avg_topup_amt_6m: description: Average Top up amount (6M) type: number gsm_dab_qty_1m: description: Days Airtime Below XX (1M) based on UMD type: integer gsm_dab_qty_3m: description: Days Airtime Below XX (3M) based on UMD type: integer gsm_dab_qty_6m: description: Days Airtime Below XX (6M) based on UMD type: integer gsm_dat_vol_amt_1m: description: Data usage in MB (1M) type: number gsm_dat_vol_amt_3m: description: Data usage in MB (3M) type: number gsm_dat_vol_amt_6m: description: Data usage in MB (6M) type: number gsm_days_bund_less_2mb_1m: description: Days bundle balance less then 2MB (1M) type: integer gsm_days_bund_less_2mb_3m: description: Days bundle balance less then 2MB (3M) type: integer gsm_days_bund_less_2mb_6m: description: Days bundle balance less then 2MB (6M) type: integer gsm_device_make: description: Make of current device maxLength: 50 type: string gsm_imei_nr: description: Last known IMEI - this will not be populated due to masking personal information type: number gsm_imei_qty_1m: description: The number of unique imei that was used by the MSISDN in the last measured month type: number gsm_imsi_nr: description: Last known IMSI - this will not be populated due to masking personal information type: number gsm_imsi_qty_1m: description: The number of unique imsi that was used by the MSISDN in the last measured month type: number gsm_in_calls_qty_1m: description: Number of inbound calls (1M) type: integer gsm_in_calls_qty_3m: description: Number of inbound calls (3M) type: integer gsm_in_calls_qty_6m: description: Number of inbound calls (6M) type: integer gsm_la_days_qty: description: Number of days since last activity type: integer gsm_last_bundle_purchase: description: Date of last data bundle purchase (any data bundle) format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer gsm_me2u_received_amt_1m: description: Amount of MTN Me2U airtime received (1M) type: integer gsm_me2u_received_amt_3m: description: Amount of MTN Me2U airtime received (3M) type: integer gsm_me2u_received_amt_6m: description: Amount of MTN Me2U airtime received (6M) type: integer gsm_me2u_received_qty_1m: description: Number of MTN Me2U airtime received (1M) type: integer gsm_me2u_received_qty_3m: description: Number of MTN Me2U airtime received (3M) type: integer gsm_me2u_received_qty_6m: description: Number of MTN Me2U airtime received (6M) type: integer gsm_nau_amt_1m: description: Network Airtime Utilization (1M) type: number gsm_nau_amt_3m: description: Network Airtime Utilization (3M) type: number gsm_nau_amt_6m: description: Network Airtime Utilization (6M) type: number gsm_network_town: description: 'Base Station town approximate longitude and latitude comma separated, eg: 32.736,0.346' maxLength: 50 type: string gsm_npt: description: Network Payment Type maxLength: 50 type: string gsm_nrd: description: Network Registration Date format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer gsm_nta_amt_1m: description: Network Topup Amount (1M) type: number gsm_nta_amt_3m: description: Network Topup Amount (3M) type: number gsm_nta_amt_6m: description: Network Topup Amount (6M) type: number gsm_out_calls_qty_1m: description: Number of outbound calls (1M) type: integer gsm_out_calls_qty_3m: description: Number of outbound calls (3M) type: integer gsm_out_calls_qty_6m: description: Number of outbound calls (6M) type: integer gsm_p_usid: description: Primary Unique Service Id type: integer gsm_po_limit_amt: description: Post-paid limit type: integer gsm_s_ucid: description: Secondary Unique Customer Id type: integer gsm_s_usid: description: Secondary Unique Service Id type: integer gsm_times_blocked_po_qty_1m: description: Number of times blocked (post-paid) (1M) type: integer gsm_times_blocked_po_qty_3m: description: Number of times blocked (post-paid) (3M) type: integer gsm_times_blocked_po_qty_6m: description: Number of times blocked (post-paid) (6M) type: integer gsm_topup_method: description: Topup method maxLength: 30 type: string gsm_uniq_in_anum_qty_1m: description: Number of distinct inbound B-Parties (1M) type: integer gsm_uniq_in_anum_qty_3m: description: Number of distinct inbound B-Parties (3M) type: integer gsm_uniq_in_anum_qty_6m: description: Number of distinct inbound B-Parties (6M) type: integer gsm_uniq_out_bnum_qty_1m: description: Number of distinct outbound B-Parties (1M) type: integer gsm_uniq_out_bnum_qty_3m: description: Number of distinct outbound B-Parties (3M) type: integer gsm_uniq_out_bnum_qty_6m: description: Number of distinct outbound B-Parties (6M) type: integer kyc_dob: description: Date of Birth format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer kyc_gender: description: Gender - this will not be populated due to masking personal information maxLength: 1 type: string kyc_id_expiry_date: description: Expiry Date on ID format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer kyc_msisdn_random: description: 'EVA internal column ' maxLength: 50 type: string last_drawdown_date: description: Date of last debit transaction on the MoMo Advance facility format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer last_payment_date: description: Date of last credit transaction on the MoMo account format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer limit_decrease_date: description: date of last limit decrease format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer limit_increase_date: description: Date of last limit increase date format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer max_completeness_date: description: '== 0 if no date ; E.g. 20210209 OR 0' format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer mom_bank_pull_amt_1m: description: Total pull transfer amount (1M) type: integer mom_bank_pull_amt_3m: description: Total pull transfer amount (3M) type: integer mom_bank_pull_amt_6m: description: Total pull transfer amount (6M) type: number mom_bank_pull_last_date: description: Last pull transfer date format: yyyyMMdd type: integer mom_bank_pull_max_amt_1m: description: Highest pull transfer amount (1M) type: number mom_bank_pull_max_amt_3m: description: Highest pull transfer amount (3M) type: integer mom_bank_pull_max_amt_6m: description: Highest pull transfer amount (6M) type: number mom_bank_pull_qty_1m: description: Number of pull transfers (1M) type: integer mom_bank_pull_qty_3m: description: Number of pull transfers (3M) type: number mom_bank_pull_qty_6m: description: Number of pull transfers (6M) type: number mom_bank_pull_uniq_acceptors_qty_1m: description: Bank pull transfer acceptors (1M) type: integer mom_bank_pull_uniq_acceptors_qty_3m: description: Bank pull transfer acceptors (3M) type: integer mom_bank_pull_uniq_acceptors_qty_6m: description: Bank pull transfer acceptors (6M) type: number mom_bank_push_amt_1m: description: Total push transfer amount (1M) type: integer mom_bank_push_amt_3m: description: Total push transfer amount (3M) type: integer mom_bank_push_amt_6m: description: Total push transfer amount (6M) type: number mom_bank_push_last_date: description: Last push transfer date format: yyyyMMdd type: integer mom_bank_push_max_amt_1m: description: Highest push transfer amount (1M) type: number mom_bank_push_max_amt_3m: description: Highest push transfer amount (3M) type: integer mom_bank_push_max_amt_6m: description: Highest push transfer amount (6M) type: number mom_bank_push_qty_1m: description: Number of push transfers (1M) type: integer mom_bank_push_qty_3m: description: Number of push transfers (3M) type: number mom_bank_push_qty_6m: description: Number of push transfers (6M) type: number mom_bank_push_uniq_acceptors_qty_1m: description: Bank push transfer acceptors (1M) type: integer mom_bank_push_uniq_acceptors_qty_3m: description: Bank push transfer acceptors (3M) type: integer mom_bank_push_uniq_acceptors_qty_6m: description: Bank push transfer acceptors (6M) type: number mom_bill_payment_amt_1m: description: Pay bill amount (1M) type: number mom_bill_payment_amt_3m: description: Pay bill amount (3M) type: number mom_bill_payment_amt_6m: description: Pay bill amount (6M) type: number mom_bill_payment_last_date: description: Last Paybill Date format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer mom_bill_payment_max_amt_1m: description: Highest bill payment (1M) type: number mom_bill_payment_max_amt_3m: description: Highest bill payment (3M) type: number mom_bill_payment_max_amt_6m: description: Highest bill payment (6M) type: number mom_bill_payment_qty_1m: description: Number of Bill payments (1M) type: integer mom_bill_payment_qty_3m: description: Number of Bill payments (3M) type: integer mom_bill_payment_qty_6m: description: Number of Bill payments (6M) type: integer mom_bill_payment_uniq_acceptors_qty_1m: description: Pay bill acceptors (1M) type: integer mom_bill_payment_uniq_acceptors_qty_3m: description: Pay bill acceptors (3M) type: integer mom_bill_payment_uniq_acceptors_qty_6m: description: Pay bill acceptors (6M) type: integer mom_deposit_amt_1m: description: Total Deposit Amount (1M) type: number mom_deposit_amt_3m: description: Total Deposit Amount (3M) type: number mom_deposit_amt_6m: description: Total Deposit Amount (6M) type: number mom_deposit_last_date: description: Last Deposit Date format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer mom_deposit_max_amt_1m: description: Highest Deposit (1M) type: number mom_deposit_max_amt_3m: description: Highest Deposit (3M) type: number mom_deposit_max_amt_6m: description: Highest Deposit (6M) type: number mom_deposit_qty_1m: description: Number of Deposits (1M) type: integer mom_deposit_qty_3m: description: Number of Deposits (3M) type: integer mom_deposit_qty_6m: description: Number of Deposits (6M) type: integer mom_deposit_uniq_acceptors_qty_1m: description: Deposit Acceptors (1M) type: integer mom_deposit_uniq_acceptors_qty_3m: description: Deposit Acceptors (3M) type: integer mom_deposit_uniq_acceptors_qty_6m: description: Deposit Acceptors (6M) type: integer mom_p2p_received_amt_1m: description: Total received amount (1M) type: number mom_p2p_received_amt_3m: description: Total received amount (3M) type: number mom_p2p_received_amt_6m: description: Total received amount (6M) type: number mom_p2p_received_last_date: description: Last receive date format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer mom_p2p_received_max_amt_1m: description: Highest receive amount (1M) type: number mom_p2p_received_max_amt_3m: description: Highest receive amount (3M) type: number mom_p2p_received_max_amt_6m: description: Highest receive amount (6M) type: number mom_p2p_received_qty_1m: description: Received number (1M) type: integer mom_p2p_received_qty_3m: description: Received number (3M) type: integer mom_p2p_received_qty_6m: description: Received number (6M) type: integer mom_p2p_received_uniq_acceptors_qty_1m: description: Receive acceptors (1M) type: integer mom_p2p_received_uniq_acceptors_qty_3m: description: Receive acceptors (3M) type: integer mom_p2p_received_uniq_acceptors_qty_6m: description: Receive acceptors (6M) type: integer mom_p2p_send_amt_1m: description: Total send amount (1M) type: number mom_p2p_send_amt_3m: description: Total send amount (3M) type: number mom_p2p_send_amt_6m: description: Total send amount (6M) type: number mom_p2p_send_last_date: description: Last send date format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer mom_p2p_send_max_amt_1m: description: Highest send amount (1M) type: number mom_p2p_send_max_amt_3m: description: Highest send amount (3M) type: number mom_p2p_send_max_amt_6m: description: Highest send amount (6M) type: number mom_p2p_send_qty_1m: description: Number of Send (1M) type: integer mom_p2p_send_qty_3m: description: Number of Send (3M) type: integer mom_p2p_send_qty_6m: description: Number of Send (6M) type: integer mom_registration_date: description: '' format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer mom_send_uniq_acceptors_qty_1m: description: Send acceptors (1M) type: integer mom_send_uniq_acceptors_qty_3m: description: Send acceptors (3M) type: integer mom_send_uniq_acceptors_qty_6m: description: Send acceptors (6M) type: integer mom_withdrawal_amt_1m: description: Total Withdrawal Amount (1M) type: number mom_withdrawal_amt_3m: description: Total Withdrawal Amount (3M) type: number mom_withdrawal_amt_6m: description: Total Withdrawal Amount (6M) type: number mom_withdrawal_last_date: description: Last Withdrawal Date format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer mom_withdrawal_max_amt_1m: description: Highest Withdrawal (1M) type: number mom_withdrawal_max_amt_3m: description: Highest Withdrawal (3M) type: number mom_withdrawal_max_amt_6m: description: Highest Withdrawal (6M) type: number mom_withdrawal_qty_1m: description: Number of Withdrawals (1M) type: integer mom_withdrawal_qty_3m: description: Number of Withdrawals (3M) type: integer mom_withdrawal_qty_6m: description: Number of Withdrawals (6M) type: integer mom_withdrawal_uniq_acceptors_qty_1: description: Withdrawal Acceptors (1M) type: integer mom_withdrawal_uniq_acceptors_qty_3: description: Withdrawal Acceptors (3M) type: integer mom_withdrawal_uniq_acceptors_qty_6: description: Withdrawal Acceptors (6M) type: integer momo_balance: description: 'Current MoMo Balance Value ' type: integer opco_cd: description: MTN OpCo abbreviation, eg UG maxLength: 50 type: string p_ucid: description: Primary Unique Customer Id maxLength: 50 type: number past_due_date: description: Date generated for dyamic past due calculation required as input into Limit Management Strategy type: integer payment_date: description: '' format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer payment_value: description: '' type: integer previous_limit: description: previous account limit type: integer previous_status: description: previous activity status of account at any point in time (Active|Dormant|Inactive|Closed|WOF) maxLength: 20 type: string source: description: 'EVA internal column ' maxLength: 50 type: string status_code: description: 'Registration Status ' maxLength: 50 type: string status_date: description: date of last status change format: yyyyMMdd pattern: ^\d{4}(0?[1-9]|1[012])(0?[1-9]|[12][0-9]|3[01])$ type: integer DataFetchResponse: type: object properties: statusCode: type: string example: "0000" description: The canonical statusMessage: type: string example: OK transactionId: type: string example: "174478014184946374" customerId: type: string example: "233549004250" description: The customer msisdn timestamp: type: string format: dateTime example: "1985-04-12T23:20:50.52Z" description: Time and date response was generated, recorded in date-time format (i.e. ISO8601) sequenceNo: type: string description: "A unique identifier for tracking all requests" example: '123888393982' data: type: array items: $ref: '#/definitions/Data' SetFlagResponse: type: object properties: statusCode: type: string example: "0000" description: The canonical statusMessage: type: string example: OK transactionId: type: string example: "174478014184946374" customerId: type: string example: "233549004250" description: The customer msisdn dataSharing: type: boolean example: true description: if data sharing flag is true then sharing is allowed, else if false then sharing is not allowed dataSharingExpiryDate: type: string format: date example: "20201103" description: 'format is yyyyMMdd' subscriberId: type: string example: "256789999781" description: The subscriber's id number marketing: type: boolean example: true description: if marketing sharing flag is true then sharing is allowed, else if false then sharing is not allowed loanerId: type: string example: "VITKASH" description: Vendor or 3P Partner ID sequenceNo: type: string description: "A unique identifier for tracking all requests" example: '123888393982' Kyc: type: object properties: firstName: type: string example: Bondzi lastName: type: string example: REGINA dateOfBirth: type: string format: date example: '1995-12-05' description: 'format "yyyy-MM-dd"' gender: type: string example: MALE idType: type: string example: "IDCD" idNumber: type: string example: "6535006636" momoId: type: number example: 49522199 msisdnRandom: type: number example: 9.00000002019E11 idExpiryDate: type: string description: 'Customer ID expiry date. format "yyyy-MM-dd"' msisdn: type: number example: 2250554095657 Momo: type: object properties: withdrawalMaxAmt6m: type: number example: 0.0 momoBalance: type: number example: 0.0 accountStatus: type: string example: active sendAmt1m: type: number example: 0.0 bankTransferAmt1m: type: number example: 0.0 bankTransferMaxAmt3m: type: number example: 0.0 billPaymentQty1m: type: number example: 0.0 cumulativePayments30dy: type: number example: 0.0 sendQty1m: type: number example: 0.0 receivedAcceptorsQty3m: type: number example: 0.0 billPaymentAcceptorsQt1: type: number example: 0.0 billPaymentMaxAmt3m: type: number example: 0.0 sendAcceptorsQty1m: type: number example: 0.0 receivedMaxAmt3m: type: number example: 0.0 withdrawalAmt6m: type: number example: 0.0 receivedQty3m: type: number example: 0.0 withdrawalLastDate: type: string format: date example: '1900-01-01' description: 'format "yyyy-MM-dd"' withdrawalAmt3m: type: number example: 0.0 sendMaxAmt1m: type: number example: 0.0 withdrawalAmt1m: type: number example: 0.0 registrationDate: type: string format: date example: '2016-11-09' description: 'format yyyy-MM-dd' depositAmt1m: type: number example: 0.0 withdrawalMaxAmt1m: type: number example: 0.0 depositAcceptorsQty3m: type: number example: 0.0 billPaymentAcceptorsQt3: type: number example: 0.0 depositAmt6m: type: number example: 0.0 withdrawalAcceptorsQty1m: type: number example: 0.0 receivedMaxAmt1m: type: number example: 0.0 depositMaxAmt3m: type: number example: 0.0 depositQty3m: type: number example: 0.0 withdrawalAcceptorsQty6m: type: number example: 0.0 billPaymentLastDate: type: string format: date example: '1900-01-01' description: 'format "yyyy-MM-dd"' bankTransferAmt6m: type: number example: 0.0 receivedQty6m: type: number example: 0.0 billPaymentAmt1m: type: number example: 0.0 withdrawalQty3m: type: number example: 0.0 billPaymentQty3m: type: number example: 0.0 billPaymentMaxAmt1m: type: number example: 0.0 receivedAmt1m: type: number example: 0.0 withdrawalAcceptorsQty3m: type: number example: 0.0 billPaymentQty6m: type: number example: 0.0 sendAmt3m: type: number example: 0.0 bankTransferMaxAmt6m: type: number example: 0.0 receivedLastDate: type: string format: date example: '1900-01-01' description: 'format "yyyy-MM-dd"' sendQty3m: type: number example: 0.0 bankTransferQty6m: type: number example: 0.0 sendAcceptorsQty6m: type: number example: 0.0 withdrawalQty1m: type: number example: 0.0 bankTransferAmt3m: type: number example: 0.0 bankTransferLastDate: type: string format: date example: '1900-01-01' description: 'format "yyyy-MM-dd"' sendMaxAmt6m: type: number example: 0.0 sendMaxAmt3m: type: number example: 0.0 depositQty1m: type: number example: 0.0 depositLastDate: type: string format: date example: '1900-01-01' description: 'format "yyyy-MM-dd"' receivedAcceptorsQty6m: type: number example: 0.0 sendQty6m: type: number example: 0.0 billPaymentAcceptorsQt6: type: number example: 0.0 withdrawalQty6m: type: number example: 0.0 depositQty6m: type: number example: 0.0 bankTransferMaxAmt1m: type: number example: 0.0 depositAcceptorsQty1m: type: number example: 0.0 bankTransferAccptrsQt6: type: number example: 0.0 depositMaxAmt1m: type: number example: 0.0 depositAcceptorsQty6m: type: number example: 0.0 sendAcceptorsQty3m: type: number example: 0.0 depositMaxAmt6m: type: number example: 0.0 receivedQty1m: type: number example: 0.0 receivedAcceptorsQty1m: type: number example: 0.0 withdrawalMaxAmt3m: type: number example: 0.0 billPaymentAmt6m: type: number example: 0.0 bankTransferAccptrsQt3: type: number example: 0.0 bankTransferQty3m: type: number example: 0. drawDownNumber: type: number example: 0. bankTransferAccptrsQt1: type: number example: 0, receivedMaxAmt6m: type: number example: 0.0 receivedAmt6m: type: number example: 0.0 receivedAmt3m: type: number example: 0.0 depositAmt3m: type: number example: 0.0 sendAmt6m: type: number example: 0.0 bankTransferQty1m: type: number example: 0.0 sendLastDate: type: string format: date example: '1900-01-01' description: 'format "yyyy-MM-dd"' billPaymentAmt3m: type: number example: 0.0 billPaymentMaxAmt6m: type: number example: 0.0 bankPullQty6m: type: number example: 0.0 bankPullQty3m: type: number example: 0.0 bankPullQty1m: type: number example: 0.0 bankPullAmt6m: type: number example: 0.0 bankPullAmt3m: type: number example: 0.0 bankPullAmt1m: type: number example: 0.0 bankPullUniqAcceptorsQty6m: type: number example: 0.0 bankPullUniqAcceptorsQty3m: type: number example: 0.0 bankPullUniqAcceptorsQty1m: type: number example: 0.0 bankPullMaxAmt6m: type: number example: 0.0 bankPullMaxAmt3m: type: number example: 0.0 bankPullMaxAmt1m: type: number example: 0.0 bankPullLastDate: type: string format: date example: '1900-01-01' description: 'format "yyyy-MM-dd"' bankPushQty6m: type: number example: 0.0 bankPushQty3m: type: number example: 0.0 bankPushQty1m: type: number example: 0.0 bankPushAmt6m: type: number example: 0.0 bankPushAmt3m: type: number example: 0.0 bankPushAmt1m: type: number example: 0.0 bankPushUniqAcceptorsQty6m: type: number example: 0.0 bankPushUniqAcceptorsQty3m: type: number example: 0.0 bankPushUniqAcceptorsQty1m: type: number example: 0.0 bankPushMaxAmt6m: type: number example: 0.0 bankPushMaxAmt3m: type: number example: 0.0 bankPushMaxAmt1m: type: number example: 0.0 bankPushLastDate: type: string format: date example: '1900-01-01' description: 'format "yyyy-MM-dd"' airtimePurcAmt1m: type: number example: 0.0 airtimePurcAmt3m: type: number example: 0.0 airtimePurcAmt6m: type: number example: 0.0 airtimePurcLastDate: type: string format: date example: '1900-01-01' description: 'format "yyyy-MM-dd"' airtimePurcMaxAmt1m: type: number example: 0.0 airtimePurcMaxAmt6m: type: number example: 0.0 airtimePurcMaxAmt3m: type: number example: 0.0 airtimePurcQty1m: type: number example: 0.0 airtimePurcQty3m: type: number example: 0.0 airtimePurcQty6m: type: number example: 0.0 buyGoodsAccepters1m: type: number example: 0.0 buyGoodsAccepters3m: type: number example: 0.0 buyGoodsAccepters6m: type: number example: 0.0 buyGoodsAmt1m: type: number example: 0.0 buyGoodsAmt3m: type: number example: 0.0 buyGoodsAmt6m: type: number example: 0.0 buyGoodsLastDate: type: string format: date example: '1900-01-01' description: 'format "yyyy-MM-dd"' buyGoodsMaxAmt1m: type: number example: 0.0 buyGoodsMaxAmt6m: type: number example: 0.0 buyGoodsMaxAmt3m: type: number example: 0.0 buyGoodsQty1m: type: number example: 0.0 buyGoodsQty3m: type: number example: 0.0 buyGoodsQty6m: type: number example: 0.0 Gsm: type: object properties: avgBundSize3m: type: number example: 0.0 topupMethod: type: string example: UNK npt: type: string example: PREPAID timesBlockedPoQty6m: type: number example: 0.0 sUcid: type: string example: '1-_' pUcid: type: string example: '2-_' me2uReceivedAmt3m: type: number example: 0.0 datVolAmt6m: type: number example: 0.0 avgTopupAmt6m: type: number example: 0.0 uniqInAnumQty3m: type: number example: 0.0 ntaAmt1m: type: number example: 0.0 dabQty3m: type: number example: 0.0 nauAmt3m: type: number example: 0.0 networkTown: type: string example: UNK poLimitAmt: type: number example: 0.0 me2uReceivedQty3m: type: number example: 0.0 pUsid: type: string example: "14536792" deviceMake: type: string example: ITEL nrd: type: string format: date example: '2012-12-11' description: 'format yyyy-MM-dd' imeiQty1m: type: number example: 1.0 daysBundLess2mb1m: type: number example: 29.0 uniqOutbnumQty3m: type: number example: 0.0 nauAmt1m: type: number example: 0.0 inCallsQty3m: type: number example: 0.0 avgBundSize6m: type: number example: 0.0 inCallsQty6m: type: number example: 0.0 datVolAmt3m: type: number example: 0.0 timesBlockedPoQty1m: type: number example: 0.0 outcallsQty1m: type: number example: 0.0 avgTopupAmt3m: type: number example: 0.0 imsiNr: type: string example: "620010342785115" uniqInAnumQty6m: type: number example: 0.0 avgBundSize1m: type: number example: 0.0 avgTopupAmt1m: type: number example: 0.0 me2uReceivedAmt6m: type: number example: 0.0 activeDaysQty6m: type: number example: 0.0 ntaAmt3m: type: number example: 0.0 laDaysQty: type: number example: 0.0 dabQty1m: type: number example: 0.0 daysBundLess2mb3m: type: number example: 91.0 me2uReceivedQty1m: type: number example: 0.0 inCallsQty1m: type: number example: 0.0 uniqInAnumQty1m: type: number example: 0.0 ntaQty: type: number example: 0.0 evdTopupAmt: type: number example: 0.0 voucherTopupAmt: type: number example: 0.0 momoTopupAmt: type: number example: 0.0 evdTopupQty: type: number example: 0.0 voucherTopupQty: type: number example: 0.0 momoTopupQty: type: number example: 0.0 datVolAmt1m: type: number example: 0.0 imsiQty1m: type: number example: 1.0 outCallsQty6m: type: number example: 0.0 activeDaysQty3m: type: number example: 0.0 uniqOutBnumQty6m: type: number example: 0.0 lastBundlePurchase: type: string format: date example: '2020-05-16' description: 'format "yyyy-MM-dd"' timesBlockedPoQty3m: type: number example: 0.0 dabQty6m: type: number example: 0.0 activeDaysQty1m: type: number example: 0.0 me2uReceivedQty6m: type: number example: 0.0 nauAmt6m: type: number example: 0.0 ntaAmt6m: type: number example: 0.0 me2uReceivedAmt1m: type: number example: 0.0 daysBundLess2mb6m: type: number example: 182.0 imeiNr: type: number example: 3.5595609272662E14 uniqOutBnumQty1m: type: number example: 0.0 sUsid: type: string example: '_' outCallsQty3m: type: number example: 0.0 AtcLoans: type: object properties: overdue: type: number example: 0.0 overdraftTotalBalance: type: number example: 0.0 overdraftPrincipalBalance: type: number example: 0.0 overdraftInterestBalance: type: number example: 0.0 overdraftFeesBalance: type: number example: 0.0 daysPastDue: type: number example: 0.0 loansAmt: type: number example: 0.0 maxTerm: type: number example: 0.0 totTerm: type: number example: 0.0 lastDate: type: string format: date example: '1900-01-01' description: 'format "yyyy-MM-dd"' qty6m: type: number example: 0.0 amtTot: type: number example: 0.0 qty1m: type: number example: 0.0 lastOverdue: type: string format: date example: '1900-01-01' description: 'format "yyyy-MM-dd"' firstDate: type: string format: date example: '2099-12-31' description: 'format "yyyy-MM-dd"' qty3m: type: number example: 0.0 Data: type: object properties: kyc: $ref: '#/definitions/Kyc' momo: $ref: '#/definitions/Momo' gsm: $ref: '#/definitions/Gsm' atcLoans: $ref: '#/definitions/AtcLoans' createDate: type: string format: date example: '2021-03-03' description: 'format yyyy-MM-dd' customerType: type: string description: 'type of customer' creditLimit: type: number example: 0.0 creditLimitDate: type: string example: '2021-03-03' previousLimit: type: number example: 0.0 behavioural_category: description: behavioural scorecard category maxLength: 20 type: string behavioural_score: description: behavioural score type: integer opcoCd: type: string example: GH batchId: type: number dataKey: type: string dwCpart: type: string dwPart: type: string ewpAccountHolderTypeCd: type: string maxCompletenessDate: type: string source: type: string functType: type: string errorMsg: type: string timestampV: type: string errorCd: type: string sysProcessedTime: type: number CustomerData: type: object properties: operationName: type: string description: To specify the flag to be set enum: - MARKETING_ON - DATA_SHARING_ON - MARKETING_OFF title: CustomerData Money: type: object description: A base / value business entity used to represent money properties: unit: type: string description: Currency of the charge aplied example: RWF value: type: number format: float description: value of the usage charge applied to a subscriber example: 133.34 QueryUsage: type: object description: It contains the Call details record of a subscriber, containing usage characterisctic and event details. properties: id: type: string description: Unique identifier. This can be customer's msisdn with country code etc. description: type: string description: Description of usage enum: - On-net call - off-net call - international call usageDate: example: '2020-09-21T09:13:16-07:00' type: string format: date-time description: Date of usage balanceType: type: string description: Type of balance from where usage got deducted. enum: - "DA" - "MA" - "4G-peak time" usageType: type: string description: Type of usage status: $ref: '#/definitions/UsageStatusType' usageCharacteristic: type: array items: $ref: '#/definitions/UsageCharacteristic' usageSpecification: $ref: '#/definitions/UsageSpecificationRef' ratedProductUsage: type: array items: $ref: '#/definitions/RatedProductUsage' binaryAttachment: type: array items: $ref: '#/definitions/Attachment' gsm: type: object properties: spend: $ref: '#/definitions/Spend' avgMonthlySpend: type: number format: float example: '23274.6075' description: Customer average monthly spend over the last 12 calendar months, not rolling months. ResponseQueryUsage: type: object required: - resultCode - resultDescription - transactionId properties: resultCode: example: "200" type: string description: Result code. Example- '0000' resultDescription: example: "Transaction successful" type: string description: Result message. Example- 'Successfully processed' transactionId: example: "6f0bece6-7df3-4da4-af02-5e7f16e5e6fc" type: string description: Transaction id returned by the provider system. sequenceNo: type: string description: "A unique identifier for tracking all requests" example: "123459393" MSISDN: example: 234903******* type: string description: This is the calling number or subscriber unique identifier, which is subscriber MSSIDN id. data: type: array items: $ref: '#/definitions/QueryUsage' band: type: object properties: calendarCategoryYtd: type: string example: 'Gold' description: This is the category you are currently on in the calendar year determined by your spend_ytd metric. It continues to change as you move across borders into new categories based on your accummulative spend in spend_ytd. calendarCategoryAnnual: type: string example: 'Silver' description: This is the category you completed the prior year on and carried over to the new year and remains your category for the year. The metric/field determining this is spend_ytd on dec31 of the prior year and measured against the spend categories/segments provided. eg. gold/bronce/platinum/etc.. personalCategoryAnnual: type: string example: 'Bronze' description: This is the category you completed the prior personal cycle year on and carried over to the new personal cycle year and remains your category for the year. The metric/field determining this is spend_pers_ytd on last day of the prior personal cycle year and measured against the spend categories/segments provided. eg. gold/bronce/platinum/etc.. personalCycleStartDate: type: number example: 99990321 description: The first day of the customer personal cycle, the year is in format 9999 as it change year on year, however, the month and day in this date format will indicate the first day of the personal cycle eg. 99991224 indicates the first day is Dec24 in the customer personal cycle personalCycleEndDate: type: number example: 99990320 description: The last day of the customer personal cycle, the year is in format 9999 as it change year on year, however, the month and day in this date format will indicate the last day of the personal cycle eg. 99991223 indicates the last day is Dec23 in the customer personal cycle personalCategoryYtd: type: string example: 'Silver' description: This is the category you are currently on in the current personal cycle year determined by your spend_pers_ytd metric. It continues to change as you move across borders into new categories based on your accummulative spend in spend_pers_ytd. personalCycleFirstDate: type: number example: 20210320 description: The first day the customer have reached accummulated daily spend, measured in column total_spend, for the lowest category. This indicates the customer personal cycle first day will be the next day and continue for one year until this day again. Spend: type: object properties: spendM1: type: number format: float example: 27500.0 description: Customer monthly spend of one calendar month ago from report day. Monthly spend is in field spend_mtd measured on the last day of the month. Eg. if report day is 20190223 then this field will hold spend_mtd for tbl_dt=20190131, thus holding the monthly spend for one full calendar month into history. spendM2: type: number format: float example: 28300.0 description: Customer monthly spend of two calendar months ago from report day. Monthly spend is in field spend_mtd measured on the last day of the month. Eg. if report day is 20190223 then this field will hold spend_mtd for tbl_dt=20181231, thus holding the monthly spend for two full calendar months into history. spendM3: type: number format: float example: 28300.0 description: Customer monthly spend of three calendar months ago from report day. spendM4: type: number format: float example: 29000.0 description: Customer monthly spend of four calendar months ago from report day. spendM5: type: number format: float example: 26300.0 description: Customer monthly spend of five calendar months ago from report day. spendM6: type: number format: float example: "6735.089999999998" description: Customer monthly spend of six calendar months ago from report day. spendM7: type: number format: float example: "12825.230000000001" description: Customer monthly spend of seven calendar months ago from report day. spendM8: type: number format: float example: 31214.239999999998 description: Customer monthly spend of eight calendar months ago from report day. spendM9: type: number format: float example: 29411.72 description: Customer monthly spend of nine calendar months ago from report day. spendM10: type: number format: float example: 14419.710000000003 description: Customer monthly spend of ten calendar months ago from report day. spendM11: type: number format: float example: 31466.639999999996 description: Customer monthly spend of eleven calendar months ago from report day. spendM12: type: number format: float example: 13822.66 description: Customer monthly spend of twelve calendar months ago from report day. spendMtd: type: number format: float example: 26000.0 description: Customer accummulated spend month to date. Month start 1st end last day of month in report day. spendYtd: type: number format: float example: 260005.99000000002 description: Customer accummulated spend year to date. Year start Jan1 and end Dec31. spendPersMtd: type: number format: float example: 26000.0 description: Customer accummulated spend month to date within his own monthly cycle. The customer monthly cycle start date is determined by the field personalcycle_start_date and personalcycle_end_date. Read further about the logic of these fields below in their descriptions. spendPersYtd: type: number format: float example: 188743.13 description: Customer accummulated spend year to date within his own yearly cycle. The customer yearly cycle start date is determined by the field personalcycle_start_date and personalcycle_end_date. Read further about the logic of these fields below in their descriptions CAAGResponse: type: object required: - apiStatus - apiData properties: resultCode: example: "200" type: string description: Result code. Example- '0000' resultDescription: example: "Transaction successful" type: string description: Result message. Example- 'Successfully processed' transactionId: example: "6f0bece6-7df3-4da4-af02-5e7f16e5e6fc" type: string description: Transaction id returned by the provider system. sequenceNo: type: string description: "A unique identifier for tracking all requests" example: '123888393982' apiStatus: example: 234903******* $ref: '#/definitions/CAAGResponseStatus' description: This is the calling number or subscriber unique identifier, which is subscriber MSSIDN id. apiData: $ref: '#/definitions/CAAGResponseData' CAAGResponseStatus: type: object properties: statusMsg: example: "Transaction successful" type: string description: Result message. Example- 'Successfully processed' statusCode: example: "200" type: string description: Result code. Example- '0000' transactionId: example: "6f0bece6-7df3-4da4-af02-5e7f16e5e6fc" type: string description: Transaction id returned by the provider system. msisdn: example: 234903******* type: string description: This is the calling number or subscriber unique identifier, which is subscriber MSSIDN id. dateRange: type: array items: type: string CAAGFinalResponseData: type: object $ref: '#/definitions/CAAGGroupedResponseData' CAAGGroupedResponseData: properties: usageType: type: array items: $ref: '#/definitions/CAAGResponseData' CAAGResponseData: type: object properties: eventTimestampEnrich: type: string volumeMb: type: string source: type: string amount: type: string usageType: type: string transactionDate: type: string billTextCag: type: string billTextAll: type: string wallet: type: string accountBalance: type: string Usage: type: object required: - resultCode - resultDescription - transactionId properties: usageDate: example: '2020-09-21' type: string description: Date of usage. Format is 'YYYY-MM-DD' voiceCharge: $ref: '#/definitions/Money' smsCharge: $ref: '#/definitions/Money' dataCharge: $ref: '#/definitions/Money' ResponseQueryUsageCharge: type: object required: - resultCode - resultDescription - transactionId properties: resultCode: example: "200" type: string description: Result code. Example- '0000' resultDescription: example: "Transaction successful" type: string description: Result message. Example- 'Successfully processed' transactionId: example: "6f0bece6-7df3-4da4-af02-5e7f16e5e6fc" type: string description: Transaction id returned by the provider system. sequenceNo: type: string description: "A unique identifier for tracking all requests" example: '123888393982' data: type: array items: $ref: '#/definitions/Usage' Recharge: type: object required: - rechargeHistory properties: subscriberId: example: "250788123456" type: string description: Mobile number that the money is recharged to. rechargeDate: example: '20200106225722' type: string format: date-time description: Date of recharge rechargeHistory: type: array description: This array contains all the details of recharge history of a suscriber. items: type: object required: - rechargeDate - payType - rechargeAmount properties: description: example: Recharge description type: string description: Description of recharge payType: type: string description: Type of payment enum: - MoMo - VC - USSD - Bank rechargeAmount: type: string description: Total amount used to recharge example: "100" adjustmentType: type: string example: "RECHARGE" amountBefore: type: integer example: "-108.700000" amountAfter: type: string example: "8.700000" transaction: type: string example: "Voucher" ResponseQueryRechargeHistory: type: object required: - resultCode - resultDescription - transactionId properties: resultCode: example: "200" type: string description: Result code. Example- '0000' resultDescription: example: "Transaction successful" type: string description: Result message. Example- 'Successfully processed' transactionId: example: "6f0bece6-7df3-4da4-af02-5e7f16e5e6fc" type: string description: Transaction id returned by the provider system. sequenceNo: type: string description: "A unique identifier for tracking all requests" example: '123888393982' data: type: array items: $ref: '#/definitions/Recharge' UsageCharacteristic: type: object description: Provides the value of a given characteristic required: - name - value properties: name: type: string description: Name of the characteristic valueType: type: string description: Data type of the value of the characteristic value: type: string description: The value of the characteristic UsageSpecificationRef: type: object properties: id: type: string description: unique identifier name: type: string description: The name of the usage specification enum: - Voice - SMS - Data required: - name UsageStatusType: type: string description: Possible values for the status of the Usage enum: - received - rejected - recycled - guided - rated - rerated - billed Error: type: "object" title: "Error" required: - "status" - "message" properties: timestamp: type: "string" format: "date-time" description: "Time stamp of the error" status: type: "string" description: "Status/Error code returned from the provider system" error: type: "string" description: "Status/Error description" message: type: "string" description: "More error details and corrective measures" path: type: "string" description: "the path that caused the error" sequenceNo: type: string description: "A unique identifier for tracking all requests" example: '123888393982' RatedProductUsage: type: object description: An occurrence of employing a product for its intended purpose with all rating details properties: bucketValueConvertedInAmount: $ref: '#/definitions/Money' otherDetails: $ref: '#/definitions/OtherDetails' OtherDetails: type: object description: Other related product usage details that cannot be categoried in the first fields properties: byteSent: type: string description: Quantity of Bytes sent byteReceived: type: string description: Quantity of bytes received balanceBefore: type: string description: Balance amount value before the the service balanceAfter: type: string description: Balance amount after the service balanceDetails: type: array items: $ref: '#/definitions/OtherBalanceDetails' OtherBalanceDetails: type: object properties: accountId: type: string description: account ID amountBefore: type: string description: amount before amountAfter: type: string description: amount after amountCharged: type: string description: Amount charged Attachment: type: object description: Complements the description of an element (for instance a product) through video, pictures... properties: id: example: 4aafacbd-11ff-4dc8-b445-305f2215715f type: string description: Unique identifier for this particular attachment href: example: http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f type: string format: uri description: URI for this Attachment attachmentType: example: video type: string description: Attachment type such as video, picture content: type: string format: base64 description: The actual contents of the attachment object, if embedded, encoded as base64 description: example: Photograph of the Product type: string description: A narrative text describing the content of the attachment mimeType: type: string description: Attachment mime type such as extension file for video, picture and document name: type: string description: The name of the attachment example: pdf ErrorResponse: type: object required: - statusCode - statusMessage properties: statusCode: type: string example: "1000" description: This is the MADAPI Canonical Error Code (it is 4 characters long and it is not the HTTP Status Code which is 3 characters long). Back-end system errors are mapped to specific canonical error codes which are returned. More information on these mappings can be found on the MADAPI Confluence Page 'Response Codes' statusMessage: type: string description: More details and corrective actions related to the error which can be shown to a client supportMessage: type: string description: Internal message meant for consumers of the API to troubleshoot the error (could possible include the back-end system error code in the message if it would be useful) customerId: type: string description: This is the same id that is sent in the request timestamp: type: string format: date-time description: Timestamp of the error sequenceNo: type: string description: "A unique identifier for tracking all requests" example: '123888393982'