---
title: 선물하기 API
slug: world-sdk-guide-kr/zI1U-api
docTags: 
createdAt: 2024-09-02T08:34:13.134Z
---

ZEPETO 월드 내에서 다른 사용자에게 의류 아이템을 선물하기 위해 선물하기 API를 사용할 수 있습니다.

단, API 사용 시 보내는 사람의 재화는 차감됩니다.&#x20;



## 설치

Window → 패키지 관리자 → ZEPETO.World 패키지를 먼저 1.21.14 버전 이상으로 설치하십시오.

그 후, 1.0.7 버전 이상의 ‘ZEPETO.Module’ 패키지를 설치하십시오.

ZEPETO 앱이 3.46.000 버전 이상으로 실행되고 있는지 확인하십시오.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-SCGjvJHEAi76UkoHHXYW_-20240904-102409.png)



## 기프트 API

기프트 API를 사용하려면 아래의 import 문을 추가하십시오.

```typescript
import { GiftBackgroundType, ShopService, ItemGiftResponse } from 'ZEPETO.Module.Shop';
```



Gifting API에 관심이 있으시면 문서를 참조하세요:

:::hint{type="info"}
**📘&#x20;**&#xB2E4;음 가이드를 참조하세요. \[[ZEPETO.Module.Shop API](https://developer.zepeto.me/docs/module/namespaces/ZEPETO_Module_Shop)]
:::



:::hint{type="danger"}
- Unity 에디터에서 성공 및 실패 사례를 모두 테스트할 수 있습니다. 기부가 성공하더라도 통화가 차감되지 않으며, 선물은 수신자에게 전달되지 않습니다.
- QR 코드나 테스트 링크를 통한 모바일 테스트 중 성공적인 거래는 실제 통화 차감으로 이어지며, 선물이 수신자에게 전달됩니다.
:::



## 사용 예시

- 캔버스에 선물 보내기 버튼을 추가해 주세요.
- 아래와 같이 예제 코드를 작성해 주세요.

```typescript
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { GiftBackgroundType, ShopService, ItemGiftResponse } from 'ZEPETO.Module.Shop';
import { Button } from 'UnityEngine.UI';
import { ErrorCode } from 'ZEPETO.Module';
 
export default class SendGift extends ZepetoScriptBehaviour {
 
    public itemId : string;
    public targetUserId : string;
    public sendGiftButton : Button;
 
    Start() {
        this.sendGiftButton.onClick.AddListener(()=>{
            ShopService.ShowGiftPopup(
                this.itemId,
                this.targetUserId,
                GiftBackgroundType.Type01,
                "안녕하세요, 이건 당신을 위한 것입니다!",
                (response: ItemGiftResponse) => {  // onComplete callback
                    console.log(`선물이 성공적으로 전송되었습니다! ZEPETO 코인 잔액 ${response.coin}, ZEM 잔액 ${response.zem}`);
                },
                (error: ErrorCode) => {  // onFailure callback
                    console.error("선물 전송 오류:", error);
                }
            );
        });
    }
}
```



- 스크립트를 작성한 후, 인스펙터에서 버튼을 연결하고 선물을 받을 사람의 userID와 itemID를 입력하세요.

:::hint{type="info"}
**📘&#x20;**&#x5A;epeto Player의 UserId를 얻는 방법에 대한 다음 가이드를 참조하십시오. \[[ZEPETO Player](docId\:dDd3Oqk0bVtOHQy9zZfGu)]
:::



- 성공 또는 실패 사례를 테스트하려면 QR 코드를 생성한 다음 모바일 장치에서 테스트하십시오.
- 그러나 발신자의 상품이 차감된다는 점에 유의하십시오.



### 선물이 성공적으로 전송되었을 때

- 버튼을 클릭하면 선물을 보내기 위한 팝업 UI가 나타납니다.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-3MUIdRSuqF0IHLlTLP8s7-20240904-102409.png)



- 선물이 성공적으로 전송되면 성공을 나타내는 Toast UI가 나타나고, 예제 스크립트가 로그를 생성합니다.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-Vf1otjwZXmf93sv8CRJlA-20240904-102409.png)



![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-b1LZQ5DbQd9JpXX1av_uO-20240904-102409.png)



- 추가적으로, targetUser를 위한 선물이 도착했습니다.

::Image[]{src="https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-SujWd6C1VsYM0lNIAcRDq-20240904-102409.jpg" size="60" width="865" height="1068" position="center" showCaption="false"}



### 선물 발송 실패 시

- 해당 사례가 ErrorCode에 해당하면, Toast UI에 오류 메시지가 표시되며, 예제 스크립트는 해당 오류 코드를 출력합니다.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-zAFMZdiur9v6Cf7LN_97C-20240904-102410.png)



::Image[]{src="https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-_k8_ckg4so3bvNO6LLZBc-20240904-102409.png" size="50" width="290" height="60" position="center" showCaption="false"}

