DK 입고 송장 라벨 발행 (다건)
curl --request POST \
--url https://gw-staging.delivered.co.kr/global-ship/open-api/v1/shipments/labels \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"masterNumbers": [
"D04510082600064",
"D04510082600065"
]
}
'import requests
url = "https://gw-staging.delivered.co.kr/global-ship/open-api/v1/shipments/labels"
payload = { "masterNumbers": ["D04510082600064", "D04510082600065"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({masterNumbers: ['D04510082600064', 'D04510082600065']})
};
fetch('https://gw-staging.delivered.co.kr/global-ship/open-api/v1/shipments/labels', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://gw-staging.delivered.co.kr/global-ship/open-api/v1/shipments/labels",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'masterNumbers' => [
'D04510082600064',
'D04510082600065'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://gw-staging.delivered.co.kr/global-ship/open-api/v1/shipments/labels"
payload := strings.NewReader("{\n \"masterNumbers\": [\n \"D04510082600064\",\n \"D04510082600065\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://gw-staging.delivered.co.kr/global-ship/open-api/v1/shipments/labels")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"masterNumbers\": [\n \"D04510082600064\",\n \"D04510082600065\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://gw-staging.delivered.co.kr/global-ship/open-api/v1/shipments/labels")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"masterNumbers\": [\n \"D04510082600064\",\n \"D04510082600065\"\n ]\n}"
response = http.request(request)
puts response.read_body"<string>"{
"httpStatus": 400,
"message": "DK 입고 송장번호 목록이 비어 있습니다.",
"errorCode": "MASTER_NUMBERS_EMPTY"
}{
"httpStatus": 401,
"message": "인증에 실패했습니다. 인증 정보가 없거나 위변조·만료되었습니다.",
"errorCode": "AUTHENTICATION_FAILED"
}{
"httpStatus": 403,
"message": "다른 고객사의 배송 건이 포함되어 있습니다.",
"errorCode": "SHIPMENT_ACCESS_DENIED"
}{
"httpStatus": 404,
"message": "존재하지 않는 DK 입고 송장번호가 포함되어 있습니다.",
"errorCode": "SHIPMENT_NOT_FOUND",
"masterNumbers": [
"D04510082600099"
]
}{
"httpStatus": 500,
"message": "라벨 발행에 실패했습니다. 이미 발행된 라벨은 저장되어 재호출 시 다시 발행되지 않습니다.",
"errorCode": "DK_LABEL_CREATION_FAILED"
}배송 API
라벨 발행 (다건)
DK 입고 송장번호 여러 건을 받아 라벨 PDF를 하나로 병합해 반환합니다. 응답은 application/pdf 바이너리이며, 요청한 송장번호 순서대로 병합됩니다. 중복된 송장번호는 한 번만 포함됩니다.
라벨이 아직 없는 배송 건은 이 호출에서 발행하고, 이미 발행된 건은 저장된 라벨을 그대로 사용합니다. 한 건만 필요할 때는 라벨 발행 (단건) API를 사용하세요.
한 번에 요청할 수 있는 배송 건은 최대 100건입니다. 초과하면 400(
MASTER_NUMBERS_LIMIT_EXCEEDED)으로 거부됩니다. 존재하지 않는 송장번호가 하나라도 섞이면 404(SHIPMENT_NOT_FOUND)로 전체가 거부되고, 응답 본문 masterNumbers에 해당 번호가 담깁니다. 이 경우 PDF는 반환되지 않으며 라벨 발행도 일어나지 않습니다.처리 도중 실패하면 전체가 실패하지만, 그 전에 발행된 라벨은 저장되어 다시 발행되지 않습니다. 여러 건 중 일부만 실패했을 때는 라벨 발행 (단건) API로 개별 복구할 수 있습니다.
자세한 호출 순서와 식별자 흐름은 배송 API 시작하기를 참고하세요. 인증은 API 키 · 환경 문서를 따릅니다.
POST
/
open-api
/
v1
/
shipments
/
labels
DK 입고 송장 라벨 발행 (다건)
curl --request POST \
--url https://gw-staging.delivered.co.kr/global-ship/open-api/v1/shipments/labels \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"masterNumbers": [
"D04510082600064",
"D04510082600065"
]
}
'import requests
url = "https://gw-staging.delivered.co.kr/global-ship/open-api/v1/shipments/labels"
payload = { "masterNumbers": ["D04510082600064", "D04510082600065"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({masterNumbers: ['D04510082600064', 'D04510082600065']})
};
fetch('https://gw-staging.delivered.co.kr/global-ship/open-api/v1/shipments/labels', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://gw-staging.delivered.co.kr/global-ship/open-api/v1/shipments/labels",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'masterNumbers' => [
'D04510082600064',
'D04510082600065'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://gw-staging.delivered.co.kr/global-ship/open-api/v1/shipments/labels"
payload := strings.NewReader("{\n \"masterNumbers\": [\n \"D04510082600064\",\n \"D04510082600065\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://gw-staging.delivered.co.kr/global-ship/open-api/v1/shipments/labels")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"masterNumbers\": [\n \"D04510082600064\",\n \"D04510082600065\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://gw-staging.delivered.co.kr/global-ship/open-api/v1/shipments/labels")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"masterNumbers\": [\n \"D04510082600064\",\n \"D04510082600065\"\n ]\n}"
response = http.request(request)
puts response.read_body"<string>"{
"httpStatus": 400,
"message": "DK 입고 송장번호 목록이 비어 있습니다.",
"errorCode": "MASTER_NUMBERS_EMPTY"
}{
"httpStatus": 401,
"message": "인증에 실패했습니다. 인증 정보가 없거나 위변조·만료되었습니다.",
"errorCode": "AUTHENTICATION_FAILED"
}{
"httpStatus": 403,
"message": "다른 고객사의 배송 건이 포함되어 있습니다.",
"errorCode": "SHIPMENT_ACCESS_DENIED"
}{
"httpStatus": 404,
"message": "존재하지 않는 DK 입고 송장번호가 포함되어 있습니다.",
"errorCode": "SHIPMENT_NOT_FOUND",
"masterNumbers": [
"D04510082600099"
]
}{
"httpStatus": 500,
"message": "라벨 발행에 실패했습니다. 이미 발행된 라벨은 저장되어 재호출 시 다시 발행되지 않습니다.",
"errorCode": "DK_LABEL_CREATION_FAILED"
}Authorizations
accessTokenAuthorization
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
라벨을 발행할 DK 입고 송장번호 목록. 한 번에 최대 100건까지 요청할 수 있습니다.
Maximum array length:
100Example:
["D04510082600064", "D04510082600065"]
Response
OK — 라벨 PDF
The response is of type file.