# Pay Station API

# 개요 {% #overview %}

* **버전:** 2.0.0
* **서버**:
  * `https://api.xsolla.com/api`

페이 스테이션을 통해 파트너가 사용자에게 게임 스토어에서 인게임 구매를 결제하도록 돕는 편리한 UI를 제공하고 수익을 창출할 수 있습니다. 
결제 UI를 열도록 설정하려면 다음 [지침](/ko/doc/pay-station/how-to/how-to-open-payment-ui/)을 참조해 
주세요.

페이 스테이션 API는 다음과 같은 호출 그룹을 제공합니다.
- 토큰 - 결제 UI를 통해 추후 결제 처리에 사용하는 임의 사용자 매개 변수로 토큰을 생성하는 API 호출을 포함합니다.
- [토큰화](/ko/doc/pay-station/features/tokenization/) - 결제 UI를 열지 않고 사용자의 개입이 없어도 안전하게 
  결제를 처리하는 API 호출을 포함합니다.
- 보고서 - 사용자 트랜잭션 데이터를 반환하고, 보고서를 생성하고, 통화별 지급액 내역을 확인할 수 있는 API 호출을 포함합니다.
- 환불 - 전액 및 부분 환불을 요청하는 API 호출을 포함합니다.
- 테스트 - 지불 거절 프로세스를 테스트하는 API 호출을 포함합니다.

결제 UI 구성에 대한 자세한 정보는 [결제 솔루션 연동 가이드](/ko/solutions/payments/integration-guide/integration-flow/)에서 확인할 수 있습니다.

<div class="note">
<p><strong>참고</strong></p><p>또한 <a href="https://github.com/xsolla/xsolla-postman">포스트맨 컬렉션</a>의 <b>Xsolla Base API</b> 섹션을 참조하여 연동에 사용되는 API 호출을 테스트할 수 있습니다.</p>
</div>

# Xsolla Business Accounts {% #business-accounts %}

Business Account is the primary tool for configuring Xsolla features, as well 
as for working with analytics and transactions.

Xsolla develops tools for different business categories. To simplify 
navigation, these tools are grouped into separate accounts by target audience:

* [mobile games](https://xsolla.com/for/mobile-games/account/)

* [free-to-play PC games](https://xsolla.com/for/free-to-play-pc/account/)

* [premium PC games](https://xsolla.com/for/premium-pc-games/account/)

* [web games](https://xsolla.com/for/web-games/account/)

<div class="note">
<p><strong>참고</strong></p><p><a href="https://publisher.xsolla.com/">Publisher Account</a> is a legacy tool.</p>
</div>


Version: 2.0

## Servers

```
https://api.xsolla.com/merchant/v2
```

## Security

### basicAuth

Xsolla API uses basic access authentication. All requests to the API must 
contain the `Authorization: Basic <your_authorization_basic_key>` header, where 
`<your_authorization_basic_key>` is the `merchant_id:api_key` or 
`project_id:api_key` pair encoded according to the Base64 standard.

Go to your [account](/ko/api/pay-station/business-accounts/) to find these 
parameters:

- `project_id` is shown:
  - Next to the project name when you click it in the account header.
  - In the URL of any account page. The URL has the following format: 
    `https://xsolla.com/for/<business-account-
    type>/account/<merchant_id>/projects/<project_id>/`.
- `merchant_id`가 표시됩니다.
  - In the **Company settings > General info** section.
  - In the URL of any account page. The URL has the following format: 
    `https://xsolla.com/for/<business-account-type>/account/<merchant_id>/`.
- `api_key` is shown in your account only once when it is created and must be 
  stored on your side. You can create a new key in the following sections:
  - **Settings > API keys** (in this section, you can create an API key only for a 
    particular project).
  - **Company settings > API keys** (in this section, you can create an API key 
    that will be applied to all projects in a particular company).

For more information about working with API keys, see the [API reference](/ko/api/getting-started/#api_keys_overview).


Type: http
Scheme: basic

## Download OpenAPI description

[Pay Station API](https://xsolla.redocly.app/_bundle/@l10n/ko/api/pay-station/index.yaml)

## 토큰

### 토큰 생성

 - [POST /merchants/{merchant_id}/token](https://xsolla.redocly.app/ko/api/pay-station/token/create-token.md): 임의의 사용자 매개변수로 토큰을 생성할 수 있습니다. 토큰을 받을 때 이러한 매개변수를 전송하고, 결제가 성공적으로 완료된 후 전송했던 
매개변수를 다시 받습니다. 토큰에는 이 문서에 설명되어 있거나 미리 정의한 매개변수만 포함할 수 있습니다.

매개변수가 잘못된 형식으로 전송되거나 잘못된 유형인 경우 토큰이 발급되지 않습니다. JSON 본문으로 오류 설명이 포함된 422 HTTP 
코드를 받게 됩니다. extended_message로 정확히 어떤 매개변수가 잘못 전송되었는지에 대한 정보를 받게 됩니다.

By default, the token lifetime is 24 hours. If you want to change this value, 
contact your Customer Success Manager or send an email to csm@xsolla.com. The new value will be enabled 
for all your company’s projects created in the account.


주의이 API 메소드를 호출한 후 획득한 토큰은 다른 요청을 인증하는 용도로만 사용할 수 있습니다. 이 토큰은 정기 결제 제품을 연동한 경우에만 결제 UI를 여는 데 사용할 수 있습니다.결제 UI를 새 창에서 열려면 https://secure.xsolla.com/paystation4/?token={token} 링크를 사용합니다. 여기서 {token} 은 수신한 토큰입니다.테스트를 진행할 때에는 https://sandbox-secure.xsolla.com/paystation4/?token={token} URL을 사용합니다.





주의이 API 호출에는 project_id 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.

### 토큰 무효화

 - [POST /projects/{project_id}/token/{token}/expire](https://xsolla.redocly.app/ko/api/pay-station/token/invalidate-token.md): 기존 결제 토큰을 무효화하여 해당 토큰으로 결제 UI를 열 수 없도록 합니다. 이 기능을 사용하면 병렬 세션 간에 단일 인스턴스 아이템에 대한 
중복 결제를 방지할 수 있습니다. 호출이 성공적으로 완료되면, 이 결제 토큰으로 열린 다른 모든 사용자 세션이 만료됩니다.


참고이 API 호출은 idempotent이므로 여러 번 사용할 수 있습니다.

## 직접 결제

### 저장된 결제 계정 나열

 - [GET /projects/{project_id}/users/{user_id}/payment_accounts](https://xsolla.redocly.app/ko/api/pay-station/tokenization/get-saved-accounts.md): 사용자의 저장된 결제 계정을 나열합니다.


참고샌드박스 모드에서는 3D 보안 기능이 없는 테스트 카드에서만 이 API 호출이 작동합니다.

### 저장된 결제 계정 삭제

 - [DELETE /projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}](https://xsolla.redocly.app/ko/api/pay-station/tokenization/delete-saved-account.md): 저장된 결제 계정 삭제.


참고샌드박스 모드에서는 3D 보안 기능이 없는 테스트 카드에서만 이 API 호출이 작동합니다.





참고샌드박스 모드에서 이 API 메소드를 호출할 수 있습니다. 이렇게 하려면 요청에서 테스트 결제 계정 데이터를 전달합니다. 샌드박스 모드 액세스 및 테스트 시나리오에 대한 자세한 내용은 지침을 참조하세요.

### 저장한 계정으로 청구

 - [POST /projects/{project_id}/users/{user_id}/payments/{type}/{account_id}](https://xsolla.redocly.app/ko/api/pay-station/tokenization/charge-with-saved-account.md): 저장된 결제 계정을 사용하여 청구합니다.


참고샌드박스 모드에서는 3D 보안 기능이 없는 테스트 카드에서만 이 API 호출이 작동합니다.





주의API 호출이 올바르게 작동되게 하려면 시간제한을 2분으로 구성하세요.

## 보고서

### 모든 보고서 나열

 - [GET /merchants/{merchant_id}/reports](https://xsolla.redocly.app/ko/api/pay-station/reports/get-reports.md): 지정된 데이터 범위의 재무 보고서 목록을 가져옵니다.


주의이 API 호출에는 project_id 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.

### 모든 작업 나열

 - [GET /merchants/{merchant_id}/reports/transactions/registry.{format}](https://xsolla.redocly.app/ko/api/pay-station/reports/get-transactions.md): 지정된 기간 동안의 성공 및 취소된 트랜잭션에 대한 세부 정보 목록을 반환합니다. 이에 대한 응답으로 수수료, 세금, 주문 및 사용자에 대한 
데이터를 포함한 결제 관련 정보를 얻을 수 있습니다. JSON 또는 CSV 형식으로 목록을 가져올 수 있습니다. 이 API 호출을 사용하여 
재정 조정을 수행할 수 있습니다.


주의이 API 호출에는 project_id 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.

### 모든 트랜잭션 검색

 - [GET /merchants/{merchant_id}/reports/transactions/search.{format}](https://xsolla.redocly.app/ko/api/pay-station/reports/find-transactions.md): 특정 검색 매개 변수를 기준으로 트랜잭션 목록을 반환합니다. 이에 대한 응답으로 성공적으로 완료되지 않았더라도 게임에서 이루어진 모든 결제에 
대한 데이터를 얻을 수 있습니다. 트랜잭션 기간뿐만 아니라 특정 사용자 또는 특정 결제 상태의 거래를 검색하는 등 다른 매개 변수도 지정할 수 
있습니다. JSON 또는 CSV 형식으로 목록을 가져올 수 있습니다.


주의이 API 호출에는 project_id 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.

### 트랜잭션 검색(빠른 검색)

 - [GET /merchants/{merchant_id}/reports/transactions/simple_search](https://xsolla.redocly.app/ko/api/pay-station/reports/find-transactions-fast.md): 몇 초 내에 특정 검색 매개변수를 기반으로 트랜잭션 목록을 구합니다. 이는 모든 트랜잭션 검색 API 호출을 대체할 수 있는 기능으로 JSON, CSV 또는 XLS 
형식으로 데이터를 반환합니다.


주의이 API 호출에는 project_id 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.

### 통화로 지불금 내역을 받습니다

 - [GET /merchants/{merchant_id}/reports/transactions/summary/transfer](https://xsolla.redocly.app/ko/api/pay-station/reports/get-payouts-breakdown.md): 통화로 지불금 내역을 받습니다.


주의이 API 호출에는 project_id 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.

### 트랜잭션 정보 가져오기

 - [GET /merchants/{merchant_id}/reports/transactions/{transaction_id}/details](https://xsolla.redocly.app/ko/api/pay-station/reports/get-transaction.md): ID별로 전체 트랜잭션 정보를 가져옵니다.


주의이 API 호출에는 project_id 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.

### 모든 송금 나열

 - [GET /merchants/{merchant_id}/reports/transfers](https://xsolla.redocly.app/ko/api/pay-station/reports/get-payouts.md): 일정 기간 동안의 모든 지불금을 나열합니다.


주의이 API 호출에는 project_id 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.

## 환불

### 부분 환불

 - [PUT /merchants/{merchant_id}/reports/transactions/{transaction_id}/partial_refund](https://xsolla.redocly.app/ko/api/pay-station/refund/request-partial-refund.md): 사용자에게 부분 환불 요청을 보냅니다. 부분 환불과 부분 환불을 지원하는 결제 방식에 대한 자세한 내용은 
문서을 참조해 주세요.


참고샌드박스 모드에서 이 API 메소드를 호출할 수 있습니다. 이렇게 하려면 요청에서 테스트 결제 데이터를 전달합니다. 샌드박스 모드 액세스 및 테스트 시나리오에 대한 자세한 내용은 지침을 참조하세요.





주의이 API 호출에는 project_id 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.

### 전체 환불

 - [PUT /merchants/{merchant_id}/reports/transactions/{transaction_id}/refund](https://xsolla.redocly.app/ko/api/pay-station/refund/request-refund.md): 환불 요청을 전송하여 사용자에게 결제 금액을 반환합니다. 해당 절차에 대해 자세히 알아보려면 [환불 
기능](https://developers.xsolla.com/ko/doc/pay-station/features/refund/)을 읽어 보십시오.


참고샌드박스 모드에서 이 API 메소드를 호출할 수 있습니다. 이렇게 하려면 요청에서 테스트 결제 데이터를 전달합니다. 샌드박스 모드 액세스 및 테스트 시나리오에 대한 자세한 내용은 지침을 참조하세요.





주의이 API 호출에는 project_id 경로 매개 변수가 포함되어 있지 않으므로 회사의 모든 프로젝트에서 유효한 API 키를 사용하여 인증을 설정해야 합니다.

## 테스트

### 지불 거절 요청

 - [POST /merchants/{merchant_id}/projects/{project_id}/payments/{transaction_id}/chargeback](https://xsolla.redocly.app/ko/api/pay-station/testing/request-chargeback.md): 샌드박스 모드에서 지불 거절 요청:

- To access the sandbox mode, pass "mode":"sandbox" when you [get the 
  token](/ko/api/pay-station/operation/create-token/).

- 테스트 결제는 테스트에 사용한 것과 동일한 프로젝트의 샌드박스 모드에서 이루어져야 합니다.

- 거래 상태는 refunded와 cancelled 이외여야 합니다.

- Your role in the account has to be at least Financial manager. (You can 
  find it in the Settings > Members section.)

- Refer to the instructions for more information 
  about this testing scenario.


참고Refer to the documentation for more information about other testing scenarios.

