OpenAPI Specification
openapi: 3.2.0
info:
title: Barogo Gorela Order Agency Orders API
version: '2026-06-23'
summary: 고릴라(Gorela) 배달대행 중계 플랫폼 — 주문 제휴사(Order Agency) 연동 API
description: 'Gorela is the delivery-brokerage platform operated by Barogo (바로고). It sits between an order agency (a POS, marketplace or commerce platform that takes the customer''s order) and the delivery agencies that dispatch riders. One order can fan out to N deliveries.
This OpenAPI document was DERIVED by API Evangelist from Barogo''s own published developer reference at https://developer.gorelas.com/api-docs-md/ (last updated 2026-06-23). Every path, method, parameter name, type, enum value and example is carried over verbatim from those documents. Barogo does not publish an OpenAPI document of its own; this is a faithful transcription, not a provider-published artifact.
Auth: `Authorization: Bearer {API_Key}` — API keys are issued from the 연동 관리 (linkage) console at https://developer.gorelas.com/linkage after partner registration.'
contact:
name: Gorela TAM
email: tech_poc@barogo.com
url: https://developer.gorelas.com/
x-origin:
- format: markdown
url: https://developer.gorelas.com/api-docs-md/index.md
version: '2026-06-23'
converter:
url: https://apievangelist.com
version: pipeline-enrich local-v1
servers:
- url: https://api-interlocker.gorelas.com
description: 운영 (production)
- url: https://staging-api-interlocker.gorelas.com
description: 테스트 (staging)
security:
- bearerAuth: []
tags:
- name: Orders
description: 주문 접수 / 조회 / 수정 / 취소 및 배달 가능 여부·요금 조회
paths:
/api/delivery-possible:
post:
operationId: checkDeliveryPossible
summary: 배달 가능 여부 및 요금 조회
description: '공식 문서: 고정 요금 | 의무 수행 (상점 기반), 고정 요금 | 의무 수행 (주소 기반)'
tags:
- Orders
x-evidence:
method: derived-from-published-docs
sources:
- https://developer.gorelas.com/api-docs-md/request-1.md
- https://developer.gorelas.com/api-docs-md/request-2.md
fetched: '2026-08-06'
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
properties:
orderAgencyId:
type: string
maxLength: 30
description: 주문 제휴사 아이디
pickupId:
type: string
maxLength: 100
description: 픽업지 식별 아이디 (상점 아이디 등, 없다면 빈값 가능)
pickupRoadAddress:
type: string
maxLength: 100
description: '픽업 도로명 주소 ****필수**: pickupJibunAddress 또는 pickupRoadAddress*'
pickupJibunAddress:
type: string
maxLength: 100
description: '픽업 지번 주소 (`법정동`) ****필수**: pickupJibunAddress 또는 pickupRoadAddress*'
pickupAddressDetail:
type: string
maxLength: 100
description: 픽업 상세 주소
pickupLocation:
type: object
properties:
latitude:
type: string
description: 위도
longitude:
type: string
description: 경도 픽업지 좌표 **좌표가 있는 경우, 주소보다 **좌표를 우선 처리**합니다.*
required:
- latitude
title: 좌표 데이터
dropRoadAddress:
type: string
maxLength: 100
description: '드랍 도로명 주소 ****필수**: dropJibunAddress 또는 dropRoadAddress*'
dropJibunAddress:
type: string
maxLength: 100
description: '드랍 지번 주소 (`법정동`) ****필수**: dropJibunAddress 또는 dropRoadAddress*'
dropAddressDetail:
type: string
maxLength: 100
description: 드랍 상세 주소
dropLocation:
type: object
properties:
latitude:
type: string
description: 위도
longitude:
type: string
description: 경도 드랍지 좌표 **주소가 유효하지 않은 경우, **좌표로 처리**합니다.*
required:
- latitude
title: 좌표 데이터
pickupWishAt:
type: integer
format: int64
x-constraint: '[ 현재시간 .. 90분 ]'
description: 픽업 희망 일시 (timestamp)
totalPayPrice:
type: integer
x-constraint: '>= actualPayPrice'
description: 총 결제 금액
actualPayPrice:
type: integer
description: 실제 결제 금액 **(고객이 실제로 결제한 금액으로, 할인/쿠폰/포인트 등의 사유로 총 결제 금액에서 차감된 결제 금액)**
prepaidPrice:
type: integer
description: 선결제 금액 (= actualPayPrice)
hasAlcoholicBeverage:
type: boolean
description: 주류 상품 포함 여부 **주류 상품이 포함되는 경우 비대면 접수는 불가능합니다.*
bundleDeliveryCount:
type: integer
minimum: 1
maximum: 3
description: 묶음 배달 건수 **배달대행사 수행 라이더의 묶음 배달 건수에 대한 제한을 요청합니다.* **사전 협의 필요 필드*
deliveryExecutionType:
type: string
description: 자율 수행 (= "`AUTONOMY`") **일정 시간 동안 배차가 되지 않을 시 자동 취소되는 옵션입니다.* **사전 협의 필요 필드*
referencedOrderAgencyOrderId:
type: string
maxLength: 50
description: 참조 주문 제휴사 주문 아이디 **해당 참조 주문의 배달을 수행한 배달대행사가 다시 선정(배정)될 수 있도록 요구하는 옵션입니다.* (아래와 같은 제한 사항이 있으니, 참고하여 연동하시길 바랍니다) 1. 정상 접수되고 배차 ~ 완료된 주문만 가능 2. 배차 시점 24시간 이내의 주문만 가능 3. 예약 주문 접수 시 사용은 불가능
required:
- orderAgencyId
- pickupId
- pickupAddressDetail
- dropAddressDetail
- pickupWishAt
- totalPayPrice
- actualPayPrice
- prepaidPrice
- hasAlcoholicBeverage
title: 고정 요금 | 의무 수행 (주소 기반)
x-source-doc: https://developer.gorelas.com/api-docs-md/request-1.md
- type: object
properties:
orderAgencyId:
type: string
maxLength: 30
description: 주문 제휴사 아이디
orderAgencyStoreId:
type: string
maxLength: 100
description: 주문 제휴사 상점 아이디
dropRoadAddress:
type: string
maxLength: 100
description: '드랍 도로명 주소 ****필수**: dropJibunAddress 또는 dropRoadAddress*'
dropJibunAddress:
type: string
maxLength: 100
description: '드랍 지번 주소 (`법정동`) ****필수**: dropJibunAddress 또는 dropRoadAddress*'
dropAddressDetail:
type: string
maxLength: 100
description: 드랍 상세 주소
dropLocation:
type: object
properties:
latitude:
type: string
description: 위도
longitude:
type: string
description: 경도 드랍지 좌표 **주소가 유효하지 않은 경우, **좌표로 처리**합니다.*
required:
- latitude
title: 좌표 데이터
pickupWishAt:
type: integer
format: int64
x-constraint: '[ 현재시간 .. 90분 ]'
description: 픽업 희망 일시 (timestamp) **픽업 희망 일시 요청 시 픽업 예상 일시(pickupExpectedAt) 응답이 가능합니다.*
totalPayPrice:
type: integer
x-constraint: '>= actualPayPrice'
description: 총 결제 금액
actualPayPrice:
type: integer
description: 실제 결제 금액 **(고객이 실제로 결제한 금액으로, 할인/쿠폰/포인트 등의 사유로 총 결제 금액에서 차감된 결제 금액)**
prepaidPrice:
type: integer
description: 선결제 금액
paymentCashPrice:
type: integer
description: 후불 현금 결제 금액 **(라이더 현장 결제)**
paymentCardPrice:
type: integer
description: 후불 카드 결제 금액 **(라이더 현장 결제)**
bundleDeliveryCount:
type: integer
x-constraint: '[ 1 ]'
description: 묶음 배달 건수 **배달대행사 수행 라이더의 묶음 배달 건수에 대한 제한을 요청합니다.* **사전 협의 필요 필드*
deliveryExecutionType:
type: string
description: 자율 수행 (= "`AUTONOMY`") **일정 시간 동안 배차가 되지 않을 시 자동 취소되는 옵션입니다.* **후불 현금이 포함된 주문은 자율 수행이 불가능합니다.* **사전 협의 필요 필드*
referencedOrderAgencyOrderId:
type: string
maxLength: 50
description: 참조 주문 제휴사 주문 아이디 **해당 참조 주문의 배달을 수행한 배달대행사가 다시 선정(배정)될 수 있도록 요구하는 옵션입니다.* (아래와 같은 제한 사항이 있으니, 참고하여 연동하시길 바랍니다) 1. 정상 접수되고 배차 ~ 완료된 주문만 가능 2. 배차 시점 24시간 이내의 주문만 가능 3. 예약 주문 접수 시 사용은 불가능
required:
- orderAgencyId
- orderAgencyStoreId
- dropAddressDetail
- totalPayPrice
- actualPayPrice
- prepaidPrice
- paymentCashPrice
- paymentCardPrice
title: 고정 요금 | 의무 수행 (상점 기반)
x-source-doc: https://developer.gorelas.com/api-docs-md/request-2.md
description: 고릴라는 요금 유형(고정/유연)과 상점 매핑 방식(주소 기반/상점 기반)에 따라 요청 본문 규격이 다릅니다. 각 변형은 별도의 공식 문서에 정의되어 있습니다.
examples:
고정 요금 | 의무 수행 (주소 기반) — Request:
value:
orderAgencyId: gorela_chicken
pickupId: c7b61777-f091-4b2d-b50e-083171e9196d
pickupRoadAddress: 서울특별시 강남구 도산대로55길 20 영빌딩 1층
pickupJibunAddress: 서울특별시 강남구 청담동 88-5
pickupAddressDetail: 1층
pickupLocation:
latitude: '37.5247834'
longitude: '127.0406188'
dropRoadAddress: 서울특별시 강남구 언주로 134길 32
dropJibunAddress: 서울특별시 강남구 논현동 117
dropAddressDetail: 5층 505호
pickupWishAt: 1674716400000
totalPayPrice: 30000
actualPayPrice: 28000
prepaidPrice: 28000
hasAlcoholicBeverage: false
고정 요금 | 의무 수행 (상점 기반) — Request:
value:
orderAgencyId: gorela_chicken
orderAgencyStoreId: gorela_chicken_store_1
dropRoadAddress: 서울특별시 강남구 언주로 134길 32
dropJibunAddress: 서울특별시 강남구 논현동 117
dropAddressDetail: 5층 505호
pickupWishAt: 1674716400000
totalPayPrice: 30000
actualPayPrice: 28000
prepaidPrice: 28000
paymentCashPrice: 0
paymentCardPrice: 0
responses:
'200':
description: 요청한 작업이 성공했을 때 응답됩니다.
content:
application/json:
schema:
oneOf:
- type: object
properties:
statusCode:
type: integer
data:
type: object
properties:
isPossible:
type: boolean
description: 배달 가능 여부
deliveryInfo:
type: object
properties:
pickupMinimumAt:
type: integer
description: 픽업 최소 일시 (timestamp)
pickupExpectedAt:
type: integer
description: 픽업 예상 일시 (timestamp)
deliveryDistance:
type: integer
description: 배달 거리 (m)
delayTime:
type: integer
description: 배달 지연 시간 (분)
totalDeliveryPrice:
type: integer
description: 총 배달 요금 (deliveryPrice + totalExtraCharge)
deliveryPrice:
type: integer
description: 거리 비례 요금
totalExtraCharge:
type: integer
description: 총 할증 금액
extraCharges:
type: array
items:
type: object
properties:
dataType:
type: string
description: 할증 데이터 종류 (= FIXED)
type:
type: string
description: 할증 종류
enum:
- WEATHER
- AREA
- OVERLOAD
- HOLIDAY
- TIME
- BUSY
- LATE_NIGHT
- VALUABLE
- ADMIN
- ALCOHOLIC
- PROMOTION
- ETC
x-enum-descriptions:
WEATHER: 기상
AREA: 구역
OVERLOAD: 과적
HOLIDAY: 휴일
TIME: 시간
BUSY: 배달 폭증
LATE_NIGHT: 심야
VALUABLE: 귀중
ADMIN: 관리자
ALCOHOLIC: 주류
PROMOTION: 프로모션
ETC: 기타
charge:
type: integer
description: 할증 금액 할증 목록
required:
- dataType
- type
- charge
title: 할증 데이터
VATPrice:
type: integer
description: 부가세 금액 (이 금액은 배달 요금에 포함되지 않는 별도의 금액입니다) - `= null` 부가세 없음 - `= 0` 부가세가 있지만 0원 - `>= 1` 부가세가 있으며 해당하는 금액
required:
- pickupMinimumAt
- pickupExpectedAt
- deliveryDistance
- delayTime
- totalDeliveryPrice
- deliveryPrice
- totalExtraCharge
- VATPrice
title: 데이터
required:
- isPossible
title: 성공 응답 데이터
required:
- statusCode
- data
title: Response Data (SUCCESS)
- type: object
properties:
statusCode:
type: integer
data:
type: object
properties:
isPossible:
type: boolean
description: 배달 가능 여부
reason:
type: boolean
description: 배달 불가능 사유
enum:
- ENUM
- INVALID_AREA
- INVALID_ADDRESS
- TOO_LONG_DELIVERY_DISTANCE
- INCORRECT_DELIVERY_PRICE_SETTING
- OVER_CAPACITY
- BAD_WEATHER
- CLOSE_AGENCY
- CLOSE_STORE
- INSUFFICIENT_DEPOSIT
- WRONG_REQUEST
- STORE_NOT_APPROVED
- DELIVERY_DISABLED
- DELIVERY_AGENCY_CAN_NOT_DEFERRED_PAYMENT
- INVALID_GOODS_PAY_TYPE_ONLY_PREPAID
- INVALID_GOODS_PAY_TYPE_ONLY_PREPAID_OR_CARD
- INCORRECT_STORE_INFO_SETTING
- INCORRECT_STORE_VAN_INFO_SETTING
- OUT_OF_DELIVERY_POSSIBLE_AREA
- POSSIBLE_AREA_OUT_OF_HOURS
- IMPOSSIBLE_DELIVERY_AREA
- ETC
x-enum-descriptions:
ENUM: 설명
INVALID_AREA: 배달이 불가능한 구역으로 거절된 경우
INVALID_ADDRESS: 유효하지 않은 주소 및 좌표로 거절된 경우
TOO_LONG_DELIVERY_DISTANCE: 배달 가능한 거리가 초과되어 거절된 경우
INCORRECT_DELIVERY_PRICE_SETTING: 주문 정보가 상점의 배달 요금 설정(거리/시간/구역/지번 등)에 유효하지 않은 경우
OVER_CAPACITY: 배달을 수행할 수 있는 라이더가 부족하여 거절된 경우
BAD_WEATHER: 배달이 불가능한 날씨로 거절된 경우
CLOSE_AGENCY: 배달대행사의 영업이 종료되어 거절된 경우
CLOSE_STORE: 상점의 영업이 종료되어 거절된 경우
INSUFFICIENT_DEPOSIT: 상점의 예치금이 부족하여 거절된 경우
WRONG_REQUEST: 잘못된 주문 접수로 거절된 경우
STORE_NOT_APPROVED: 상점이 승인되지 않은 상태인 경우
DELIVERY_DISABLED: 기타 사유로 인해 상점이 배달 중단 상태인 경우
DELIVERY_AGENCY_CAN_NOT_DEFERRED_PAYMENT: 후불 결제가 가능한 배달대행사가 없는 경우
INVALID_GOODS_PAY_TYPE_ONLY_PREPAID: 후불 결제가 불가능한 상점인 경우
INVALID_GOODS_PAY_TYPE_ONLY_PREPAID_OR_CARD: 후불 현금 결제가 불가능한 상점인 경우
INCORRECT_STORE_INFO_SETTING: 상점 정보에 문제가 있어 배달 수행이 불가능한 경우
INCORRECT_STORE_VAN_INFO_SETTING: 상점 VAN 정보에 문제가 있어 배달 수행이 불가능한 경우
OUT_OF_DELIVERY_POSSIBLE_AREA: 배달 가능 권역에서 벗어난 경우
POSSIBLE_AREA_OUT_OF_HOURS: 배달 가능 권역이지만 배달 가능 시간이 아닌 경우
IMPOSSIBLE_DELIVERY_AREA: 배달 불가 구역인 경우
ETC: 기타 사유로 거절된 경우
required:
- isPossible
- reason
title: 거절 응답 데이터
required:
- statusCode
- data
title: Response Data (REJECT)
description: 요청이 거절된 경우의 응답 데이터
- type: object
properties:
statusCode:
type: integer
data:
type: object
properties:
isPossible:
type: boolean
description: 배달 가능 여부
deliveryInfo:
type: object
properties:
pickupMinimumAt:
type: integer
description: 픽업 최소 일시 (timestamp)
pickupExpectedAt:
type: integer
description: 픽업 예상 일시 (timestamp)
deliveryDistance:
type: integer
description: 배달 거리 (m)
delayTime:
type: integer
description: 배달 지연 시간 (분)
totalDeliveryPrice:
type: integer
description: 총 배달 요금 (deliveryPrice + totalExtraCharge)
deliveryPrice:
type: integer
description: 거리 비례 요금
totalExtraCharge:
type: integer
description: 총 할증 금액
extraCharges:
type: array
items:
type: object
properties:
dataType:
type: string
description: 할증 데이터 종류 (= FIXED)
type:
type: string
description: 할증 종류
enum:
- WEATHER
- AREA
- OVERLOAD
- HOLIDAY
- TIME
- BUSY
- LATE_NIGHT
- VALUABLE
- ADMIN
- ALCOHOLIC
- PROMOTION
- ETC
x-enum-descriptions:
WEATHER: 기상
AREA: 구역
OVERLOAD: 과적
HOLIDAY: 휴일
TIME: 시간
BUSY: 배달 폭증
LATE_NIGHT: 심야
VALUABLE: 귀중
ADMIN: 관리자
ALCOHOLIC: 주류
PROMOTION: 프로모션
ETC: 기타
charge:
type: integer
description: 할증 금액 할증 목록
required:
- dataType
- type
- charge
title: 할증 데이터
VATPrice:
type: integer
description: 부가세 금액 (이 금액은 배달 요금에 포함되지 않는 별도의 금액입니다) - `= null` 부가세 없음 - `= 0` 부가세가 있지만 0원 - `>= 1` 부가세가 있으며 해당하는 금액
required:
- pickupMinimumAt
- pickupExpectedAt
- deliveryDistance
- delayTime
- totalDeliveryPrice
- deliveryPrice
- totalExtraCharge
- VATPrice
title: 데이터
required:
- isPossible
title: 성공 응답 데이터
required:
- statusCode
- data
title: Response Data (SUCCESS)
- type: object
properties:
statusCode:
type: integer
data:
type: object
properties:
isPossible:
type: boolean
description: 배달 가능 여부
reason:
type: boolean
description: 배달 불가능 사유
enum:
- ENUM
- INVALID_AREA
- INVALID_ADDRESS
- TOO_LONG_DELIVERY_DISTANCE
- INCORRECT_DELIVERY_PRICE_SETTING
- OVER_CAPACITY
- BAD_WEATHER
- CLOSE_AGENCY
- CLOSE_STORE
- INSUFFICIENT_DEPOSIT
- WRONG_REQUEST
- STORE_NOT_APPROVED
- DELIVERY_DISABLED
- DELIVERY_AGENCY_CAN_NOT_DEFERRED_PAYMENT
- INVALID_GOODS_PAY_TYPE_ONLY_PREPAID
- INVALID_GOODS_PAY_TYPE_ONLY_PREPAID_OR_CARD
- INCORRECT_STORE_INFO_SETTING
- INCORRECT_STORE_VAN_INFO_SETTING
- OUT_OF_DELIVERY_POSSIBLE_AREA
- POSSIBLE_AREA_OUT_OF_HOURS
- IMPOSSIBLE_DELIVERY_AREA
- ETC
x-enum-descriptions:
ENUM: 설명
INVALID_AREA: 배달이 불가능한 구역으로 거절된 경우
INVALID_ADDRESS: 유효하지 않은 주소 및 좌표로 거절된 경우
TOO_LONG_DELIVERY_DISTANCE: 배달 가능한 거리가 초과되어 거절된 경우
INCORRECT_DELIVERY_PRICE_SETTING: 주문 정보가 상점의 배달 요금 설정(거리/시간/구역/지번 등)에 유효하지 않은 경우
OVER_CAPACITY: 배달을 수행할 수 있는 라이더가 부족하여 거절된 경우
BAD_WEATHER: 배달이 불가능한 날씨로 거절된 경우
CLOSE_AGENCY: 배달대행사의 영업이 종료되어 거절된 경우
CLOSE_STORE: 상점의 영업이 종료되어 거절된 경우
INSUFFICIENT_DEPOSIT: 상점의 예치금이 부족하여 거절된 경우
WRONG_REQUEST: 잘못된 주문 접수로 거절된 경우
STORE_NOT_APPROVED: 상점이 승인되지 않은 상태인 경우
DELIVERY_DISABLED: 기타 사유로 인해 상점이 배달 중단 상태인 경우
DELIVERY_AGENCY_CAN_NOT_DEFERRED_PAYMENT: 후불 결제가 가능한 배달대행사가 없는 경우
INVALID_GOODS_PAY_TYPE_ONLY_PREPAID: 후불 결제가 불가능한 상점인 경우
INVALID_GOODS_PAY_TYPE_ONLY_PREPAID_OR_CARD: 후불 현금 결제가 불가능한 상점인 경우
INCORRECT_STORE_INFO_SETTING: 상점 정보에 문제가 있어 배달 수행이 불가능한 경우
INCORRECT_STORE_VAN_INFO_SETTING: 상점 VAN 정보에 문제가 있어 배달 수행이 불가능한 경우
OUT_OF_DELIVERY_POSSIBLE_AREA: 배달 가능 권역에서 벗어난 경우
POSSIBLE_AREA_OUT_OF_HOURS: 배달 가능 권역이지만 배달 가능 시간이 아닌 경우
IMPOSSIBLE_DELIVERY_AREA: 배달 불가 구역인 경우
ETC: 기타 사유로 거절된 경우
required:
- isPossible
- reason
title: 거절 응답 데이터
required:
- statusCode
- data
title: Response Data (REJECT)
description: 요청이 거절된 경우의 응답 데이터
examples:
고정 요금 | 의무 수행 (주소 기반) — 성공:
value:
statusCode: 200
data:
# --- truncated at 32 KB (683 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/barogo/refs/heads/main/openapi/barogo-orders-api-openapi.yml