지식 베이스

자체 시스템에서 Zinn® 호스팅 판매하기

자체 결제 패널, WordPress 사이트 또는 스크립트에서 Zinn® 호스팅을 직접 제어하세요. API 키를 발급받고, 첫 번째 호출을 실행하고, 전체 연동을 구성하는 6개의 호출을 확인하세요.

귀하는 당사의 호스팅을 리셀합니다. 귀하의 고객은 귀하의 고객입니다: 귀하의 가격, 귀하의 청구서, 귀하의 결제 서비스 제공업체. 이는 청구 패널, 자체 WordPress 사이트, 스크립트 등 귀하가 이미 운영 중인 모든 환경에서 당사 플랫폼을 구동하는 방법입니다.

고객이 실제로 보게 되는 화면

작동 방식을 설명하기 전에: 고객은 당사를 전혀 볼 필요가 없습니다. 세 가지 인터페이스가 제공되며, 사용자가 선택할 수 있습니다.

인터페이스소유 주체
자체 호스트명의 호스팅 패널리셀 → 자체 브랜드에서 패널 호스트명을 설정하면 고객이 귀하의 로고와 색상이 적용된 panel.yourcompany.com에서 로그인합니다. 동일한 패널이지만, 귀하의 주소로 제공됩니다.
자체 웹사이트WordPress 플러그인이 도메인 검색과 원클릭 로그인 링크를 사이트에 배치하고, 자체 WooCommerce 결제를 통해 주문을 접수합니다.
자체 청구 패널WHMCS 또는 HostBill이 전면 창구로 유지됩니다. 모듈이 그 이면에서 프로비저닝을 수행하며, 고객 영역 버튼을 통해 호스팅으로 바로 로그인됩니다.

⛔ 어떤 것을 선택하시든, 귀하는 고객에 대한 공식 판매자(merchant of record)입니다: 귀하의 가격, 귀하의 청구서, 귀하의 부가가치세 번호, 귀하의 결제 서비스 제공업체. 당사는 한 달에 한 번 도매가로 귀하에게 청구합니다.

패널 호스트명을 설정했다면, 이를 WordPress 플러그인의 패널 주소 필드에만 입력하고 다른 곳에는 입력하지 마십시오. 이 API가 생성하는 로그인 링크는 해당 주소를 자동으로 따릅니다.

네 가지 접근 방식

네 가지 접근 방식이 있으며, 모두 내부적으로는 동일하게 작동합니다:

용도
WHMCS 모듈WHMCS 상점
HostBill 모듈HostBill 상점
WordPress 플러그인자체 WordPress 또는 WooCommerce 사이트에서의 판매
API그 외 모든 환경 — Blesta, 사내 시스템, 크론 스크립트

1. API 키 발급받기

대시보드에서 API 키로 이동하여 키를 생성하십시오. 필요한 권한만 부여하십시오:

권한이유
org.read고객 계정 읽기
sites.create사이트 프로비저닝
sites.view서비스 읽기
sites.delete해지
reseller.view서비스 목록 표시 및 사용량 읽기
reseller.provision일시 중단, 해제 및 고객 로그인 처리

⛔ 통합 환경에 reseller.manage 권한을 부여하지 마십시오. 해당 권한은 가격표와 자체 결제 게이트웨이 자격 증명을 수정합니다. reseller.provision은 청구 패널이나 웹사이트에 붙여넣는 키에 해당 권한이 필요하지 않도록 하기 위해 정확히 존재합니다.

키는 한 번만 표시됩니다. 다른 자격 증명을 저장하는 위치에 보관하십시오 — 웹 서버가 제공하는 파일에는 절대 보관하지 마십시오.

2. 첫 호출 수행하기

curl https://api.zinndigital.com/v1/reseller/services \
  -H "Authorization: Bearer zdk_live_…"

이를 통해 사이트당 한 행씩, 소속 고객, 상태, 청구 금액과 함께 귀하가 프로비저닝한 모든 서비스가 반환됩니다. 새 계정에서는 빈 목록이 반환되며, 이는 오류가 아니라 올바른 응답입니다.

3. 여섯 번의 호출로 끝내는 전체 통합

시점                 호출
주문이 결제됨         POST   /v1/orgs                                   고객당 1회
                     POST   /v1/sites                                  서비스당 1회
미결제 상태임         POST   /v1/reseller/services/{siteId}/suspend
결제 완료함           POST   /v1/reseller/services/{siteId}/unsuspend
취소함               DELETE /v1/sites/{siteId}
"호스팅 로그인"       POST   /v1/reseller/services/{siteId}/sso

프로비저닝은 두 번의 호출로 이루어지며, 키가 중요합니다:

# 1. 고객 계정 — 귀하의 고객 ID를 키로 사용
curl -X POST https://api.zinndigital.com/v1/orgs \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: account-4211" \
  -d '{"type":"customer","name":"Acme Ltd"}'

# 2. 고객 사이트 — 귀하의 서비스 ID를 키로 사용
curl -X POST https://api.zinndigital.com/v1/sites \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: service-9915" \
  -d '{"org_id":"<from step 1>","product_line":"mainstream","primary_domain":"acme.com"}'

잘못 처리할 경우 비용이 발생하는 두 가지 규칙

  1. 계정은 고객 기준으로, 사이트는 서비스 기준으로 키를 지정하십시오. 고객의 두 번째 주문은 이미 보유한 계정으로 전달되어야 합니다. 둘 다 서비스 기준으로 키를 지정하면 한 명의 고객이 무관한 세 개의 계정과 세 개의 별도 패널을 갖게 됩니다.
  2. 해당 대상에 대한 자체 ID로 생성된 Idempotency-Key를 모든 POST에 전송하십시오. 모든 청구 시스템은 재시도를 수행합니다 — 게이트웨이 콜백이 두 번 도착하거나, 관리자가 실패한 프로비저닝을 다시 실행하거나, 고객이 더블 클릭을 합니다. 키가 없으면 두 번째 시도로 인해 두 번째 사이트가 생성되고 이에 대한 요금이 청구됩니다.

두 가지로 축약해서는 안 되는 세 가지 응답

  • unsuspend는 409를 응답할 수 있습니다. 이는 귀하가 아니라 당사의 어뷰징 대응 팀이 해당 사이트를 보류 중임을 의미합니다. 메시지를 표시하고 재시도하지 마십시오.
  • **해지는 삭제를 예약하는 것이지, 즉시 수행하는 것이 아닙니다.** 날짜는 pending_deletion_at으로 반환됩니다. 데이터가 아직 남아 있는데 고객에게 이미 사라졌다고 알리는 것은 아무 말도 하지 않는 것보다 더 나쁩니다.
  • disk_used_bytes는 null일 수 있으며, null은 0이 아닙니다. 이는 아무것도 사용되지 않았다는 것이 아니라 측정할 수 없었음을 의미합니다. 건너뛰십시오 — 자체 기록에 0을 기재하지 마십시오. 그렇지 않으면 측정값이 없는 사이트에 대해 고객에게 녹색 사용량 표시줄을 보여주게 됩니다.

4. 고객 로그인 처리

POST /v1/reseller/services/{siteId}/sso는 고객을 이미 로그인된 상태로 자신의 계정으로 바로 이동시키는 일회용 URL을 반환합니다.

⛔ 페이지를 렌더링할 때가 아니라, 고객이 클릭할 때 생성하십시오. 링크는 일회용이며 몇 분 내에 만료되므로, 페이지에 작성된 링크는 첫 페이지 조회 시 소진되고 사용자와 브라우저 사이의 모든 캐시에 남게 됩니다.

5. 대신 모듈 설치하기

  • WHMCS — 모듈을 modules/servers/zinn/에 복사하고, 비밀번호가 API 키인 서버를 추가한 후 제품의 제품 라인을 설정하십시오. 연결 테스트를 누르십시오: 실제 호출이 수행되고 플랫폼의 응답 내용이 표시됩니다.
  • HostBill — includes/modules/Hosting/zinn/에 복사하고 동일한 방식으로 연결하십시오.
  • WordPress — Zinn® Reseller Toolkit: 도메인 검색, 고객 호스팅으로 통하는 로그인 링크, 주문 결제 시 WooCommerce 프로비저닝을 지원합니다. <https://github.com/Zinn-Digital/zinn-reseller-toolkit>에서 제공되는 오픈 소스이거나, 대시보드의 플러그인에서 다운로드하십시오.

6. 라이브 전환

실제 주문을 접수하기 전에 다음 사항을 확인하십시오:

  • 모듈의 연결 테스트가 통과되었거나 첫 curl 호출에서 목록이 반환됩니다.
  • 가격표가 설정되어 있습니다(리셀 → 자체 가격).
  • 결제 게이트웨이가 연결되어 있습니다(리셀 → 결제 게이트웨이) — 고객은 자체 계정을 통해 귀하에게 결제합니다.
  • 회사 세부정보가 입력되어 있어(리셀 → 자체 회사) 고객 청구서에 당사가 아닌 귀하의 법인 및 부가가치세 번호가 표시됩니다.
  • 한 번의 실제 주문을 처음부터 끝까지 접수하여 사이트가 생성되는 것을 확인했습니다.

기타 모든 정보 위치

각 엔드포인트에 필요한 권한과 함께 당사 사양을 바탕으로 생성된 전체 API 레퍼런스는 <https://zinndigital.com/developers/api>에서 확인할 수 있습니다.

블로그 최신 글

호스팅, SEO 및 대규모 사이트 운영에 대해 작성한 글입니다.

호스팅 계층에서의 SEO 및 링크 빌딩: 2026년 운영자의 관점

2026년 호스팅이 색인 생성과 링크 자산에 미치는 영향: 페이지의 색인 상태 유지, 구축 전 기존 도메인 검증, 검색 엔진 흔적 없는 링크 빌딩, 그리고 인프라가 SEO를 위해 할 수 있는 것과 할 수 없는 것에 대한 솔직한 분석.

게시물 읽기 →

WordPress를 빠르고 안전하게 만들기: 성능 및 플러그인 체크리스트

빠르고 안전한 WordPress를 위한 실용적인 체크리스트: 서버 수준 캐싱, 사이트별 객체 캐시, 사용할 가치가 있는 소수의 플러그인, 최신 스택 유지, 그리고 절대 캐시해서는 안 되는 WooCommerce 페이지.

게시물 읽기 →

2026년 관리형 웹 호스팅을 선택하는 방법: 구매자 가이드

제어판이 있는 저렴한 서버와 우수한 매니지드 호스팅을 실제로 구분 짓는 요소(마이그레이션, 백업, 격리, 진정한 캐싱 및 정직한 확장성), 그리고 계약하기 전에 이를 평가하는 방법.

게시물 읽기 →

블로그 읽기 →

아직 해결되지 않았나요?

모든 요금제에 지원 서비스가 포함되어 있으며, 고객센터는 하루 24시간 열려 있습니다. 또한 58개의 지원 언어 중 편하신 언어로 문의해 주시면 고객님의 언어로 답변해 드립니다.

지원팀에 문의 → 모든 글 →