결제 거래
시작하기 전에
API 요청은 액세스 토큰을 사용하여 인증됩니다. 유효한 액세스 토큰을 포함하지 않는 요청은 오류를 반환합니다. 인증에서 자세히 알아보세요.
- UAT:
https://transactions.transactional.uat.unico.app/api/public/v1 - 프로덕션:
https://transactions.transactional.unico.app/api/public/v1
거래 생성
POST /credit/transaction — 새 거래를 생성합니다.
더 나은 전환율을 보장하려면, 비대면 카드 검증 경험 이전에 작업을 종료시킬 수 있는 사전 인증이나 검증을 완료한 후에만 거래를 생성하세요.
orderNumber 필드에는 전자상거래 시스템에서 해당 구매의 고유한 주문 번호를 입력해야 합니다 — 별도의 트랜잭션 ID를 사용하는 것은 올바르지 않습니다. 이를 재사용하면 전환율이 낮아질 수 있으며(주문 번호는 최종 사용자가 흐름을 완료하는 데 도움이 됩니다), 동일한 주문 번호, CPF, BIN, 마지막 4자리를 사용하는 경우 replicated transaction과 같은 API 오류가 발생할 수 있습니다.
| 헤더 | 값 |
|---|---|
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" }
]
}
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
identity | object | 예 | 사용자 식별 데이터입니다. |
identity.key | string | 예 | 사용자 식별 키의 유형입니다. 전환율이 더 높은 cpf를 권장합니다. |
identity.value | string | 예 | 점이나 대시 없이 입력하는 사용자 식별 키 값입니다. |
orderNumber | string | 예 | 거래와 연결된 주문 번호입니다. 포털에서 색인으로 사용되며 귀사 시스템과 비대면 카드 검증 간의 외래 키 역할을 합니다. |
company | string | 예 | Unico가 제공하는, 거래를 담당하 는 회사의 ID입니다. |
redirectUrl | string | 아니요 | 거래 완료 후 사용자를 리디렉션할 URL입니다(웹의 경우 HTTPS URL, 네이티브 모바일 앱의 경우 URL 스킴). |
card | object | 예 | 거래에 사용된 카드 정보입니다. |
card.binDigits | string | 예 | 카드의 처음 8자리입니다. |
card.lastDigits | string | 예 | 카드의 마지막 4자리입니다. |
card.expirationDate | string | 아니요 | 카드 만료일입니다. |
card.name | string | 예 | 카드 소유자의 이름입니다. 인코딩 문제를 피하기 위해 정확하게 전송하세요 — 이 데이터는 사용자 경험 및 커뮤니케이션에 사용됩니다. |
value | number | 예 | 총 구매 금액입니다. |
mainContacts | array | 아니요 | 비대면 카드 검증이 알림을 담당하는 경우 사용자에게 알리기 위해 사용되는 주요 연락처(이메일 및/또는 전화번호) 목록입니다. |
fallbackContacts | array | 아니요 | 주요 연락처로의 알림 시도가 실패할 경우 트리거되는 대체 연락처 목록입니다. |
{
"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 | 비대면 카드 검증 웹 SDK를 초기화하는 데 필요한 파라미터가 포함된 서명된 토큰입니다. |
expiresAt | 거래 만료 일시입니다, ISO 8601(UTC) 형식. |
검증 결과 생체 인식 캡처가 필요하지 않다고 판단되면, 응답의 상태가 다르며 캡처 링크가 생성되지 않습니다.
{
"id": "6ab1771e-dfab-4e47-8316-2452268e5481",
"status": "fast-inconclusive"
}
이는 기능에 따라 체크아웃용 Pre 또는 Super Pre 모듈을 사용하는 경우에 발생합니다.
오류 응답에 대해서는 오류 — 거래 생성을 참조하세요.
거래 상태 조회
GET /credit/transactions/{transaction_id} — 특정 거래의 현재 상태를 확인합니다.
| 헤더 | 값 |
|---|---|
Authorization | Bearer {token} — 유효한 액세스 토큰입니다. |
{
"status": "processing"
}
| 필드 | 설명 |
|---|---|
status | 거래의 현재 상태입니다. |
가능한 모든 상태는 열거형을 참조하세요. 성능을 최적화하려면 이 엔드포인트를 폴링하는 대신 웹훅을 구현하세요.
오류 응답에 대해서는 오류 — 거래 상태 조회를 참조하세요.
거래 증빙 세트 조회
GET /credit/transactions/{transaction_id}/probative — 특정 거래의 증빙 세트를 조회합니다.
증빙 세트는 승인된(approved) 거래에 대해서만 생성할 수 있습니다.
증빙 세트에 대해 반환되는 링크는 발급 후 5분 동안만 유효합니다 — 저장하지 말고 즉시 증빙 세트를 다운로드하는 데 사용하세요.
| 헤더 | 값 |
|---|---|
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 | 알림에 대해 생성된 링크입니다. |
오류 응답에 대해서는 오류 — 거래 알림 재전송을 참조하세요.