Manual BaaS - 数字账户
在开始开户流程之前,合作伙伴有责任进行 KYC 和反欺诈分析。
QI Tech 的 Webhooks 不应以受限方式进行映射。 API 返回的 Webhook payload 中可能会新增额外字段。
您可以按照文档中的详细说明查询和重新发送 Webhooks:重新发送 Webhooks。
为此,应使用 /onboarding 中描述的分析端点。
1 - 创建账户
1.1. 上传文件
开户前须先上传公司文件。以下是各类型公司所需的文件列表:
S.A. 公司:
-
公司章程。
-
公司法定代表人选举会议纪要。
-
授权书(如适用)。
-
每位法定代表人或受托人的带照片证件。
其他情况:
-
合同协议。
-
授权书(如适用)。
-
每位法定代表人或受托人的带照片证件。文件须压缩为 ".zip" 格式,并通过文件上传端点发送()。
Response
Response Body
{
"document_key": "cd639c4a-2279-468a-a047-59865b8159ed",
"document_md5": "8f5bef84cb07dc047017c0d304dbb6b8",
"url": "https://storage.googleapis.com/sandbox-doc-api/documents/cd639c4a-2279-468a-a047-59865b8159ed/identificacao_teste.pdf"
}
请保存此 "document_key",因为在创建账户步骤中将会用到它。
1.2. 创建法人账户(PJ)
Request
Request Body
{
"account_owner": {
"annual_revenue_amount": 180000,
"address": {
"city": "Limeira",
"complement": "complemento",
"neighborhood": "Vila Cidade Jardim",
"number": "662",
"postal_code": "13480290",
"state": "SP",
"street": "Avenida Campinas"
},
"cnae_code": "4721-1/02",
"company_statute": "8b0d8c33-01c9-4cf5-a0fa-1d2a96f4b34d",
"company_document_number": "09080702000105",
"company_type": "ltda",
"email": "padaria@vovolucia.com.br",
"foundation_date": "1950-08-21",
"annual_revenue_amount": "1000000.00",
"name": "VOVO LUCIA CONVENIENCIA LTDA",
"person_type": "legal",
"phone": {
"area_code": "19",
"country_code": "55",
"number": "988888888"
},
"trading_name": "Empadaria Vovo Lucia",
"company_representatives": [{
"address": {
"city": "Recife",
"complement": null,
"neighborhood": "Fundão",
"number": "137",
"postal_code": "52221110",
"state": "PE",
"street": "Rua Camapuã"
},
"birth_date": "1972-02-02",
"document_identification_number": "339122924",
"document_identification": "8b0d8c33-01c9-4cf5-a0fa-1d2a96f4b34d",
"email": "marcos.alves@yopmail.com",
"individual_document_number": "08531309069",
"is_pep": false,
"final_beneficiary": true,
"marital_status": "single",
"mother_name": "Sueli Isadora Alves",
"name": "Marcos Felipe Henrique Alves",
"nationality": "Brasileira",
"person_type": "natural",
"phone": {
"area_code": "88",
"country_code": "55",
"number": "995924634"
}
},
{
"person_type": "natural",
"name": "Juliana Tereza Bernardes",
"mother_name": "Maria Mariane",
"birth_date": "1990-05-06",
"profession": "Deputada",
"nationality": "Brasileira",
"marital_status": "single",
"is_pep": false,
"final_beneficiary": true,
"individual_document_number": "97564480084",
"document_identification_number": "232479719",
"document_identification": "8b0d8c33-01c9-4cf5-a0fa-1d2a96f4b34d",
"email": "juliana.tereza@yopmail.com",
"phone": {
"country_code": "55",
"area_code": "11",
"number": "912821359"
},
"address": {
"street": "Passagem Mariana",
"state": "PA",
"city": "Ananindeua",
"neighborhood": "Águas Lindas",
"number": "660",
"postal_code": "67118003",
"complement": "complemento"
}
}
]
},
"allowed_user": {
"email": "juliana.tereza@yopmail.com",
"individual_document_number": "97564480084",
"name": "Juliana Tereza Bernardes",
"person_type": "natural",
"phone": {
"country_code": "55",
"area_code": "11",
"number": "912828135"
}
},
"signed_contract": {
"document_key": "4d7f4e29-4b58-4905-9a69-b1f9215263f5",
"signatures": [
{
"authenticity": {
"timestamp": "1970-01-01T00:00:01.080100Z",
"facial_recognition_key": "79003de0-2590-455d-9b73-426b8ca284eb",
"lang": "-35.8916627",
"lat": "-7.2226067",
"ip_address": "177.51.1.000",
"session_id": "jdifj329842"
},
"signer": {
"name": "IVANILDO DE SENA LIMA",
"email": "teste@gmail.com",
"phone": {
"country_code": "055",
"area_code": "11",
"number": "999999999"
},
"document_number": "99999999999"
},
"authentication_type": "opt-in"
}
]
}
}
"account_owner": 公司数据应在此对象中发送。
"account_owner.company_statute":上传公司章程文件(".zip" 格式)时,文件上传端点返回的 "document_key" 应在此字段中发送。
"account_owner.company_representatives":公司法定代表人的数据列表应在此对象中发送。至少应发送足以根据公司章程/合同合法代表公司的法定代表人。每位法定代表人的权限验证由合作伙伴负责。
"account_owner.company_representatives.document_identification":上传代表人带照片证件(".zip" 格式)时,文件上传端点返回的 "document_key" 应在此字段 中发送。
"allowed_user":此字段应发送 "account_owner.company_representatives" 对象中某位法定代表人的数据。该用户将成为账户管理员,拥有账户操作权限以及添加新管理员用户的权限。无论是账户操作还是添加新用户的 SMS/邮件确认,均将发送给此人。
具有管理员权限的用户对账户拥有完全控制权(通过短信或邮件的双因素认证)。因此,该用户须根据公司合同/章程在法律上具有操作账户的权限。管理员用户的权限验证由合作伙伴负责。
1.2.1 开户条款签署
在开户 payload 中,须发送 signature_contract 字段,该字段应包含用户(账户持有人或主用户)接受开户条款时的设备扫描信息。
signed_contract 对象
| 字段 | 类型 | 描述 | 字符数 |
|---|---|---|---|
| document_key * | uuidv4 | 开户条款或托管账户合同文件的唯一标识键。(DOCUMENT_KEY 在文件上传端点的响应中返回) | 36 |
| signatures * | list | 所发送文件的签名数据。列表中的每一项对应一位签署人。 | signatures 对象 |
signatures 对象
| 字段 | 类型 | 描述 | 字符数 |
|---|---|---|---|
| authenticity * | object | 证明签署人完成电子签名的数据集合。 | authenticity 对象 |
| signer * | object | 包含某位文件签署人数据的对象。 | signer 对象 |
| authentication_type * | enumerator | 签名类型。始终为 "opt-in" | "opt-in" |
authenticity 对象
| 字段 | 类型 | 描述 | 字符数 |
|---|---|---|---|
| timestamp * | string | 文件签署时的日期和时间。 | 27 |
| facial_recognition_key | uuidv4 | 账户持有人自拍照片的唯一标识键。(DOCUMENT_KEY 在文件上传端点的响应中返回) | 36 |
| lang | string | 签署时捕获的签署人地理位置经度坐标。 | - |
| lat | string | 签署时捕获的签署人地理位置纬度坐标。 | - |
| ip_address | string | 签署人设备的 IP 地址。 | - |
| session_id | string | 签署时签署人的会话 ID。 | - |
signer 对象
| 字段 | 类型 | 描述 | 字符数 |
|---|---|---|---|
| name * | string | 签署人姓名。 | - |
| email * | string | 签署人邮箱。 | - |
| phone * | object | 包含签署人电话数据的对象 | phone 对象 |
| document_number * | string | 签署人 CPF。 | 11 |
phone 对象
| 字段 | 描述 | 示例 | 最大字符数 |
|---|---|---|---|
country_code * | string | 电话 DDI 代码 (https://ddi.guiamais.com.br/) | 3 |
area_code * | string | 电话 DDD 代码 (https://ddd.guiamais.com.br/) | 2 |
number * | string | 电话号码(仅数字) | 10 |
Response
- MÉTODOPOST
- ENDPOINT/account
Response Body
{
"data": {
"account_info": {
"account_branch": "0001",
"account_digit": "2",
"account_number": "2359934",
"financial_institution_code": "329"
},
"account_owner": {
"document_number": "09080702000105",
"name": "VOVO LUCIA CONVENIENCIA LTDA"
},
"allowed_user": {
"document_number": "97564480084",
"name": "Juliana Tereza Bernardes"
}
},
"event_datetime": "2022-09-02 22:39:10",
"key": "\<UUID PROPOSAL-KEY\>",
"status": "pending_kyc_analysis",
"webhook_type": "account"
}
重要:此响应中返回的 "key" 是开户申请的 PROPOSAL-KEY。应将其保存,以便读取开户 Webhook。
开户申请的响应始终返回状态 "pending_kyc_analysis"。
系统将为该客户保留一个账号,但账户仍待 QI Tech 进行 KYC 分析。此时,账户尚未开通,无法接收或发送资金。
1.3. 创建个人账户(PF)
Request
- ENDPOINT/account
- MÉTODOPOST
Request Body
{
"account_owner": {
"address": {
"street": "Avenida Sargento Geraldo Sant'Ana",
"number": "1100",
"neighborhood": "Jardim Taquaral",
"city": "São Paulo",
"state": "SP",
"postal_code": "04674225"
},
"phone": {
"country_code": "55",
"number": "912828135",
"area_code": "11"
},
"email": "juliana.tereza@yopmail.com",
"name": "Juliana Tereza Bernardes",
"person_type": "natural",
"nationality": "Brasil",
"birth_date": "1993-08-02",
"mother_name": "Patricia Monica Diaz Bascur Tieppo",
"is_pep": false,
"individual_document_number": "97564480084",
"document_identification": "8b0d8c33-01c9-4cf5-a0fa-1d2a96f4b34d",
"document_identification_type": "cnh",
"revenue_amount": 1000,
"profession": "autonomo"
},
"signed_contract": {
"document_key": "4d7f4e29-4b58-4905-9a69-b1f9215263f5",
"signatures": [
{
"authenticity": {
"timestamp": "1970-01-01T00:00:01.080100Z",
"facial_recognition_key": "79003de0-2590-455d-9b73-426b8ca284eb",
"lang": "-35.8916627",
"lat": "-7.2226067",
"ip_address": "177.51.1.000",
"session_id": "jdifj329842"
},
"signer": {
"name": "IVANILDO DE SENA LIMA",
"email": "teste@gmail.com",
"phone": {
"country_code": "055",
"area_code": "11",
"number": "999999999"
},
"document_number": "99999999999"
},
"authentication_type": "opt-in"
}
]
}
}
"account_owner": 个人账 户持有人的数据应在此对象中发送。
"account_owner.document_identification": 文件上传端点返回的 "document_key"。
1.3.1. 身份证件的提交方式
开立个人账户时,可提交两种类型的证件(document_identification_type):cnh 或 rg。
身份证件可以 ".pdf"、".png" 和 ".jpeg" 格式提交。
1.3.1.1. 提交 CNH 类型身份证件
如果文件以 2 个文件提交,证件正面在一个文件中,背面在另一个文件中,则应在 /account 端点(1.2.2.)的 account_owner 对象中填写以下字段:
Request Body
"document_identification": "\<DOCUMENT-KEY DA FRENTE DO DOCUMENTO\>",
"document_identification_back": "\<DOCUMENT-KEY DA VERSO DO DOCUMENTO\>",
"document_identification_type": "cnh",
如果文件以 1 个文件提交,同一文件中包含证件正面和背面(证件照片或电子驾照),则应在 /account 端点(1.2.2.)的 account_owner 对象中填写以下字段:
Request Body
"document_identification": "\<DOCUMENT-KEY DA FRENTE DO DOCUMENTO\>",
"document_identification_type": "cnh",
1.3.1.2. 提交 RG 类型身份证件
对于 RG 类型证件,必须始终提交 2 个文件,一个包含证件正面,另一个包含证件背面。在此情况下,应在 /account 端点(1.2.2.)的 account_owner 对象中填写以下字段:
Request Body
"document_identification": "\<DOCUMENT-KEY DA FRENTE DO DOCUMENTO\>",
"document_identification_back": "\<DOCUMENT-KEY DA VERSO DO DOCUMENTO\>",
"document_identification_type": "rg",
Response
- MÉTODOPOST
- ENDPOINT/account
Response Body
{
"data": {
"account_info": {
"account_branch": "0001",
"account_digit": "2",
"account_number": "2359934",
"financial_institution_code": "329"
},
"account_owner": {
"document_number": "97564480084",
"name": "Juliana Tereza Bernardes"
}
},
"event_datetime": "2022-09-02 22:39:10",
"key": "\<UUID PROPOSAL-KEY\>",
"status": "pending_kyc_analysis",
"webhook_type": "account"
}
重要: 此响应中返回的 "key" 是开户申请的 PROPOSAL-KEY。应将其保存,以便读取开户 Webhook。
开户申请的响应始终返回状态 "pending_kyc_analysis"。 系统将为该客户保留一个账号,但账户仍待 QI Tech 进行 KYC 分析。此时,账户尚未开通,无法接收或发送资金。
在沙盒环境中,可使用账户 owner 的 CPF/CNPJ 第一位数字来模拟审批、拒绝和人工审核情况:
-
0 到 7 -> 人工审核
-
8 -> 自动拒绝
-
9 -> 自动审批
QI Tech 完成 KYC/PLD 分析后,将发送开户 Webhook,如下所示:
Webhook
- WEBHOOK_TYPEaccount
- STATUSAccount Opened
Response Body
{
"data": {
"account_info": {
"account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
"account_digit": "2",
"account_branch": "0001",
"account_number": "2359934",
"financial_institution_code": "329"
},
"allowed_user": {
"name": "Juliana Tereza Bernardes",
"document_number": "97564480084"
},
"account_owner": {
"name": "VOVO LUCIA CONVENIENCIA LTDA",
"document_number": "09080702000105"
}
},
"event_datetime": "2022-09-02 22:39:39",
"key": "\<UUID PROPOSAL-KEY\>",
"status": "account_opened",
"webhook_type": "account"
}
此时将返回账户的 "account_key",账户即可投入使用。
如果账户未通过 KYC/PLD 流程,将发送账户被拒绝的 Webhook:
Webhook
- WEBHOOK_TYPEaccount
- STATUSAccount Rejected
Response Body
{
"data": {
"account_info": {
"account_digit": "2",
"account_branch": "0001",
"account_number": "2359934",
"financial_institution_code": "329"
},
"allowed_user": {
"name": "Juliana Tereza Bernardes",
"document_number": "97564480084"
},
"account_owner": {
"name": "VOVO LUCIA CONVENIENCIA LTDA",
"document_number": "09080702000105"
}
},
"event_datetime": "2022-09-02 22:39:39",
"key": "\<UUID PROPOSAL-KEY\>",
"status": "account_rejected",
"webhook_type": "account"
}
allowed_user 属性仅在法人(PJ)开户 Webhook 中返回;对于个人(PF)账户,data 对象中仅返回 account_info 和 account_owner 属性。
1.3.2 开户条款签署
在开户 payload 中,须发送 signature_contract 字段,该字段应包含用户(账户持有人或主用户)接受开户条款时的设备扫描信息。
signed_contract 对象
| 字段 | 类型 | 描述 | 字符数 |
|---|---|---|---|
| document_key * | uuidv4 | 开户条款或托管账户合同文件的唯一标识键。(DOCUMENT_KEY 在文件上传端点的响应中返回) | 36 |
| signatures * | list | 所发送文件的签名数据。列表中的每一项对应一位签署人。 | signatures 对象 |
signatures 对象
| 字段 | 类型 | 描述 | 字符数 |
|---|---|---|---|
| authenticity * | object | 证明签署人完成电子签名的数据集合。 | authenticity 对象 |
| signer * | object | 包含某位文件签署人数据的对象。 | signer 对象 |
| authentication_type * | enumerator | 签名类型。始终为 "opt-in" | "opt-in" |
authenticity 对象
| 字段 | 类型 | 描述 | 字符数 |
|---|---|---|---|
| timestamp * | string | 文件签署时的日期和时间。 | 27 |
| facial_recognition_key | uuidv4 | 账户持有人自拍照片的唯一标识键。(DOCUMENT_KEY 在文件上传端点的响应中返回) | 36 |
| lang | string | 签署时捕获的签署人地理位置经度坐标。 | - |
| lat | string | 签署时捕获的签署人地理位置纬度坐标。 | - |
| ip_address | string | 签署人设备的 IP 地址。 | - |
| session_id | string | 签署时签署人的会话 ID。 | - |
signer 对象
| 字段 | 类型 | 描述 | 字符数 |
|---|---|---|---|
| name * | string | 签署人姓名。 | - |
| email * | string | 签署人邮箱。 | - |
| phone * | object | 包含签署人电话数据的对象 | phone 对象 |
| document_number * | string | 签署人 CPF。 | 11 |
phone 对象
| 字段 | 描述 | 示例 | 最大字符数 |
|---|---|---|---|
country_code * | string | 电话 DDI 代码 (https://ddi.guiamais.com.br/) | 3 |
area_code * | string | 电话 DDD 代码 (https://ddd.guiamais.com.br/) | 2 |
number * | string | 电话号码(仅数字) | 10 |
1.4. 获取账户数据
Request
- ENDPOINT/account
- MÉTODOGET
- PARAMETERSaccount_type[checking], owner_name, account_number, owner_document_number, account_status[opened, closed, blocked], page, page_size
Response:
Response Body
{
"data": [
{
"account_block_reason": null,
"account_branch": "0001",
"account_credentials": [{
"account_id": 3395,
"created_at": "2022-09-02T22:39:39",
"credential_type": {
"created_at": "2019-06-18T13:19:30",
"enumerator": "observer",
"id": 3,
"translation_path": "account.CredentialType.observer"
},
"credential_type_id": 3,
"id": 3244,
"is_active": true,
"person_key": "bffded45-5fcf-4d13-9d2a-566a0af338cc",
"updated_at": null
},
{
"account_id": 3395,
"created_at": "2022-09-02T22:39:39",
"credential_type": {
"created_at": "2019-06-18T13:19:30",
"enumerator": "requester",
"id": 2,
"translation_path": "account.CredentialType.requester"
},
"credential_type_id": 2,
"id": 3245,
"is_active": true,
"person_key": "ef48fbe4-267b-45c1-9049-75345c075486",
"updated_at": null
}
],
"account_digit": "2",
"account_documents": [],
"account_events": [{
"account_id": 3395,
"created_at": "2022-09-02T22:39:39",
"id": 5132,
"new_account_status": {
"created_at": "2019-10-11T18:58:31",
"enumerator": "opened",
"id": 1,
"translation_path": "account.AccountStatus.opened"
},
"new_account_status_id": 1,
"old_account_status": null,
"old_account_status_id": null
}],
"account_key": "6d30a0b1-cb90-4ceb-b1ea-5bd600cdf3c8",
"account_name": "Default",
"account_number": "2359934",
"account_status": {
"created_at": "2019-10-11T18:58:31",
"enumerator": "opened",
"translation_path": "account.AccountStatus.opened"
},
"account_type": {
"created_at": "2019-03-15T13:09:15",
"enumerator": "checking",
"translation_path": "account.AccountType.checking"
},
"automatic_transfer_management_status": {
"created_at": "2022-10-27T13:48:18",
"enumerator": "master"
},
"automatic_transfers": [],
"balance": 0,
"blocked_balance": 0,
"blocked_balance_events": [],
"created_at": "2022-09-02T22:39:39",
"destinations": [],
"fee": 0,
"internal_webhooks": [],
"investment_available_amount": 0,
"investment_configuration": null,
"is_system_account": false,
"owner_document_number": "09080702000105",
"owner_name": "VOVO LUCIA CONVENIENCIA LTDA",
"owner_person_key": "bffded45-5fcf-4d13-9d2a-566a0af338cc",
"permitted_person_keys": [
"bffded45-5fcf-4d13-9d2a-566a0af338cc",
"bffded45-5fcf-4d13-9d2a-566a0af338cc",
"ef48fbe4-267b-45c1-9049-75345c075486"
],
"requester_key": "ef48fbe4-267b-45c1-9049-75345c075486",
"requester_name": "Requester Name Sandbox",
"setup_fee": null,
"transactional_limit": null,
"webhook_enabled": true
}, ...
],
"pagination": {
"current_page": 1,
"next_page": null,
"rows_per_page": 100,
"total_pages": 1,
"total_rows": 8
}
}
账户数据查询响应中最相关的字段为:account_branch、account_digit、account_key、account_number、balance、owner_document_number、owner_name、owner_person_key。
2 - PIX 转账
2.1. 执行 PIX 转账
执行 PIX 转账需进行三次调用:
-
创建转账请求:/baas/pix_transfer
-
申请转账验证令牌:/baas/token_request
-
批准转账:/baas/movement_validation
PIX 转账可使用两种不同的 payload 完成:PIX 密钥或银行账户数据。
2.1.1. 创建转账请求
使用 PIX 密钥进行转账(CPF、CNPJ、电子邮件、手机号或随机密钥)
- ENDPOINT/baas/pix_transfer
- MÉTODOPOST
Request Body
{
"pix_transfer_type": "key",
"source_account": {
"account_branch": "0001",
"account_digit": "2",
"account_number": "2359934",
"owner_document_number": "09080702000105"
},
"pix_key": "65322181032",
"transaction_amount": 45,
"requester_document_identification": "09080702000105"
}
"pix_key" 可以是 CPF、CNPJ、电子邮件、手机号或随机密钥(UUID),格式如下:
CPF: 11 位整数。
CNPJ: 14 位整数。
电子邮件: 包含至少一个"@"的文本。
手机号: 包含以下 值的文本:"+55" + "手机 DDD 区号" + "至少 8 位、最多 9 位整数的手机号"。例:"+5511987654321"。
随机密钥: UUID。
使用银行账户数据进行转账(手动 PIX)
- ENDPOINT/baas/pix_transfer
- MÉTODOPOST
Request Body
{
"pix_transfer_type": "manual",
"source_account": {
"account_branch": "0001",
"account_digit": "2",
"account_number": "2359934",
"owner_document_number": "09080702000105"
},
"target_account": {
"account_branch": "0001",
"account_digit": "3",
"account_number": "12345678",
"owner_document_number": "32402502000135",
"owner_name": "Qi Tech",
"account_type": "checking_account",
"ispb": "32402502"
},
"transaction_amount": 45
}
使用手动 PIX 时,需要提供目标机构的 ISPB。此数据之所以必要,是因为有些支付机构可以接收 PIX,但没有银行代码。ISPB 是机构 CNPJ 的前缀。要获取参与 PIX 的各机构完整 ISPB 列表,可使用我们文档中的查询端点:https://docs.qitech.com.br/reference/161-consulta-de-institui%C3%A7%C3%B5es-financeiras
Response Body
{
"data": {
"end_to_end_id": "E3240250220221120012039U3OKZZMW8",
"fee_amount": 1,
"pix_message": null,
"pix_transfer_key": "cea836b5-b02e-4f94-b1e2-4d575671c33d",
"source_account": {
"account_brach": "0001",
"account_digit": "2",
"account_number": "2359934",
"account_type": "checking",
"owner_document_number": "09080702000105",
"owner_name": "VOVO LUCIA CONVENIENCIA LTDA"
},
"target_account": {
"document_number": "***.221.81*-**",
"financial_institution": "BANCO ORIGINAL S.A."
},
"transaction_amount": 45,
"transfer_purpose": "transfer"
},
"event_datetime": "2022-09-02 22:20:47",
"operation_key": "86d80cf4-430b-4e16-910a-41798810ddcf",
"status": "pending_approval"
}
pending_approval: 转账待账户管理员用户("allowed_user")批准
sent: 转账已发送
返回的 end_to_end_id 字段须保存,并在批准交易时提交。正是它来保障交易的唯一性。
完成第一次 "/baas/pix_transfer" 调用后,需要申请令牌以批准交易。要批准 PIX 转账,须使用转账申请中返回的 "pix_transfer_key",并申请生成一个令牌,该令牌将发送给账户管理员用户("allowed_user")以供批准。
2.1.2. 申请转账验证令牌:
- ENDPOINT/baas/token_request
- MÉTODOPOST
Request Body
{
"contact_type": "sms",
"agent_document_number": "97564480084",
"movement_payload": {
"pix_transfer_key": "cea836b5-b02e-4f94-b1e2-4d575671c33d",
"approver_document_number": "97564480084"
}
}
contact_type: 是批准转账时 将使用的双因素认证方式,可通过电子邮件("email")或短信("sms")进行。
approver_document_number: 应填写将批准 PIX 转账的管理员用户的 CPF。
agent_document_number: 此字段可填写将接收用于交易双因素批准令牌的主用户 CPF。
完成转账的最后一次调用是 "/baas/movement_validation",收到的令牌须在批准 PIX 转账时提供。令牌的有效期为 2 分钟。
管理员用户须在合作伙伴应用中输入通过电子邮件或短信收到的令牌。
2.1.3. 批准转账:
- ENDPOINT/baas/movement_validation
- MÉTODOPOST
Request Body
{
"token": "248358",
"movement_payload": {
"pix_transfer_key": "cea836b5-b02e-4f94-b1e2-4d575671c33d",
"approver_document_number": "97564480084"
}
}
Reponse Body
{
"authentication_code": "287c4478a1adcd6e820e654ac1b1edf2",
"event_datetime": "2022-09-02 23:00:07",
"operation_key": "05283f8e-b9c0-47ff-a06f-9626be710f69",
"pix_transaction": {
"end_to_end_id": "E3240250220221120012039U3OKZZMW8",
"fee_amount": 1,
"pix_message": null,
"pix_transfer_key": "cea836b5-b02e-4f94-b1e2-4d575671c33d",
"pix_transfer_status": "sent",
"pix_transfer_type": "key",
"source_account": {
"account_branch": "0001",
"account_digit": "2",
"account_number": "2359934"
},
"target_account": {
"document_number": "***.221.81*-**",
"financial_institution": "BANCO ORIGINAL S.A."
},
"transaction_key": "d2ba3817-26d7-4957-ab82-24f78d910a8a",
"transfer_amount": 45
},
"status": "sent"
}
Response Body
{
"data": "{\"title\": \"Pending Transfer\", \"description\": \"The transaction (<END TO END ID DO PIX>) could not be completed and is pending confirmation.\", \"translation\": \"Não foi possível concluir a transação (<END TO END ID DO PIX>) e ela está pendente de confirmação\", \"code\": \"PXT000072\"}"
}
如果返回 http error 422,不得重新尝试 PIX 请求。需要通过 GET 请求 /baas/pix/pix_transfer 路由来检查 PIX 转账申请的状态。
2.2. PIX 到账 Webhook
Webhook
- WEBHOOK_TYPEaccount_transaction
- SOURCE_SUB_TYPEpix_withdrawal
Response Body
{
"key": "508ebbba-0b1d-41f6-b9a2-975a4c2e925e",
"data": {
"amount": -45,
"origin": {
"name": "PIX",
"branch": "0001",
"document": "32402502000135",
"account_key": "3d0e7d50-e898-49f3-b23b-05353c8a3c72",
"account_digit": "3",
"account_number": "00003"
},
"timestamp": "2023-01-05T18:16:03.395863",
"description": "237 0001 1017372-2 ***.221.81*-** BANCO BRADESCO S.A.",
"destination": {
"name": "Default",
"branch": "0001",
"document": "23426525852",
"account_key": "508ebbba-0b1d-41f6-b9a2-975a4c2e925e",
"account_digit": "0",
"account_number": "7058818"
},
"reference_key": "aafbf4bc-58eb-45fd-899c-af44f68dfd60",
"reference_type": "pix_outgoing",
"account_balance": 99359.15,
"source_sub_type": "pix_withdrawal",
"transaction_key": "3e37a0a9-d6d2-4474-8bff-5448e446c225",
"source_sub_type_str": "Transferência de PIX"
},
"datetime": "2023-01-05T18:16:03.395863",
"webhook_type": "account_transaction"
}
2.3. PIX 手续费扣收 Webhook
Webhook
- WEBHOOK_TYPEaccount_transaction
- SOURCE_SUB_TYPEpix_fee
Response Body
{
"key": "508ebbba-0b1d-41f6-b9a2-975a4c2e925e",
"data": {
"amount": -0.85,
"origin": {
"name": "Fee Account",
"branch": "0001",
"document": "32402502000135",
"account_key": "3679ffd0-d52e-4492-b11c-b11c655047d3",
"account_digit": "8",
"account_number": "00005"
},
"timestamp": "2023-01-05T18:16:03.554624",
"description": "237 0001 1017372-2 ***.221.81*-** BANCO BRADESCO S.A.",
"destination": {
"name": "Default",
"branch": "0001",
"document": "23426525852",
"account_key": "508ebbba-0b1d-41f6-b9a2-975a4c2e925e",
"account_digit": "0",
"account_number": "7058818"
},
"reference_key": "aafbf4bc-58eb-45fd-899c-af44f68dfd60",
"reference_type": "pix_outgoing",
"account_balance": 99358.3,
"source_sub_type": "pix_fee",
"transaction_key": "53c7421b-1340-4625-b383-b94d350ff9b2",
"source_sub_type_str": "Tarifa de PIX"
},
"datetime": "2023-01-05T18:16:03.554624",
"webhook_type": "account_transaction"
}
2.4. PIX 退款(Chargeback)
PIX 退款(Chargeback)分三个步骤完成:
- 1 - 发起 PIX Chargeback:/baas/pix_transfer
- 2 - 申请 PIX Chargeback 授权令牌:/baas/token_request
- 3 - 批准 PIX Chargeback:/baas/movement_validation