dxp-ux

(0 reviews)

customerBillById - TMF678 GET- retriveCustomerBill By ID - V1

GET /customerBill/{id}

The customerBill API provides below features

  1. To retrieve CustomerBill Summary for particular bill and retrieve PDF for CSG, ARIA, Evertec.
  2. To retrieve CustomerBill PDF for Liberty Caribbean markets (JM).
URL
http://[localhost]:[port]/dxp-ux/v1/{businessId}/customerBill/{id}
URL PARAMS
nametypedescriptionrequired (mandatory-Y, optional-N, Not applicable- N/A)
businessIdstring2 letter ISO 3166 country code Ex: PR, JM, PAY (PR, LC)
idstringBill identifier. billNo received from GET:/customerBillY (PR, LC)
namevaluedescriptionrequired (mandatory-Y, optional-N, Not applicable- N/A)
client_idstringThe client_id identifying the channel. Minimum characters: 5Y (PR, LC)
client_secretstringPassword associated with the client_id. Minimum characters: 5Y (PR, LC)
X-Correlation-IDstringIdentifier that correlates HTTP request between a client and server. Any identification model (UUDI, checksum, etc.) can be used, as long as it is a unique value to differentiate a transaction Minimum characters: 1Y (PR, LC) mandatory for business
lobstringThe Line of Business Identifier currently available are: POSTPAID, FIXEDY(PR), N/A(LC)
channelIdstringThis is to identify the source (Project). Value : APP Conditionally Mandatory.Y(PR), N/A(LC)
targetSystemstringThis is not required for POSTPAID. Use this data type to indicate target system name/id in your request. enum csg From biz api, account length is used for routing. For CSG system account length is 16. csg is only in scope for now.
Allowed values are "EVERTEC"
Y(PR - Evertec), N(PR- CSG), N/A(LC)
Query Param
nametypedescriptionrequired (mandatory-Y, optional-N, Not applicable- N/A)
accountIdstringThis is billing account number which is unique for the customer Note: account id for which we are fetching bill. From biz api, account length is used for routing. For CSG system account length is 16Y(PR-CSG), Y(LC)
runTypestringReset counter value for bill reference numberN/A(PR, LC)
pdfbooleanFlag to include the bill pdf. If true, pdf content is send in response, if false or absent ,only bill summary is sent.
Note for LC: This value should be sent as true.
Y(PR,LC)
pdfIdbooleanFlag to indicate Evertec pdf bill. Bill details from CSG will not be present in the response. Note : this queryparam for Csg if lob as "FIXED"Y(PR-CSG), N/A(LC)
billingAccount.idstringcustomer account id, without any "-"Y(PR- Evertec, LC)
billDatestringbill date of the account example "2024-01-10"Y(PR-Evertec), N/A(LC)
Data Model Response
nametypedescriptionrequired (mandatory-Y, optional-N, Not applicable- N/A)
idstringUnique identifier of he billY(PR, LC)
hrefstringBill unique referenceN(PR),N/A(LC)
billDatedatetimeBill dateY(PR),N/A(LC)
billNostringBill reference known by the customer or the party and displayed on the bill. Could be different from the idN(PR),Y(LC)
categorystringCategory of the bill produced : For example: Anniversary Period Invoice, normal, duplicate, interim, last, trial customer or credit noteN(PR),N/A(LC)
lastUpdatedatetimeDate of bill last updateN(PR),N/A(LC)
nextBillDatedatetimeApproximate date of the next bill production given for information (only used for onCycle bill)N(PR),N/A(LC)
paymentDueDatedatetimeDate at which the amount due should have been paidY(PR),N/A(LC)
runTypestringonCycle (a bill can be created as a result of a cycle run) or offCycle (a bill can be created as a result of other events such as customer request or account close)N(PR),N/A(LC)
amountDuearrayA base / value business entity used to represent moneyY(PR),N/A(LC)
amountDue.unitstringCurrency (ISO4217 norm uses 3 letters to define the currency)N(PR),N/A(LC)
amountDue.valuestringA positive floating point numberN(PR),N/A(LC)
accountBalancearrayBalances linked to the accountN(PR),N/A(LC)
accountBalance.amountobjectBalance amountN(PR),N/A(LC)
accountBalance.balanceTypestringType of the balance - Previous Balance, deposit balance, disputed balance, loyalty balance, receivable balance...Default value is "BeginningBalance"N(PR),N/A(LC)
accountBalance.amount.valuenumberA floating point numberN(PR),N/A(LC)
accountBalance.amount.unitstringCurrency (ISO4217 norm uses 3 letters to define the currency)N(PR),N/A(LC)
accountBalance.validForobjectThe period of time for which the attachment is valid. Not in scopeN(PR),N/A(LC)
accountBalance.validFor.endDateTimedatetimeEnd of the time period, using IETC-RFC-3339 formatN(PR),N/A(LC)
accountBalance.validFor.startDateTimedatetimeStart of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an endN(PR),N/A(LC)
appliedPaymentobject arrayThe applied payment is the result of lettering process. It enables to assign automatically or manually part of incoming payment amount to a bill.N(PR),N/A(LC)
appliedPayment.appliedAmountarrayA base / value business entity used to represent moneyN(PR),N/A(LC)
appliedPayment.appliedAmount.unitstringCurrency (ISO4217 norm uses 3 letters to define the currency)N(PR),N/A(LC)
appliedPayment.appliedAmount.valuestringA positive floating point numberN(PR),N/A(LC)
appliedPayment.paymentarrayA EntityRef is a detailed description of a bill structure.N(PR),N/A(LC)
appliedPayment.payment.idstringUnique identifier for the EntityRefN(PR),N/A(LC)
appliedPayment.payment.hrefstringReference of the EntityRefN(PR),N/A(LC)
appliedPayment.payment.namestringName of the EntityReN(PR),N/A(LC)
appliedPayment.payment.@baseTypestringWhen sub-classing, this defines the super-classN(PR),N/A(LC)
appliedPayment.payment.@schemaLocationstringA URI to a JSON-Schema file that defines additional attributes and relationshipsN(PR),N/A(LC)
appliedPayment.payment.@typestringWhen sub-classing, this defines the sub-class entity nameN(PR),N/A(LC)
appliedPayment.payment.@referredTypestringThe actual type of the target instance when needed for disambiguation.N(PR),N/A(LC)
appliedPayment.@baseTypestringWhen sub-classing, this defines the super-classN(PR),N/A(LC)
appliedPayment.@schemaLocationstringA URI to a JSON-Schema file that defines additional attributes and relationshipsN(PR),N/A(LC)
appliedPayment.@typestringWhen sub-classing, this defines the sub-class entity nameN(PR),N/A(LC)
billDocumentarrayAn attachment by value or by reference. For AttachmentRefOrValue, the attribute type,schemaLocation and referredType are related to the contained entity and not to AttchmentRefOrValue itselfN(PR),Y(LC)
billDocument.idstringUnique identifier for this particular attachmentN(PR),Y(LC)
billDocument.hrefstringURI for this AttachmentN(PR),N/A(LC)
billDocument.attachmentTypestringAttachment type such as video, pictureN(PR), N(LC)
billDocument.contentstringThe actual contents of the attachment object, if embedded, encoded as base64N(PR),Y(LC)
billDocument.descriptionstringA narrative text describing the content of the attachmentN(PR),N/A(LC)
billDocument.mimeTypestringAttachment mime type such as extension file for video, picture and documentN(PR),N(LC)
billDocument.namestringThe name of the attachmentN(PR),Y(LC)
billDocument.urlstringUniform Resource Locator, is a web page address (a subset of URI)N(PR),N/A(LC)
billDocument.sizeobjectThe size of the attachment.N(PR),Y(LC)
billDocument.size.amountstringAmount of the bill document sizeN(PR),Y(LC)
billDocument.size.unitstringunit of the bill document sizeN(PR),Y(LC)
billDocument.validForarrayThe period of time for which the attachment is validN(PR),N/A(LC)
billDocument.validFor.endDateTimedatetimeEnd of the time period, using IETC-RFC-3339 formatN(PR),N/A(LC)
billDocument.validFor.startDateTimedatetimeStart of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an endN(PR),N/A(LC)
billDocument.@typestringtype of the content.N(PR, LC)
billingAccountarrayA EntityRef is a detailed description of a bill structure.N(PR),Y(LC)
billingAccount.idstringUnique identifier of the billing account(BAN-CAN)N(PR),Y(LC)
billingAccount.hrefstringReference of the EntityRefN(PR),N/A(LC)
billingAccount.namestringName of the EntityReN(PR),N/A(LC)
billingAccount.@baseTypestringWhen sub-classing, this defines the super-classN(PR),N/A(LC)
billingAccount.@schemaLocationstringA URI to a JSON-Schema file that defines additional attributes and relationshipsN(PR),N/A(LC)
billingAccount.@typestringType of the billingAccount.id (AccountRef)N(PR),N/A(LC)
billingAccount.@referredTypestringThe actual type of the target instance when needed for disambiguation.N(PR, LC)
billingPeriodarrayA period of time, either as a deadline (endDateTime only) a startDateTime only, or bothN(PR),N/A(LC)
billingPeriod.validFor.endDateTimedatetimeEnd of the time period.N(PR),N/A(LC)
billingPeriod.validFor.startDateTimedatetimeStart of the time period. If you define a start, you must also define an endN(PR),N/A(LC)
financialAccountarrayAccountReceivable reference. An account of money owed by a party to another entity in exchange for goods or services that have been delivered or used. An account receivable aggregates the amounts of one or more party accounts (billing or settlement) owned by a given party.N(PR),N/A(LC)
financialAccount.idstringUnique identifier for the accountN(PR),N/A(LC)
financialAccount.hrefstringReference of the accountN(PR),N/A(LC)
financialAccount.namestringName of the accountN(PR),N/A(LC)
financialAccount.accountBalancearrayBalances linked to the accountN(PR),N/A(LC)
balanceTypeType of the balance ; deposit balance, disputed balance, loyalty balance, receivable balance
balanceType.amountarray
balanceType.unitstringCurrency (ISO4217 norm uses 3 letters to define the currency)N(PR),N/A(LC)
balanceType.valuestringA positive floating point numberN(PR),N/A(LC)
balanceType.validFor
balanceType.validFor.endDateTimedatetimeEnd of the time period, using IETC-RFC-3339 formatN(PR),N/A(LC)
balanceType.validFor.startDateTimedatetimeStart of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an endN(PR),N/A(LC)
balanceType.@baseTypestringWhen sub-classing, this defines the super-classN(PR),N/A(LC)
balanceType.@schemaLocationstringA URI to a JSON-Schema file that defines additional attributes and relationshipsN(PR),N/A(LC)
balanceType.@typestringWhen sub-classing, this defines the sub-class entity nameN(PR),N/A(LC)
financialAccount.@baseTypestringWhen sub-classing, this defines the super-classN(PR),N/A(LC)
financialAccount.@schemaLocationstringA URI to a JSON-Schema file that defines additional attributes and relationshipsN(PR),N/A(LC)
financialAccount.@typestringWhen sub-classing, this defines the sub-class entity nameN(PR),N/A(LC)
financialAccount.@referredTypestringThe actual type of the target instance when needed for disambiguation.N(PR),N/A(LC)
paymentMethodarrayPaymentMethod reference. A payment method defines a specific mean of payment (e.g direct debit)N(PR),N/A(LC)
paymentMethod.idstringUnique identifier for the EntityRefN(PR),N/A(LC)
paymentMethod.hrefstringReference of the EntityRefN(PR),N/A(LC)
paymentMethod.namestringName of the EntityReN(PR),N/A(LC)
paymentMethod.@baseTypestringWhen sub-classing, this defines the super-classN(PR),N/A(LC)
paymentMethod.@schemaLocationstringA URI to a JSON-Schema file that defines additional attributes and relationshipsN(PR),N/A(LC)
paymentMethod.@typestringWhen sub-classing, this defines the sub-class entity nameN(PR),N/A(LC)
paymentMethod.@referredTypestringThe actual type of the target instance when needed for disambiguation.N(PR),N/A(LC)
relatedPartyarrayRelated Entity reference. A related party defines party or party role linked to a specific entityN(PR),N/A(LC)
relatedParty.idstringUnique identifier for the related entity.N(PR),N/A(LC)
relatedParty.hrefstringReference of the related entity.N(PR),N/A(LC)
relatedParty.namestringName of the related entity.N(PR),N/A(LC)
relatedParty.rolestringRole played by the related partyN(PR),N/A(LC)
relatedParty.@baseTypestringWhen sub-classing, this defines the super-classN(PR),N/A(LC)
relatedParty.@schemaLocationstringA URI to a JSON-Schema file that defines additional attributes and relationshipsN(PR),N/A(LC)
relatedParty.@typestringRelated party of the billing account. It can be BillingGroupNumber, AccountMasterPlanRefN(PR),N/A(LC)
relatedParty.@referredTypestringThe actual type of the target instance when needed for disambiguation.N(PR),N/A(LC)
remainingAmountarrayA base / value business entity used to represent moneyN(PR),N/A(LC)
remainingAmount.unitstringCurrency (ISO4217 norm uses 3 letters to define the currency)N(PR),N/A(LC)
remainingAmount.valuestringA positive floating point numberN(PR),N/A(LC)
statestringCurrent state of the bill. enum: - new - onHold - validated - sent - partiallyPaid - settled - due - paidY(PR),N/A(LC)
taxExcludedAmountarrayA base / value business entity used to represent moneyN(PR),N/A(LC)
taxExcludedAmount.unitstringCurrency (ISO4217 norm uses 3 letters to define the currency)N(PR),N/A(LC)
taxExcludedAmount.valuestringA positive floating point numberN(PR),N/A(LC)
taxIncludedAmountarrayA base / value business entity used to represent moneyN(PR),N/A(LC)
taxIncludedAmount.unitstringCurrency (ISO4217 norm uses 3 letters to define the currency)N(PR),N/A(LC)
taxIncludedAmount.valuestringA positive floating point numberN(PR),N/A(LC)
taxItemarrayA tax item is created for each tax rate and tax type used in the bill.N(PR),N/A(LC)
taxItem.taxCategorystringtax CategoryN(PR),N/A(LC)
taxItem.taxRatenumberApplied rate of the taxN(PR),N/A(LC)
taxItem.taxAmountarrayAmount of tax expressed in the given currencyN(PR),N/A(LC)
taxItem.taxAmount.unitstringCurrency (ISO4217 norm uses 3 letters to define the currency)N(PR),N/A(LC)
taxItem.taxAmount.valuestringA positive floating point numberN(PR),N/A(LC)
@baseTypestringWhen sub-classing, this defines the super-classN(PR),N/A(LC)
@schemaLocationstringA URI to a JSON-Schema file that defines additional attributes and relationshipsN(PR),N/A(LC)
@typestringHard coded value "InvoiceLineDetails"N(PR),N/A(LC)

Extended Characteristics data model for PR:

nametypedescriptionrequired
extendedCharacteristic.nameStringacct_locale_name (Name of the account level locale)N
extendedCharacteristic.valuestringSystem_US_English_localeN
extendedCharacteristic.namestringrb_status (Indicates whether the current invoice has been rebilled.)N
extendedCharacteristic.valuebooleantrue/ falesN
extendedCharacteristic.nameStringoverall_bill_from_date (The earliest date for this invoicing period.)N
extendedCharacteristic.valueString2021-09-10T00:00:00.000ZN
extendedCharacteristic.nameStringoverall_bill_thru_date (The latest date for this invoicing period.)N
extendedCharacteristic.valueString2021-10-09T00:00:00.000ZN

appliedPayment.extendedCharacteristic for PR:

nametypedescriptionrequired
extendedCharacteristic.nameStringservice_name (The name corresponding to this line items service code.)N
extendedCharacteristic.valuestringMobile Connection FeeN
extendedCharacteristic.namestringclient_service_id (The unique client-defined unique service ID associated with this line item.)N
extendedCharacteristic.valueStringPR_B2C_Mobile_Con_Fee_VoiceN
extendedCharacteristic.nameStringplan_name (The name of the plan associated with this line item)N
extendedCharacteristic.valueStringUnlimited Elite BaseN
extendedCharacteristic.nameStringclient_plan_id (The unique client-defined plan ID associated with this line item)N
extendedCharacteristic.valueStringUnlimited_Elite_BaseN
extendedCharacteristic.nameStringline_type (Specifies the type of charge or credit associated with this line item.)N
extendedCharacteristic.valueStringActivation ChargeN
extendedCharacteristic.nameStringclient_rate_schedule_id (Client-defined unique identifier for the rate schedule used to generate this invoice line item.)N
extendedCharacteristic.valueStringPHLSC01_10615583N
extendedCharacteristic.nameStringclient_plan_instance_id (Client-defined unique identifier of the plan instance directly associated with this invoice line item. Note that this parameter may be a master plan instance or a supplemental plan instance.)N
extendedCharacteristic.valueString25898444N
extendedCharacteristic.nameStringIndicates whether the invoice line is related to tax. Invoice lines that are a tax charge or a credit applied to a tax charge will be returned as '1'. All other invoice lines will be returned as '0'.N
extendedCharacteristic.valueString0N
extendedCharacteristic.nameStringunits (The number of units of this service code billed on this line item.)N
extendedCharacteristic.valueString1N
extendedCharacteristic.nameStringrate_per_unit (The rate per unit billed)N
extendedCharacteristic.valueString45N
extendedCharacteristic.nameStringrate_schedule_tier_no (Aria-assigned unique identifier for the rate schedule used to generate this invoice line item.)N
extendedCharacteristic.valueString1N
Key Considerations
PR Implementation(CSG):
  1. To fetch CustomerBill Summary from PR Csg customers need to pass lob as "Fixed"
  2. To fetch CustomerBill Summary from PR Customers in aria need to pass lob as "POSTPAID".
  3. To fetch CustomerBill Summary for PR from Csg,

    • if pdf is true and pdfId is false, then response is from csg and evertec pdf data
    • if pdf is false and pdfId is true, then response is from only evertec pdf data
    • if pdf is false and pdfId is false, then response is from csg data
LC Implementation:
  1. This is implemented to retrieve customerBill data and pdf content from Liberate and Cerillion systems.
  2. This is implemented for Jamaica market (JM).
  3. billDocument[].content will be retrieved in base64 format from the backend systems (This content should be converted to generate customerBill PDF).
  4. "billNo" refers to the bill reference number.
  5. Following are the mandatory fields in the request

    • id (uriParam) - bill reference number should be sent
    • pdf (queryParam) - should be sent as true
Possible Error Scenarios for PR:
IF WE ARE PASSING INVALID (accountId) NUMBER IN QUERYPARAMS
{
    "errors": [
        {
            "code": 400,
            "message": "ARIA:Invoice_Details",
            "description": "Aria API get_invoice_details_m failed with error - 1009 | account does not exist"
        },
        {
            "code": 400,
            "message": "ARIA:Payments_On_Invoice",
            "description": "Aria API get_payments_on_invoice_m failed with error - 1009 | account does not exist"
        }
    ]
}
INVALID URL
{
    "errors": [
        {
            "code": 405,
            "message": "APIKIT:METHOD_NOT_ALLOWED",
            "description": "HTTP Method get not allowed for : /{businessId}"
        }
    ]
}
INVALID LOB
{
    "errors": [
        {
            "code": 400,
            "message": "ERROR:LOB_VALIDATION",
            "description": "Lob must be of type POSTPAID"
        }
    ]
}
INVALID CHANNELID
{
    "errors": [
        {
            "code": 501,
            "message": "Not implemented",
            "description": "Operation GET for Business Id: PR and channelId:ECOM not implemented"
        }
    ]
}

Reviews