PIX
PIX는 Banco Central do Brasil (BACEN)이 운영하는 브라질의 즉시 결제 스킴입니다. BR Code QR 형식은 EMVCo MPM의 서브셋으로, 태그 26의 Merchant Account Information에 PIX 키(CPF, CNPJ, 이메일, 전화번호 또는 랜덤 EVP)를 담습니다. PIX는 출시 후 2년 미만(2020 → 2022)에 첫 1조 헤알을 결제했으며 현재 브라질의 지배적인 소매 결제 네트워크입니다.
공식 사양:Banco Central do Brasil, PIX 문서. 핵심 결의: BACEN Resolution 103/2021, Manual de Padrões para Iniciação do Pix.
상위 사양:EMVCo MPM v1.1. PIX는 가맹점 계정 태그
인코딩: 2자리 태그, 2자리 길이, CRC16-CCITT 트레일러를 가진 TLV(Tag-Length-Value).
상위 사양:EMVCo MPM v1.1. PIX는 가맹점 계정 태그
26을 예약하고 나머지는 EMVCo에서 상속합니다. 인코딩: 2자리 태그, 2자리 길이, CRC16-CCITT 트레일러를 가진 TLV(Tag-Length-Value).
BR Code 구조, 태그 26 (PIX Merchant Account Information)
PIX 전용 콘텐츠는 태그 26에 있습니다. 이 태그 자체가 다음 서브태그를 가진 중첩된 TLV 구조입니다:
| 서브태그 | 이름 | 길이 | 비고 |
|---|---|---|---|
00 | GUI, 전역 고유 식별자 | 14 | 고정값 br.gov.bcb.pix. 스킴을 PIX로 식별합니다. |
01 | PIX 키 | 가변 | CPF (11자리), CNPJ (14자리), 이메일, 전화 (+55DDPHONE), 또는 EVP (UUID 형식의 랜덤 키). |
02 | 추가 정보 | 가변, ≤72 | 지급인에게 보내는 자유 텍스트 메시지. 지급인의 뱅킹 앱에 표시됩니다. |
25 | URL, 동적 PIX | 가변 | 동적 PIX에만 사용: 스캔 시 지급인의 앱이 이 URL에서 전체 페이로드를 가져옵니다(금액, 만기일, 만료, 할인/벌금). 정적 PIX는 태그 25를 완전히 생략합니다. |
PIX 키 유형
| 키 유형 | 형식 | 검증 |
|---|---|---|
| CPF (개인 납세자 ID) | 11자리, QR 페이로드에 구두점 없음 | 마지막 2자리에 Mod-11 체크섬. 마스크 123.456.789-09 → 원시값 12345678909. |
| CNPJ (법인 납세자 ID) | 14자리, 구두점 없음 | 두 개의 mod-11 체크섬. 마스크 12.345.678/0001-95 → 원시값 12345678000195. |
| 이메일 | RFC 5321 준수, 최대 77자 | BACEN이 등록 시 소문자로 변환. QR 페이로드는 등록된 대소문자와 일치해야 합니다. |
| 전화번호 | E.164 국가 코드 +55, 최대 14자 | 형식: +55DDNNNNNNNNN (DD는 2자리 지역 코드). 공백이나 하이픈 없음. |
| EVP (랜덤 키) | UUID v4 형식, 36자 | 등록 시 지급인의 은행이 서버 측에서 생성. CPF/CNPJ/이메일/전화번호를 공개하지 않으려는 가맹점에 권장. |
정적 PIX 대 동적 PIX
- 정적 PIX (Point of Initiation
11). QR에 모든 것을 인코딩: PIX 키, 가맹점 이름, 가맹점 도시, 선택적 고정 금액, 선택적 참조. 지급인의 앱이 직접 읽고 승인합니다. 인쇄된 스티커, 청구서, 윈도우 포스터에 최적. 금액을 생략(지급인이 입력)하거나 고정(정확한 청구)할 수 있습니다. - 동적 PIX (Point of Initiation
12). QR은 URL(서브태그25)을 전달합니다. 지급인의 앱이 스캔 시 해당 URL에서 JWS 서명된 JSON 페이로드(금액, 만기일, 만료 창, 선택적 연체료/할인 규칙)를 가져옵니다. 만료일이 있는 청구서(boletos híbridos)에 필수. PIX Cobrança(청구)에도 사용됩니다.
정식 테스트 벡터, CPF 키와 고정 금액이 있는 정적 PIX
CPF 12345678909, 가맹점 LOJA TESTE (SAO PAULO), 고정 금액 R$10.00, 거래 참조 없음:
00020126360014br.gov.bcb.pix0114123456789095204000053039865406010.005802BR5910LOJA TESTE6009SAO PAULO62070503***6304XXXX| 태그 | 값 | 의미 |
|---|---|---|
00 | 01 | 페이로드 형식 표시자 (항상 01) |
01 | 11 | 정적 시작 지점 |
26 | 36바이트 중첩 TLV | PIX Merchant Account Information |
├─ 00 | br.gov.bcb.pix | GUI |
├─ 01 | 12345678909 | CPF 키 (11자리) |
52 | 0000 | MCC, 알 수 없음 / 개인 |
53 | 986 | BRL에 대한 ISO 4217 통화 코드 |
54 | 10.00 | 고정 거래 금액 |
58 | BR | 국가 코드 |
59 | LOJA TESTE | 가맹점 이름 (EMVCo 기준 최대 25자) |
60 | SAO PAULO | 가맹점 도시 (최대 15자) |
62 | 7바이트 중첩 | 추가 데이터 템플릿 |
├─ 05 | *** | 참조 레이블 (참조 없을 때 플레이스홀더) |
63 | XXXX | 이전 모든 내용에 대한 CRC16-CCITT (인코딩 시 재계산) |
일반적인 함정
- CPF/CNPJ 마스킹. QR 페이로드는 마스크 해제된 숫자만 사용합니다(
12345678909,123.456.789-09가 아님). 일부 코드 생성기가 점과 하이픈을 실수로 남기면 모든 뱅킹 앱에서 "chave PIX inválida"로 실패합니다. - 문자 집합이 중요합니다. BACEN 사양은 가맹점 이름과 도시에 ISO/IEC 8859-1 (Latin-1)을 요구합니다. 악센트 문자(
São Paulo)는 TLV 길이를 계산하기 전에 Latin-1로 인코딩해야 합니다. UTF-8 인코딩은 바이트 수를 늘려 길이 필드를 망가뜨립니다. - CRC 계산. CRC16-CCITT (다항식
0x1021, init0xFFFF, 최종 XOR 없음)는 태그00부터6304까지 모든 것을 포함합니다, CRC 필드 자체의 리터럴 태그+길이 포함. 일반적인 버그: 잘못된 범위에서 CRC를 계산하면 일부 앱에서는 정상 파싱되고 다른 앱에서는 실패합니다. - 금액 형식은 문자열이지 숫자가 아닙니다. 태그
54는 문자열입니다:10.00이지1000이 아닙니다. 소수점 이하 두 자리가 필요합니다. 최대 두 자리, BRL에는 센트 이하의 단위가 없습니다. - 정적 PIX에는 내장 환불 기능이 없습니다. 결제 후 정적 PIX는 즉각적이고 최종적입니다. 가맹점은 밴드 외부에서 환불을 처리해야 합니다(가맹점에서 지급인으로의 역방향 PIX). 인쇄물에 이를 명확하게 표시하세요.
- 스티커 오버레이 사기. 계산대의 물리적 PIX QR 스티커가 오버레이 사기의 피해를 받았습니다, 공격자가 가맹점의 QR 위에 자신의 QR을 붙입니다. 정적 QR을 주기적으로 교체하고 코팅하며, 지급인이 확인할 수 있도록 스티커 옆에 예상되는 PIX 키를 일반 텍스트로 표시하세요.
- 투자/증권 제한. Comissão de Valores Mobiliários (CVM)는 미등록 투자 권유에 PIX를 금지합니다. 토큰, "보장 수익" 상품 또는 MLM 스킴의 랜딩 페이지에 있는 PIX QR은 CVM 집행 조치를 유발합니다.
- 동적 PIX는 라이브 엔드포인트가 필요합니다. 태그
25URL이 죽어 있으면 스캔 시 결제가 실패합니다. 제어하는 호스트를 사용하고 QR의 인쇄 수명 동안 최소한 유지하세요.
뱅킹 앱 호환성
모든 라이선스를 받은 PIX 참여자(은행 또는 결제 기관)는 소비자 앱에서 BR Code를 지원합니다. 주요 구현:
| 앱 | 정적 | 동적 | 비고 |
|---|---|---|---|
| Itaú, Bradesco, Santander, BB, Caixa | 예 | 예 | 상위 5개 은행. Cobrança, agendado, devolução를 포함한 완전한 PIX 지원. |
| Nubank | 예 | 예 | 브라질에서 가장 인기 있는 네오뱅크. 깔끔한 PIX UX. |
| Inter, C6 Bank, PicPay | 예 | 예 | 완전한 PIX 지원. |
| Mercado Pago | 예 | 예 | 결제 기관. PIX는 같은 앱의 여러 결제 네트워크 중 하나입니다. |
| 일반 iOS/Android 카메라 | 아니오 | 아니오 | 기본 카메라 앱은 BR Code를 결제 의도로 파싱하지 않습니다. 사용자는 먼저 뱅킹 앱을 열어야 합니다. |
관련 항목
- /pix-qr-code/, CPF/CNPJ 검증과 실시간 BR Code 인코딩이 있는 PIX 생성기.
- /standards/emvco/, EMVCo MPM 상위 사양.
- /standards/upi/, UPI 인도, 태그 26을 가진 또 다른 EMVCo 파생 스킴.
- /standards/, 표준 인덱스로 돌아가기.