주문 결제 완료 처리
POST /v1/invoices/{id}/mark-as-paid 로 입금 매칭 없이 주문을 결제 완료로 바꿔요.
POST /v1/invoices/{id}/mark-as-paid
현금으로 받았거나 다른 수단으로 결제된 주문을 결제 완료로 바꿔요. 만료된 주문도 바꿀 수 있어요. 입금이 자동으로 매칭된 주문은 이미 결제 완료라서 호출할 필요가 없어요.
호출하면 이런 일이 함께 일어나요.
invoice.paid웹훅이trigger: "API_CALL"로 가요.- 주문에
cashReceipt가 있고 사업자 정보를 등록했다면 현금영수증을 발급해요. - 카페24 연동으로 만들어진 주문이면 카페24 주문도 입금 확인 상태로 바꿔요.
구매자에게 가는 결제 완료 이메일은 보내지 않아요.
경로 파라미터
| 파라미터 | 타입 | 설명 |
|---|---|---|
id |
string | 결제 완료로 바꿀 주문 ID예요. ivc_로 시작해요. |
요청 예시
curl -X POST https://api.paysync.kr/v1/invoices/ivc_a1b2c3d4e5f6g7h8i9j0k1l2/mark-as-paid \
-H "Authorization: Bearer $PAYSYNC_API_KEY"const res = await fetch(`https://api.paysync.kr/v1/invoices/${invoiceId}/mark-as-paid`, {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PAYSYNC_API_KEY}` },
});
const { code, data } = await res.json();import os
import requests
res = requests.post(
f"https://api.paysync.kr/v1/invoices/{invoice_id}/mark-as-paid",
headers={"Authorization": f"Bearer {os.environ['PAYSYNC_API_KEY']}"},
)
print(res.json())응답
paid가 true로 바뀐 주문 객체가 와요.
{
"code": "OK",
"data": {
"id": "ivc_a1b2c3d4e5f6g7h8i9j0k1l2",
"issuerId": "acc_x9y8z7w6v5u4t3s2r1q0p9o8",
"bankAccountIds": [],
"customer": {
"name": "홍길동",
"email": null,
"phoneNumber": null
},
"cashReceipt": null,
"amount": 50000,
"paid": true,
"metadata": { "orderId": "ORDER-2026-0001" },
"issuedAt": "2026-04-28T03:14:15.926Z",
"expiresAt": null,
"deletedAt": null
}
}
오류
| HTTP | code |
발생 조건 |
|---|---|---|
| 401 | NOT_AUTHORIZED |
API 키가 없거나 올바르지 않아요. |
| 403 | INSUFFICIENT_PERMISSIONS |
다른 계정의 주문이거나, API 키의 접근 가능한 계좌 밖의 주문이에요. |
| 403 | INVOICE_ALREADY_PAID |
이미 결제 완료된 주문이에요. |
| 404 | INVOICE_NOT_FOUND |
주문이 없거나 삭제됐어요. |