통화 감사용 API Enterprise: 엔드포인트 및 예시
감사 API v1 실무 참조: 조직 키 인증, URL 또는 업로드로 감사 생성, 에이전트, 팀, 스크립트, 분석, HMAC 웹훅.
통화 감사 API v1의 실무 참조 — 감사 모듈을 PABX 또는 전화 플랫폼과 통합하는 채널입니다. 엔터프라이즈 요금제 조직과 조직 API 키가 필요합니다.
인증
키는 /dashboard/organization/auditorias에서 생성하세요(OWNER/ADMIN; 조직당 활성 키 최대 10개). 모든 요청에 포함하세요:
Authorization: Bearer vpt_live_SUA_CHAVE_DA_ORG
- 비밀 키는 생성 시 한 번만 표시됩니다 — 해시만 저장합니다.
- 각 키에는 범위(scope) (
audits:write,audits:read,usage:read,analytics:read등)가 있으며, 허용되지 않은 범위는 기본적으로 거부됩니다. - 속도 제한: 키당 분당 60회 요청.
감사 생성
curl -X POST https://www.vozparatexto.com.br/api/v1/audits \
-H "Authorization: Bearer vpt_live_SUA_CHAVE_DA_ORG" \
-H "Content-Type: application/json" \
-d '{
"audio_url": "https://pbx.suaempresa.com/gravacoes/8841.mp3",
"webhook_url": "https://api.suaempresa.com/hooks/auditorias",
"idempotency_key": "chamada-8841",
"agent_external_id": "maria.souza",
"team": "vendas-sp"
}'
규칙:
audio_url(공개https만) 또는upload_id(아래 참조)를 허용합니다.webhook_url은 필수입니다 — 결과는 폴링이 아닌 웹훅으로 전달됩니다.idempotency_key는 영구적으로 저장됩니다. 동일한 키로 재전송해도 감사가 중복 생성되지 않습니다.- 즉시 응답:
202 { "audit_id": "...", "status": "queued" }.
조회: GET /api/v1/audits (목록) 및 GET /api/v1/audits/{id} (상세).
공개 URL이 없는 녹음
URL을 노출하지 않는 PABX라면 임시 업로드 URL을 요청하세요:
curl -X POST https://www.vozparatexto.com.br/api/v1/uploads \
-H "Authorization: Bearer vpt_live_SUA_CHAVE_DA_ORG"
응답에는 1시간 동안 유효한 put_url이 포함됩니다. PUT으로 파일을 업로드한 뒤 감사 생성 시 반환된 upload_id를 사용하세요.
운영 등록 및 지표
| Endpoint | 기능 |
|---|---|
GET/POST /api/v1/agents | 에이전트(시스템의 외부 식별자 사용) |
GET/POST /api/v1/teams | 팀 |
GET/POST /api/v1/scripts + POST /api/v1/scripts/{id}/versions | 스크립트 및 버전 |
GET /api/v1/usage | 기간 사용량 |
GET /api/v1/analytics/summary | 운영 분석 요약 |
GET /api/v1/analytics/agents/{external_id} | 에이전트별 지표 |
웹훅 및 보장
- 전달은 HMAC-SHA256으로 서명됩니다(
X-VPT-Signature+X-VPT-Event). 처리 전에 검증하세요. - 시도당 타임아웃 15초, 최대 6회 시도, 5분~24시간 백오프.
- 중단된 작업은 사라지지 않습니다. 10분 이상 중지된 큐는 다시 대기열에 들어가고, 60분 이상 중단된 처리는 오류 웹훅과 함께 실패로 처리됩니다. 전송된 모든 오디오는 최종 콜백을 생성합니다.
자세한 내용은 웹훅 및 알림을 참조하세요.
FAQ
여기에 개인 API 키를 사용할 수 있나요?
아니요 — 감사 API는 조직 키를 사용합니다. 감사 패널에서 OWNER/ADMIN이 생성하며 고유한 범위를 가집니다.
같은 통화를 두 번 보냈습니다. 중복되나요?
아니요, 동일한 idempotency_key를 사용했다면 중복되지 않습니다. 멱등성은 데이터베이스에 영구 저장됩니다.
업로드가 끝나기 전에 put_url이 만료되었습니다. 어떻게 하나요?
새 put_url(유효시간 1시간)을 요청하고 다시 업로드하세요. 아직 생성된 것은 없습니다.
각 통합의 권한을 어떻게 제한하나요?
시스템별로 별도의 키를 만들고 각각 필요한 범위만 부여하세요(예: 내부 대시보드는 analytics:read만). 필요할 때 개별적으로 취소할 수 있습니다.
관련 문서
문제가 해결되지 않았나요? 티켓 열기 — 담당 팀이 빠르게 답변합니다.