PIX Transaction
当付款人发起或接收支付时,交易数据应发送到我们的服务器。这样,可以根据该数据集对交易所涉及的风险进行分析。
Pix Transactions 对象定义
Request Body
{
"transaction_direction": "received",
"id": "082373263",
"client": {
"id": "123456",
"document_number": "056.966.649-03",
"name": "Francisco Oliveira Benedetti",
"type": "natural_person",
"address": {
"street": "Avenida 13",
"number": "704",
"neighbourhood": "Centro",
"city": "Ituiutaba",
"uf": "MG",
"complement": "Apt 1101",
"postal_code": "38300-140"
},
"email": "mailto@qitech.com.br",
"phone": {
"international_dial_code": "55",
"area_code": "16",
"number": "981610077",
"type": "mobile"
},
"sales_channel": "inbound_sales",
"segment": "Personalité"
},
"amount": 13725,
"transaction_date": "2020-10-07T15:06:25-03:00",
"dict_key": {
"key_type": "cpf",
"key_value": "09991222669",
"assignment_date": "2020-01-15T18:00:00-03:00"
},
"capture_method": "static_qr_code",
"face_recognition_key": "ef39e206-13d5-48de-b368-6c3bbc6f0222",
"validation_key": "69a59de3-0198-4a26-933a-c1de624c147d",
"source_account": {
"participant": "17315359",
"branch": "0000",
"account_number": "10442",
"account_digit": "6",
"owner": {
"type": "legal_person",
"document_number": "07.487.735/0001-69",
"name": "Gioconda Pizzaria e Rotisseria LTDA."
},
"account_type": "CACC",
"opening_date": "2020-01-15T18:00:00-03:00"
},
"destination_account": {
"participant": "60701190",
"branch": "3675",
"account_number": "10442",
"account_digit": "6",
"owner": {
"type": "natural_person",
"document_number": "056.966.649-03",
"name": "Francisco Oliveira Benedetti"
},
"account_type": "SLRY",
"opening_date": "2020-01-15T18:00:00-03:00"
},
"destination_statistics": {
"person":{
"settlements":{
"d90":4,
"m12":67,
"m60":618
},
"application_frauds":{
"d90":0,
"m12":4,
"m60":9
},
"mule_accounts":{
"d90":0,
"m12":0,
"m60":0
},
"scammer_accounts":{
"d90":0,
"m12":0,
"m60":0
},
"other_frauds":{
"d90":0,
"m12":0,
"m60":0
},
"unknown_frauds":{
"d90":0,
"m12":0,
"m60":0
},
"total_frauds_transaction_amount":{
"d90":0,
"m12":0,
"m60":0
},
"distinct_fraud_reporters":{
"d90":0,
"m12":0,
"m60":0
},
"open_reports":0,
"open_reports_distinct_reporters":0,
"rejected_reports":{
"d90":0,
"m12":0,
"m60":0
},
"registered_accounts":0
},
"owner":{
"settlements":{
"d90":0,
"m12":0,
"m60":0
},
"application_frauds":{
"d90":0,
"m12":0,
"m60":0
},
"mule_accounts":{
"d90":0,
"m12":0,
"m60":0
},
"scammer_accounts":{
"d90":0,
"m12":0,
"m60":0
},
"other_frauds":{
"d90":0,
"m12":0,
"m60":0
},
"unknown_frauds":{
"d90":0,
"m12":0,
"m60":0
},
"total_frauds_transaction_amount":{
"d90":0,
"m12":0,
"m60":0
},
"distinct_fraud_reporters":{
"d90":0,
"m12":0,
"m60":0
},
"open_reports":0,
"open_reports_distinct_reporters":0,
"registered_accounts":0
},
"key":{
"settlements":{
"d90":0,
"m12":0,
"m60":0
},
"application_frauds":{
"d90":0,
"m12":0,
"m60":0
},
"mule_accounts":{
"d90":0,
"m12":0,
"m60":0
},
"scammer_accounts":{
"d90":0,
"m12":0,
"m60":0
},
"other_frauds":{
"d90":0,
"m12":0,
"m60":0
},
"unknown_frauds":{
"d90":0,
"m12":0,
"m60":0
},
"total_frauds_transaction_amount":{
"d90":0,
"m12":0,
"m60":0
},
"distinct_fraud_reporters":{
"d90":0,
"m12":0,
"m60":0
},
"open_reports":0,
"open_reports_distinct_reporters":0,
"rejected_reports":{
"d90":0,
"m12":0,
"m60":0
},
"distinct_accounts":{
"d90":0,
"m12":0,
"m60":0
}
}
},
"source": {
"channel": "internet_banking",
"platform": "android",
"ip": "198.185.065.098",
"session_id": "7839jdqd9a8wd9"
}
}
交易必须在转发到处理系统之前发送到 API,以便进行预先欺诈验证。
交易状态表示模型对该交易返回的决策。以下状态用于 analysis_status 标志:
automatically_approvedautomatically_reprovedin_manual_analysispending
以下是 analysis_status 标志中返回的每个决策的含义:
| 状态 | 描述 |
|---|---|
| automatically_approved | 建议批准此交易。 |
| automatically_reproved | 建议拒绝此交易。 |
| approved_by_time | 交易因人工分析时间到期而被批准 |
| reproved_by_time | 交易因人工分析时间到期而被批准 |
| in_manual_analysis | 建议由分析师对该交易进行人工分析。 |
| pending | 交易正在处理中。 |
| 名称 | 类型 | 描述 |
|---|---|---|
| transaction_direction | 枚举 | 注册交易的类型。定义客户是收款还是付款。(必填) |
| id | string | 客户系统中支付的标识符。 此编号对每个支付流程必须唯一 (必填) |
| client | client | 表示客户数据的对象,无论是付款人还是收款人。(必填) |
| amount | 整数 | 支付金额,以分为单位——如"标准"部分所述。(必填) |
| pix_modality | string | 注册交易的类型。指示是否表示转账、找零或取款。 |
| transaction_date | datetime | 交易开始的日期和时间,含时区。(必填) |
| dict_key | dict_key | 表示客户在交易中使用的 DICT 绑定密钥数据的对象。 |
| capture_method | 枚举 | 用于发起支付的方法,是否通过静态或动态 QR Code、数据填写或 DICT 密钥。(必填) |
| face_recognition_key | string | 面部识别密钥,如果已通过我们的面部识别 API 进行面部识别。 |
| validation_key | string | 验证密钥,如果已通过我们的验证 API 对客户进行验证测试。 |
| source_account | source_account | 表示被扣款账户数据的对象。(必填) |
| destination_account | destination_account | 表示被入账账户数据的对象。(必填) |
| destination_statistics | destination_statistics | 表示来自 BACEN DICT API 的被入账账户交易和欺诈历史的对象。(必填) |
| source | source | Source 类型的对象,描述用于发送支付的应用程序信息 |
transaction_direction 的枚举值为:sent 和 received。
pix_modality 的枚举值为:transacation、change 和 withdraw。
capture_method 的枚举值为:static_qr_code、dynamic_qr_code、offline_qr_code、typed。
发送交易
Request Body
{
"id": "12345",
...
}
Response Body
{
"transaction_key": "13d680ef-4b72-4cb2-a63d-cf3d790abaaf",
"analysis_status": "automatically_approved",
"reason": "rule_decision_enum"
}
要评估交易,只需将 Transaction 类型的对象发送到以下端点:
POST https://api.caas.qitech.app/pix/transaction
查询交易
Response Body
{
"transaction_direction": "received",
"id": "082373263",
...
}
要检索交易数据,只需向以下端点发送请求:
GET https://api.caas.qitech.app/pix/transaction/{transaction_id}
其中 transaction_id 是在注册时发送给我们的交易标识符,位于 "id" 字段中。
更新交易
Request Body
{
"transaction_status": "sent",
"event_date": "2020-10-07T15:06:25-03:00"
}
交易创建并分析后,应发送给 BCB 进行处理。因此,需要在交易发送给 BCB 时通过以下端点通知交易状态更新:
PUT https://api.caas.qitech.app/pix/transaction/{transaction_id}
这样可以确保我们的数据库保持更新,与 BCB 数据库始终保持一致。
未完成的交易
Request Body
{
"transaction_status": "cancelled",
"reason": "refused_by_counterpart",
"event_date": "2020-10-07T15:06:25-03:00"
}
如果交易出于任何原因未能完成(即:未从来源账户扣款并入账到目标账户),可以将交易更新为 cancelled 状态,并注明取消原因,以便识别与未完成交易相关的欺诈模式。cancelled 状态只能用于仍处于 created 状态的交易,因为 sent 状态用于交易已完成的情况。
PUT https://api.caas.qitech.app/pix/transaction/{transaction_id}
API 目前接受以下 reason,如果您认为需要将取消原因归入其他 reason,请联系 suporte.caas@qitech.com.br。
| reason | 描述 |
|---|---|
| insufficient_balance | 客户账户余额不足以完成交易 |
| fraud_prevention | 交易因未通过反欺诈系统而被取消 |
| system_block | 某些系统锁定阻止了交易执行,例如账户已注销/不活跃或已达到限额 |
| invalid_destination | 对方机构因目标账户不存在而拒绝了交易 |
| refused_by_counterpart | 对方机构拒绝了交易 |
| system_error | 交易因机构自身系统错误而被取消 |
| invalid_authentication | 交易因客户未通过某个认证流程而被取消 |