# References

> 2328.io API 전반에서 사용되는 네트워크 코드, 통화-네트워크 매핑 및 결제 상태 값.

이 페이지는 API 요청과 응답에서 사용되는 모든 참조 값을 나열합니다.

## 네트워크 코드

다음 코드는 `network` 필드가 등장하는 모든 곳에서 사용됩니다:

| Code | Network |
|------|---------|
| `TRX-TRC20` | Tron TRC-20 |
| `BSC-BEP20` | BNB Smart Chain |
| `ETH-ERC20` | Ethereum (ERC-20) |
| `BASE` | Base |
| `AVAX-C` | Avalanche C-Chain |
| `POL-MATIC` | Polygon (Matic) |
| `TON` | TON |
| `BTC` | Bitcoin |
| `LTC` | Litecoin |
| `DASH` | Dash |
| `SOL` | Solana |
| `DOGE` | Dogecoin |
| `ZEC` | Zcash |
| `XRP` | XRP Ledger |
| `XMR` | Monero |

## 통화-네트워크 매핑

각 통화는 일부 네트워크에서만 사용할 수 있습니다. 다음 표를 활용해 유효한 조합을 선택하세요:

| Currency | 허용 네트워크 |
|----------|-----------------|
| `USDT` | TRX-TRC20, BSC-BEP20, ETH-ERC20, BASE, AVAX-C, POL-MATIC, TON, SOL |
| `USDC` | BSC-BEP20, ETH-ERC20, BASE, AVAX-C, POL-MATIC, SOL |
| `BTC` | BTC |
| `ETH` | ETH-ERC20, BASE |
| `BNB` | BSC-BEP20 |
| `TRX` | TRX-TRC20 |
| `LTC` | LTC |
| `DASH` | DASH |
| `GRAM` | TON |
| `AVAX` | AVAX-C |
| `POL` | POL-MATIC |
| `SOL` | SOL |
| `DOGE` | DOGE |
| `ZEC` | ZEC |
| `XRP` | XRP |
| `XMR` | XMR |

`GRAM`는 TON 기본 통화의 표준 자산 코드입니다. 결제, 정적 지갑, 지급 생성 API는 현재 레거시 `TON` 입력을 수락하며 이를 `GRAM`로 표준화합니다. 통합 시 API에서 반환된 표준 값을 저장하고 처리해야 합니다. Polygon 기본 자산은 `POL`이며, 네트워크 코드는 `POL-MATIC`입니다. 네트워크 코드로 `MATIC`를 절대 보내지 마세요.

활성화된 방향은 운영 구성이며 이 카탈로그와 별개로 변경될 수 있습니다. 선택지를 제공하기 전에 `/v1/directions`를 조회하세요. 이 표를 현재 모든 쌍이 활성화되어 있다는 보장이 아닌 유효한 코드 맵으로 취급하세요.

## 결제 상태

결제의 `payment_status` 필드와 `/v1/payment/list` 필터는 다음 값을 가질 수 있습니다:

| Status | 설명 |
|--------|-------------|
| `pending` | 생성됨, 초기화 대기 중 |
| `check` | 고객의 결제 대기 중 |
| `paid` | 결제 성공 |
| `underpaid_check` | 부족 결제 (추가 입금 가능) |
| `underpaid` | 부족 결제 |
| `overpaid` | 초과 결제 (입금 처리됨) |
| `cancel` | 취소됨 / 만료됨 |
| `aml_lock` | AML로 인한 거래 차단 |

> **INFO:** 결제 성공을 수신할 때는 `paid`와 `overpaid`를 모두 성공 상태로 처리하고 고객의 주문에 반영해야 합니다.

### 상태 처리 정책

| 상태 | 주문을 이행하시겠습니까? | 계속 기다리시겠습니까? | 운영 조치 |
|--------|----------------|-------------------|--------------------|
| `pending` / `check` | 아니오 | 예, 만료일까지 | 보류 상태를 표시하고 정상적으로 조정합니다. |
| `underpaid_check` | 기본값으로 아니오 | 예, 추가 입금이 도착할 수 있습니다 | 각 txid를 멱등하게 저장하고 남은 결제 워크플로를 표시합니다. |
| `paid` | 예, 한 번 | 아니오 | 검증된 이벤트에서 원자적으로 이행합니다. |
| `overpaid` | 예, 한 번 | 아니오 | 상인 정책에 따라 초과/실제 금액을 이행하고 보관합니다. |
| `underpaid` | 제품별 | 아니요 | 명시적 부분 결제/수동 검토 정책을 적용합니다. |
| `cancel` | 아니요 | 아니요 | 만료/취소된 것으로 표시하지만, 이후 온체인 증거는 에스컬레이션합니다. |
| `aml_lock` | 아니요 | 자동 수행 없음 | 준수/지원 검토; 값을 자동으로 발행하지 마세요. |

상태는 결제에 대한 플랫폼의 관점을 설명합니다. 로컬 이행 상태를 대체하지 않습니다. 환불되었거나 수동 검토되었거나 이미 이행된 주문이 오래된 웹훅에 의해 손상되지 않도록 두 가지를 모두 저장하세요.

`/v1/payment/list` 요청 필터는 현재 `pending`, `check`, `paid`, `underpaid_check`, `underpaid`, `overpaid`, 및 `cancel`를 허용합니다. AML-잠금 결제가 다른 결제 엔드포인트를 통해 반환될 수 있음에도 불구하고 `aml_lock`는 필터로 허용되지 않습니다.

## 출금 상태

`/v1/payout` 및 `/v1/payout/status/{uuid}`의 `status` 필드는 다음 중 하나의 값을 가집니다:

| Status | 설명 |
|--------|-------------|
| `pending` | 생성됨, 처리 대기 중 |
| `completed` | 정상적으로 완료됨 — `txid`가 설정됨 |
| `failed` | 전송 오류 — `error_type` 참조 |
| `cancelled` | 취소됨 |

## 출금 오류 유형

출금이 `status = failed` 상태일 때 `error_type` 필드는 사유를 설명합니다:

| Code | 설명 |
|------|-------------|
| `aml_risk` | AML 리스크 검사로 인해 출금이 차단됨 (수신자 주소가 고위험으로 표시됨) |