--- swagger: "2.0" info: title: SERV-PYI-V-BillPay description: The purpose of this microservice is to manage all the bill payments for the customer. This service will be utilized for both mobile and online platform applications to call the internal microservice. version: 1.0.0 x-ibm-name: serv-pyi-v-billpay host: 127.0.0.1 schemes: - https basePath: /api produces: - application/json paths: /v1/servicing/payments/bills/detail/validate: post: tags: - validate-bill-payment-detail operationId: validate-bill-payment-detail summary: This API requests for payment validation and receives applicable charges and discounts description: This API validates all payment entries before it is carried out. The response will return all applicable charges, fees and discounts consumes: - application/json produces: - application/json parameters: - name: client_id in: header required: true type: string description: Client ID generated during application registration - name: Authorization in: header required: true type: string description: The Authorization Token received during login - name: Accept in: header required: true type: string description: Content-Types that are acceptable for the response - name: uuid in: header required: true type: string description: 128 bit UUID that you generate for every request - name: Accept-Language in: header required: false type: string description: List of acceptable human languages for response - name: Content-Type in: header required: true type: string description: Content-Types that are sent in the request - name: ChannelId in: header required: true type: string description: Channel where request originated - name: sid in: header required: true type: string description: SessionId sent by Consumer - name: validateBillPaymentRequest in: body schema: $ref: '#/definitions/ValidateBillPaymentRequest' responses: 200: description: Successful operation. schema: $ref: '#/definitions/ValidateBillPaymentResponse' 400: description:
TypeCodeDetails
errorinvalidRequestMissing or invalid Parameters
schema: $ref: '#/definitions/ErrorResponse' 401: description:
TypeCodeDetails
errorunAuthorizedAuthorization credentials are missing or invalid
schema: $ref: '#/definitions/ErrorResponse' 403: description:
TypeCodeDetailsMore Info
erroraccessNotConfiguredThe request operation is not configured to access this resourceChannel/Country/Business provided in the request is not supported currently
schema: $ref: '#/definitions/ErrorResponse' 404: description:
TypeCodeDetailsMore Info
errorresourceNotFoundThe requested resource was not foundEmpty resource/resource not found
schema: $ref: '#/definitions/ErrorResponse' 422: description:
TypeCodeDetails
errorbusinessValidationFailedBusiness validation error occured on one or more parameters
schema: $ref: '#/definitions/ErrorResponse' 500: description:
TypeCodeDetails
fatalserverUnavailableThe request failed due to an internal error/server unavailability
schema: $ref: '#/definitions/ErrorResponse' /v1/servicing/payments/bills/detail: post: tags: - bill-payment-detail operationId: bill-payment-detail summary: This API requests for payment sending its details and receives the result of the action description: This API sends a request to instruct for payment once the user of the front end agrees on its details. The result of the action is returned in the response consumes: - application/json produces: - application/json parameters: - name: client_id in: header required: true type: string description: Client ID generated during application registration - name: Authorization in: header required: true type: string description: The Authorization Token received during login - name: Accept in: header required: true type: string description: Content-Types that are acceptable for the response - name: uuid in: header required: true type: string description: 128 bit UUID that you generate for every request - name: Accept-Language in: header required: false type: string description: List of acceptable human languages for response - name: Content-Type in: header required: true type: string description: Content-Types that are sent in the request - name: ChannelId in: header required: true type: string description: Channel where request originated - name: sid in: header required: true type: string description: SessionId sent by Consumer - name: billPaymentRequest in: body schema: $ref: '#/definitions/BillPaymentRequest' responses: 200: description: Successful operation. schema: $ref: '#/definitions/BillPaymentResponse' 400: description:
TypeCodeDetails
errorinvalidRequestMissing or invalid Parameters
schema: $ref: '#/definitions/ErrorResponse' 401: description:
TypeCodeDetails
errorunAuthorizedAuthorization credentials are missing or invalid
schema: $ref: '#/definitions/ErrorResponse' 403: description:
TypeCodeDetailsMore Info
erroraccessNotConfiguredThe request operation is not configured to access this resourceChannel/Country/Business provided in the request is not supported currently
schema: $ref: '#/definitions/ErrorResponse' 404: description:
TypeCodeDetailsMore Info
errorresourceNotFoundThe requested resource was not foundEmpty resource/resource not found
schema: $ref: '#/definitions/ErrorResponse' 422: description:
TypeCodeDetails
errorbusinessValidationFailedBusiness validation error occured on one or more parameters
schema: $ref: '#/definitions/ErrorResponse' 500: description:
TypeCodeDetails
fatalserverUnavailableThe request failed due to an internal error/server unavailability
schema: $ref: '#/definitions/ErrorResponse' definitions: ValidateBillPaymentRequest: type: object properties: sourceAccountId: description: Unique identifier for the source account type: string example: "1234567890" merchantInformation: $ref: '#/definitions/MerchantInformation' payment: $ref: '#/definitions/Payment' required: - sourceAccountId MerchantInformation: type: object properties: merchantCategoryCode: description: Unique identifier of a service (merchant) type: string example: "1174" merchantSubCategory: description: Line of business or activity of the merchant type: string example: "01" required: - merchantCategoryCode - merchantSubCategory Payment: type: object properties: paymentAmount: description: Base amount of the payment to be made type: number format: double example: 1234.560000 paymentConfigurationInformation: type: array items: $ref: '#/definitions/PaymentConfigurationInformation' required: - paymentAmount PaymentConfigurationInformation: type: object properties: paymentReferenceId: description: Unique ID used by front-end to identify the input of the payment reference type: integer format: int32 example: 2 paymentReferenceValue: description: Input of the payment reference type: string example: 123ABC456DEF required: - paymentReferenceValue ValidateBillPaymentResponse: type: object properties: confirmation: $ref: '#/definitions/PaymentConfirmation' PaymentConfirmation: type: object properties: duplicatePaymentAllowedFlag: description: This flag indicates if it?s possible to accept a duplicated payment of the service type: boolean example: false feesAndCharges: type: array items: $ref: '#/definitions/FeesAndCharges' FeesAndCharges: type: object properties: feeCode: description: Code of Fee Type type: integer example: 1 feeType: description: 'Type of Fee or Charge, example: SURCHARGE, DISCOUNT, COMMISSION, TAX_COMMISSION, TAX_PAYMENT' type: string example: SURCHARGE feeAmount: description: Amount of the Fee or Charge type: number format: double example: 1234.560000 BillPaymentRequest: type: object properties: sourceAccountId: description: Unique identifier for the source account type: string example: "1234567890" merchantDetail: $ref: '#/definitions/MerchantDetail' paymentConfirmationDetail: $ref: '#/definitions/PaymentConfirmationDetail' security: $ref: '#/definitions/Security' required: - sourceAccountId - merchantDetail - paymentConfirmationDetail - security Security: type: object properties: lastEncryptedChallenge: type: string example: 0736H4sIAAAAAAAAAI1STWgTQRR+2SbUNBWq6MFbaEUQIT+SmoSeQtrDyhqDWxXsQSababKyM7POvm2SCp4KQu+eBa967cWbR2+ePAjeBfEgiNSbbzbbNtYeHBjm/b/vfW/efodcpGG5xyQTfFzyKrXq43qlUtr0hS8HrRiHXLrIkP/e/fypFLV/WZC5DfkImUaK4WMNxYh7seaeEmGMlFSKRtwrzaS+PvhhHbb2OhYUbLgs2rHWXOI0AH2PodI2LImuVqg8FTzgOvKVtKEg7nGMtbTltjLa/YhrW1KTyIFFMc1vK9FTCBedJ2yHlQMmB2UXNaFY24KcWGfUH65vOacglg3E8l8ITOiaA/PC7hvxKTwHy4E8qRsUgpPUYPybk5Cn6iVxV/sDX7JgBk7qOy9cHplJ2kMWBIlxHML0fKCbMRchX62kJ9ZnQJ1lcxbqx9zVFwfvX96wAJKqc7TGlTNz1ye0W9/rjpLBfr678nWn/u2ZBfOPiKENb5hwe8eXFOD6u9yBBZEg5nJwNGZiCU/mMDwYi90/Vjt8RAVSNSuOZPof1/5vIrW/t3L45c2yBVkDqIW0xl6MPLJN9Vj0uHYIcIf+adolJ443YSjIwpTQCy7b5g+V7he7AaOGsUBYOCHB0A4IhWqxVm00i/XV5q2QTmTqnEvXY4VGW0zk8B/v3GkvwhKtr7parzUa9eZNIyNkY/qu9MgUcI4gZgTmX+3/AT2pjop1AwAA= description: 'Challenge previously received (must be same as the given from get challenge service), composed by "Challenge" : "String State". This is encrypted by the frontend using Platform End-to-End encryption APIs.' encryptedChallengeToken: type: string example: 0736H4sIAAAAAAAAAI1STWgTQRR+2SbUNBWq6MFbaEUQIT+SmoSeQtrDyhqDWxXsQSababKyM7POvm2SCp4KQu+eBa967cWbR2+ePAjeBfEgiNSbbzbbNtYeHBjm/b/vfW/efodcpGG5xyQTfFzyKrXq43qlUtr0hS8HrRiHXLrIkP/e/fypFLV/WZC5DfkImUaK4WMNxYh7seaeEmGMlFSKRtwrzaS+PvhhHbb2OhYUbLgs2rHWXOI0AH2PodI2LImuVqg8FTzgOvKVtKEg7nGMtbTltjLa/YhrW1KTyIFFMc1vK9FTCBedJ2yHlQMmB2UXNaFY24KcWGfUH65vOacglg3E8l8ITOiaA/PC7hvxKTwHy4E8qRsUgpPUYPybk5Cn6iVxV/sDX7JgBk7qOy9cHplJ2kMWBIlxHML0fKCbMRchX62kJ9ZnQJ1lcxbqx9zVFwfvX96wAJKqc7TGlTNz1ye0W9/rjpLBfr678nWn/u2ZBfOPiKENb5hwe8eXFOD6u9yBBZEg5nJwNGZiCU/mMDwYi90/Vjt8RAVSNSuOZPof1/5vIrW/t3L45c2yBVkDqIW0xl6MPLJN9Vj0uHYIcIf+adolJ443YSjIwpTQCy7b5g+V7he7AaOGsUBYOCHB0A4IhWqxVm00i/XV5q2QTmTqnEvXY4VGW0zk8B/v3GkvwhKtr7parzUa9eZNIyNkY/qu9MgUcI4gZgTmX+3/AT2pjop1AwAA= description: Challenge token generated by the hardToken or softToken assigned to the client, This is encrypted by the frontend using Platform End-to-End encryption APIs. rsaVersion: description: Version of the RSA that generates the data in the client (Browsers or Mobile Apps) type: string example: 3.4.1.1 browserDetails: $ref: '#/definitions/BrowserDetails' mobileDetails: $ref: '#/definitions/MobileDetails' required: - rsaVersion BrowserDetails: type: object properties: sessionBrowserUserAgent: description: Web browser identifier type: string example: mozilla/5.0+(macintosh;+intel+mac+os+x+10_14_3) screenResolution: description: Resolution of the client's screen where the browser is running type: string example: 24|1440|900|830 browserTimezone: description: Time zone configured in the browser type: integer format: int32 example: 6 javaVersion: description: Java version loaded in the browser type: integer format: int32 example: 1 browserLanguage: description: Browser language type: string example: lang=es-XL|syslang=|userlang= cookieEnabledIndicator: description: It indicates if cookies are enabled 0-disabled, 1-enabled type: integer format: int32 example: 1 applicationName: description: Name of the application or in its absence the simple name of the browser type: string example: Netscape applicationCode: description: Application code or browser agent code type: string example: Mozilla internetEnabledFlag: description: Flag that indicates if the browser has internet, true-enabled, false-disabled type: boolean example: true screenSize: description: Width of the client's screen type: integer format: int32 example: 1440 screenPixels: description: Deep of pixels on the client's screen type: integer format: int32 example: 24 osName: description: Name of the operating system where the browser is running type: string example: Mac browserVersion: description: Browser version type: integer format: int32 example: 12 browserName: description: Browser name type: string example: Safari required: - browserName - browserVersion - osName - screenPixels - screenSize - internetEnabledFlag - applicationCode - applicationName - cookieEnabledIndicator - browserLanguage - javaVersion - browserTimezone - screenResolution - sessionBrowserUserAgent MobileDetails: type: object properties: queryTime: description: Time at which the request is launched, this data comes from the time of the smartPhone type: string format: date example: "2019-03-09T13:00:00Z" deviceId: description: Device identifier, if the SDK can not recover it, it returns -1 type: string example: "-1" simId: description: Identifier of the SIM card of the device, if the SDK can not recover it, it returns -1 type: string example: "-1" phoneNumber: description: Phone number of the device, if the SDK can not recover it, it returns -1 type: string example: "-1" rsaApplicationKey: description: Key that identifies the RSA SDK type: string example: 10F29219081905EC2BEBFF5AD779EE48 mobileCompromisedIndicator: description: It indicates if the smartphone is altered (Root or Jailbreak),0- disabled,1- enabled type: integer format: int32 example: 0 mobileEmulatorIndicator: description: It indicates if the RSA SDK is running in simulator or in a physical device,0- disabled,1- enabled type: integer format: int32 example: 1 required: - mobileEmulatorIndicator - mobileCompromisedIndicator - rsaApplicationKey - phoneNumber - simId - deviceId - queryTime Installment: type: object properties: installmentId: description: Number to identify the promotion type: string example: "510060" tenureFrequencyNumber: description: It refers to the number of months or period to pay in the promotion type: integer format: int32 example: 6 processingChargeAmount: description: The amount of the commission in order to use the promotion type: number format: double example: 5.050000 required: - installmentId - tenureFrequencyNumber - processingChargeAmount MerchantDetail: type: object properties: merchantCategoryCode: description: Unique identifier of a service (merchant) type: string example: "1174" merchantSubCategory: description: Line of business or activity of the merchant type: string example: "01" installmentPlans: $ref: '#/definitions/Installment' paymentConfigurationDetail: type: array items: $ref: '#/definitions/PaymentConfigurationDetail' required: - merchantCategoryCode - merchantSubCategory PaymentConfigurationDetail: type: object properties: paymentReferenceId: description: Unique ID used by front-end to identify the input of the payment reference type: integer format: int32 example: 2 paymentReferenceValue: description: Input of the payment reference type: string example: 123ABC456DEF required: - paymentReferenceValue PaymentConfirmationDetail: type: object properties: duplicatePaymentAllowedFlag: description: This flag indicates if it's possible to accept a duplicated payment of the service type: boolean example: false paymentAmount: description: Payment Amount type: number format: double example: 1234.560000 paymentScheduleDate: description: Date and time used when the operation is scheduled for future day type: string format: dateTime example: 2019-08-18T10:10:10.000z feesAndChargesDetail: type: array items: $ref: '#/definitions/FeesAndChargesDetail' required: - paymentAmount FeesAndChargesDetail: type: object properties: feeCode: description: Code of Fee Type type: integer example: 1 feeType: description: 'Type of Fee or Charge, example: SURCHARGE, DISCOUNT, COMMISSION, TAX_COMMISSION, TAX_PAYMENT' type: string example: SURCHARGE feeAmount: description: Amount of the Fee or Charge type: number format: double example: 1234.560000 BillPaymentResponse: type: object properties: paymentAuthorizationCode: description: This tells the payment authorization status type: string example: "12345" paymentStatus: description: Status of the payment type: integer format: int32 example: 3 paymentStatusReason: description: Description of the status of the payment type: string example: SCHEDULED paymentDate: description: Date and time when the payment will be performed if scheduled or if it was immediate, this is the date and time of authorization type: string format: dateTime example: 2019-04-25T17:20:00.000z accountInformation: $ref: '#/definitions/AccountInformation' required: - paymentAuthorizationCode - paymentStatus - paymentStatusReason - paymentDate AccountInformation: type: object properties: accountId: description: Unique ID used by front end to indentify the account type: string example: "123456" accountBalanceInformation: $ref: '#/definitions/AccountBalanceInformation' required: - accountId AccountBalanceInformation: type: object properties: currentBalanceAmount: description: The current balance amount type: number format: double example: 15000.230000 required: - currentBalanceAmount ErrorResponse: properties: type: type: string description: Invalid - Request did not confirm to the specification and was unprocessed and rejected. Please fix the value and try again enum: - error - warn - invalid - fatal code: description: Error code which qualifies the error type: string details: description: Human readable explanation specific to the occurrence of the problem type: string location: description: The name of the field that resulted in the error type: string moreInfo: description: More Info can be used to pass any additional details type: string uuid: description: 128 bit UUID that you generate for every request type: string timestamp: description: Timestamp of the error type: string required: - type - code x-ibm-configuration: enforced: true testable: true phase: realized securityDefinitions: OAuth2 Application Flow: type: oauth2 description: "" flow: application scopes: /api/v1: "" tokenUrl: https://sandbox.externalapib2b.wlb.nam.nsroot.net:7101/mx-gcgapi-uat/sandbox2/api/v1/oauth/token Client ID: type: apiKey description: "" in: header name: X-IBM-Client-Id security: - OAuth2 Application Flow: - /api/v1 Client ID: [] x-ibm-endpoints: - endpointUrl: https://sandbox.externalapib2b.wlb.nam.nsroot.net:7101/mx-gcgapi-uat/sandbox2 type: - production - development ...