# Checkout iframe Guide
> EBP API 호출응답값으로 paymentSession 전문을 제공합니다.
> 결제창 가이드 : https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-on-your-website/get-started-with-flow
> Customize 가이드 : https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-on-your-website/customize-your-flow-integration
1. Store 결제화면 구현 설명
* checkout js 로드 :
* iframe이 랜더링될 container 요소 생성 :
* CheckoutWebComponents 호출하여 iframe을 container에 주입
| CheckoutWebComponents 자바스크립트 키 | 설명 |
|--------------------------------|------|
| `appearance` | 요소들의 시각적 외관을 커스터마이즈할 수 있습니다. 사용 가능한 커스터마이징 옵션은 **Appearance options** 문서를 참고하세요. |
| `componentOptions` | 개별 플로우 컴포넌트에 대한 옵션을 맞춤 설정할 수 있습니다. 예를 들어, 컴포넌트 내 카드 홀더 필드의 위치를 변경할 수 있습니다. 자세한 내용은 **컴포넌트 옵션 문서**를 참고하세요. |
| `environment` | 라이브러리가 요청을 보내는 환경을 설정합니다. 가능한 값은 다음과 같습니다: `production`, `sandbox` |
| `locale` | 고객의 위치(언어/지역)를 설정합니다. 명시적으로 설정하면 반환되는 UI 텍스트에 적용됩니다. 지원되는 언어 목록은 **현지화 문서**를 참고하세요. |
| `paymentSession` | `.PaymentSession` 객체를 설정합니다. **필수 항목**입니다. |
| `publicKey` | 공개 API 키입니다. 키는 `pk_` 접두사를 포함해야 합니다. **필수 항목**입니다. |
| `translations` | 네이티브로 지원되는 언어에 대한 텍스트를 커스터마이즈하거나, 지원되지 않는 지역/언어에 대한 번역을 추가할 수 있습니다. 자세한 내용은 **Flow 통합 문서의 현지화 추가 섹션**을 참고하세요. |
2. 결제창 Checkout.js template 예제
```html
Checkout Web Components: Flow Component
```
3. 결제창 Customize( 선택 )
결제창을 사용자 정의로 바꿀수 있는 부분은 아래와 같습니다.
Customize 가이드 : https://www.checkout.com/docs/payments/accept-payments/accept-a-payment-on-your-website/customize-your-flow-integration
* 색상
* 폰트
* 테두리
< appearance 작성 예제 >
```html
const appearance = {
//색상 Property
colorAction: '#5E48FC',
colorBackground: '#0A0A0C',
colorBorder: '#68686C',
colorDisabled: '#64646E',
colorError: '#FF3300',
colorFormBackground: '#1F1F1F',
colorFormBorder: '#1F1F1F',
colorInverse: '#F9F9FB',
colorOutline: '#ADA4EC',
colorPrimary: '#F9F9FB',
colorSecondary: '#828388',
colorSuccess: '#2ECC71',
//폰트 Property
button: {
fontFamily: '"Roboto Mono", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif',
fontSize: '16px',
fontWeight: 700,
letterSpacing: 0,
lineHeight: '24px',
},
footnote: {
fontFamily: '"PT Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif',
fontSize: '14px',
fontWeight: 400,
letterSpacing: 0,
lineHeight: '20px',
},
label: {
fontFamily: '"Roboto Mono", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif',
fontSize: '14px',
fontWeight: 400,
letterSpacing: 0,
lineHeight: '20px',
},
subheading: {
fontFamily: '"Roboto Mono", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif',
fontSize: '16px',
fontWeight: 700,
letterSpacing: 0,
lineHeight: '24px',
},
//테두리 Property
borderRadius: ['8px', '8px'],
};
* CheckoutWebComponents에 appearance를 추가하여 적용할 수 있습니다.
const checkout = await CheckoutWebComponents({
publicKey: PUBLIC_KEY,
environment: "sandbox",
locale: "en",
paymentSession,
appearance, //추가부분
```
* 색상 Property
* 폰트 Property
* 테두리 Property