# Toss Payment SDK for Python
- python version >= 3.8
- 토스페이먼츠가 아닌 제 3자가 만든 SDK입니다.
# Pip install Link
- https://pypi.org/project/python-tosspayments/
# Library update will be from last commit of that branch
# branch convention
* naming
* version-<version_number>
* ex ) version-0.0.7
----------------------------------------------------------------
# Use
## install
```zsh
pip install python-tosspayments # latest version
pip install python-tosspayments==0.0.5 # specific version
```
----------------------------------------------------------------
## Load Lib
```python
from tosspayments import Tosspayments
```
----------------------------------------------------------------
## Initialize
```python
toss_client = Tosspayments("Your Toss Payment Secret Key")
```
----------------------------------------------------------------
## APIs
Please visit the official [Toss Payments](https://docs.tosspayments.com/reference) website to find the most up-to-date information.
### Common Guidelines for POST APIs
* idempotency_key
* An `idempotency_key` can be used for the POST API (at headers).
* If you want `idempotence`, add idempotency_key. (`not required`)
* max_length = 300
* The remaining APIs automatically guarantee idempotence.
* [reference](https://docs.tosspayments.com/reference/using-api/idempotency-key)
----------------------------------------------------------------
### Pay with Card Number
```
toss_client.pay_with_card_number(data: dict, idempotency_key: str = None)
```
* request body
```
// Korean
{
"data": {
"amount":1000,
"orderId":"주문 번호", -> need to create when creating your payment data
"cardNumber": "카드 번호 (최대 20자)", -> required,
"cardExpirationYear": "카드 유효 년", -> required
"cardExpirationMonth": "카드 유효 월", -> required
"orderName": "주문명 (ex. 생수 외 1건)", -> required
"customerIdentityNumber": "카드 소유자 정보 (생년월일 6자리(YYMMDD) 혹은 사업자등록번호 10자리)", -> required
"cardPassword": "카드 비밀번호 앞 두 자리", -> not required
"cardInstallmentPlan": 2, -> not required // "신용카드 할부 개월 수 ( 2 ~ 12 )"
"useFreeInstallmentPlan": "카드사 무이자 할부 적용 여부 (default is False)", -> not required
"taxFreeAmount": 0 -> not required // "결제할 금액 중 면제 금액 (default is 0)"
"customerEmail": "고객 이메일 주소 (결제 결과 전송용, 최대 100자)", -> not required
"customerName": "고객 이름 (최대 100자)", -> not required
// 해외 카드 결제의 3DS 인증에 사용합니다. 3DS 인증 결과를 전송해야 되면 필수입니다.
"vbv": {
"cavv": "3D Secure session value",
"xid": "transaction id",
"eci ": "code value of 3DS authentication"
}
},
"idempotency_key": "idempotency_key"
}
```
```
// English
{
"data": {
"amount":1000,
"orderId":"ORDER_ID_THAT_YOU_CREATE", -> need to create when creating your payment data
"cardNumber": "CARD NUMBER", -> max length is 20 required,
"cardExpirationYear": "CARD EXPIRATION YEAR", -> required
"cardExpirationMonth": "CARD EXPIRATION MONTH", -> required
"orderName": "order name", -> ex) 생수 외 1건 required
"customerIdentityNumber": "CARD OWNER INFO", -> Birthdate(YYMNMDD) OR Business registration 10 digit number required
"cardPassword": "First two number of password", -> not required
"cardInstallmentPlan": 2, -> not required // "(2 ~ 12) Number of installment months for the credit card"
"useFreeInstallmentPlan": "Whether interest-free installment is applied by the card company", -> not required
"taxFreeAmount": 0, -> not required // "tax Free Amount (default is 0)"
"customerEmail": "customer email (max length is 100)", -> not required
"customerName": "customer name (max length is 100)", -> not required
// translates to "Used for 3DS authentication of overseas card payments. It is essential if you need to send the 3DS authentication results.
"vbv": {
"cavv": "3D Secure session value",
"xid": "transaction id",
"eci ": "code value of 3DS authentication"
}
},
"idempotency_key": "idempotency_key",
},
```
----------------------------------------------------------------
### Confirm Payment
```
toss_client.confirm(payment_key: str, toss_order_id: str, amount: int, idempotency_key: str = None)
```
* request body
```
{
"amount":1000,
"orderId":"ORDER_ID_THAT_YOU_CREATE", -> need to create when creating your payment data
"paymentKey":"PAYMENT_KEY_FROM_FRONT_END", -> We receive it from the front-end.
}
```
----------------------------------------------------------------
### Cancel Payment
```
toss_client.cancel(payment_key: str, cancel_data: dict, idempotency_key: str = None)
```
* request body
```
cancel_data = {
"cancel_reason": "단순변심", -> required
"cancel_amount": 1000,
"curreny": "KRW",
"divided_payment": "True",
"refund_receive_account": { -> If user pays with a virtual account, it is required.
"account_number": "1234567",
"bank": "13",
"holder_name": "test"
},
"tax_amount": 100,
"tax_exemption_amount": 0,
"tax_free_amount": 0,
}
```
* Because we send our `payment_key` in the headers, we can simply add the required data when posting to the cancel API.
* `cancel_reason`, `refund_receive_account (case of virtual_account)`
* If you want to include the remaining data, you are allowed to do so.
----------------------------------------------------------------
### GET Payment by PaymentKey
```
toss_client.get_payment_by_payment_key(payment_key: str)
```
----------------------------------------------------------------
### GET Payment by Order id
```
toss_client.get_payment_by_order_id(order_id: str)
```
----------------------------------------------------------------
### GET Transaction
```
toss_client.get_transaction(start_date: str, end_date: str, starting_after: str = None, limit: int = None)
```
* start_date
* It's the date and time information you want to start the query with.
* The format is yyyy-MM-dd'T'hh:mm:ss in ISO 8601.
* end_date
* It's the date and time information you want to end the query with.
* The format is yyyy-MM-dd'T'hh:mm:ss in ISO 8601.
* ex)
```
start_date = str((now-datetime.timedelta(days=10)).isoformat())
end_date = str(now.isoformat())
```
* starting_after
* Used to query records after a specific payment transaction.
* limit
* It's the number of records you will receive in a single response.
* The default value is 100, and the maximum value that can be set is 10,000
----------------------------------------------------------------
### Request Access Token for Brand Pay
```
toss_client.request_brand_pay_access_token(customer_key: str, grant_type: str, code: str = None, customer_identity: dict = {}):
```
* args
```
customer_key: 고객 ID
grant_type: 요청 타입. AuthorizationCode, RefreshToken 중 하나
code: 약관 동의 API의 응답 또는 리다이렉트 URL의 쿼리 파라미터로 돌아온 code
customer_identity: {
"ci": 고객의 연계 정보(CI),
"mobilePhone": 고객 휴대폰번호,
"name": 고객 이름,
"rrn": 고객의 주민번호 앞 7자리(생년월일+성별코드),
}
```
----------------------------------------------------------------
### Confirm Brand Pay
```
toss_client.confirm_brandpay(payment_key: str, amount: int, customer_key: str, order_id: str):
```
* args
```
payment_key: 결제 키값 최대 200자
amount: 결제할 금액
customer_key: 고객 ID
order_id: 주문 ID ( 영문 대소문자, 숫자, 특수문자 -, _로 이루어진 6자 이상 64자 이하의 문자열 )
```
----------------------------------------------------------------
### 자동 빌링
1. Create Billing Key
2. Pay with Billing Key
```
toss_client.pay_with_card_number(data: dict, idempotency_key: str = None)
```
* request body
```
// Korean
{
"data": {
"amount":1000,
"orderId":"주문 번호", -> need to create when creating your payment data
"cardNumber": "카드 번호 (최대 20자)", -> required,
"cardExpirationYear": "카드 유효 년", -> required
"cardExpirationMonth": "카드 유효 월", -> required
"orderName": "주문명 (ex. 생수 외 1건)", -> required
"customerIdentityNumber": "카드 소유자 정보 (생년월일 6자리(YYMMDD) 혹은 사업자등록번호 10자리)", -> required
"cardPassword": "카드 비밀번호 앞 두 자리", -> not required
"cardInstallmentPlan": 2, -> not required // "신용카드 할부 개월 수 ( 2 ~ 12 )"
"useFreeInstallmentPlan": "카드사 무이자 할부 적용 여부 (default is False)", -> not required
"taxFreeAmount": 0 -> not required // "결제할 금액 중 면제 금액 (default is 0)"
"customerEmail": "고객 이메일 주소 (결제 결과 전송용, 최대 100자)", -> not required
"customerName": "고객 이름 (최대 100자)", -> not required
// 해외 카드 결제의 3DS 인증에 사용합니다. 3DS 인증 결과를 전송해야 되면 필수입니다.
"vbv": {
"cavv": "3D Secure session value",
"xid": "transaction id",
"eci ": "code value of 3DS authentication"
}
},
"idempotency_key": "idempotency_key"
}
```
```
// English
{
"data": {
"amount":1000,
"orderId":"ORDER_ID_THAT_YOU_CREATE", -> need to create when creating your payment data
"cardNumber": "CARD NUMBER", -> max length is 20 required,
"cardExpirationYear": "CARD EXPIRATION YEAR", -> required
"cardExpirationMonth": "CARD EXPIRATION MONTH", -> required
"orderName": "order name", -> ex) 생수 외 1건 required
"customerIdentityNumber": "CARD OWNER INFO", -> Birthdate(YYMNMDD) OR Business registration 10 digit number required
"cardPassword": "First two number of password", -> not required
"cardInstallmentPlan": 2, -> not required // "(2 ~ 12) Number of installment months for the credit card"
"useFreeInstallmentPlan": "Whether interest-free installment is applied by the card company", -> not required
"taxFreeAmount": 0, -> not required // "tax Free Amount (default is 0)"
"customerEmail": "customer email (max length is 100)", -> not required
"customerName": "customer name (max length is 100)", -> not required
// translates to "Used for 3DS authentication of overseas card payments. It is essential if you need to send the 3DS authentication results.
"vbv": {
"cavv": "3D Secure session value",
"xid": "transaction id",
"eci ": "code value of 3DS authentication"
}
},
"idempotency_key": "idempotency_key",
},
```
----------------------------------------------------------------
Raw data
{
"_id": null,
"home_page": "https://github.com/GisangLee/python-tosspayment",
"name": "python-tosspayments",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "toss,toss payment,payment",
"author": "jsonlee",
"author_email": "dudegs.py@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/ab/49/20e1db7e1215428326de15b405dce0bc43bd2c0dd50cbd1dd6ddc0590790/python-tosspayments-1.1.0.tar.gz",
"platform": null,
"description": "# Toss Payment SDK for Python\n\n- python version >= 3.8\n- \ud1a0\uc2a4\ud398\uc774\uba3c\uce20\uac00 \uc544\ub2cc \uc81c 3\uc790\uac00 \ub9cc\ub4e0 SDK\uc785\ub2c8\ub2e4.\n\n# Pip install Link\n- https://pypi.org/project/python-tosspayments/\n\n# Library update will be from last commit of that branch\n\n# branch convention\n* naming\n * version-<version_number>\n * ex ) version-0.0.7\n----------------------------------------------------------------\n# Use\n\n## install \n```zsh\npip install python-tosspayments # latest version\npip install python-tosspayments==0.0.5 # specific version\n```\n----------------------------------------------------------------\n## Load Lib\n```python\nfrom tosspayments import Tosspayments\n```\n----------------------------------------------------------------\n## Initialize\n```python\ntoss_client = Tosspayments(\"Your Toss Payment Secret Key\")\n```\n----------------------------------------------------------------\n## APIs\nPlease visit the official [Toss Payments](https://docs.tosspayments.com/reference) website to find the most up-to-date information.\n### Common Guidelines for POST APIs\n* idempotency_key \n * An `idempotency_key` can be used for the POST API (at headers).\n * If you want `idempotence`, add idempotency_key. (`not required`)\n * max_length = 300\n * The remaining APIs automatically guarantee idempotence.\n * [reference](https://docs.tosspayments.com/reference/using-api/idempotency-key)\n----------------------------------------------------------------\n\n### Pay with Card Number\n```\ntoss_client.pay_with_card_number(data: dict, idempotency_key: str = None)\n```\n* request body\n ```\n // Korean\n {\n \"data\": {\n \"amount\":1000,\n \"orderId\":\"\uc8fc\ubb38 \ubc88\ud638\", -> need to create when creating your payment data\n \"cardNumber\": \"\uce74\ub4dc \ubc88\ud638 (\ucd5c\ub300 20\uc790)\", -> required,\n \"cardExpirationYear\": \"\uce74\ub4dc \uc720\ud6a8 \ub144\", -> required\n \"cardExpirationMonth\": \"\uce74\ub4dc \uc720\ud6a8 \uc6d4\", -> required\n \"orderName\": \"\uc8fc\ubb38\uba85 (ex. \uc0dd\uc218 \uc678 1\uac74)\", -> required\n \"customerIdentityNumber\": \"\uce74\ub4dc \uc18c\uc720\uc790 \uc815\ubcf4 (\uc0dd\ub144\uc6d4\uc77c 6\uc790\ub9ac(YYMMDD) \ud639\uc740 \uc0ac\uc5c5\uc790\ub4f1\ub85d\ubc88\ud638 10\uc790\ub9ac)\", -> required\n \"cardPassword\": \"\uce74\ub4dc \ube44\ubc00\ubc88\ud638 \uc55e \ub450 \uc790\ub9ac\", -> not required\n \"cardInstallmentPlan\": 2, -> not required // \"\uc2e0\uc6a9\uce74\ub4dc \ud560\ubd80 \uac1c\uc6d4 \uc218 ( 2 ~ 12 )\"\n \"useFreeInstallmentPlan\": \"\uce74\ub4dc\uc0ac \ubb34\uc774\uc790 \ud560\ubd80 \uc801\uc6a9 \uc5ec\ubd80 (default is False)\", -> not required\n \"taxFreeAmount\": 0 -> not required // \"\uacb0\uc81c\ud560 \uae08\uc561 \uc911 \uba74\uc81c \uae08\uc561 (default is 0)\"\n \"customerEmail\": \"\uace0\uac1d \uc774\uba54\uc77c \uc8fc\uc18c (\uacb0\uc81c \uacb0\uacfc \uc804\uc1a1\uc6a9, \ucd5c\ub300 100\uc790)\", -> not required\n \"customerName\": \"\uace0\uac1d \uc774\ub984 (\ucd5c\ub300 100\uc790)\", -> not required\n \n // \ud574\uc678 \uce74\ub4dc \uacb0\uc81c\uc758 3DS \uc778\uc99d\uc5d0 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. 3DS \uc778\uc99d \uacb0\uacfc\ub97c \uc804\uc1a1\ud574\uc57c \ub418\uba74 \ud544\uc218\uc785\ub2c8\ub2e4.\n \"vbv\": {\n \"cavv\": \"3D Secure session value\",\n \"xid\": \"transaction id\",\n \"eci \": \"code value of 3DS authentication\"\n }\n },\n \"idempotency_key\": \"idempotency_key\"\n }\n ```\n \n ```\n // English\n {\n \"data\": {\n \"amount\":1000,\n \"orderId\":\"ORDER_ID_THAT_YOU_CREATE\", -> need to create when creating your payment data\n \"cardNumber\": \"CARD NUMBER\", -> max length is 20 required,\n \"cardExpirationYear\": \"CARD EXPIRATION YEAR\", -> required\n \"cardExpirationMonth\": \"CARD EXPIRATION MONTH\", -> required\n \"orderName\": \"order name\", -> ex) \uc0dd\uc218 \uc678 1\uac74 required\n \"customerIdentityNumber\": \"CARD OWNER INFO\", -> Birthdate(YYMNMDD) OR Business registration 10 digit number required\n \"cardPassword\": \"First two number of password\", -> not required\n \"cardInstallmentPlan\": 2, -> not required // \"(2 ~ 12) Number of installment months for the credit card\"\n \"useFreeInstallmentPlan\": \"Whether interest-free installment is applied by the card company\", -> not required\n \"taxFreeAmount\": 0, -> not required // \"tax Free Amount (default is 0)\"\n \"customerEmail\": \"customer email (max length is 100)\", -> not required\n \"customerName\": \"customer name (max length is 100)\", -> not required\n \n // translates to \"Used for 3DS authentication of overseas card payments. It is essential if you need to send the 3DS authentication results.\n \"vbv\": {\n \"cavv\": \"3D Secure session value\",\n \"xid\": \"transaction id\",\n \"eci \": \"code value of 3DS authentication\"\n } \n },\n \"idempotency_key\": \"idempotency_key\",\n },\n ```\n----------------------------------------------------------------\n### Confirm Payment\n```\ntoss_client.confirm(payment_key: str, toss_order_id: str, amount: int, idempotency_key: str = None)\n```\n* request body\n ```\n {\n \"amount\":1000,\n \"orderId\":\"ORDER_ID_THAT_YOU_CREATE\", -> need to create when creating your payment data\n \"paymentKey\":\"PAYMENT_KEY_FROM_FRONT_END\", -> We receive it from the front-end.\n }\n ```\n----------------------------------------------------------------\n### Cancel Payment\n```\ntoss_client.cancel(payment_key: str, cancel_data: dict, idempotency_key: str = None)\n```\n* request body\n ```\n cancel_data = {\n \"cancel_reason\": \"\ub2e8\uc21c\ubcc0\uc2ec\", -> required\n \"cancel_amount\": 1000,\n \"curreny\": \"KRW\",\n \"divided_payment\": \"True\",\n \"refund_receive_account\": { -> If user pays with a virtual account, it is required.\n \"account_number\": \"1234567\",\n \"bank\": \"13\",\n \"holder_name\": \"test\" \n },\n \"tax_amount\": 100,\n \"tax_exemption_amount\": 0,\n \"tax_free_amount\": 0,\n }\n ```\n * Because we send our `payment_key` in the headers, we can simply add the required data when posting to the cancel API.\n * `cancel_reason`, `refund_receive_account (case of virtual_account)`\n * If you want to include the remaining data, you are allowed to do so.\n----------------------------------------------------------------\n### GET Payment by PaymentKey\n```\ntoss_client.get_payment_by_payment_key(payment_key: str)\n```\n----------------------------------------------------------------\n\n### GET Payment by Order id\n```\ntoss_client.get_payment_by_order_id(order_id: str)\n```\n----------------------------------------------------------------\n\n### GET Transaction\n```\ntoss_client.get_transaction(start_date: str, end_date: str, starting_after: str = None, limit: int = None)\n```\n * start_date\n * It's the date and time information you want to start the query with.\n * The format is yyyy-MM-dd'T'hh:mm:ss in ISO 8601.\n * end_date\n * It's the date and time information you want to end the query with.\n * The format is yyyy-MM-dd'T'hh:mm:ss in ISO 8601.\n * ex) \n ```\n start_date = str((now-datetime.timedelta(days=10)).isoformat())\n end_date = str(now.isoformat())\n ```\n * starting_after\n * Used to query records after a specific payment transaction.\n * limit\n * It's the number of records you will receive in a single response.\n * The default value is 100, and the maximum value that can be set is 10,000\n\n----------------------------------------------------------------\n### Request Access Token for Brand Pay\n```\ntoss_client.request_brand_pay_access_token(customer_key: str, grant_type: str, code: str = None, customer_identity: dict = {}):\n```\n* args\n ```\n customer_key: \uace0\uac1d ID\n grant_type: \uc694\uccad \ud0c0\uc785. AuthorizationCode, RefreshToken \uc911 \ud558\ub098\n code: \uc57d\uad00 \ub3d9\uc758 API\uc758 \uc751\ub2f5 \ub610\ub294 \ub9ac\ub2e4\uc774\ub809\ud2b8 URL\uc758 \ucffc\ub9ac \ud30c\ub77c\ubbf8\ud130\ub85c \ub3cc\uc544\uc628 code\n customer_identity: {\n \"ci\": \uace0\uac1d\uc758 \uc5f0\uacc4 \uc815\ubcf4(CI),\n \"mobilePhone\": \uace0\uac1d \ud734\ub300\ud3f0\ubc88\ud638,\n \"name\": \uace0\uac1d \uc774\ub984,\n \"rrn\": \uace0\uac1d\uc758 \uc8fc\ubbfc\ubc88\ud638 \uc55e 7\uc790\ub9ac(\uc0dd\ub144\uc6d4\uc77c+\uc131\ubcc4\ucf54\ub4dc),\n }\n ```\n----------------------------------------------------------------\n \n### Confirm Brand Pay\n```\ntoss_client.confirm_brandpay(payment_key: str, amount: int, customer_key: str, order_id: str):\n```\n\n* args\n ```\n payment_key: \uacb0\uc81c \ud0a4\uac12 \ucd5c\ub300 200\uc790\n amount: \uacb0\uc81c\ud560 \uae08\uc561\n customer_key: \uace0\uac1d ID\n order_id: \uc8fc\ubb38 ID ( \uc601\ubb38 \ub300\uc18c\ubb38\uc790, \uc22b\uc790, \ud2b9\uc218\ubb38\uc790 -, _\ub85c \uc774\ub8e8\uc5b4\uc9c4 6\uc790 \uc774\uc0c1 64\uc790 \uc774\ud558\uc758 \ubb38\uc790\uc5f4 )\n ```\n\n----------------------------------------------------------------\n\n### \uc790\ub3d9 \ube4c\ub9c1\n1. Create Billing Key\n2. Pay with Billing Key\n```\ntoss_client.pay_with_card_number(data: dict, idempotency_key: str = None)\n```\n* request body\n ```\n // Korean\n {\n \"data\": {\n \"amount\":1000,\n \"orderId\":\"\uc8fc\ubb38 \ubc88\ud638\", -> need to create when creating your payment data\n \"cardNumber\": \"\uce74\ub4dc \ubc88\ud638 (\ucd5c\ub300 20\uc790)\", -> required,\n \"cardExpirationYear\": \"\uce74\ub4dc \uc720\ud6a8 \ub144\", -> required\n \"cardExpirationMonth\": \"\uce74\ub4dc \uc720\ud6a8 \uc6d4\", -> required\n \"orderName\": \"\uc8fc\ubb38\uba85 (ex. \uc0dd\uc218 \uc678 1\uac74)\", -> required\n \"customerIdentityNumber\": \"\uce74\ub4dc \uc18c\uc720\uc790 \uc815\ubcf4 (\uc0dd\ub144\uc6d4\uc77c 6\uc790\ub9ac(YYMMDD) \ud639\uc740 \uc0ac\uc5c5\uc790\ub4f1\ub85d\ubc88\ud638 10\uc790\ub9ac)\", -> required\n \"cardPassword\": \"\uce74\ub4dc \ube44\ubc00\ubc88\ud638 \uc55e \ub450 \uc790\ub9ac\", -> not required\n \"cardInstallmentPlan\": 2, -> not required // \"\uc2e0\uc6a9\uce74\ub4dc \ud560\ubd80 \uac1c\uc6d4 \uc218 ( 2 ~ 12 )\"\n \"useFreeInstallmentPlan\": \"\uce74\ub4dc\uc0ac \ubb34\uc774\uc790 \ud560\ubd80 \uc801\uc6a9 \uc5ec\ubd80 (default is False)\", -> not required\n \"taxFreeAmount\": 0 -> not required // \"\uacb0\uc81c\ud560 \uae08\uc561 \uc911 \uba74\uc81c \uae08\uc561 (default is 0)\"\n \"customerEmail\": \"\uace0\uac1d \uc774\uba54\uc77c \uc8fc\uc18c (\uacb0\uc81c \uacb0\uacfc \uc804\uc1a1\uc6a9, \ucd5c\ub300 100\uc790)\", -> not required\n \"customerName\": \"\uace0\uac1d \uc774\ub984 (\ucd5c\ub300 100\uc790)\", -> not required\n \n // \ud574\uc678 \uce74\ub4dc \uacb0\uc81c\uc758 3DS \uc778\uc99d\uc5d0 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. 3DS \uc778\uc99d \uacb0\uacfc\ub97c \uc804\uc1a1\ud574\uc57c \ub418\uba74 \ud544\uc218\uc785\ub2c8\ub2e4.\n \"vbv\": {\n \"cavv\": \"3D Secure session value\",\n \"xid\": \"transaction id\",\n \"eci \": \"code value of 3DS authentication\"\n }\n },\n \"idempotency_key\": \"idempotency_key\"\n }\n ```\n \n ```\n // English\n {\n \"data\": {\n \"amount\":1000,\n \"orderId\":\"ORDER_ID_THAT_YOU_CREATE\", -> need to create when creating your payment data\n \"cardNumber\": \"CARD NUMBER\", -> max length is 20 required,\n \"cardExpirationYear\": \"CARD EXPIRATION YEAR\", -> required\n \"cardExpirationMonth\": \"CARD EXPIRATION MONTH\", -> required\n \"orderName\": \"order name\", -> ex) \uc0dd\uc218 \uc678 1\uac74 required\n \"customerIdentityNumber\": \"CARD OWNER INFO\", -> Birthdate(YYMNMDD) OR Business registration 10 digit number required\n \"cardPassword\": \"First two number of password\", -> not required\n \"cardInstallmentPlan\": 2, -> not required // \"(2 ~ 12) Number of installment months for the credit card\"\n \"useFreeInstallmentPlan\": \"Whether interest-free installment is applied by the card company\", -> not required\n \"taxFreeAmount\": 0, -> not required // \"tax Free Amount (default is 0)\"\n \"customerEmail\": \"customer email (max length is 100)\", -> not required\n \"customerName\": \"customer name (max length is 100)\", -> not required\n \n // translates to \"Used for 3DS authentication of overseas card payments. It is essential if you need to send the 3DS authentication results.\n \"vbv\": {\n \"cavv\": \"3D Secure session value\",\n \"xid\": \"transaction id\",\n \"eci \": \"code value of 3DS authentication\"\n } \n },\n \"idempotency_key\": \"idempotency_key\",\n },\n ```\n----------------------------------------------------------------\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Toss Payments SDK for python. \ud1a0\uc2a4\ud398\uc774\uba3c\uce20\uac00 \uc544\ub2cc \uc81c 3\uc790\uac00 \ub9cc\ub4e0 SDK\uc785\ub2c8\ub2e4.",
"version": "1.1.0",
"project_urls": {
"Homepage": "https://github.com/GisangLee/python-tosspayment"
},
"split_keywords": [
"toss",
"toss payment",
"payment"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "de5fa0b2b91dfc8f0b03ca00cd591544b1d774180f39ee0838ec4675a935b4fb",
"md5": "3d00f464e1944b173654fb0d1d87b2c3",
"sha256": "7fde83a621b53b42b15b86b0ecb2d2e75575f9b33141758086fdf41b06077828"
},
"downloads": -1,
"filename": "python_tosspayments-1.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3d00f464e1944b173654fb0d1d87b2c3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 9636,
"upload_time": "2023-11-08T05:35:30",
"upload_time_iso_8601": "2023-11-08T05:35:30.286107Z",
"url": "https://files.pythonhosted.org/packages/de/5f/a0b2b91dfc8f0b03ca00cd591544b1d774180f39ee0838ec4675a935b4fb/python_tosspayments-1.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ab4920e1db7e1215428326de15b405dce0bc43bd2c0dd50cbd1dd6ddc0590790",
"md5": "4d5a57bdcebec6a1f443f49bac391ff9",
"sha256": "a77b96a9d45a3ef88759ce2c04e5ea1c059202fd4a6492536e76c53375cfed44"
},
"downloads": -1,
"filename": "python-tosspayments-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "4d5a57bdcebec6a1f443f49bac391ff9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 9186,
"upload_time": "2023-11-08T05:35:31",
"upload_time_iso_8601": "2023-11-08T05:35:31.874560Z",
"url": "https://files.pythonhosted.org/packages/ab/49/20e1db7e1215428326de15b405dce0bc43bd2c0dd50cbd1dd6ddc0590790/python-tosspayments-1.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-08 05:35:31",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "GisangLee",
"github_project": "python-tosspayment",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "python-tosspayments"
}