인증 문서 번역 주문을 프로그래밍 방식으로 접수하고 추적하세요. HTTPS 기반 REST API를 제공하며, 베어러 토큰으로 인증되고 JSON 형식으로 응답합니다. 모든 이벤트에 대해 서명된 웹훅이 전송됩니다.
curl -X POST https://www.rapidtranslate.org/api/v1/orders \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "reference=APO-10432" \
-F "source_language=Spanish" \
-F "target_language=English (US)" \
-F "translation_type=certified" \
-F "files[]=@document.pdf"
→ {
"id": "9b1c2d3e-…",
"status": "pending",
"livemode": true
} 그만큼 Rapid Translate API를 사용하면 애플리케이션에서 공증 번역을 위한 문서를 제출하고, 최신 상태 및 가격을 조회하고, 최종 번역 파일을 받을 수 있습니다. 이 모든 과정에서 팀에서 당사의 결제 시스템을 건드릴 필요가 없습니다. 이 API는 고객을 대신하여 번역 주문을 처리하는 기업을 위해 설계되었습니다.
모든 요청은 다음으로 이루어집니다. https://www.rapidtranslate.org/api/v1 HTTPS를 통해 전송됩니다. 요청 및 응답은 JSON 형식이며, 주문 생성 시에는 파일을 업로드합니다. 멀티파트/폼 데이터모든 금액은 다음과 같이 반환됩니다. 정수 센트 모든 금액은 미국 달러이며, 타임스탬프는 UTC ISO-8601 기준입니다.
코드를 작성하기 전에 API를 직접 사용해 보고 싶으신가요? 저희 Postman 컬렉션에는 인증, 예시 본문, 쿼리 매개변수 등 모든 엔드포인트가 미리 구성되어 있습니다.
apiKey 키에서 비즈니스 설정 → API 키.baseUrl 사용 환경에 따라 기본값은 프로덕션으로 설정됩니다.모든 요청을 비밀 API 키를 베어러 토큰으로 사용하여 인증하고 JSON 응답을 요청하세요. 두 헤더 모두 필수입니다.
인증: Bearer YOUR_API_KEY 수락: application/json 대시보드의 비즈니스 설정 → API 키 에서 키를 생성하고 교체할 수 있습니다. 키는 생성 시 한 번만 표시되며 해시된 상태로 저장됩니다. 키를 분실한 경우 새 키로 교체하세요. 각 키는 하나의 모드 (라이브 또는 샌드박스)에 속하며 고정된 범위 집합을 가집니다.
각 엔드포인트는 키에 특정 권한을 요구합니다. 필요한 범위가 없는 키는 오류를 반환합니다. 403 forbidden_scope.
| 범위 | 보조금 |
|---|---|
주문:쓰기 | 주문 생성 및 승인 |
주문:읽기 | 주문 내역을 검색하고 목록으로 표시합니다. |
가격:읽기 | 가격표를 읽어보세요 |
테스트 모드는 계정 속성이 아니라 키 자체의 속성입니다. 샌드박스 키는 완벽하게 시뮬레이션된 환경에서 실행되고, 라이브 키는 실제 결제가 가능한 주문을 처리합니다. 두 가지 모두 동시에 사용할 수 있습니다.
샌드박스 주문은 실제 주문과 동일한 유효성 검사, 필드 매핑 및 가격 책정을 사용하지만 파일 저장, OCR 및 주문 처리 과정을 생략합니다. 샌드박스 주문은 생성 시 자동으로 전체 수명 주기를 거칩니다.처리 중 → 완료됨), 실제 주문과 동일한 웹훅을 실행하고 마지막으로 정적 샘플 문서를 제공합니다.
모든 응답과 웹훅에는 다음이 포함됩니다. 라이브모드 키를 검사하지 않고도 통합이 분기될 수 있도록 하는 플래그입니다.
라이브 모드: true — 실제 청구 가능한 주문라이브 모드: false — 샌드박스/테스트 순서조직별로 요청 횟수에 제한이 있습니다. 기본 허용량은 다음과 같습니다. 분당 120건의 요청이를 초과하면 반환됩니다. 429 요금 제한됨잠시 후 다시 시도하십시오. 통합에 더 높은 제한이 필요한 경우 문의하십시오. support@rapidtranslate.org.
모든 성공적인 응답은 페이로드를 다음과 같은 형식으로 감쌉니다. 데이터 키. 엔드포인트 목록에 추가 메타 페이지네이션이 있는 블록.
{
"data": {
"id": "9b1c...-uuid",
"reference": "APO-10432",
"status": "processing",
"total": 11270,
"currency": "USD"
}
} {
"data": [ ... ],
"meta": {
"current_page": 1,
"per_page": 25,
"total": 134,
"last_page": 6
}
} 오류는 표준 HTTP 상태 코드를 사용하며 안정적이고 기계가 읽을 수 있는 값을 반환합니다. 오류 코드 사람의 메시지와 함께. 유효성 검사 오류는 필드 키를 추가합니다. 오류 물체.
{
"message": "The given data was invalid.",
"error_code": "validation_failed",
"errors": {
"source_language": ["The selected source language is invalid."]
}
} | HTTP | 오류 코드 | 의미 |
|---|---|---|
| 400 | 잘못된 요청 | 요청 본문 형식이 잘못되었습니다 |
| 401 | 인증되지 않은 | 키가 없거나, 유효하지 않거나, 취소되었습니다. |
| 402 | 결제 실패 | 주문은 승인되었지만 결제가 완료되지 않았습니다. |
| 402 | 신용보유 | 주문 금액이 신용 한도를 초과했습니다. |
| 403 | forbidden_scope | Key에는 필요한 범위가 부족합니다. |
| 403 | 계정 정지됨 | 미지급 청구서로 인해 해당 기관은 영업 정지 처분을 받았습니다. |
| 404 | 찾을 수 없음 | 이 조직에는 그러한 주문이 없습니다. |
| 409 | duplicate_reference | 다른 주문에 참조가 재사용되었습니다. |
| 409 | 승인 대기 중이 아님 | 주문은 귀하의 승인을 기다리고 있지 않습니다. |
| 422 | 유효성 검사 실패 | 누락되었거나 유효하지 않은 필드 |
| 429 | 요금 제한됨 | 속도 제한 초과 |
| 500 | 서버 오류 | 예기치 않은 서버 오류 |
| 503 | 처리 실패 | 다운스트림 처리(OCR/가격 책정)에 실패했습니다. |
주문의 상태 안정적인 수명 주기를 따릅니다. 이 다섯 가지 값은 또한 일반적으로 받아들여지는 값입니다. 상태 필터 켜기 주문 목록:
| 상태 | 의미 |
|---|---|
보류 중 | 접수되었습니다. 가격 책정은 아직 완료되지 않았습니다. 총 아마도 널. |
승인 대기 중 | 견적을 제시해 드렸으며, 총액 승인을 기다리고 있습니다 (승인이 필요한 경우에만). |
처리 중 | 승인 완료 및 활성화됨; 번역 작업 진행 중. |
완전한 | 완료되었습니다. 번역된 문서를 확인하실 수 있습니다. |
취소 | 주문이 취소되었습니다. |
주문이 진행되는 동안 더 세분화된 레이블(예: 번역가에게 배정됨, 번역하기, 배송됨)도 나타날 수 있습니다. 승인이 필요한 경우, 주문서에 간략하게 보고될 수 있습니다. 결제 실패 또는 신용보유 결제가 이루어지지 않은 경우, 결제 방법을 해결하고 다시 승인하십시오.
얻다 /언어
지원되는 모든 언어를 반환합니다. 사용 방법 이름 값을 그대로 소스 언어 / 대상 언어 주문을 생성할 때 주문은 코드명이 아닌 언어명을 기준으로 매칭됩니다.
인증된 키가 필요합니다.
curl https://www.rapidtranslate.org/api/v1/languages \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json" {
"data": [
{ "code": "english-uk", "name": "English (UK)", "active": true },
{ "code": "spanish", "name": "Spanish", "active": true }
]
} 얻다 /물가
주문에 적용되는 미국 기준 요금표(USD)를 반환합니다. 금액은 소수점 이하 문자열입니다. 가격은 그룹별로 분류됩니다. 번역 유형(각각은 다음을 포함함) 정기적인 그리고 빠른 당-단위 가격), 배달 방법과 아포스티유 — 주문 생성 시 전송하는 것과 동일한 값입니다.
범위: 가격:읽기
{
"data": {
"country": { "code": "US", "name": "United States" },
"currency": { "code": "USD", "symbol": "$" },
"translation": {
"certified": { "unit": "page", "regular": "27.99", "rapid": "37.99" },
"standard": { "unit": "word", "regular": "0.11", "rapid": "0.15" },
"specialized": { "unit": "page", "regular": "47.99", "rapid": "57.99" },
"naati": { "unit": "page", "regular": "42.99", "rapid": "52.99" },
"sworn": {
"unit": "page",
"note": "Sworn pricing depends on the language pair.",
"language_pairs": [
{ "languages": ["Spanish","English"], "unit": "page", "regular": "57.99", "rapid": "67.99" },
{ "languages": ["Polish","English"], "unit": "page", "regular": "46.99", "rapid": "56.99" }
]
}
},
"delivery": {
"email": "0.00", "notarized_email": "19.99",
"mail_standard": "29.99", "mail_next_day": "55.00"
},
"apostille": { "base": "79.00", "additional_document": "15.00" }
}
} 선서에 의한 가격 책정. 공증 번역은 언어 쌍별로 가격이 책정됩니다. 언어 쌍 모든 선서 자격이 있는 쌍을 고유한 정보와 함께 나열합니다. 정기적인/빠른 가격. 모든 영어 변형(English (US/UK/AU/CA))이 허용되며, 각 쌍은 양방향으로 작동합니다. 단, 해당 쌍에 다른 문자가 있는 경우는 예외입니다. "양방향": 거짓.
우편 /명령
번역 주문을 생성하고 원본 파일을 업로드합니다. 파일을 전송하기 때문에 이 엔드포인트는 다음과 같은 기능을 사용합니다. 멀티파트/폼 데이터 (JSON 형식이 아닙니다.) 중첩 필드는 대괄호 표기법을 사용합니다. 예: 고객[이름].
범위: 주문:쓰기
| 필드 | 유형 | 메모 |
|---|---|---|
참조 | 문자열 필수 | 고유한 주문 참조 번호입니다. 이 참조 번호를 재사용하면 기존 주문이 반환됩니다(멱등성 참조). |
고객[이름] | 문자열 필수 | 최종 고객의 성명. |
고객[이메일] | 문자열 필수 | 최종 고객의 이메일 주소입니다. |
소스 언어 | 문자열 필수 | 정확한 표현 이름 ~에서 언어 목록. |
대상 언어 | 문자열 필수 | 정확한 표현 이름 ~에서 언어 목록. |
번역 유형 | 문자열 필수 | 하나 인증됨, 기준, 전문화된, 맹세하다, 나아티. |
전환 | 문자열 필수 | 정기적인 또는 빠른. |
배송[방법] | 문자열 필수 | 하나 이메일, 공증된 이메일, 메일_표준, 다음 날 우편 발송. |
배송[주소][...] | 물체 | 필수 사항 메일_표준 / 다음 날 우편 발송: 거리, 도시, 우편번호, 국가 (상태 선택 과목). 국가 ISO 코드입니다. 예: 우리를. |
아포스티유[활성화됨] | 부울 | 아포스티유 처리 절차를 추가하세요. 아래 규칙을 참조하십시오. |
아포스티유[문서] | 정수 | 아포스티유를 받을 문서 수. 활성화 시 필수 항목입니다. |
아포스티유[목적지_국가] | 끈 | 아포스티유를 발급받을 국가. |
메모 | 끈 | 자유 형식 지침. |
쿠폰 코드 | 끈 | 적용할 할인 코드입니다. 명백히 유효하지 않거나 적용할 수 없는 코드는 생성 시 거부됩니다. 422 유효성 검사 실패할인 금액은 주문 가격이 확정된 후에 최종적으로 적용됩니다(아래 참고 사항 참조). |
파일[] | 파일[] 필수 | 파일 1~20개. 허용 파일 형식: pdf, jpg, jpeg, png, doc, docx, tiff, heic. 각 파일 최대 용량: 20MB. |
참조 조직마다 고유합니다. 동일한 사용자로 생성을 반복하면 문제가 발생합니다. 참조 기존 주문을 반환합니다. 200 중복 주문을 생성하는 대신 (새 주문이 반환됩니다) 201). 메일_표준 배송 방법. 다음 날 우편 발송 미국 주소로만 배송 가능합니다. curl -X POST https://www.rapidtranslate.org/api/v1/orders \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json" \ -F "reference=APO-10432" \ -F "customer[name]=Jane Doe" \ -F "customer[email]=jane@example.com" \ -F "source_language=Spanish" \ -F "target_language=English (US)" \ -F "translation_type=certified" \ -F "turnaround=regular" \ -F "delivery[method]=email" \ -F "files[]=@/path/to/birth-certificate.pdf" {
"data": {
"id": "9b1c2d3e-...-uuid",
"reference": "APO-10432",
"livemode": true,
"status": "pending",
"source_language": "Spanish",
"target_language": "English (US)",
"translation_type": "certified",
"turnaround": "regular",
"total": null,
"currency": "USD",
"created_at": "2026-08-28T10:15:00+00:00"
}
} 새로 생성된 주문은 다음과 같이 시작됩니다. 보류 중 함께 널 가격 계산 중 총액입니다. 설문조사 주문 조회 또는 들어보세요 주문 상태 웹훅을 통해 가격 및 상태 업데이트를 확인할 수 있습니다.
쿠폰. 에이 쿠폰 코드 두 단계에 걸쳐 검사가 진행됩니다. 생성 단계에서는 문서 길이에 관계없이 유효한 코드, 사용 제한, 적용 가능한 번역/서비스 유형 등을 검증하고, 유효하지 않은 코드는 즉시 거부합니다. 페이지/단어 수(및 할인 금액 자체)에 따라 달라지는 규칙은 문서 계산 후 적용되므로 할인 금액이 문서에 반영됩니다. 가격 총액이지 초기값이 아닙니다. 보류 중 만약 주문 수량 확인 후 쿠폰이 적용되지 않는 것으로 판명될 경우, 주문은 정가로 처리되며 담당 팀에서 검토할 수 있도록 표시됩니다.
얻다 /orders/{id}
해당 항목을 통해 단일 주문을 가져옵니다. ID (생성 시 반환된 UUID). 반환값 404 찾을 수 없음 주문이 귀하의 조직에 속하지 않는 경우.
범위: 주문:읽기
curl https://www.rapidtranslate.org/api/v1/orders/9b1c2d3e-...-uuid \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json" 얻다 /명령
조직의 주문 내역을 최신순으로 페이지네이션과 함께 반환합니다. 메타모든 쿼리 매개변수는 선택 사항입니다.
범위: 주문:읽기
| 질문 | 메모 |
|---|---|
상태 | 하나 보류 중, 승인 대기 중, 처리 중, 완전한, 취소. |
참조 | 참조 번호를 기준으로 필터링하세요. |
소스 언어 / 대상 언어 | 언어 이름으로 필터링하세요. |
created_from / created_to | 날짜 범위(포함). |
종류 | -생성됨_at (기본값, 최신순) 또는 created_at (가장 오래된 순서부터). |
페이지당 | 1~100. 기본값은 표준 페이지 크기입니다. |
페이지 | 페이지 번호. |
curl "https://www.rapidtranslate.org/api/v1/orders?status=completed&per_page=50" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json" 우편 /orders/{id}/승인
주문에 대한 계산된 총액을 승인합니다. 승인 대기 중이를 활성화하여 작업을 완료합니다. 이는 작업 시작 전에 계정 승인이 필요한 경우에만 필요합니다. 이 호출은 멱등성을 가집니다.
범위: 주문:쓰기
curl -X POST https://www.rapidtranslate.org/api/v1/orders/9b1c2d3e-...-uuid/approve \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Accept: application/json" 승인이 완료되면 업데이트된 주문 정보가 반환됩니다. 주문이 승인을 기다리고 있지 않은 경우 다른 메시지가 표시됩니다. 409 승인 대기 중이 아님충전이 필요하지만 실패하면 다음과 같은 결과가 나옵니다. 402 결제 실패 또는 402 크레딧_홀드.
주문 생성 시 허용되는 고정 세트입니다.
| 값 | 설명 |
|---|---|
인증됨 | 공증 번역 (페이지당 가격). |
기준 | 표준 번역 (단어당 가격 책정). |
전문화된 | 전문/특수 번역 서비스 (페이지당). |
맹세하다 | 공증 번역본 (페이지당). |
나아티 | NAATI 인증 번역(페이지당). |
| 값 | 설명 |
|---|---|
정기적인 | 일반적인 처리 기간입니다. |
빠른 | 신속한 처리. |
| 값 | 주소 | 설명 |
|---|---|---|
이메일 | 아니요 | 이메일을 통한 디지털 배송(무료). |
공증된 이메일 | 아니요 | 공증된 디지털 전송. |
메일_표준 | 예 | 실물 우편; 배송 가능 국가로 배송됩니다. |
다음 날 우편 발송 | 예 | 익일 배송 (미국 주소에 한함). |
폴링 방식 대신 웹훅 엔드포인트를 구성하여 이벤트 발생 시 수신하세요. URL을 설정하고 서명 비밀 키는 비즈니스 설정 → 웹훅 에서 확인할 수 있습니다. 웹훅은 편리한 기능이며, 주문 조회는 항상 공식적인 결과를 제공합니다.
| 이벤트 | 보낸 시점 |
|---|---|
주문 상태 | 주문 상태가 변경되었습니다. |
고객 리뷰 | 주문 가격이 책정되었으며 승인을 기다리고 있습니다(승인 모드에서만 가능). |
문서 전달 | 번역된 문서가 다운로드 URL과 함께 준비되었습니다. |
결제 실패 | 승인된 주문에 대한 요금을 청구할 수 없습니다. 실패 차단하다 (이유, 메시지지갑 카드 정보를 업데이트하고 다시 승인하세요. |
신용보유 | 승인된 주문은 신용 한도를 초과할 수 있으며, 이 경우 추가 비용이 발생합니다. 신용보유 차단하다 (메시지청구서를 결제하거나 더 높은 한도를 요청하세요. |
모든 배송에는 동일한 봉투가 들어 있습니다: 이벤트 블록(포함) 라이브모드) 및 이벤트별 데이터 차단하다.
{
"event": {
"type": "order_status",
"id": "evt_9b1c...",
"livemode": true,
"sent_at": "2026-08-28T10:20:00+00:00"
},
"data": {
"order": {
"id": "9b1c2d3e-...-uuid",
"reference": "APO-10432",
"status": "completed"
}
}
} 그만큼 문서 전달 이벤트가 추가됩니다 서류 배열(각각은 ~을 포함함) 이름, 다운로드_URL, 버전, 상태) 그리고 a 문 링크. 고객 리뷰 이벤트는 항목별 목록을 추가합니다. 가격 블록과 액션.승인 호출할 URL이 담긴 객체입니다.
각 요청에는 서명이 되어 있으므로 누가 요청했는지 확인할 수 있습니다. Rapid Translate 우리는 세 개의 헤더를 보냅니다.
| 헤더 | 값 |
|---|---|
X-RapidTranslate-Signature | sha256=<hmac> |
X-RapidTranslate-타임스탬프 | 서명에 사용된 유닉스 타임스탬프 |
X-RapidTranslate-이벤트 | 고유 이벤트 ID |
예상 서명을 해당 문자열의 HMAC-SHA256으로 계산합니다. "{타임스탬프}.{원시 요청 본문}" 웹훅 서명 비밀 키를 사용하여 헤더 값과 비교합니다.
// PHP
$expected = 'sha256=' . hash_hmac(
'sha256',
$timestamp . '.' . $rawBody,
$webhookSecret
);
$valid = hash_equals($expected, $signatureHeader); Node.js(Express) — 정확한 바이트 수를 유지하기 위해 raw body 파서를 사용하여 경로를 마운트합니다.
// app.use('/webhooks/rapidtranslate', express.raw({ type: 'application/json' }))
const crypto = require('crypto');
const timestamp = req.get('X-RapidTranslate-Timestamp');
const received = req.get('X-RapidTranslate-Signature'); // "sha256=..."
const rawBody = req.body; // Buffer, untouched
const expected = 'sha256=' + crypto
.createHmac('sha256', WEBHOOK_SECRET)
.update(`${timestamp}.${rawBody}`)
.digest('hex');
const valid = received &&
crypto.timingSafeEqual(Buffer.from(received), Buffer.from(expected)); 사람들이 흔히 실수하는 세 가지:
X-RapidTranslate-Signature 헤더는 다음을 포함합니다 샤256= 접두사. 또는 ~와 비교하십시오. 'sha256=' + yourHmac (위와 같이) 비교하기 전에 접두사를 제거하세요. 16진수 값만 전체 헤더와 비교하지 마세요.hash_equals / 크립토.타이밍세이프이퀄), 절대 ~와 함께 == 또는 ===.그만큼 {타임스탬프} 서명된 문자열의 일부이므로 헤더에서 읽어 해싱하기 전에 앞에 추가해야 합니다. 또한 이를 통해 만료되었거나 재전송된 메시지(예: 5분보다 오래된 타임스탬프)를 거부할 수 있습니다.
전송 실패 시 지수적 백오프 방식으로 재시도합니다(최대 5회). 응답하려면 다음을 입력하십시오. 2xx 수신 확인을 위한 상태 메시지입니다.