支付交易
开始之前
您的 API 请求使用访问令牌进行身份验证。任何不包含有效访问令牌的请求都将返回错误。在身份验证中了解更多信息。
- UAT:
https://transactions.transactional.uat.unico.app/api/public/v1 - 生产环境:
https://transactions.transactional.unico.app/api/public/v1
创建交易
POST /credit/transaction — 创建一笔新交易。
为确保更好的转化率,请仅在完成任何可能在无卡验证体验之前就终结该操作的预身份验证或校验之后,才创建交易。
orderNumber 字段必须填写该笔购买在电商系统中唯一的订单编号——使用不同的交易 ID 是不正确的做法。重复使用它可能导致转化率降低(订单编号有助于终端用户完成流程),并可能导致 API 错误,例如在使用相同订单编号、CPF、BIN 和末 4 位数字时出现的 replicated transaction 错误。
| 请求头 | 值 |
|---|---|
Authorization | Bearer {token} — 一个有效的访问令牌。 |
{
"identity": { "key": "cpf", "value": "12345678900" },
"orderNumber": "order-98765",
"company": "company-id",
"redirectUrl": "https://yourapp.com/checkout/return",
"card": {
"binDigits": "12345678",
"lastDigits": "1234",
"expirationDate": "12/2028",
"name": "John Doe"
},
"value": 199.90,
"mainContacts": [
{ "key": "phone", "value": "5543999999999" }
],
"additionalInfo": {
"externalUserID": "YOUR_EXTERNAL_USER_ID"
}
}
| 字段 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
identity | object | 是 | 用户识别数据。 |
identity.key | string | 是 | 用户识别键的类型。建议使用 cpf——转化率更高。 |
identity.value | string | 是 | 用户识别键的值,不含点号或连字符。 |
orderNumber | string | 是 | 与该交易关联的订单编号。用作门户中的索引,以及您的系统与无卡验证之间的外键。 |
company | string | 是 | 负责该交易的公司 ID,由 Unico 提供。 |
redirectUrl | string | 否 | 交易完成后用户被重定向到的 URL(Web 端为 HTTPS URL,原生移动应用为 URL scheme)。 |
card | object | 是 | 交易中所用卡片的信息。 |
card.binDigits | string | 是 | 卡片的前 8 位数字。 |
card.lastDigits | string | 是 | 卡片的末 4 位数字。 |
card.expirationDate | string | 否 | 卡片的到期日期。 |
card.name | string | 是 | 持卡人姓名。请正确发送,避免编码问题——该数据会被用于用户体验和沟通中。 |
value | number | 是 | 购买总金额。 |
mainContacts | array | 否 | 用于通知用户的主要联系方式(邮箱和/或电话)列表,适用于由无卡验证负责通知的情形。 |
fallbackContacts | array | 否 | 备用联系方式列表,当主要联系方式的通知尝试失败时触发。 |
additionalInfo | object | 否 | 发送该对象并附带 externalUserID,以为该笔交易启用静默验证。 |
additionalInfo.externalUserID | string | 是(如果发送了 additionalInfo) | 与通过 SDK 的 externalUserId 在采集设备元数据时配置的标识符相同。触发静默验证所必需——如果未提供,交易仍会正常创建,但始终遵循标准可视化流程。 |
{
"id": "6ab1771e-dfab-4e47-8316-2452268e5481",
"status": "processing",
"link": "https://developers/regional-solutions/card-not-present-verification.unico.app/t/6ab1771e-dfab-4e47-8316-2452268e5481",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expiresAt": "2026-07-22T15:30:00Z"
}
| 字段 | 描述 |
|---|---|
id | 已创建交易的 ID。 |
status | 交易当前状态。 |
link | 与该交易相关的链接。 |
token | 已签名的令牌,包含初始化无卡验证 Web SDK 所需的参数。 |
expiresAt | 交易的过期日期和时间,ISO 8601 格式(UTC)。 |
如果验证结果表明无需进行生物识别捕获,响应将呈现不同的状态,且不会生成捕获链接:
{
"id": "6ab1771e-dfab-4e47-8316-2452268e5481",
"status": "fast-inconclusive"
}
当结账(Checkout)使用 Pre 或 Super Pre 模块时会出现这种情况,详见功能。
如果发送了 additionalInfo.externalUserID 且交易被静默批准,响应中也 不会包含捕获链接:
{
"id": "6ab1771e-dfab-4e47-8316-2452268e5481",
"status": "approved"
}
有关完整流程(包括 SDK 设置和时间要求),请参阅静默验证。
有关错误响应,请参阅错误 — 交易创建。
获取交易状态
GET /credit/transactions/{transaction_id} — 查询指定交易的当前状态。
| 请求头 | 值 |
|---|---|
Authorization | Bearer {token} — 一个有效的访问令牌。 |
{
"status": "processing"
}
| 字段 | 描述 |
|---|---|
status | 交易的当前状态。 |
有关所有可能的状态,请参阅枚举。为优化 性能,建议实现 Webhook,而非轮询此端点。
有关错误响应,请参阅错误 — 获取交易状态。
获取交易证据集
GET /credit/transactions/{transaction_id}/probative — 获取指定交易的证据集。
证据集只能针对已批准的交易生成。
证据集返回的链接自获取之日起五分钟内有效——请勿保存该链接,应立即使用它下载证据集。
| 请求头 | 值 |
|---|---|
Authorization | Bearer {token} — 一个有效的访问令牌。 |
{
"link": "https://unico.io/probative.pdf"
}
| 字段 | 描述 |
|---|---|
link | 证据文件的 URL。 |
有关错误响应,请参阅错误 — 获取交易证据集。
重新发送交易通知
POST /credit/transactions/{transaction_id}/notify — 通过邮件和/或电话重新发送指定交易的通知。
也可以通过门户配置通知重发,而无需通过 API 实现。请与您项目的对接人沟通以了解具体可行方案。
| 请求头 | 值 |
|---|---|
Authorization | Bearer {token} — 一个有效的访问令牌。 |
{
"phone": "NOTIFICATION_PHONE",
"email": "NOTIFICATION_EMAIL"
}
| 字段 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
phone | string | 是 | 用于发送通知的电话号码。 |
email | string | 是 | 用于发送通知的邮箱地址。 |
{
"id": "b50ee24c-71eb-4a5d-ade1-41c48b44c240",
"link": "https://aces.so/example"
}
| 字段 | 描述 |
|---|---|
id | 生成的通知的唯一 ID。 |
link | 为该通知生成的链接。 |
有关错误响应,请 参阅错误 — 重新发送交易通知。