Insurance Services
General Insurance Services
BCP Components and APIs
Billing API
Sidebar On this page

Concept

Billing is the process by which business models, such as PA, Claim, and RI, generate and send ARAP and fee information to the BCP for processing.

Upon the completion of a transaction within a business module, such as policy issuance or claim settlement, it’s necessary to provide data to the BCP module. This data is used not only to record such transactions but also to initiate the process of collecting premiums or paying claims to end-customers. Such a recording process is called Billing to have a Bill generated.

Usually, if the bill is to collect money, it will involve one or multiple AR (Account Receivable) or if it’s to pay out money, it involves one or multiple AP (Account Payable). Each AR or AP can contain a list of detailed breakdown of fees.

From a system implementation perspective, the billing process usually involves integration with multiple systems, including:

  • Policy Admin
  • Claim
  • Reinsurance
  • Sales Channel
  • Printing Management

All these systems can send their billing information to BCP via our billing APIs for further transactions.

Upon receiving the billing, the BCP module can conduct collections, payments, or offsets one by one or consolidate them into multiple statements for bulk operations.

AR and AP statuses change between Outstanding, Paid, and Cancelled. AR and AP balances change from a certain amount of 0.

Key Configuration

Now all BCP-related configuration are conducted in the data table module. There are several data tables that are key to launching any new project, and users must ensure they have a complete understanding of all these tables before starting any BCP project.

  • BcpFeeType

Fee Type Definition: The bcpFeeType passed to BCP through the SyncDataToBCP API must be defined in this table. In addition, bcpFeeType and BizModule also must match, otherwise BCP cannot correctly recognize data, which will cause SyncDataToBCP requests to fail.

  • CurrencySetting

Currency Setting for Branch: This includes the local currency and booking currency. If branch and currency data are missing from this table, the system page will display an error message, and SyncDataToBCP API requests will also fail.

API List

  • /bcp-core/fee/v1/syncDataToBCP
  • /bcp-core/fee/v1/syncAdditionalFeeToBCP?generateNewTransaction={{isNewTransaction}}
  • /bcp-core/arap/v1/updateArapUnSensitiveFields
  • /bcp-core/arap/v1/cancelArap
  • /bcp-core/arap/v1/cancelArapWithGenerateFeeWithModel
  • /bcp-core/prepay/v1/cancelPrepayOrder
  • /bcp-core/fee/v1/syncDataToBCPBatch

ARAP & Fee Creation API (Business Data Transfer BCP)

API Path

/bcp-core/fee/v1/syncDataToBCP

Business Usage

The business system transmits accounts receivable and accounts payable data to BCP, which generates accounts receivable and accounts payable data.

A business data transmission can contain multiple distinct fee components, such as pre-tax premiums, taxes, commissions, and other types of fees, but can only generate one AR or AP record. A transaction cannot have multiple AR or AP records, otherwise it will result in anomalies in BCPFee data during subsequent operations.

If commissions are treated as a fee item under accounts receivable (AR) or accounts payable (AP), then subsequent collection, payment, or cancellation operations performed on the AR/AP will cause the commissions to be offset or cancelled accordingly. In actual business scenarios, however, commissions are mostly settled independently of AR and AP, while still being dependent on the payment results of AR and AP transactions. In such cases, AR/AP data and commission data should be transmitted to BCP separately. Specifically, only AR/AP data is sent in the first data transmission, which is also referred to as the main transaction. Subsequently, based on this main transaction, commission data is transmitted separately, with an associative relationship established between the two sets of data in the system. This subsequent transmission of commission data is also defined as the additional transaction.

Dynamic Fields

The SyncdataToBcp API supports dynamic fields. Please note that dynamic fields in the API need to be configured in the Data Dictionary in advance, otherwise the API will report an error stating that the field does not exist.

note

A single transaction may contain multiple accounts receivable (AR)/accounts payable (AP) entries, while only one accounts receivable (AR) or one accounts payable (AP) entry is allowed under the same installment of the transaction.

Compliant Scenario Examples Non-Compliant Scenario Examples
Transaction Current Period AR or AP Transaction Current Period AR or AP
Transaction 1 1 1 AR Transaction 2 1 1 AR
Transaction 1 2 1 AR Transaction 2 1 1 AR
Transaction 1 3 1 AR Transaction 2 1 1 AR

API Sample

main transaction Sample Request

{
"BizModule": "10",
"BizSource": "1",
"BizTransType": "NEWBIZ",
"BizUniqueId": "104XXXXXXX3,F166XXXXX5A70F96A90XXXXX9718DXXX",
"BookingCurrencyCode": "USD",
"BranchCode": "10006",
"ChannelCode": "PTY10000047304001",
"ClaimNo": null,
"CurrencyCode": "USD",
"DirectBookingEr": 1,
"FeeList": [
{
"BcpFeeType": "100101",
"AmountSign": "+",
"ArapCate": "1",
"ArapStatus": "1",
"BankName": null,
"CommissionStatus": "1",
"CreditCardHolderName": null,
"CreditCardNo": null,
"OrderStatus": "",
"PayerPayeeType": "IndiCustomer",
"BranchCode": "10006",
"CurrencyCode": "USD",
"PayerPayeeName": "PolicyCollection",
"PaymentMethod": "100",
"TotalPeriods": 1,
"DirectEr": 1,
"DirectBookingEr": 1,
"Amount": 1004.4,
"Balance": 1004.4,
"FeeId": 10480820015,
"CurrentPeriod": 1,
"DueDate": "2024-05-18",
"GlPostDueDate": "2024-05-18",
"PeriodStartDate": "2024-05-18",
"PeriodEndDate": "2024-05-18",
"Commission": 93,
"Tax": 74.4
},
{
"BcpFeeType": "100400",
"Amount": 74.4,
"AmountSign": "+",
"ArapCate": "1",
"ArapStatus": "1",
"CommissionStatus": "1",
"FeeId": 10480820015,
"BranchCode": "10006",
"DueDate": "2024-05-18",
"GlPostDueDate": "2024-05-18",
"CurrencyCode": "USD",
"DirectEr": 1,
"DirectBookingEr": 1,
"CurrentPeriod": 1,
"TotalPeriods": 1,
"PeriodStartDate": "2024-05-18",
"PeriodEndDate": "2024-05-18",
"PayerPayeeName": "PolicyCollection",
"PayerPayeeType": "IndiCustomer",
"PaymentMethod": "100"
},
{
"BcpFeeType": "100501",
"Amount": 930,
"AmountSign": "+",
"ArapCate": "1",
"ArapStatus": "1",
"CommissionStatus": "1",
"FeeId": 10480820015,
"BranchCode": "10006",
"DueDate": "2024-05-18",
"GlPostDueDate": "2024-05-18",
"CurrencyCode": "USD",
"DirectEr": 1,
"DirectBookingEr": 1,
"CurrentPeriod": 1,
"TotalPeriods": 1,
"PeriodStartDate": "2024-05-18",
"PeriodEndDate": "2024-05-18",
"PayerPayeeName": "PolicyCollection",
"PayerPayeeType": "IndiCustomer",
"PaymentMethod": "100"
}
],
"IsPrepay": "N",
"PaymentMethod": "100",
"PaymentType": "1",
"PolicyHolderName": "PolicyCollection",
"PolicyHolderTypeCode": "",
"PolicyHolderTypeName": "IndiCustomer",
"PolicyNo": "POTBTI01238631",
"ProductCode": "TBTI",
"ProductLineCode": "Travel",
"ProductName": "API TEST",
"QuotationNo": "",
"RefTransId": "104XXXXXXX3,F166XXXXX5A70F96A90XXXXX9718DXXX",
"RefTransNo": "POTBTI01238631",
"TotalPeriods": 1
}

Sample Response

[
{
"@pk": 10473721498,
"@type": "BcpArap-Arap",
"Amount": 1004.4,
"ArapCate": "1",
"ArapId": "104XXXXXXX8,F28FXXXXX1580A36D0A2XXXXX9515XXX",
"ArapNo": "DR20240500003747",
"ArapStatus": "1",
"ArapType": "-1001",
"Balance": 1004.4,
"BizTransId": "1047XXXXX94,21F4XXXXX78E99D2BXXXXXD331730XXX",
"BookingCurrencyCode": "USD",
"BusinessObjectId": 1100002651088,
"Commission": 93,
"CurrencyCode": "USD",
"CurrentPeriod": 1,
"DirectBookingEr": 1,
"DirectEr": 1,
"DueDate": "2024-05-18",
"GenerateDate": "2024-05-17T14:47:09.554",
"HasMandate": "N",
"HasNote": "N",
"IsApproved": "N",
"IsOffsetByCommission": "N",
"LocalCurrencyCode": "INR",
"NeedStatement": "N",
"OffsetAmount": 0,
"OffsetByCommissionAmount": 0,
"OperateTime": "2024-05-17T14:47:09.554",
"PayerPayeeName": "PolicyCollection",
"PayerPayeeType": "IndiCustomer",
"PaymentMethod": "100",
"PeriodEndDate": "2024-05-18",
"PeriodStartDate": "2024-05-18",
"RefFeeId": 10473721495,
"Tax": 74.4,
"TotalPeriods": 1,
"Transaction": {
"@pk": 10473721494,
"@type": "BcpBizTransaction-BizTransaction",
"BizModule": "10",
"BizSource": "1",
"BizTransId": "104XXXXX494,21F48XXXXX8E99XXXXX936D33173XXXX",
"BizTransTime": "2024-05-17T14:47:06",
"BizTransType": "NEWBIZ",
"BizUniqueId": "1048XXXXX03,F1667CXXXXX70F9XXXXXAB469718XXXX",
"BookingCurrencyCode": "USD",
"BranchCode": "10006",
"BranchName": "India Branch",
"BusinessObjectId": 1100002651370,
"ChannelCode": "PTY10000047304001",
"ChannelName": "TEST0418",
"ChannelType": "13",
"ChannelTypeName": "Individual Agent",
"CurrencyCode": "USD",
"DirectBookingEr": 1,
"DirectEr": 1,
"HasMandate": "N",
"LocalCurrencyCode": "INR",
"PaymentMethod": "100",
"PaymentType": "1",
"PolicyHolderName": "PolicyCollection",
"PolicyNo": "POTBTI01238631",
"ProductCode": "TBTI",
"ProductLineCode": "Travel",
"ProductName": "API TEST",
"RefTransId": "1048XXXXX03,F1667CXXXXX70F9XXXXXAB469718XXXX",
"RefTransNo": "POTBTI01238631",
"TotalPeriods": 1,
"CustomerField001":"Field001",
"CustomerField002":"Field002"
},
"VersionSeq": 1
}
]

Additional Transaction Sample Request

In this data transmission, based on the BizTransId returned in the main transaction, the BizTransId needs to be transmitted to BCP through the parameter refTransId. In the BCP system, the transaction in step 1 will be associated with the transaction being called this time.

Sample Request

{
"BizModule": "40",
"BizSource": "1",
"BizTransType": "SALESCHANNEL",
"BizUniqueId": "1048XXXXX03,F166XXXXX5A70F96A9XXXXX9718D075100XXX",
"RefTransId": "10473XXXXX4,21F4XXXX78E9XXXX2936D3XXXXXE8",
"BookingCurrencyCode": "USD",
"BranchCode": "10006",
"ChannelCode": "PTY10000047304001",
"ClaimNo": null,
"CurrencyCode": "USD",
"DirectBookingEr": 1,
"FeeList": [
{
"BcpFeeType": "100600",
"Amount": 930,
"AmountSign": "+",
"ArapCate": "1",
"ArapStatus": "1",
"CommissionStatus": "1",
"FeeId": 10279000023,
"BranchCode": "10001",
"DueDate": "2024-04-09",
"CurrencyCode": "USD",
"DirectEr": 1,
"DirectBookingEr": 1,
"CurrentPeriod": 1,
"TotalPeriods": 1,
"PeriodStartDate": "2024-04-09",
"PeriodEndDate": "2024-04-09",
"PayerPayeeName": "PolicyCollection",
"PayerPayeeType": "IndiCustomer",
"PaymentMethod": "100"
}
],
"IsPrepay": "N",
"PaymentMethod": "100",
"PaymentType": "1",
"PolicyHolderName": "PolicyCollection",
"PolicyHolderTypeCode": "",
"PolicyHolderTypeName": "IndiCustomer",
"PolicyNo": "POTBTI01238631",
"ProductCode": "TBTI",
"ProductLineCode": "Travel",
"ProductName": "API TEST",
"QuotationNo": "",
"RefTransNo": "POTBTI01238631",
"TotalPeriods": 1
}

Sample Response

No return

Internal Data Behavior

Related Data Dictionaries:
BcpBizTransaction,BcpFee,BcpArap,SalesCommission

The data of BcpFee can be mainly used in three scenarios based on the field BcpFeeType:

  • Enter BcpArap
  • Enter SalesCommission
  • Send to GL

See the configuration of BcpFeeType code table.

Steps:

  1. Store the main business data of the issue after paid transaction in the main transaction model BcpBizTransaction where data is unmodifiable after it is sent to BCP.

  2. Generate the main transaction model first, and then the main fee model BcpFee; associate the main fee model with BcpBizTransaction through the primary key BizTransId. Data in the main fee model is unmodifiable.

  3. Determine whether the ARAP and commission data are generated and if it’s needed to send to GL based on the field BcpFeeType of BcpFee.

  4. Store the generated ARAP data in BcpArap; associate BcpArap with BcpBizTransaction through the field BizTransId and with BcpFee through the filed RefFeeId. In the subsequent operations, Balance and ArapStatus fields will be changed.

  5. Store the generated commission data in SalesCommission; associate SalesCommission with BcpBizTransaction through the field BizTransId and with BcpFee through the field RefFeeId. In the subsequent operations, two fields will be changed: Balance and CommissionStatus.

  6. Call GI API GLIntegrationVoucherService.createVoucherDetail to send the data of BcpFee to GL when required.

note
  1. FeeType configuration is important for BCP. BcpFeeType plays an important role in all ARAP, COMMISSION and GL transactions. To ensure BCP functions normally, the system administrator needs to have a comprehensive understanding of how to configure the data table - BcpFeeType in advance.

  2. When being associated with the main transaction model BcpBizTransaction, BcpFeedata needs to be sent to GL. Take the following steps:

    (1) Call the API FeeRestful.getFeeListByTransIds to get the targeted data.

    (2) Change the BcpFeeType to the viable type listed in Key Domain and DB Tables.

    (3) Call the API FeeRestful.createList to create a new BcpFee and send it to GL.

  3. The field BcpFeeType cannot be directly sent to GL.

Continue Transmission Fee API

API Path

/bcp-core/fee/v1/syncAdditionalFeeToBCP?generateNewTransaction=false

Business Usage

If the business data has been transmitted to BCP in the main transaction, there are additional fees for the business that also need to be transmitted.

For example, in the business scenario of writing off fees after reinsurance payment, due to the large amount of data for the fees to be written off, a single data request cannot transmit all the fee data to BCP and requires multiple request processing. So data processing can be done through the syncAdditionalFeeToBCP API. When making a request, the parameter bizUniqueId must be the same as the bizUniqueId in the main transaction.

API Sample

Sample Request

{
"bizUniqueId": "104XXXXX003,F166XXXXX5A70F96XXXXXB469718DXXX",
"feeList": [
{
"bcpFeeType": "100900",
"amountSign": "+",
"arapCate": "1",
"arapStatus": "1",
"bankName": null,
"commissionStatus": "1",
"creditCardHolderName": null,
"creditCardNo": null,
"orderStatus": "",
"payerPayeeType": "",
"currencyCode": "USD",
"payerPayeeName": "feeListTrue",
"paymentMethod": "100",
"totalPeriods": 2,
"directEr": 1,
"directBookingEr": 1,
"amount": 1500,
"balance": 1500,
"branchCode": "10006",
"currentPeriod": 2,
"periodStartDate": "2024-03-13",
"periodEndDate": "2024-12-13"
}
]
}

Sample Response

No return.
note

The syncAdditionalFeeToBCP is used to search for existing transaction data or copy a new data based on an existing transaction. Therefore, the generateNewTransaction, bizUniqueId, NewBizUniqueId parameters and parameters under the feelist Objext in this api are valuable, and other parameters will be ignored by this api.

ARAP Update API

API Path

/bcp-core/arap/v1/updateArapUnSensitiveFields

Business Usage

Because of the sensitivity of BCP, as a basic principle, we do not recommend updating any BCP data unless it is necessary. Most BCP updates can be achieved by canceling or reversing the original transaction and re-performing it. For example, canceling an AR and then re-generating it, or reversing a collection and then re-collecting it.

Now there’s only one scenario like updating the payment method, which is allowed and involves BizTransaction and ARAP update. Before calling the respective API, users must go to the Global Parameter to find the BCPConfig and input the field name to be changed in the arapFieldAllowUpdate or biztransFieldAllowUpdate parameter.

BCP

Please pay special attention to the fact that not all fields are allowed to be updated. The following fields are always prohibited from being updated:

BizTransaction:

{"BizModule","BizSource","BizTransId","BizTransTime","BizTransType","BizUniqueId","BookingCurrencyCode","BranchCode","BranchName","CertificateNo","ClaimId","ClaimNo","ClaimSettlementNo","PolicyId","PolicyNo","ProductCode","ProductLineCode","ProductLineName","ProductName","QuotationNo","RefTransId","RefTransNo","RiPolicyId","RiPolicyNo","RiStatementId","RiStatementNo","SubClaimId","SubClaimNo","SubEndoType","SubEndoTypeName","CurrencyCode","DirectBookingEr","DirectEr","EndoId","EndoNo","EndoType","EndoTypeName","IsUndo","LocalCurrencyCode","MasterPolicyNo","TotalPeriods"}

ARAP:

{"ARAPSequence","Amount","ArapCate","ArapId","ArapNo","ArapStatus","ArapType","Balance","BizTransId","BookingCurrencyCode","Commission","CurrencyCode","CurrentPeriod","DirectBookingEr","DirectEr","HasNote","IsApproved","IsOffsetByCommission","LocalCurrencyCode","OffsetAmount","OffsetByCommissionAmount","OriginRefId","OriginRefNo","Premium","PremiumBeforeTax","RefFeeId","Tax","TotalPeriods","VersionSeq"}

Except for BizTransaction and ARAP, you are not allowed to update other domain information such as fees, collections, and payments.

API Sample

Sample Request

[
{
"@type": "BcpArap-Arap",
"ArapId": "916XXXXX16,C0BXXXXX5D31CFDXXXXXAA7A6B672XXX",
"StatementNo": "testtest234",
"StatementType": "CI00000112"
},
{
"@type": "BcpArap-Arap",
"ArapId": "916XXXXX11,66BXXXXX22D300XXXXX3CEE203799XXX",
"StatementNo": "testtest234",
"StatementType": "CI00000112"
}
]

Sample Response

[
{
"@pk": 9164540816,
"@type": "BcpArap-Arap",
"Amount": 55.23,
"ArapCate": "1",
"ArapId": "916XXXXX16,C0BXXXXX5D31CFDXXXXXAA7A6B672XXX",
"ArapNo": "DR20230900003031",
"ArapStatus": "1",
"ArapType": "-1001",
"Balance": 0,
"BizTransId": "916XXXXX97,00CXXXXXE8BB55XXXXXD0B556B802XXX",
"BookingCurrencyCode": "USD",
"BusinessObjectId": 1100002651088,
"Commission": 5.02,
"CurrencyCode": "USD",
"CurrentPeriod": 4,
"DirectBookingEr": 1,
"DirectEr": 1,
"DueDate": "2024-09-21",
"GenerateDate": "2023-09-21T10:48:27",
"HasMandate": "N",
"HasNote": "N",
"IsApproved": "N",
"IsOffsetByCommission": "N",
"LocalCurrencyCode": "USD",
"NeedStatement": "Y",
"OffsetAmount": 0,
"OffsetByCommissionAmount": 0,
"PayerPayeeType": "20",
"PeriodEndDate": "2024-09-21",
"PeriodStartDate": "2024-05-22",
"Premium": 55.23,
"RefFeeId": 9164540815,
"StatementNo": "testtest234",
"StatementType": "CI00000112",
"TotalPeriods": 4,
"Transaction": {
"@pk": 9164540797,
"@type": "BcpBizTransaction-BizTransaction",
"BizModule": "10",
"BizSource": "1",
"BizTransId": "916XXXXX97,00XXXXXBE8BB55EXXXXX0B556B802XXX",
"BizTransTime": "2023-09-21T10:48:26",
"BizTransType": "NEWBIZ",
"BizUniqueId": "FEE9173750192",
"BookingCurrencyCode": "USD",
"BranchCode": "10001",
"BranchName": "xxxxxx",
"BusinessObjectId": 1100002651370,
"ChannelCode": "PTY10000051656007",
"ChannelName": "apiTest612488",
"ChannelType": "14",
"ChannelTypeName": "Agent Company",
"CurrencyCode": "USD",
"DirectBookingEr": 1,
"DirectEr": 1,
"HasMandate": "N",
"LocalCurrencyCode": "USD",
"PaymentMethod": "100",
"PaymentType": "1",
"PolicyEffDate": "2023-09-21",
"PolicyExpDate": "2024-09-20",
"PolicyHolderCode": "CI00000110",
"PolicyHolderName": "CAT",
"PolicyHolderTypeCode": "IndiCustomer",
"PolicyHolderTypeName": "Individual",
"PolicyId": "917XXXXX92,188XXXXX0A427XXXXXE7B4DD677DAXXX",
"PolicyNo": "POTBTI01219968",
"ProductCode": "TBTI",
"ProductLineCode": "Travel",
"ProductLineName": "Travel",
"ProductName": "Oversea Travel (PBU for Auto Test)",
"QuotationNo": "PABTBTI0001288250",
"RefTransId": "917XXXXX92,188XXXXX0A427XXXXXE7B4DD677DAXXX",
"RefTransNo": "PABTBTI0001288250",
"TotalPeriods": 4
},
"VersionSeq": 7
},
{
"@pk": 9164540811,
"@type": "BcpArap-Arap",
"Amount": 55.23,
"ArapCate": "1",
"ArapId": "916XXXXX11,66BXXXXX22D300XXXXX3CEE203799XXX",
"ArapNo": "DR20230900003030",
"ArapStatus": "1",
"ArapType": "-1001",
"Balance": 0,
"BizTransId": "916XXXXX97,00CXXXXXE8BB5XXXXXAD0B556B802XXX",
"BookingCurrencyCode": "USD",
"BusinessObjectId": 1100002651088,
"Commission": 5.02,
"CurrencyCode": "USD",
"CurrentPeriod": 3,
"DirectBookingEr": 1,
"DirectEr": 1,
"DueDate": "2024-05-21",
"GenerateDate": "2023-09-21T10:48:27",
"HasMandate": "N",
"HasNote": "N",
"IsApproved": "N",
"IsOffsetByCommission": "N",
"LocalCurrencyCode": "USD",
"NeedStatement": "Y",
"OffsetAmount": 0,
"OffsetByCommissionAmount": 0,
"PayerPayeeType": "20",
"PeriodEndDate": "2024-05-21",
"PeriodStartDate": "2024-01-22",
"Premium": 55.23,
"RefFeeId": 9164540810,
"StatementNo": "testtest234",
"StatementType": "CI00000112",
"TotalPeriods": 4,
"Transaction": {
"@pk": 9164540797,
"@type": "BcpBizTransaction-BizTransaction",
"BizModule": "10",
"BizSource": "1",
"BizTransId": "916XXXXX97,00CXXXXXE8BB55XXXXXD0B556B802XXX",
"BizTransTime": "2023-09-21T10:48:26",
"BizTransType": "NEWBIZ",
"BizUniqueId": "FEE9173750192",
"BookingCurrencyCode": "USD",
"BranchCode": "10001",
"BranchName": "xxxxxx",
"BusinessObjectId": 1100002651370,
"ChannelCode": "PTY10000051656007",
"ChannelName": "apiTest612488",
"ChannelType": "14",
"ChannelTypeName": "Agent Company",
"CurrencyCode": "USD",
"DirectBookingEr": 1,
"DirectEr": 1,
"HasMandate": "N",
"LocalCurrencyCode": "USD",
"PaymentMethod": "100",
"PaymentType": "1",
"PolicyEffDate": "2023-09-21",
"PolicyExpDate": "2024-09-20",
"PolicyHolderCode": "CI00000110",
"PolicyHolderName": "CAT",
"PolicyHolderTypeCode": "IndiCustomer",
"PolicyHolderTypeName": "Individual",
"PolicyId": "917XXXXX92,188XXXXX0A4271XXXXX7B4DD677DAXXX",
"PolicyNo": "POTBTI01219968",
"ProductCode": "TBTI",
"ProductLineCode": "Travel",
"ProductLineName": "Travel",
"ProductName": "Oversea Travel (PBU for Auto Test)",
"QuotationNo": "PABTBTI0001288250",
"RefTransId": "917XXXXX92,188XXXXX0A4271XXXXX7B4DD677DAXXX",
"RefTransNo": "PABTBTI0001288250",
"TotalPeriods": 4
},
"VersionSeq": 7
}
]

ARAP Cancel API

API Path

/bcp-core/arap/v1/cancelArapWithGenerateFeeWithModel

Business Usage

Cancel the arap in the outstanding status using either the ArapId or the bizUniqueId. Fields such as GlPostDueDate, newBcpBeeTypeMap, and noNeedCancelBeeType are optional. The function of the field newBcpFeeTypeMap[sourceFeeType, targetFeeType] is to generate Fee data of the specified FeeType from the original Fee data. Additionally, the field noNeedCancelFeeType specifies that the Fee corresponding to the specified FeeType does not need to be cancelled.

API Sample

Sample Request

{
//"bizUniqueId": "9281211908" //Not mandatory
"arapIds": [10816740024]
//"GlPostDueDate":"",
//"newBcpFeeTypeMap":["100600","100601"],//Not mandatory
// "noNeedCancelFeeType":["100400"]//Not mandatory
}

Sample Response

No return.

API Path

/bcp-core/arap/v1/cancelArap?bizUniqueId={{bizUniqueId}}

Business Usage

Cancel the arap in the outStanding status using bizUniqueId.

API Sample

Sample Request

{}

Sample Response

{
"IsSuccess": "Y"
}

Prepayment API (Cash before Cover from Policy Admin, Not Real ARAP Fee)

API Path

/bcp-core/fee/v1/syncDataToBCP

Business Usage

PA transmits the insurance proposal to be charged to BCP.

Distinguish whether it is CBC or NCBC through the transfer parameter is Praypay of the API.

  • Y — Cash Before Cover(CBC)
  • N — Non Cash Before Cover(NCBC)

Dynamic Fields

The SyncdataToBcp API supports dynamic fields. Please note that dynamic fields in the API need to be configured in the Data Dictionary in advance, otherwise the API will report an error stating that the field does not exist.

API Sample

Sample Request

{
"BizModule": "10",
"BizSource": "1",
"BizTransType": "NEWBIZ",
"BizUniqueId": "PREXXXXX29248XXXX",
"BookingCurrencyCode": "USD",
"BranchCode": "10001",
"ChannelCode": "PTY1100064819952",
"CurrencyCode": "USD",
"DirectBookingEr": 1,
"IsPrepay": "Y",
"IsUndo": "1",
"PaymentMethod": "100",
"PaymentType": "1",
"PolicyCate": "1",
"PolicyEffDate": "2024-05-21",
"PolicyExpDate": "2025-05-20T23:59:59",
"PolicyHolderName": "CC",
"PolicyHolderTypeCode": "IndiCustomer",
"PolicyHolderTypeName": "IndiCustomer",
"PolicyId": 24292482801,
"PrepayOrderList": [
{
"Amount": 196.34,
"Balance": 196.34,
"CurrentPeriod": 1,
"DueDate": "2024-05-21",
"PayerPayeeName": "CC",
"PayerPayeeType": "IndiCustomer",
"PeriodEndDate": "2024-05-21",
"PeriodStartDate": "2024-05-21",
"TotalPeriods": 2
}
],
"ProductCode": "TBTI",
"ProductLineCode": "Travel",
"ProductLineName": "Travel",
"ProductName": "Oversea Travel (PBU for Auto Test)",
"QuotationNo": "PTBTI-202405-0000000561",
"RefTransId": 24292482801,
"RefTransNo": "PTBTI-202405-0000000561",
"TotalPeriods": 2
}

Sample Response

[
{
"@pk": 874333504,
"@type": "BcpPrepayOrder-PrepayOrder",
"Amount": 196.34,
"Balance": 196.34,
"BizTransId": 874XXXXX3,
"BookingCurrencyCode": "USD",
"BusinessObjectId": 110XXXXX52813,
"CurrencyCode": "USD",
"CurrentPeriod": 1,
"DirectBookingEr": 1,
"DirectEr": 1,
"DueDate": "2024-05-21",
"LocalCurrencyCode": "USD",
"OrderId": 874333504,
"OrderNo": "DR20240500000124",
"OrderStatus": "1",
"PayerPayeeName": "CC",
"PayerPayeeType": "IndiCustomer",
"PeriodEndDate": "2024-05-21",
"PeriodStartDate": "2024-05-21",
"TotalPeriods": 2,
"VersionSeq": 1,
"CustomerField001":"Field001",
"CustomerField002":"Field002"
}
]

Internal Data Behavior

Related Data Dictionaries:
BcpBizTransaction,BcpPrepayOrder

  1. Store the main business data of the issue after paid transaction in the main transaction BcpBizTransaction where data is unmodifiable after it is sent to BCP.

  2. Store the main data related to the transaction amount in BcpPrepayOrder and associate it with BcpBizTransaction through the primary key BizTransId. The subsequent amount is settled based on two fields of BcpPrepayOrder: Balance and OrderStatus.

API Path

/bcp-core/prepay/v1/cancelPrepayOrder?proposalNo={{proposalNo}}

Business Usage

Cancel the Prepay Order in the outStanding status using proposalNo.

API Sample

Sample Request

{}

Sample Response

{
"AgentCode": "SCCE0025",
"AgentName": "TestParent",
"Amount": 1004.4,
"Balance": 1004.4,
"BranchCode": "10001",
"ChannelCode": "SCCE0025",
"ChannelName": "TestParent",
"CurrencyCode": "CNY",
"LocalCurrencyCode": "CNY",
"PartyName": "PrePaidPolicy",
"PolicyHolderName": "PrePaidPolicy",
"PolicyholderCode": "CI00001023",
"PolicyholderId": "",
"PremiumCurrencyCode": "CNY",
"PrepayOrderStatus": "7",
"ProposalNo": "PABTBTI0001387396",
"QuotationNo": "PABTBTI0001387396"
}

Batch ARAP & Fee Creation API (Business Data Transfer BCP)

API Path

/bcp-core/fee/v1/syncDataToBCPBatch

Business Usage

The batch version of the syncDataToBCP API, which allows multiple transaction objects to be transmitted to BCP in a single request. The business functionality is identical to the single-object API, but supports batch processing to improve efficiency when multiple billing records need to be created simultaneously.

Key Difference: The request body is an array of transaction objects instead of a single object. Each object in the array follows the same structure and validation rules as the single syncDataToBCP API.

API Sample

Sample Request (Batch - Multiple Transactions)

[
{
"BizModule": "10",
"BizSource": "1",
"BizTransType": "NEWBIZ",
"BizUniqueId": "11845900049,323663B0671CFB29A125316337E4BCBB",
"BookingCurrencyCode": "CNY",
"BranchCode": "10006",
"ChannelCode": "PTY10000085305034",
"ClaimNo": null,
"CurrencyCode": "CNY",
"DirectBookingEr": 1,
"FeeList": [
{
"BcpFeeType": "100101",
"AmountSign": "+",
"ArapCate": "1",
"ArapStatus": "1",
"BankName": null,
"CommissionStatus": "1",
"CreditCardHolderName": null,
"CreditCardNo": null,
"OrderStatus": "",
"PayerPayeeType": "IndiCustomer",
"BranchCode": "10006",
"CurrencyCode": "CNY",
"PayerPayeeName": "PolicyCollection",
"PaymentMethod": "100",
"TotalPeriods": 1,
"DirectEr": 1,
"DirectBookingEr": 1,
"Amount": 1004.4,
"Balance": 1004.4,
"FeeId": 11845900060,
"CurrentPeriod": 1,
"DueDate": "2026-03-14",
"GlPostDueDate": "2026-03-14",
"PeriodStartDate": "2026-03-14",
"PeriodEndDate": "2026-03-14",
"Commission": 93,
"Tax": 74.4
},
{
"BcpFeeType": "100400",
"Amount": 74.4,
"AmountSign": "+",
"ArapCate": "1",
"ArapStatus": "1",
"CommissionStatus": "1",
"FeeId": 11845900060,
"BranchCode": "10006",
"DueDate": "2026-03-14",
"GlPostDueDate": "2026-03-14",
"CurrencyCode": "CNY",
"DirectEr": 1,
"DirectBookingEr": 1,
"CurrentPeriod": 1,
"TotalPeriods": 1,
"PeriodStartDate": "2026-03-14",
"PeriodEndDate": "2026-03-14",
"PayerPayeeName": "PolicyCollection",
"PayerPayeeType": "IndiCustomer",
"PaymentMethod": "100"
},
{
"BcpFeeType": "100501",
"Amount": 930,
"AmountSign": "+",
"ArapCate": "1",
"ArapStatus": "1",
"CommissionStatus": "1",
"FeeId": 11845900060,
"BranchCode": "10006",
"DueDate": "2026-03-14",
"GlPostDueDate": "2026-03-14",
"CurrencyCode": "CNY",
"DirectEr": 1,
"DirectBookingEr": 1,
"CurrentPeriod": 1,
"TotalPeriods": 1,
"PeriodStartDate": "2026-03-14",
"PeriodEndDate": "2026-03-14",
"PayerPayeeName": "PolicyCollection",
"PayerPayeeType": "IndiCustomer",
"PaymentMethod": "100"
}
],
"IsPrepay": "N",
"PaymentMethod": "100",
"PaymentType": "1",
"PolicyHolderName": "PolicyCollection",
"PolicyHolderTypeCode": "",
"PolicyHolderTypeName": "IndiCustomer",
"PolicyNo": "POTBTI00025568",
"ProductCode": "TBTI",
"ProductLineCode": "Travel",
"ProductName": "API TEST",
"QuotationNo": "",
"RefTransId": "11845900049,323663B0671CFB29A125316337E4BCBB",
"RefTransNo": "POTBTI00025568",
"TotalPeriods": 1
}
]

Sample Response (Batch - Array of ARAP Arrays)

[
[
{
"@pk": 11837864639,
"@type": "BcpArap-Arap",
"Amount": 1004.4,
"ArapCate": "1",
"ArapId": 11837864639,
"ArapNo": "DR20260300004184",
"ArapStatus": "1",
"ArapType": "-1001",
"Balance": 1004.4,
"BizTransId": 11837864635,
"BookingCurrencyCode": "CNY",
"BusinessObjectId": 1100002651088,
"Commission": 93,
"CurrencyCode": "CNY",
"CurrentPeriod": 1,
"DirectBookingEr": 1,
"DirectEr": 1,
"DueDate": "2026-03-14",
"GenerateDate": "2026-03-13T14:07:13.740",
"HasMandate": "N",
"HasNote": "N",
"IsApproved": "N",
"IsOffsetByCommission": "N",
"LastOperateBy": 10000080472063,
"LastOperateTime": "2026-03-13T14:07:14",
"LocalCurrencyCode": "INR",
"NeedStatement": "N",
"OffsetAmount": 0,
"OffsetByCommissionAmount": 0,
"OperateTime": "2026-03-13T14:07:13.740",
"PayerPayeeName": "PolicyCollection",
"PayerPayeeType": "IndiCustomer",
"PaymentMethod": "100",
"PeriodEndDate": "2026-03-14",
"PeriodStartDate": "2026-03-14",
"RefFeeId": 11837864636,
"Tax": 74.4,
"TotalPeriods": 1,
"Transaction": {
"@pk": 11837864635,
"@type": "BcpBizTransaction-BizTransaction",
"BizModule": "10",
"BizSource": "1",
"BizTransId": 11837864635,
"BizTransTime": "2026-03-13T14:07:13",
"BizTransType": "NEWBIZ",
"BizUniqueId": "11845900049,323663B0671CFB29A125316337E4BCBB",
"BookingCurrencyCode": "CNY",
"BranchCode": "10006",
"BranchName": "Insurer A",
"BusinessObjectId": 1100002651370,
"ChannelCode": "PTY10000085305034",
"ChannelName": "apiTest213773",
"ChannelType": "14",
"ChannelTypeName": "Agent Company",
"CurrencyCode": "CNY",
"DirectBookingEr": 1,
"DirectEr": 12.4425,
"HasMandate": "N",
"LocalCurrencyCode": "INR",
"PaymentMethod": "100",
"PaymentType": "1",
"PolicyHolderName": "PolicyCollection",
"PolicyNo": "POTBTI00025568",
"ProductCode": "TBTI",
"ProductLineCode": "Travel",
"ProductName": "API TEST",
"RefTransId": "11845900049,323663B0671CFB29A125316337E4BCBB",
"RefTransNo": "POTBTI00025568",
"TotalPeriods": 1
},
"VersionSeq": 1
}
]
]

Important Notes

  1. Request Format: The request body must be an array of transaction objects. Each object follows the same structure as the single syncDataToBCP API.

  2. Response Format: The response is a two-dimensional array. Each element in the outer array corresponds to the result of processing each transaction object in the request. Each inner array contains the ARAP records generated for that transaction.

  3. Transaction Independence: Each transaction object in the batch is processed independently. The bizUniqueId must be unique across all transactions in the batch.

  4. Field Validation: All validation rules from the single syncDataToBCP API apply to each transaction object in the batch, including:

    • BcpFeeType must be defined in the BcpFeeType data table
    • BcpFeeType and BizModule must match
    • Branch and currency data must exist in CurrencySetting data table
    • Dynamic fields must be configured in the Data Dictionary in advance
  5. Same Internal Data Behavior: The batch API follows the same internal data processing logic as the single API:

    • Creates BcpBizTransaction for each transaction
    • Creates BcpFee records associated with the transaction
    • Generates BcpArap records based on BcpFeeType configuration
    • Optionally creates SalesCommission records
    • Optionally sends data to GL

Comparison with Single API

FeaturesyncDataToBCPsyncDataToBCPBatch
Request FormatSingle object {}Array of objects [{}]
Response FormatArray of ARAP objects [{}]Array of ARAP arrays [[{}]]
Transactions per Request1Multiple
Use CaseSingle billing operationBatch billing operations
Error HandlingTransaction-levelBatch-level

Feedback
Was this page helpful?
|
Provide feedback