Upon receiving a bill for customer payments or refunds, a payment or refund process is required.
Payment is utilized for processing a range of transactions associated with the insurance business, such as premium refunds for endorsements and claim compensations.
API List
- /bcp-core/payment/v1/approvePaymentWithEs
- /bcp-core/payment/v1/approvePaymentByArapIds
- /bcp-core/payment/v1/approvePaymentAdvanced
- /bcp-core/payment/v1/approveStatementPayment
- /bcp-core/payment/v1/singlePayment
- /bcp-core/payment/v1/massivePayment
- /bcp-core/payment/v1/receiptRefund
- /bcp-core/payment/v1/reversePayment
Payment Approval API
Approved AP records are generated from various transactions. When a payment is received from a business module, business users should first approve the payment before the cash is actually disbursed.
Unlike collecting money, paying out money typically involves extensive approval processes for verification and validation.
During the approval process, related finance staff might decide which APs can be paid out and which are in dispute, requiring further investigation before payment.
API Path - approvePaymentWithEs
/bcp-core/payment/v1/approvePaymentWithEs
Business Usage
Use the Index field in ARAP to query AP records that meet the approval criteria and approve them; each approved AP record will generate a Payment record. During the query, the filterList parameter in Conditions can exclude all AP records that should be excluded.
Certain fields for Payment can be assigned within the PaymentInfo object when requesting data. Dynamic fields for Payment are also processed here. Note that these fields to be assigned must exist in the Payment Data Dictionary (DD). Additionally, since one AP generates one Payment in this API, the values of these fields for all Payments are the same during a single API processing cycle.
API Sample
Sample Request
{
"Conditions": {
"FilterList": [
"CR20240500000143",
"CR20240500000152"
],
"IsApproved": "N",
"ArapCate": "2",
"ArapType": "-1001",
"NeedStatement": "N",
"FullOrgCode.multiLineExact": "10001",
"PaymentInfo": {
"PaymentMethod": "100",
"CustomerField001":"Field001",
"CustomerField002":"Field002"
}
},
"FromRangeConditions": {
"InsertTime": "2024-05-21"
},
"ToRangeConditions": {
"InsertTime": "2024-05-21"
},
"Module": "Arap",
"PageNo": 1,
"PageSize": 10,
"SortField": "ArapId",
"SortType": "asc"
}Sample Response
[
{
"@pk": 874333532,
"@type": "BcpArap-Arap",
"Amount": 1004.4,
"ArapCate": "2",
"ArapId": 874333532,
"ArapNo": "CR20240500000070",
"ArapStatus": "1",
"ArapType": "-1001",
"Balance": 1004.4,
"BizTransId": 87XXXXX30,
"BookingCurrencyCode": "USD",
"BusinessObjectId": 1100002651088,
"Commission": -93,
"CurrencyCode": "USD",
"CurrentPeriod": 1,
"DirectBookingEr": 1,
"DirectEr": 1,
"DueDate": "2024-05-22",
"GenerateDate": "2024-05-21T11:22:01",
"HasMandate": "N",
"HasNote": "N",
"IsApproved": "N",
"IsOffsetByCommission": "N",
"LocalCurrencyCode": "USD",
"NeedStatement": "N",
"OffsetAmount": 0,
"OffsetByCommissionAmount": 0,
"OperateTime": "2024-05-21T11:22:01",
"PayerPayeeName": "PolicyCollection",
"PayerPayeeType": "IndiCustomer",
"PaymentMethod": "100",
"PeriodEndDate": "2024-05-22",
"PeriodStartDate": "2024-05-22",
"RefFeeId": 874333531,
"Tax": -74.4,
"TotalPeriods": 1,
"VersionSeq": 1
}
]API Path - approvePaymentByArapIds
/bcp-core/payment/v1/approvePaymentByArapIds
Business Usage
Using APIds to query AP records and approve them; each approved AP record will generate a corresponding payment record.
API Sample
Sample Request
[
"11172824431,CCAE33D6B9229901187CFF406D664F69",
"11172824430,BFDE7F7DE876BBC63C1B091FE120768A",
"11172824432,F845345156E5DF8E9FFEE6C8C31115CF"
]Sample Response
{
"Model": [
{
"@pk": 11509270002,
"@type": "BcpPayment-Payment",
"Amount": 1004.4,
"ApproveBy": 10000046972028,
"ApproveTime": "2025-08-28T18:00:59",
"ArapIds": [
11505284466
],
"BizTransId": "115XXXXX464,B71XXXXXD14AEXXXXX08FAE57D3XXXXX",
"BookingCurrencyCode": "CNY",
"BranchCode": "10001",
"BusinessObjectId": 1100002652600,
"CurrencyCode": "CNY",
"DetailList": [
{
"@pk": 11509270003,
"@type": "BcpPaymentDetail-PaymentDetail",
"Amount": 1004.4,
"BookingCurrencyCode": "CNY",
"BusinessObjectId": 1100002652739,
"CurrencyCode": "CNY",
"DirectBookingEr": 1,
"DirectEr": 1,
"IsExpense": "N",
"LocalCurrencyCode": "CNY",
"PaymentDetailId": 11509270003,
"RefId": "11505284466,147F39A5606F021DF22C716896EB0CB6",
"RefType": "3"
}
],
"DirectBookingEr": 1,
"DirectEr": 1,
"HasMandate": "N",
"HasNote": "N",
"LastOperateBy": 10000046972028,
"LastOperateTime": "2025-08-28T18:00:59",
"LocalCurrencyCode": "CNY",
"PayerPayeeName": "PolicyCollection",
"PaymentId": "11509270002,7EC9485282C12CA9EF1DAC75FF7756DA",
"PaymentMethod": "100",
"PaymentNo": "PYMT20250800000103",
"PaymentStatus": "2",
"PaymentType": "1",
"VersionSeq": 1
}
],
"Status": "OK"
}API Path - approvePaymentAdvanced
/bcp-core/payment/v1/approvePaymentAdvanced
Business Usage
approvePaymentAdvanced is an advanced payment approval API that can handle complex refund and settlement scenarios in a single call. It is especially suitable for insurance cancellation / refund cases where:
- Multiple AR/AP entries must be approved together, and
- AP (credit/refund) needs to be offset against AR (debit/failed collection) first,
- Only the net refundable amount should finally be paid out.
This API can:
-
Approve multiple AR/AP groups and generate multiple Payments in one request
- The request body contains an
approvePaymentListarray. - Each group will generate one independent Payment.
- Each Payment can contain:
- a single AP, or
- multiple APs, or
- a combination of APs and ARs (Offset AP against AR first, then create Payment for the net amount).
- The request body contains an
-
Offset AP against AR within the same Payment group and pay only the net AP amount
- When a Payment group contains both AP and AR, the system will first calculate the net amount within the group:
- Business rule: Total AP amount > Total AR amount is required.
- System behavior:
- Use AP amount to offset AR amount inside the group.
- Only the remaining net AP amount will be used to generate the Payment.
Typical use case
For an installment premium policy, earlier installments have been paid while later installments remain unpaid. The customer then cancels the policy and a full refund is triggered, generating AP records for the full refundable amount. In this case, we need to use the refund APs to first offset the unpaid ARs, and only pay the net refund amount to the customer.
Real-world example:
- A policy is cancelled after the first four installments were initially marked as settled.
- At cancellation, a credit refund (AP / CR) of –1,681.57 is generated, assuming all four installments were successfully collected.
- The actual refundable amount should be –969.43, not –1,681.57.
Using
approvePaymentAdvanced, you can:- Put the original refund AP(s) and the outstanding AR(s) into the same Payment group.
- Let the system offset AP against AR inside that group.
- Automatically generate a Payment only for the net amount –969.43, effectively adjusting the over-refund.
-
Support Commission offset against AR/AP during approval
If you need to use commission (SalesCommission) to offset part of AR/AP in the same process:
- Use the
arapListmode in the request, and - For each AR/AP object, set:
IsOffsetByCommission = "Y"OffsetByCommissionAmount = <amount to be offset by commission>The system will:
- Apply commission offset according to these fields,
- Update
SalesCommissionbalance and status accordingly, - Still support the same AP + AR netting logic inside each Payment group.
- Use the
-
Flexibly assign Payment fields and dynamic fields
When creating Payment records, you can directly specify:
- Core fields such as
PaymentNo,PaymentMethod, etc. - Any dynamic fields already configured in the Payment Data Dictionary (e.g.
CustomerField001, etc.).
Notes:
- If
PaymentNois passed in the request, the system will use this value directly and will not auto-generate a new Payment No. - Dynamic fields must be pre-configured in the Payment Data Dictionary. Otherwise, the API will return a “field does not exist” error.
- Core fields such as
Usage Modes
approvePaymentAdvanced provides two usage modes to match different business complexity levels:
Mode 1 – Use arapIdList (simple AP/AR grouping, no commission offset)
Applicable scenarios:
- You only need to specify which AP/AR entries each Payment is composed of.
- You do not need to use commission to offset AR/AP.
- Typical combinations:
- AP + AP
- AP + AP + AR (AP offsets AR inside the group, net AP generates Payment)
- Single AP
In this mode, you only pass AR/AP IDs via
arapIdList.
Key points:
- In the request body, each group in
approvePaymentListcorresponds to one Payment:
System behavior:
- Automatically identify whether each ID in
arapIdListis AP or AR. - Validate that, within each group, total AP amount > total AR amount.
- Perform internal netting of AP – AR inside the group.
- Generate one Payment per group for the net AP amount.
API Sample Sample Request
{
"ApprovePaymentList":[
{
"ArapIdList":[
"11656842702", //AP
"11656842703", //AP
"11656842704", //AP
"11656842680" //AR
],
"PaymentNo":"PAY20221000035512"
//"CustomerField001":"CR2XXXXX0003XXXX"
},
{
"ArapIdList":["11656842705"],
"CustomerField001":"CR2XXXXX0003XXXX"
}
]
}Sample Response
[
{
"@pk": 11656922135,
"@type": "BcpPayment-Payment",
"Amount": 502.2,
"ApproveBy": 10000080472063,
"ApproveTime": "2025-12-05T10:46:06",
"ArapIds": [
11656842703,
11656842702,
11656842680,
11656842704
],
"BookingCurrencyCode": "CNY",
"BranchCode": "10001",
"BusinessObjectId": 1100002652600,
"CurrencyCode": "CNY",
"DetailList": [
{
"@pk": 11656922136,
"@type": "BcpPaymentDetail-PaymentDetail",
"Amount": 251.1,
"BookingCurrencyCode": "CNY",
"BusinessObjectId": 1100002652739,
"CurrencyCode": "CNY",
"DirectBookingEr": 1,
"DirectEr": 1,
"IsExpense": "N",
"LocalCurrencyCode": "CNY",
"PaymentDetailId": 11656922136,
"RefId": "11656842702,70CF74FE0839A65B04B3AF6B41E529AF",
"RefType": "3"
},
{
"@pk": 11656922137,
"@type": "BcpPaymentDetail-PaymentDetail",
"Amount": 251.1,
"BookingCurrencyCode": "CNY",
"BusinessObjectId": 1100002652739,
"CurrencyCode": "CNY",
"DirectBookingEr": 1,
"DirectEr": 1,
"IsExpense": "N",
"LocalCurrencyCode": "CNY",
"PaymentDetailId": 11656922137,
"RefId": "11656842703,01ED8BD490AD9C0F6AFA8C5D1242924E",
"RefType": "3"
},
{
"@pk": 11656922138,
"@type": "BcpPaymentDetail-PaymentDetail",
"Amount": 251.1,
"BookingCurrencyCode": "CNY",
"BusinessObjectId": 1100002652739,
"CurrencyCode": "CNY",
"DirectBookingEr": 1,
"DirectEr": 1,
"IsExpense": "N",
"LocalCurrencyCode": "CNY",
"PaymentDetailId": 11656922138,
"RefId": "11656842704,893F48E7A52BCF4AA4D139644A9AFC93",
"RefType": "3"
},
{
"@pk": 11656922139,
"@type": "BcpPaymentDetail-PaymentDetail",
"Amount": -251.1,
"BookingCurrencyCode": "CNY",
"BusinessObjectId": 1100002652739,
"CurrencyCode": "CNY",
"DirectBookingEr": 1,
"DirectEr": 1,
"IsExpense": "N",
"LocalCurrencyCode": "CNY",
"PaymentDetailId": 11656922139,
"RefId": "11656842680,97C954F886EC4731ECE6705BD4F4E0BF",
"RefType": "3"
}
],
"DirectBookingEr": 1,
"DirectEr": 1,
"HasMandate": "N",
"HasNote": "N",
"InsertBy": 10000080472063,
"InsertTime": "2025-12-05T10:46:05.904",
"LastOperateBy": 10000080472063,
"LastOperateTime": "2025-12-05T10:46:06",
"LocalCurrencyCode": "CNY",
"PayerPayeeName": "PolicyCollection",
"PaymentId": "11656922135,A2EA903552BE577ED3A047F1C3D23019",
"PaymentMethod": "100",
"PaymentNo": "PAY20221000035512",
"PaymentStatus": "2",
"PaymentType": "1",
"UpdateBy": 10000080472063,
"UpdateTime": "2025-12-05T10:46:05.904",
"VersionSeq": 1
},
{
"@pk": 11656922142,
"@type": "BcpPayment-Payment",
"Amount": 251.1,
"ApproveBy": 10000080472063,
"ApproveTime": "2025-12-05T10:46:06",
"ArapIds": [
11656842705
],
"BookingCurrencyCode": "CNY",
"BranchCode": "10001",
"BusinessObjectId": 1100002652600,
"CurrencyCode": "CNY",
"DetailList": [
{
"@pk": 11656922143,
"@type": "BcpPaymentDetail-PaymentDetail",
"Amount": 251.1,
"BookingCurrencyCode": "CNY",
"BusinessObjectId": 1100002652739,
"CurrencyCode": "CNY",
"DirectBookingEr": 1,
"DirectEr": 1,
"IsExpense": "N",
"LocalCurrencyCode": "CNY",
"PaymentDetailId": 11656922143,
"RefId": "11656842705,F9E385D7CDE6DC7F9E5EBCF509AB5B79",
"RefType": "3"
}
],
"DirectBookingEr": 1,
"DirectEr": 1,
"HasMandate": "N",
"HasNote": "N",
"InsertBy": 10000080472063,
"InsertTime": "2025-12-05T10:46:06.033",
"LastOperateBy": 10000080472063,
"LastOperateTime": "2025-12-05T10:46:06",
"LocalCurrencyCode": "CNY",
"PayerPayeeName": "PolicyCollection",
"PaymentId": "11656922142,D7EAB3C06EABC492885F5A50CADE8773",
"PaymentMethod": "100",
"PaymentNo": "PYMT20251200000024",
"PaymentStatus": "2",
"PaymentType": "1",
"UpdateBy": 10000080472063,
"UpdateTime": "2025-12-05T10:46:06.033",
"VersionSeq": 1,
"CustomerField001": "CR2XXXXX0003XXXX"
}
]Mode 2 – Use arapList (full AR/AP objects, supports commission offset)
Applicable scenarios:
- You need to offset AR/AP with commission during Payment approval, for example:
- Settle channel commission together with refundable premium;
- Precisely control how much of each AR/AP is offset by commission.
System behavior:
- While generating Payments:
- Process commission offset based on
IsOffsetByCommissionandOffsetByCommissionAmount. - Update
SalesCommissionbalance and status. - Apply the same AP + AR netting logic inside each Payment group.
In this mode, each item in arapList is a full AR/AP object (or at least contains required fields):
API Sample
Sample Request
{
"ApprovePaymentList": [
{
"ArapList": [
{
"@type": "BcpArap-Arap",
"ArapId": "11656842808,9A2EC70A7895BDAEC3D74CF2EEE0098C",
"IsOffsetByCommission": "Y",
"OffsetByCommissionAmount": 38.25
},
{
"@type": "BcpArap-Arap",
"ArapId": "11656842809,D9084AB298337C8AA4BFB1C3158CBCB4",
"IsOffsetByCommission": "Y",
"OffsetByCommissionAmount": 38.25
},
{
"@type": "BcpArap-Arap",
"ArapId": "11656842773,9E8414F41574191642D28CF248F64C8D",
"IsOffsetByCommission": "Y",
"OffsetByCommissionAmount": -38.25
}
],
"PaymentNo": "PAY20221000036789"
},
{
"ArapList": [
{
"@type": "BcpArap-Arap",
"ArapId": "11656842810,6627C9185D3E1D8715D793CA9508C3B2",
"IsOffsetByCommission": "Y",
"OffsetByCommissionAmount": 38.25
}
]
}
]
}Sample Response
[
{
"@pk": 11656922255,
"@type": "BcpPayment-Payment",
"Amount": 374.85,
"ApproveBy": 10000080472063,
"ApproveTime": "2025-12-05T12:08:54",
"ArapIds": [
11656842809,
11656842808,
11656842773
],
"BookingCurrencyCode": "CNY",
"BranchCode": "10001",
"BusinessObjectId": 1100002652600,
"CurrencyCode": "CNY",
"DetailList": [
{
"@pk": 11656922256,
"@type": "BcpPaymentDetail-PaymentDetail",
"Amount": 374.85,
"BookingCurrencyCode": "CNY",
"BusinessObjectId": 1100002652739,
"CurrencyCode": "CNY",
"DirectBookingEr": 1,
"DirectEr": 1,
"IsExpense": "N",
"LocalCurrencyCode": "CNY",
"PaymentDetailId": 11656922256,
"RefId": "11656842808,9A2EC70A7895BDAEC3D74CF2EEE0098C",
"RefType": "3"
},
{
"@pk": 11656922257,
"@type": "BcpPaymentDetail-PaymentDetail",
"Amount": 374.85,
"BookingCurrencyCode": "CNY",
"BusinessObjectId": 1100002652739,
"CurrencyCode": "CNY",
"DirectBookingEr": 1,
"DirectEr": 1,
"IsExpense": "N",
"LocalCurrencyCode": "CNY",
"PaymentDetailId": 11656922257,
"RefId": "11656842809,D9084AB298337C8AA4BFB1C3158CBCB4",
"RefType": "3"
},
{
"@pk": 11656922258,
"@type": "BcpPaymentDetail-PaymentDetail",
"Amount": -374.85,
"BookingCurrencyCode": "CNY",
"BusinessObjectId": 1100002652739,
"CurrencyCode": "CNY",
"DirectBookingEr": 1,
"DirectEr": 1,
"IsExpense": "N",
"LocalCurrencyCode": "CNY",
"PaymentDetailId": 11656922258,
"RefId": "11656842773,9E8414F41574191642D28CF248F64C8D",
"RefType": "3"
}
],
"DirectBookingEr": 1,
"DirectEr": 1,
"HasMandate": "N",
"HasNote": "N",
"InsertBy": 10000080472063,
"InsertTime": "2025-12-05T12:08:54.042",
"LastOperateBy": 10000080472063,
"LastOperateTime": "2025-12-05T12:08:54",
"LocalCurrencyCode": "CNY",
"PayerPayeeCode": "CI00001023",
"PayerPayeeName": "StatementPayment",
"PaymentId": "11656922255,9206A8E0CA51F982AC1575F4338B357C",
"PaymentNo": "PAY20221000036789",
"PaymentStatus": "2",
"PaymentType": "1",
"UpdateBy": 10000080472063,
"UpdateTime": "2025-12-05T12:08:54.042",
"VersionSeq": 1
},
{
"@pk": 11656922266,
"@type": "BcpPayment-Payment",
"Amount": 374.85,
"ApproveBy": 10000080472063,
"ApproveTime": "2025-12-05T12:08:54",
"ArapIds": [
11656842810
],
"BookingCurrencyCode": "CNY",
"BranchCode": "10001",
"BusinessObjectId": 1100002652600,
"CurrencyCode": "CNY",
"DetailList": [
{
"@pk": 11656922267,
"@type": "BcpPaymentDetail-PaymentDetail",
"Amount": 374.85,
"BookingCurrencyCode": "CNY",
"BusinessObjectId": 1100002652739,
"CurrencyCode": "CNY",
"DirectBookingEr": 1,
"DirectEr": 1,
"IsExpense": "N",
"LocalCurrencyCode": "CNY",
"PaymentDetailId": 11656922267,
"RefId": "11656842810,6627C9185D3E1D8715D793CA9508C3B2",
"RefType": "3"
}
],
"DirectBookingEr": 1,
"DirectEr": 1,
"HasMandate": "N",
"HasNote": "N",
"InsertBy": 10000080472063,
"InsertTime": "2025-12-05T12:08:54.205",
"LastOperateBy": 10000080472063,
"LastOperateTime": "2025-12-05T12:08:54",
"LocalCurrencyCode": "CNY",
"PayerPayeeCode": "CI00001023",
"PayerPayeeName": "StatementPayment",
"PaymentId": "11656922266,31728F0E49B60793BEE184CFF0B10667",
"PaymentNo": "PYMT20251200000026",
"PaymentStatus": "2",
"PaymentType": "1",
"UpdateBy": 10000080472063,
"UpdateTime": "2025-12-05T12:08:54.205",
"VersionSeq": 1
}
]API Path - approveStatementPayment
/bcp-core/payment/v1/approveStatementPayment
Business Usage
Merge the AR and AP specified in the Statement, perform an approval operation, and finally generate a Payment data
API Sample
Sample Request
{
"PaymentAmount": 1014.44,
"CurrencyCode": "CNY",
"BranchCode": 10001,
"PaymentMethod": 30,
"ArapList":[
{"@type":"BcpArap-Arap","ArapId":"11509060027,2668F304DE65645CD8D35332BF9506FB","ArapNo":"DR20250800005310"},
{"@type":"BcpArap-Arap","ArapId":"11509060028,7096E4F26A1F33E81A9499A7DE333727","ArapNo":"DR20250800005311"}
]
}Sample Response
{
"@pk": 11509060077,
"@type": "BcpPayment-Payment",
"Amount": -1014.44,
"ApproveBy": 10000046972028,
"ApproveTime": "2025-08-28T17:58:28",
"ArapIds": [
11509060028,
11509060027
],
"BookingCurrencyCode": "CNY",
"BranchCode": "10001",
"BusinessObjectId": 1100002652600,
"CurrencyCode": "CNY",
"DetailList": [
{
"@pk": 11509060078,
"@type": "BcpPaymentDetail-PaymentDetail",
"Amount": -507.22,
"BookingCurrencyCode": "CNY",
"BusinessObjectId": 1100002652739,
"CurrencyCode": "CNY",
"DirectBookingEr": 1,
"DirectEr": 1,
"IsExpense": "N",
"LocalCurrencyCode": "BRL",
"PaymentDetailId": 11509060078,
"RefId": "11509060027,2668F304DE65645CD8D35332BF9506FB",
"RefType": "3"
},
{
"@pk": 11509060079,
"@type": "BcpPaymentDetail-PaymentDetail",
"Amount": -507.22,
"BookingCurrencyCode": "CNY",
"BusinessObjectId": 1100002652739,
"CurrencyCode": "CNY",
"DirectBookingEr": 1,
"DirectEr": 1,
"IsExpense": "N",
"LocalCurrencyCode": "BRL",
"PaymentDetailId": 11509060079,
"RefId": "11509060028,7096E4F26A1F33E81A9499A7DE333727",
"RefType": "3"
}
],
"DirectBookingEr": 1,
"DirectEr": 1,
"HasMandate": "N",
"HasNote": "N",
"LastOperateBy": 10000046972028,
"LastOperateTime": "2025-08-28T17:58:28",
"LocalCurrencyCode": "CNY",
"PaymentId": "11509060077,6DCE09A2D4E5E8EDD4232B5BBEDC70DD",
"PaymentMethod": "30",
"PaymentNo": "PYMT20250800000102",
"PaymentStatus": "2",
"PaymentType": "1",
"VersionSeq": 1
}Internal Data Behavior
The business models involved in the approval payment operation have the following associative relationships:
- Generate new
BcpPaymentbusiness data, with the basic data originating from the main transaction modelBcpBizTransactionand associating withBcpArapthrough the ArapIds field. - Generate the payment schedule data of
BcpPaymentDetailwhose main data comes fromBcpArap.
Single Payment API
API Path
/bcp-core/payment/v1/singlePayment
Business Usage
Single Payment is used to support payment confirmation for a single transaction.
API Sample
Sample Request
[
{
"@pk":9699282032,
"@type":"BcpPayment-Payment",
"Amount":1004.4,
"ApproveBy":10000001178005,
"ApproveTime":"2023-12-20T03:50:21",
"ArapIds":[
9699282029
],
"BookingCurrencyCode":"USD",
"BranchCode":"10006",
"BusinessObjectId":1100002652600,
"CurrencyCode":"USD",
"DetailList":[
{
"@pk":9699282033,
"@type":"BcpPaymentDetail-PaymentDetail",
"Amount":1004.4,
"BookingCurrencyCode":"USD",
"BusinessObjectId":1100002652739,
"CurrencyCode":"USD",
"DirectBookingEr":1,
"DirectEr":1,
"IsExpense":"N",
"LocalCurrencyCode":"USD",
"PaymentDetailId":9699282033,
"RefId":"9699282029,3E2DABCEE975307D998DC5199434D1DF",
"RefType":"3"
}
],
"DirectBookingEr":1,
"DirectEr":1,
"HasMandate":"N",
"HasNote":"N",
"LocalCurrencyCode":"USD",
"PayerPayeeName":"PolicyCollection",
"PaymentId":"9699282032,87A1872BA3A3DBA061E5026A83D65E7B",
"PaymentMethod":"100",
"PaymentNo":"PYMT20231200000079",
"PaymentStatus":"2",
"PaymentType":"1",
"PolicyNo":"POTBTI01226628",
"VersionSeq":1
}
]Sample Response
{
"Model": [{
"@pk": 9699282032,
"@type": "BcpPayment-Payment",
"Amount": 1004.4,
"ApproveBy": 10000001178005,
"ApproveTime": "2023-12-20T03:50:21",
"ArapIds": [9699282029],
"BookingCurrencyCode": "USD",
"BranchCode": "10006",
"BusinessObjectId": 1100002652600,
"CompleteBy": 10000001178005,
"CompleteTime": "2023-12-20T03:50:25.418",
"CurrencyCode": "USD",
"DetailList": [{
"@pk": 9699282033,
"@type": "BcpPaymentDetail-PaymentDetail",
"Amount": 1004.4,
"BookingCurrencyCode": "USD",
"BusinessObjectId": 1100002652739,
"CurrencyCode": "USD",
"DirectBookingEr": 1,
"DirectEr": 1,
"IsExpense": "N",
"LocalCurrencyCode": "USD",
"PaymentDetailId": 9699282033,
"RefId": "9699282029,3E2DABCEE975307D998DC5199434D1DF",
"RefType": "3"
}],
"DirectBookingEr": 1,
"DirectEr": 1,
"HasMandate": "N",
"HasNote": "N",
"LocalCurrencyCode": "USD",
"PayerPayeeName": "PolicyCollection",
"PaymentId": "9699282032,87A1872BA3A3DBA061E5026A83D65E7B",
"PaymentMethod": "100",
"PaymentNo": "PYMT20231200000079",
"PaymentStatus": "3",
"PaymentType": "1",
"VersionSeq": 2
}],
"Status": "OK"
}Internal Data Behavior
The business models involved in the single payment operation have the following associative relationships:
- Change the ArapStatus of
BcpPaymentdata generated from the approved payment to 3 (paid). - Query the associated AP data through the ArapIds of
BcpPayment, and change the AP balance to 0 and the ArapStatus to 2 (settled). - Obtain the associated
SalesCommissiondata through the BizTransId and CurrentPeriod ofBcpArap, and change CommissionStatus to 2 (waiting for issue). - Accumulate the amount of
SalesCommissionto the ReleaseCommissionAmount field ofBcpPaymentDetail.
What You Can Extend
After the payment has been completed as described above, it is necessary to transmit data back to the business party and send data to the sales channel commission.
Massive Payment API
API Path
/bcp-core/payment/v1/massivePayment
Business Usage
Massive payment API is designed for confirming payments across a bulk of businesses.
API Sample
Sample Request
{
"SearchCondition": {
"Conditions": {
"PaymentMethod": "100",
"ArapType": null,
"CurrencyCode": "USD",
"BranchCode": "10001",
"PaymentStatus": "2",
"IsFullOrg": true,
"InsurerAccountCode": "10001"
},
"FuzzyConditions": {
"PolicyNo": null,
"ClaimNo": null,
"PayerPayeeName": null
},
"OrFuzzyConditions": {},
"FromRangeConditions": {
"ApproveTime": "2023-12-20"
},
"ToRangeConditions": {
"ApproveTime": "2023-12-20"
},
"PageNo": 1,
"PageSize": 10,
"SortField": "index_time",
"SortType": "desc",
"Module": "BcpPayment"
}
}Sample Response
{"Status":"OK"}Internal Data Behavior
Massive Payment is the bulk operation mode of Single Payment. The business models and data flows involved are consistent.
What You Can Extend
After the payment has been completed as described above, it is necessary to transmit data back to the business party and send data to the sales channel commission.
Receipt Refund API
API Path
/bcp-core/payment/v1/receiptRefund
Business Usage
The Receipt refund API is used to refund the remaining amount on a specific receipt.
API Sample
Sample Request
{
"BranchCode": "10001",
"PayerPayeeCode": "CI00001023",
"PayerPayeeName": "PrePaidPolicy",
"PaymentAmount": 1004.4,
"PaymentMethod": "101",
"BankCode": "",
"BankAccountNo": "",
"CurrencyCode": "USD",
"CollectionList": [
{
"@pk": 9699282056,
"@type": "BcpCollection-Collection",
"Amount": 1004.4,
"Balance": 1004.4,
"BankAccountNo": "",
"BankCode": "",
"BookingCurrencyCode": "USD",
"BranchCode": "10002",
"BusinessObjectId": 1100002651715,
"ChequeNo": "",
"CollectionId": "9699282056,BA2899973AD6BC4EDD53206180E10D52",
"CollectionStatus": "1",
"CollectionType": "1",
"CurrencyCode": "USD",
"DetailList": [
{
"@pk": 9699282057,
"@type": "BcpCollectionDetail-CollectionDetail",
"Amount": 1004.4,
"BookingCurrencyCode": "USD",
"BusinessObjectId": 1100002651850,
"CollectionDetailId": 9699282057,
"CurrencyCode": "USD",
"DirectBookingEr": 1,
"DirectEr": 1,
"IsExpense": "N",
"LocalCurrencyCode": "USD",
"RefId": "9699282058,2AC05A99671BF5162671225863DF334C",
"RefType": "2"
}
],
"DirectBookingEr": 1,
"DirectEr": 1,
"HasMandate": "N",
"HasNote": "N",
"IsManualReceipt": "N",
"LocalCurrencyCode": "USD",
"OrderIds": [
9699282055
],
"PayerPayeeCode": "CI00001023",
"PayerPayeeName": "PrePaidPolicy",
"PayerPayeeType": "1",
"PaymentMethod": "100",
"ReceiptNo": "RCT20231200000020",
"ReceiveBy": 10000001178005,
"ReceiveTime": "2023-12-20T14:02:36",
"ReferencePerson": "",
"VersionSeq": 1
}
],
"DynamicFieldMap": {
"PolicyNo": "POTBTI01233981"
}
}Sample Response
{
"Model": {
"@pk": 9699282246,
"@type": "BcpPayment-Payment",
"Amount": 1004.4,
"ApproveBy": 10000046972028,
"ApproveTime": "2023-12-20T07:32:17.664",
"BankAccountNo": "",
"BankCode": "",
"BookingCurrencyCode": "USD",
"BranchCode": "10001",
"BusinessObjectId": 1100002652600,
"CurrencyCode": "USD",
"DetailList": [
{
"@pk": 9699282249,
"@type": "BcpPaymentDetail-PaymentDetail",
"Amount": 1004.4,
"BookingCurrencyCode": "USD",
"BusinessObjectId": 1100002652739,
"CurrencyCode": "USD",
"DirectBookingEr": 1,
"DirectEr": 1,
"IsExpense": "N",
"LocalCurrencyCode": "USD",
"PaymentDetailId": 9699282249,
"RefId": "9699282058,2AC05A99671BF5162671225863DF334C",
"RefType": "2"
}
],
"DirectBookingEr": 1,
"DirectEr": 1,
"HasMandate": "N",
"HasNote": "N",
"LocalCurrencyCode": "USD",
"PayerPayeeCode": "CI00001023",
"PayerPayeeName": "PrePaidPolicy",
"PaymentId": "9699282246,F0FCF7563A8A4D533FE497F6F4B1F545",
"PaymentMethod": "101",
"PaymentNo": "PYMT20231200000098",
"PaymentStatus": "2",
"VersionSeq": 1
},
"Status": "OK"
}Internal Data Behavior
The business models involved in the receipt refund operation have the following relationships:
- Query the information of
BcpCollectionDetailthrough the collection information transmitted in the UI. - Query the data of
BcpSuspensethrough the RefId ofBcpCollectionDetail. - Generate new payment information. The basic data of
BcpPaymentandBcpPaymentDetailcome from the collection. - Associate
BcpPaymentDetailwithBcpPaymentthrough PaymentId, and withBcpSuspensethrough RefId. The amount is the balance field of suspense. - Update the balance field of
BcpSuspenseto 0.
Reverse Payment API
API Path
/bcp-core/payment/v1/reversePayment
Business Usage
The Reverse Payment API is used to reverse the payment transaction.
API Sample
Sample Request
[
{
"@pk":9699282032,
"@type":"BcpPayment-Payment",
"Amount":1004.4,
"ApproveBy":10000001178005,
"ApproveTime":"2023-12-20T03:50:21",
"ArapIds":[
9699282029
],
"BookingCurrencyCode":"USD",
"BranchCode":"10006",
"BusinessObjectId":1100002652600,
"CompleteBy":10000001178005,
"CompleteTime":"2023-12-20T03:50:25",
"CurrencyCode":"USD",
"DetailList":[
{
"@pk":9699282033,
"@type":"BcpPaymentDetail-PaymentDetail",
"Amount":1004.4,
"BookingCurrencyCode":"USD",
"BusinessObjectId":1100002652739,
"CurrencyCode":"USD",
"DirectBookingEr":1,
"DirectEr":1,
"IsExpense":"N",
"LocalCurrencyCode":"USD",
"PaymentDetailId":9699282033,
"RefId":"9699282029,3E2DABCEE975307D998DC5199434D1DF",
"RefType":"3"
}
],
"DirectBookingEr":1,
"DirectEr":1,
"HasMandate":"N",
"HasNote":"N",
"LocalCurrencyCode":"USD",
"PayerPayeeName":"PolicyCollection",
"PaymentId":"9699282032,87A1872BA3A3DBA061E5026A83D65E7B",
"PaymentMethod":"100",
"PaymentNo":"PYMT20231200000079",
"PaymentStatus":"3",
"PaymentType":"1",
"PolicyNo":"POTBTI01226628",
"VersionSeq":2
}
]Sample Response
{
"Model": [{
"@pk": 9699282032,
"@type": "BcpPayment-Payment",
"Amount": 1004.4,
"ApproveBy": 10000001178005,
"ApproveTime": "2023-12-20T03:50:21",
"ArapIds": [9699282029],
"BookingCurrencyCode": "USD",
"BranchCode": "10006",
"BusinessObjectId": 1100002652600,
"CompleteBy": 10000001178005,
"CompleteTime": "2023-12-20T03:50:25",
"CurrencyCode": "USD",
"DetailList": [{
"@pk": 9699282033,
"@type": "BcpPaymentDetail-PaymentDetail",
"Amount": 1004.4,
"BookingCurrencyCode": "USD",
"BusinessObjectId": 1100002652739,
"CurrencyCode": "USD",
"DirectBookingEr": 1,
"DirectEr": 1,
"IsExpense": "N",
"LocalCurrencyCode": "USD",
"PaymentDetailId": 9699282033,
"RefId": "9699282029,3E2DABCEE975307D998DC5199434D1DF",
"RefType": "3"
}],
"DirectBookingEr": 1,
"DirectEr": 1,
"HasMandate": "N",
"HasNote": "N",
"LocalCurrencyCode": "USD",
"PayerPayeeName": "PolicyCollection",
"PaymentId": "9699282032,87A1872BA3A3DBA061E5026A83D65E7B",
"PaymentMethod": "100",
"PaymentNo": "PYMT20231200000079",
"PaymentStatus": "5",
"PaymentType": "1",
"ReverseBy": 10000001178005,
"ReverseId": 9699282048,
"ReverseTime": "2023-12-20T03:50:29.518",
"VersionSeq": 3
}],
"Status": "OK"
}Internal Data Behavior
The business models involved in the reverse payment operation have the following relationships:
- Query the data related to
BcpPaymentDetailthrough the payment information. - There are two reverse scenarios: Reversing the data for single and mass payments, and the data for receipt refunds.
• When the RefType of BcpPaymentDetail is 2 (suspense), reverse the receipt refund data.
• When the RefType is of other types, reverse the data of single and mass payments. At the same time, distinguish the reverse actions by judging the PaymentStatus field of BcpPayment. When PaymentStatus is 2 (approved), just update the ARAP model; when PaymentStatus is 3 (paid), update both the ARAP and commission model simultaneously.
What You Can Extend
After completing the reverse, it is necessary to transmit data back to the business party and to send data to the sales channel commission.