해외 송금 일괄 보고(JSON)
JSON 배열을 스트리밍으로 업로드하여 여러 건의 해외송금 내역을 일괄 보고합니다.
![]()
해외 송금 일괄 보고(JSON) API는 POST 메소드로 호출되며, 상세 스펙 및 호출 예제는 아래와 같습니다.
| HTTP URL | /api/oris/v1/batches/{batchId}/chunks/{seq} |
|---|---|
| HTTP Method | POST |
| Content-Type | application/json; charset=UTF-8 |
| HTTP | 항목 | TYPE(길이) | 필수 | 값 | 설명 |
|---|---|---|---|---|---|
| Header | Authorization | string | Y | Bearer <access_token> | 로그인 시 ORIS로부터 전송받은 access_token을 HTTP Header에 추가 [scope = inquiry] |
| Idempotency-Key | string | N | 94a8dea9-5632-410d-8567-6d9be1671b92 | 멱등성 보장을 위한 클라이언트 키 | |
| X-Chunk-SHA256 | string | Y | 65cd5a6ab84f04388f33c6c5557edf47883cf4fa927b002016d8b0220fcc6867 | 전송 청크 본문의 SHA-256 해시(hex) | |
| Content-Encoding | string | N | gzip | 본문 인코딩(gzip 지원) | |
| Parameter | [inpath] batchId | string | Y | 01K6HZSF7509N9S8EPTQ7X1FXS | 생성된 배치 ID |
| [inpath] seq | integer(int32) | Y | 0 | 청크 순서(0부터 시작) | |
| [inquery] type | string(JSON | CSV | JSON | CSV) | N | JSON | 업로드 타입 | |
| [inquery] rowCount | integer(int32) | Y | 1000 | 이 청크에 포함된 행(건) 수 |
| HTTP | 항목 | TYPE(길이) | 필수 | 값 | 설명 |
|---|---|---|---|---|---|
| Body | acceptedBytes | integer(int64) | Y | 1048576 | 수락된 바이트 수 |
| status | string | Y | QUEUED | 청크 상태 | |
| sha256 | string | Y | a1b2c3d4... | 계산된 SHA-256 해시 |
{
"acceptedBytes": 1048576,
"status": "QUEUED",
"sha256": "a1b2c3d4..."
}| HTTP | 항목 | TYPE(길이) | 필수 | 값 | 설명 |
|---|---|---|---|---|---|
| Body | message | string | N | 요청에 실패했습니다. | 오류 메시지 |
| code | string("ERROR" | "BAD_REQUEST" | "INVALID_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "ACCESS_TOKEN_REQUIRED" | "ACCESS_TOKEN_EXPIRED" | "ACCESS_TOKEN_INVALID" | "ACCESS_TOKEN_NOT_ENOUGH_PERMISSION" | "AGENCY_NOT_FOUND" | "AGENCY_NOT_ACTIVE" | "AGENCY_NOT_APPROVED" | "AGENCY_NOT_MATCH" | "AGENCY_ACCESS_DENIED" | "AGENCY_CODE_DUPLICATED" | "MEMBER_NOT_FOUND" | "MEMBER_NOT_ACTIVE" | "MEMBER_NOT_MATCH" | "MEMBER_PASSWORD_NOT_MATCH" | "MEMBER_EMAIL_DUPLICATED" | "MEMBER_PASSWORD_RESET" | "MEMBER_PASSWORD_RESET_WITH_OLD" | "MEMBER_PASSWORD_INVALID_FORMAT" | "MEMBER_PASSWORD_FAIL_LIMIT_EXCEEDED" | "MEMBER_PASSWORD_EXPIRED" | "MEMBER_ACCOUNT_LOCKED" | "MEMBER_PASSWORD_REUSED" | "MEMBER_ACCESS_DENIED" | "API_KEY_NOT_FOUND" | "USER_NOT_FOUND" | "USER_NOT_ACTIVE" | "ACCOUNT_NOT_FOUND" | "REMITTANCE_NOT_FOUND" | "REMITTANCE_ALREADY_EXISTS" | "REMITTANCE_ALREADY_CANCELED" | "REMITTANCE_ACCOUNT_YEAR_MISMATCH" | "THREAD_NOT_FOUND" | "THREAD_ACCESS_DENIED" | "POST_NOT_FOUND" | "POST_ACCESS_DENIED" | "COMMENT_NOT_FOUND" | "COMMENT_ACCESS_DENIED" | "FILE_NOT_FOUND" | "FILE_ACCESS_DENIED" | "FILE_ALREADY_ATTACHED" | "FILE_DELETE_FAILED" | "TERM_NOT_FOUND" | "TERM_CANNOT_UPDATE" | "TERM_CANNOT_DELETE" | "TERM_CANNOT_SET_INITIATION_DATE" | "TERM_CANNOT_WITHDRAW_INITIATION_DATE" | "TERM_TYPE_NOT_FOUND" | "CONSENT_REQUIRED" | "CONSENT_NOT_FOUND" | "CONSENT_NOT_MATCH" | "GROUP_NOT_FOUND" | "GROUP_UPDATE_FORBIDDEN" | "GROUP_DELETE_FORBIDDEN" | "BATCH_NOT_FOUND" | "BATCH_CHUNK_NOT_FOUND") | N | ERROR | 오류 코드 |
{
"code": "BAD_REQUEST",
"message": "Failed to convert value of type 'java.lang.String' to required type 'java.lang.Boolean'"
}{
"code": "BAD_REQUEST",
"message": "Failed to convert value of type 'java.lang.String' to required type 'java.lang.Boolean'"
}{
"code": "BAD_REQUEST",
"message": "Validation failed for argument at index 0 in method"
}{
"code": "BAD_REQUEST",
"message": "Malformed JSON request"
}{
"code": "BAD_REQUEST",
"message": "Invalid argument"
}{
"code": "ACCESS_TOKEN_REQUIRED",
"message": "Access token is required for authentication."
}{
"code": "ACCESS_TOKEN_INVALID",
"message": "Invalid access token signature."
}{
"code": "CONSENT_REQUIRED",
"message": "Consent is required for 개인정보보호서약서",
"missingConsentType": "개인정보보호서약서"
}{
"code": "AGENCY_ACCESS_DENIED",
"message": "Agency access denied"
}{
"code": "ACCESS_TOKEN_EXPIRED",
"message": "Access token has expired."
}{
"code": "BAD_REQUEST",
"message": "No handler found for the request"
}{
"code": "ERROR",
"message": "Internal server error. Please try again later."
}