스테이블코인 결제를 받으면서도 유로로 정산받는 방법은 다음과 같습니다. EUR 기준 가격으로 청구서를 발행하면, 결제자는 해당 청구서 한 건을 위해 생성된 주소로 일치하는 금액의 USDC를 보냅니다. 인가받은 파트너가 이를 환전해 귀사의 IBAN으로 유로를 지급합니다. 결제 단계 자체는 API 호출 한 번으로 끝납니다. 실제로 중요한 판단은 그 전후에 있습니다. 청구서가 얼마나 오래 열려 있는지, 결제자가 적게 보냈을 때 어떻게 할지, 그리고 주문 시스템이 입금 사실을 어떻게 알게 될지입니다.
이 가이드는 ItisPay 대시보드의 데모 데이터 스크린샷을 사용해, 양측이 보는 관점에서 이 청구서 흐름을 설명합니다.
요약
- 가격은 EUR로 설정하며, USDC 금액은 현재 환율로 계산되어 청구서에 표시됩니다.
- 청구서마다 고유한 주소, 카운트다운, 상태가 주어집니다: new, pending, paid_partial, completed, expired 또는 cancelled.
- 부족 결제로 청구서가 실패하지는 않습니다. 대신 전송 건별로 기록되며 상태는 paid_partial로 바뀝니다.
- MiCA에 따르면 암호자산을 유로로 환전하는 것은 인가가 필요한 서비스이므로, 귀사의 IBAN으로의 정산은 인가받은 CASP를 통해 이루어집니다.
EU에서 스테이블코인 결제를 받으려면 무엇이 필요한가?#
세 가지가 필요합니다. MiCA에 맞게 발행된 스테이블코인, 이를 유로로 환전해 주는 인가받은 업체, 그리고 각 결제를 주문과 매칭하는 소프트웨어입니다. 코인을 받는 것은 쉽습니다. 계좌에 유로로 입금되도록 바꾸는 부분이 규제 대상입니다.
암호자산 시장 규제(Markets in Crypto-Assets Regulation, MiCA, 규정 (EU) 2023/1114)는 2024년 6월 30일부터 스테이블코인에 적용되었으며, 2024년 12월 30일부터 전면 적용되고 있습니다. 제48조에 따라 인가받은 신용기관 또는 전자화폐기관만이 전자화폐 토큰을 발행할 수 있습니다. 전자화폐 토큰(e-money token)은 MiCA에서 하나의 공식 통화에 연동된 스테이블코인을 가리키는 용어입니다.
USDC는 이 요건을 충족합니다. ESMA 임시 MiCA 등록부는 Circle Internet Financial Europe SAS를 USDC와 EURC의 발행사로 등재하고 있으며, 이 회사는 2024년 7월 1일 프랑스 ACPR의 인가를 받았습니다. USDT는 인가 발행사 등록부에 나타나지 않습니다(2026년 11월 5일 기준).
암호자산을 유로로 환전하는 것은 암호자산 서비스입니다. MiCA 제59조는 이를 인가받은 CASP(암호자산 서비스 제공자)나, 제60조에 따라 규제당국에 통지한 은행 및 투자회사 같은 일부 금융회사에만 허용합니다. 가맹점에는 두 가지 경로가 있습니다. 직접 CASP 라이선스를 취득하거나, 이미 라이선스를 보유한 제공업체를 통해 진행하는 것입니다.
스테이블코인 청구서는 단계별로 어떻게 작동하나요?#
스테이블코인 청구서는 고정 금액, 고유 주소, 기한이 있는 결제 요청입니다. 시스템이 청구서를 생성하면 결제자가 결제하고, 상태 변경을 통해 귀사는 배송 시점을 알 수 있습니다. 아래는 USDC로 결제된 250 EUR 주문의 전체 흐름입니다.
- 청구서를 생성합니다. 체크아웃이 주문 ID, EUR 가격, 원하는 코인(USDC)을 전송합니다. ItisPay에서는 `POST /invoices` 호출로 처리하며, 대시보드에서는 간단한 양식을 사용합니다.
- 금액이 환산됩니다. API가 현재 환율을 적용해 EUR 가격을 USDC 금액으로 계산합니다. 아래 데모에서 250 EUR은 279.2846 USDC가 됩니다.
- 주소가 할당됩니다. 청구서에는 지정된 네트워크의 고유 블록체인 주소와 QR 코드가 부여됩니다. 주소가 청구서에 연결되어 있으므로 들어오는 전송이 주문과 연결됩니다.
- 결제자가 USDC를 보냅니다. 결제자는 정확한 금액, 네트워크, 카운트다운을 확인하고 지갑 또는 거래소 계정에서 결제합니다.
- 상태가 변경됩니다. 청구서는 new로 시작하며, 예를 들어 pending, completed, paid_partial 또는 expired로 바뀝니다. 콜백 URL을 설정했다면 상태 업데이트가 웹훅으로 서버에 전송됩니다.
- 유로가 IBAN에 도착합니다. 귀사의 IBAN으로의 EUR 정산은 인가받은 파트너를 통해 이루어지며, 또는 스테이블코인을 파트너에게 그대로 맡겨 둘 수도 있습니다.

| 단계 | 수행 주체 | 내용 |
|---|---|---|
| 생성 | 가맹점 시스템 | 주문 ID, EUR 가격, 코인을 API로 전송 |
| 환산 | ItisPay | 현재 환율로 USDC 금액 계산 |
| 결제 | 결제자 | 정확한 USDC 금액을 청구서 주소로 전송 |
| 확인 | ItisPay | 전송 감지, 상태 업데이트, 웹훅 발송 |
| 정산 | 인가받은 파트너 | USDC 환전 후 가맹점의 IBAN으로 EUR 지급 |
마지막 두 행의 구분은 컴플라이언스 측면에서 중요합니다. ItisPay는 소프트웨어 계층입니다. 인보이스, 상태, 알림, 대사(reconciliation)를 담당합니다. 자금 보유, 환전, 유로 지급은 라이선스를 보유한 파트너가 맡습니다.
결제 페이지에서 결제자는 무엇을 보나요?#
결제자는 질문하지 않고도 결제할 수 있도록 필요한 정보가 모두 담긴 하나의 화면을 봅니다. 누가 청구하는지, 정확한 USDC 금액, 주소, 네트워크, 남은 시간입니다. 위 스크린샷의 오른쪽이 바로 이 화면입니다.
상단에는 카운트다운이 있으며, 데모에서는 1시간 59분입니다. 그 아래에는 상점 이름, 표시된 네트워크를 통해 정확한 USDC 금액을 보내라는 안내와 함께 주소가 있고, 금액 복사 버튼과 결제 세부 정보가 있습니다. 세부 정보에는 EUR 기준 인보이스 금액, 통화, 네트워크, 그리고 처음에는 '결제 대기'로 표시되는 상태가 포함됩니다.
네트워크 줄을 주의해서 보세요. USDC는 여러 블록체인에 존재하며, 인보이스에 적힌 것과 다른 네트워크로 보낸 송금은 해당 인보이스에 반영되지 않으며 회수되지 않을 수도 있습니다. 직접 결제 화면을 만든다면 네트워크를 금액 옆에 큰 글씨로 표시하세요.
결제 페이지는 결제가 아직 가능한 동안에만 전체 세부 정보를 보여줍니다. ItisPay의 공개 인보이스 엔드포인트는 new, pending, paid_partial 상태의 인보이스에 대해 모든 정보를 반환합니다. 인보이스가 completed, expired 또는 cancelled 상태가 되면 ID와 상태만 반환하므로, 오래된 링크에서는 더 이상 결제 주소가 표시되지 않습니다.
유로 가격에서 USDC 금액은 어떻게 계산되나요?#
가격은 유로로 책정하고, 인보이스는 생성 시점의 현재 환율로 USDC 상당액을 표시합니다. 결제자에게는 정확히 이 금액을 요청하므로, 회계 처리는 확정된 EUR 금액에서 시작합니다.
ItisPay API에서는 `fiat_currency`를 EUR로 설정하고 `fiat_amount`를 보냅니다. EUR은 현재 지원되는 유일한 법정 통화이며, API는 암호화폐 금액을 반환합니다. 대신 고정된 암호화폐 금액으로 인보이스를 발행할 수도 있지만, 한 인보이스에서 두 방식을 함께 사용할 수는 없습니다.
결제 전에 견적을 보여주고 싶다면 rates 엔드포인트가 EUR 기준 현재 환율을 반환합니다. USDC는 미국 달러에 연동되므로, EUR 가격에 대한 USDC 금액은 EUR/USD 환율에 따라 달라집니다. 짧은 만료 시간은 결제자가 결제하기 전까지 환율이 얼마나 벗어날 수 있는지를 제한합니다.
암호화폐 인보이스는 얼마나 열어 두어야 하나요?#
결제자가 지갑을 열고 송금하기에 충분해야 하며, 인보이스의 환율이 여전히 공정할 만큼 짧아야 합니다. ItisPay 대시보드의 만료 필드는 기본값이 120분으로 채워져 있으며, API를 통해서는 인보이스마다 `expire_min`으로 설정합니다.
상황에 맞게 기간을 정하세요. 결제자가 이미 화면 앞에 있는 온라인 결제라면 더 짧은 만료 시간을 사용할 수 있습니다. 일괄 지급하는 재무팀에 이메일로 보내는 B2B 인보이스는 더 긴 기간이 필요합니다. 시간이 다 되면 상태가 expired로 바뀌고 결제 페이지는 주소 표시를 멈춥니다. 결제 전에 주문을 취소해야 한다면, 인보이스가 만료되도록 두지 말고 API로 취소하여 기록에 종료 사유가 남도록 하세요.
결제자가 금액을 적게 보내거나 잘못된 코인을 보내면 어떻게 되나요?#
부분 결제는 인보이스를 실패로 만들지 않습니다. 인보이스를 paid_partial로 전환하고 송금 내역을 기록하며, 결제 페이지는 나머지 금액을 위해 계속 열려 있습니다. ItisPay 인보이스는 인보이스당 여러 건의 거래를 지원하며, 각 거래는 고유한 금액, 트랜잭션 해시, 상태를 가집니다.
작은 차이는 발생합니다. 일부 거래소는 보낸 금액에서 출금 수수료를 차감하고, 결제자가 금액을 반올림하기도 하므로, 279.2846 대신 279.28이 도착할 수 있습니다. `allowed_error_percent` 설정(0~100)은 인보이스가 허용하는 결제 오차를 퍼센트로 나타내며, 생략하면 시스템 기본값이 적용됩니다. 너무 엄격하게 설정하면 사소한 센트 차이까지 쫓게 되고, 너무 느슨하게 설정하면 대형 주문에서 마진을 내주게 됩니다.
인보이스는 실제로 도착한 금액도 기록합니다. `actual_crypto_amount_paid`에는 수령한 금액이 담기고, `currency_paid`는 결제자가 인보이스가 요청한 것과 다른 코인을 사용한 경우를 보여줍니다. 예를 들어 USDC 대신 USDT를 보낸 경우입니다. 이러한 경우에 대한 규칙은 처음 발생하기 전에 미리 문서화해 두세요.
| 상태 | 의미 | 판정 |
|---|---|---|
| new | 인보이스 생성됨, 아직 수령 없음 | 아니요 |
| pending | 결제 진행 중, 완납으로 확정되지 않음 | 아니요 |
| paid_partial | 금액의 일부 수령 | 조건부 |
| completed | 인보이스 결제 완료 | 예 |
| expired | 전액 결제 전에 시간 초과 | 아니요 |
| cancelled | 판매자가 종료, 예: 무효화된 주문 | 아니요 |
판정 열은 하나의 질문에 답합니다. 주문을 발송할 수 있는가? paid_partial의 경우 답은 정책에 따라 달라집니다. 나머지 금액을 기다리거나, 결제자에게 부족분을 추가로 보내 달라고 요청하거나, 금액을 수용하고 주문을 조정하는 방식 중에서 선택하세요.
스테이블코인은 어떻게 내 IBAN으로 유로가 되나요?#
라이선스를 보유한 파트너를 통해서입니다. 파트너가 귀사의 IBAN으로 유로를 지급하거나, 원하시면 스테이블코인을 보관합니다. ItisPay는 API, 인보이스 발행, 대사를 제공하며, EUR로의 정산은 EU 인가를 받은 CASP(암호자산서비스제공자) 겸 지급기관(Payment Institution) 파트너를 통해 이루어집니다.
첫 결제 전에 파트너가 귀사의 사업체에 대해 KYB를 수행합니다. 이는 소유 구조, 이사, 사업 활동에 대한 기업 확인 절차입니다. KYC, AML, IBAN은 파트너가 처리하므로, 규제된 환전은 귀사가 아닌 인가받은 기관이 수행합니다. 고객별 또는 시장별로 유로 수취 계좌가 추가로 필요하다면, 같은 파트너에서 가상 IBAN을 제공받을 수 있습니다.
자금은 들어온 경로와 같은 방식으로 나갈 수도 있습니다. ItisPay 지급 API는 가용 잔액에서 은행 계좌로 법정통화 지급을 하거나 지갑으로 암호화폐 지급을 보내며, 환불, 공급업체 대금, B2B 스테이블코인 결제에 사용할 수 있습니다.
그 아래에는 규칙 하나가 있습니다. 2024년 12월 30일부터 적용된 자금이체규정(Transfer of Funds Regulation) (EU) 2023/1113은 CASP가 암호화폐 이체마다 송신자와 수신자 정보를 전달하고 확인하도록 요구합니다(제14조 및 제16조). 또한 자가 호스팅 지갑이 관련된 1,000유로 초과 이체에 대한 추가 점검을 도입합니다. 이러한 점검은 결제 체크아웃이 아닌 라이선스 파트너가 담당하지만, 대규모 결제에 어떤 영향을 미치는지 파트너에게 문의하세요.
API로 스테이블코인 결제를 어떻게 연결하나요?#
인증된 요청 하나로 인보이스를 생성하고, 웹훅 엔드포인트 하나로 모든 상태 변경을 받습니다. 대부분의 연동은 이 정도면 충분합니다. 요청에는 `Api-key` 헤더로 키를 실어 보내며, 키는 브라우저 코드나 공개 저장소가 아닌 서버에 보관하세요.
| 필드 | 필수 여부 | 기능 |
|---|---|---|
| order_id | 필수 | 주문 참조 번호이며, 주문별로 고유해야 합니다 |
| currency | 필수 | 수령할 코인(예: USDC) |
| fiat_amount and fiat_currency | 둘 중 하나 | EUR 기준 가격이며, 암호화폐 금액은 자동 계산됨 |
| crypto_amount | 둘 중 하나 | 대신 코인으로 고정 금액을 지정 |
| expire_min | 선택 | 인보이스가 만료되기까지의 시간(분) |
| allowed_error_percent | 선택 | 허용 결제 오차(%), 0~100 |
| callback_url | 선택 | 상태 변경 웹훅을 보낼 주소 |
운영 전에 테스트하세요. 시뮬레이션 엔드포인트는 기존 인보이스에 대한 상태 변경 웹훅을 발송하므로, 서버가 completed, expired, paid_partial을 올바르게 처리하는지 확인할 수 있습니다. 웹훅이 도착했을 때 서버가 다운되어 있었다면, 재전송 엔드포인트가 인보이스 ID 또는 주문 ID를 기준으로 가장 최근 콜백을 다시 보냅니다.
재무팀의 경우 인보이스 목록이 정산 대사 화면입니다. API는 상태, 통화, 생성일별로 인보이스를 필터링하며, 페이지당 최대 100건까지 조회할 수 있습니다. 대시보드도 같은 데이터를 보여줍니다. USDC 및 EUR 금액, 수령 금액 비율, 네트워크, 주소, 생성 시각이 표시되며, 인보이스 ID, 주문 ID 또는 주문명으로 검색할 수 있습니다.

인보이스를 넘어 암호화폐 결제를 자동화하는 방법을 더 넓게 보려면, 암호화폐 결제를 자동으로 받는 방법에 관한 가이드를 참고하세요.
스테이블코인 인보이스의 한계는 무엇인가요?#
스테이블코인 인보이스는 이미 USDC를 보유한 결제자에게 적합합니다. 암호화폐 사업자, 국경 간 B2B 고객, 카드 매입사가 거래를 거절하는 고객이 해당합니다. 카드 결제를 부분적으로만 대체할 수 있으며, 몇 가지 한계는 계약 조건에 반영해야 합니다.
여기서는 도움이 되지 않는 경우
- 환불은 새로운 송금입니다. 카드식 차지백은 없으며, 결제자가 확인한 주소로 직접 돈을 돌려보내야 합니다.
- 잘못된 네트워크로 보낸 결제는 인보이스에 반영되지 않으며 유실될 수 있습니다. 네트워크를 명확히 표시하세요.
- 지갑이나 거래소 계정이 없는 고객은 이 방식으로 결제할 수 없습니다. 두 번째 결제 수단을 유지하세요.
- USDT는 ESMA의 인가된 전자화폐토큰 발행자 등록부에 없습니다. ESMA는 2025년 1월 CASP들에게 규정을 준수하지 않는 스테이블코인을 법정화폐로 교환하는 것을 중단하라고 통보했으므로, USDC를 기준으로 계획하세요.
수요는 실재하지만 소수에 집중되어 있습니다. 크리스틴 라가르드 ECB 총재는 2026년 5월 8일 Banco de España 라틴아메리카 경제포럼 연설에서, 국경 간 기업 간(B2B) 결제가 “이미 스테이블코인 결제 거래량의 약 60%를 차지한다”고 말했으며, 이는 “전 세계 기업 간(B2B) 자금 흐름의 0.01%에 불과하다”고 덧붙였습니다. 결제자가 이 집단에 속한다면 인보이스 흐름을 추가할 가치가 있습니다.
스테이블코인 결제를 받는 방법: 첫 인보이스 전에 설정하기#
스테이블코인 결제를 문제없이 받으려면, 코드를 작성하기 전에 네 가지를 결정하세요: 판매 채널별 만료 기간, 결제 오차 허용치, paid_partial 및 잘못된 코인으로 결제된 경우의 정책, 그리고 재무팀 내 정산 대사 담당자. 그런 다음 웹훅 핸들러를 구축하고, 시뮬레이션된 상태로 테스트한 뒤, 소액의 실제 결제를 처음부터 끝까지 한 번 실행하세요.
직접 스택을 구축하지 않고 스테이블코인을 받아 유로로 수령하려면, ItisPay가 API, 인보이스 발행, 정산 대사를 제공합니다. 인허가, KYC, 귀사의 IBAN으로의 정산은 EU 인가를 받은 CASP 겸 지급결제기관 파트너를 통해 진행되며, 대부분의 팀은 KYB부터 첫 거래까지 일주일 이내에 완료합니다.
이 글은 정보 제공 목적으로만 작성되었으며, 법률 또는 규제 자문을 구성하지 않습니다.


