Vui lòng điền vào mẫu đăng ký dưới đây để yêu cầu quyền truy cập PHS OpenAPI (Flash API).
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"FlashAPI","description":"Comprehensive API documentation for Flash API, providing secure access to trading, account management, portfolio, balances, market data, and reporting services.","colors":{"primary":"#16A34A","light":"#07C983","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/phuhungsecurities/zdoAbtvRgcpiQvL2/images/logo4-2-20nam-01.png?fit=max\u0026auto=format\u0026n=zdoAbtvRgcpiQvL2\u0026q=85\u0026s=b2ce27d4913e929c779bf3c69e383cec","dark":"https://mintcdn.com/phuhungsecurities/zdoAbtvRgcpiQvL2/images/logo4-2-20nam-01.png?fit=max\u0026auto=format\u0026n=zdoAbtvRgcpiQvL2\u0026q=85\u0026s=b2ce27d4913e929c779bf3c69e383cec","href":"https://flashapi.phs.vn/docs/vi/api-reference/welcome"},"favicon":{"light":"https://mintcdn.com/phuhungsecurities/oBZwGyNHoYaA66ld/images/brandmark-phs.png?fit=max\u0026auto=format\u0026n=oBZwGyNHoYaA66ld\u0026q=85\u0026s=d3904800802e160bb4bdf701a19cafcc","dark":"https://mintcdn.com/phuhungsecurities/oBZwGyNHoYaA66ld/images/brandmark-phs.png?fit=max\u0026auto=format\u0026n=oBZwGyNHoYaA66ld\u0026q=85\u0026s=d3904800802e160bb4bdf701a19cafcc"},"appearance":{"default":"light"},"navbar":{"links":[{"href":"https://flashapi.phs.vn/docs/api-reference/faqs","label":"Support"},{"href":"https://flashapi.phs.vn/docs/registration-form","label":"Register"}],"primary":{"type":"button","label":"Dashboard","href":"https://flashapi.phs.vn/docs/vi/api-reference/welcome"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","default":true,"href":"api-reference/welcome"},{"language":"vi","href":"vi/api-reference/welcome"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"phuhungsecurities","hasAudioNarration":false,"actualSubdomain":"phuhungsecurities","customDomains":["flashapi.phs.vn"],"gitSource":{"type":"github","owner":"jetnguyen273","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ac3a8eb794a659729060cfa","collectionId":"0e313a25-953b-499d-ad66-3714235aabe6","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ac3a8eb794a659729060cfa"},"entitlements":{},"buildId":"6ac3a92d3c7d2442503c9194","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"en","tag":"API reference","count":42},{"language":"vi","tag":"Tài liệu tham chiếu API","count":42},{"language":"en","tag":"API documentation","count":37},{"language":"vi","tag":"Tài liệu API","count":37},{"language":"en","tag":"Sandbox","count":12},{"language":"vi","tag":"Sandbox","count":12},{"language":"en","tag":"Priceboard","count":5},{"language":"vi","tag":"Priceboard","count":5},{"language":"en","tag":"Derivative","count":4},{"language":"en","tag":"Terms and conditions","count":4},{"language":"en","tag":"Order History","count":4},{"language":"vi","tag":"Derivative","count":4},{"language":"vi","tag":"Các điều khoản \u0026 thỏa thuận","count":4},{"language":"vi","tag":"Order History","count":4},{"language":"en","tag":"Socket","count":3},{"language":"en","tag":"Placing Order ","count":3},{"language":"en","tag":"Portfolio","count":3},{"language":"vi","tag":"Socket","count":3},{"language":"vi","tag":"Placing Order ","count":3},{"language":"vi","tag":"Portfolio","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"vi/registration-form","slug":"/vi/registration-form","pageMetadata":{"title":"Đăng ký OAPI","description":"Vui lòng điền vào mẫu đăng ký dưới đây để yêu cầu quyền truy cập PHS OpenAPI (Flash API). ","sidebarTitle":"Đăng ký OAPI","href":"/vi/registration-form"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Vui lòng điền vào mẫu đăng ký dưới đây để yêu cầu quyền truy cập PHS OpenAPI (Flash API).\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={p:`p`,..._provideComponents(),...props.components};return _jsxs(`form`,{noValidate:true,id:`oapi-registration-form`,onSubmit:async e=>{e.preventDefault();const formElement=e.currentTarget;const btn=e.currentTarget.querySelector(`button[type=\"submit\"]`);const msgBox=document.getElementById(`form-status-msg`);const showError=(message,step=null,fieldName=null)=>{const banner=document.getElementById(`form-error-banner`);const bannerText=document.getElementById(`form-error-banner-text`);if(banner\u0026\u0026bannerText){bannerText.innerText=message;banner.style.display=`flex`;document.getElementById(`oapi-registration-form`)?.scrollIntoView({behavior:`smooth`,block:`nearest`})}if(step){const tabBtn=document.getElementById(`desktop-tab-btn-${step}`)||document.getElementById(`mobile-tab-btn-${step}`);if(tabBtn)tabBtn.click()}if(fieldName){setTimeout(()=>{const input=formElement[fieldName];if(input){const scrollBox=input.closest(`.step-scroll-box`);if(scrollBox){const scrollBoxRect=scrollBox.getBoundingClientRect();const inputRect=input.getBoundingClientRect();if(inputRect.top\u003cscrollBoxRect.top||inputRect.bottom>scrollBoxRect.bottom){scrollBox.scrollBy({top:inputRect.top-scrollBoxRect.top-20,behavior:`smooth`})}}input.focus({preventScroll:true})}},100)}};const hideError=()=>{const errorBanner=document.getElementById(`form-error-banner`);if(errorBanner)errorBanner.style.display=`none`};const getValue=name=>(formElement[name]?.value??``).trim();const isValidEmail=value=>/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value);const isValidPhone=value=>/^\\d{9,15}$/.test(value);hideError();const customerName=getValue(`customerName`);const phsCustCode=getValue(`phsCustCode`);const accountBasic=getValue(`accountBasic`);const notificationEmail=getValue(`notificationEmail`);const alertPhoneNumber=getValue(`alertPhoneNumber`);const ipWhitelist=getValue(`ipWhitelist`);const devUnit=getValue(`devUnit`);const thirdPartyName=getValue(`thirdPartyName`);const goLiveDate=getValue(`goLiveDate`);if(customerName.length\u003c2){showError(`Tên khách hàng / tổ chức phải có ít nhất 2 ký tự.`,1,`customerName`);return}if(!phsCustCode){showError(`Yêu cầu cung cấp số tài khoản / mã khách hàng tại PHS.`,1,`phsCustCode`);return}if(!isValidEmail(notificationEmail)){showError(`Email không hợp lệ.`,1,`notificationEmail`);return}if(!isValidPhone(alertPhoneNumber)){showError(`Số điện thoại nhận OTP/cảnh báo phải chứa số và có độ dài từ 9–15 ký tự.`,1,`alertPhoneNumber`);return}const apiScopesCheck=e.currentTarget.querySelectorAll(`input[name=\"apiScope\"]:checked`);if(apiScopesCheck.length\u003c1){showError(`Vui lòng chọn ít nhất 1 phạm vi API.`,2);return}if(!ipWhitelist){showError(`Vui lòng nhập IP WAN / danh sách IP whitelist.`,3,`ipWhitelist`);return}const terms=e.currentTarget.querySelectorAll(`input[name=\"commitments\"]:checked`);if(terms.length\u003c5){showError(`Vui lòng tích chọn đồng ý đầy đủ 5 điều khoản cam kết!`,4);return}if(btn){btn.disabled=true;btn.innerText=`Đang gửi hồ sơ đăng ký...`}const apiScopes=Array.from(e.currentTarget.querySelectorAll(`input[name=\"apiScope\"]:checked`)).map(cb=>cb.value);const formData={customerName:getValue(`customerName`),phsCustCode:getValue(`phsCustCode`),accountBasic:getValue(`accountBasic`),accountDerivatives:getValue(`accountDerivatives`),notificationEmail:getValue(`notificationEmail`),alertPhoneNumber:getValue(`alertPhoneNumber`),apiScopes,apiScopeNote:getValue(`apiScopeNote`),environment:`Production`,ipWhitelist:getValue(`ipWhitelist`),devUnit:getValue(`devUnit`)===`third_party`?`Thuê bên thứ ba: ${getValue(`thirdPartyName`)}`:`Tự phát triển`,goLiveDate:getValue(`goLiveDate`)};Object.keys(formData).forEach(key=>{if(formData[key]===``){delete formData[key]}});try{const response=await fetch(`/api/api-onboarding`,{method:`POST`,headers:{\"Content-Type\":`application/json`,\"Authorization\":`Bearer LILQYb7bfKfF05auHyYEiCM9b9z-KtV4tcqrU0VzT_eqkX0aXMVV-J84q1Dw98Ot`},body:JSON.stringify(formData)});if(response.ok){if(msgBox){msgBox.style.display=`block`;msgBox.style.backgroundColor=`#e6fffa`;msgBox.style.color=`#234e52`;msgBox.style.border=`1px solid #319795`;msgBox.innerText=`Đăng ký thành công! PHS sẽ xem xét hồ sơ của bạn và liên hệ để kích hoạt API trong thời gian sớm nhất.`;msgBox.scrollIntoView({behavior:`smooth`,block:`center`})}formElement.reset()}else{const errorData=await response.json().catch(()=>null);console.error(`API Error details:`,errorData);throw new Error(`Đã có lỗi xảy ra khi gửi hồ sơ đăng ký`)}}catch(err){showError(`Đã có lỗi xảy ra từ hệ thống hoặc không thể kết nối. Vui lòng kiểm tra lại thông tin!`);if(msgBox)msgBox.style.display=`none`}finally{if(btn){btn.disabled=false;btn.innerText=`Gửi hồ sơ đăng ký`}}},style:{display:`flex`,flexDirection:`column`,gap:`20px`,marginTop:`20px`,maxWidth:`750px`,width:`100%`,height:`65vh`,minHeight:`450px`,boxSizing:`border-box`,border:`1px solid rgba(0,0,0,0.1)`,borderRadius:`8px`,padding:`20px`,overflow:`hidden`},children:[_jsxs(`div`,{id:`form-error-banner`,style:{display:`none`,padding:`14px 18px`,borderRadius:`8px`,backgroundColor:`rgba(239, 68, 68, 0.1)`,border:`1px solid #ef4444`,alignItems:`center`,justifyContent:`space-between`,gap:`12px`,boxSizing:`border-box`,marginBottom:`16px`},children:[_jsxs(`div`,{style:{display:`flex`,alignItems:`center`,gap:`10px`},children:[_jsx(`span`,{style:{fontSize:`18px`,color:`#ef4444`,flexShrink:0},children:`⚠️`}),_jsx(`span`,{id:`form-error-banner-text`,style:{fontSize:`14px`,color:`#ef4444`,fontWeight:`500`},children:_jsx(_components.p,{children:`Error message`})})]}),_jsx(`button`,{type:`button`,onClick:()=>{const banner=document.getElementById(`form-error-banner`);if(banner)banner.style.display=`none`},style:{background:`transparent`,border:`none`,color:`#ef4444`,fontSize:`18px`,cursor:`pointer`,padding:`0 4px`,lineHeight:1},children:_jsx(_components.p,{children:`✕`})})]}),_jsx(`div`,{className:`mint-block sm:mint-hidden`,style:{marginBottom:`12px`},children:_jsx(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:`8px`,width:`100%`,borderBottom:`1px solid currentColor`,opacity:.2,paddingBottom:`12px`},children:[1,2,3,4].map(num=>{const titles=[`1. Thông tin Khách Hàng`,`2. Phạm vi API`,`3. Thông tin kỹ thuật`,`4. Cam kết của Khách Hàng`];return _jsx(`button`,{type:`button`,id:`mobile-tab-btn-${num}`,onClick:()=>{[1,2,3,4].forEach(n=>{if(document.getElementById(`step-${n}`))document.getElementById(`step-${n}`).style.display=`none`;const mBtn=document.getElementById(`mobile-tab-btn-${n}`);const dBtn=document.getElementById(`desktop-tab-btn-${n}`);if(mBtn){mBtn.style.backgroundColor=`transparent`;mBtn.style.color=`inherit`;mBtn.style.borderColor=`currentColor`}if(dBtn){dBtn.style.backgroundColor=`transparent`;dBtn.style.color=`inherit`;dBtn.style.borderColor=`currentColor`}});document.getElementById(`step-${num}`).style.display=`flex`;const curM=document.getElementById(`mobile-tab-btn-${num}`);const curD=document.getElementById(`desktop-tab-btn-${num}`);if(curM){curM.style.backgroundColor=`#15803d`;curM.style.color=`#ffffff`;curM.style.borderColor=`#15803d`}if(curD){curD.style.backgroundColor=`#15803d`;curD.style.color=`#ffffff`;curD.style.borderColor=`#15803d`}document.getElementById(`oapi-registration-form`)?.scrollIntoView({behavior:`smooth`,block:`start`})},style:{flex:`1 1 45%`,minWidth:`140px`,padding:`10px 8px`,borderRadius:`6px`,fontSize:`13px`,fontWeight:`bold`,border:num===1?`1px solid #15803d`:`1px solid currentColor`,cursor:`pointer`,backgroundColor:num===1?`#15803d`:`transparent`,color:num===1?`#ffffff`:`inherit`,textAlign:`center`,boxSizing:`border-box`},children:titles[num-1]},`mobile-${num}`)})})}),_jsx(`div`,{className:`mint-hidden sm:mint-flex`,style:{borderBottom:`1px solid currentColor`,opacity:.8,gap:`8px`,paddingBottom:`10px`,width:`100%`},children:[1,2,3,4].map(num=>{const titles=[`1. Thông tin Khách Hàng`,`2. Phạm vi API`,`3. Thông tin kỹ thuật`,`4. Cam kết của Khách Hàng`];return _jsx(`button`,{type:`button`,id:`desktop-tab-btn-${num}`,onClick:()=>{[1,2,3,4].forEach(n=>{if(document.getElementById(`step-${n}`))document.getElementById(`step-${n}`).style.display=`none`;const mBtn=document.getElementById(`mobile-tab-btn-${n}`);const dBtn=document.getElementById(`desktop-tab-btn-${n}`);if(mBtn){mBtn.style.backgroundColor=`transparent`;mBtn.style.color=`inherit`;mBtn.style.borderColor=`currentColor`}if(dBtn){dBtn.style.backgroundColor=`transparent`;dBtn.style.color=`inherit`;dBtn.style.borderColor=`currentColor`}});document.getElementById(`step-${num}`).style.display=`flex`;const curM=document.getElementById(`mobile-tab-btn-${num}`);const curD=document.getElementById(`desktop-tab-btn-${num}`);if(curM){curM.style.backgroundColor=`#15803d`;curM.style.color=`#ffffff`;curM.style.borderColor=`#15803d`}if(curD){curD.style.backgroundColor=`#15803d`;curD.style.color=`#ffffff`;curD.style.borderColor=`#15803d`}document.getElementById(`oapi-registration-form`)?.scrollIntoView({behavior:`smooth`,block:`start`})},style:{flex:1,padding:`4px 8px`,borderRadius:`5px`,fontSize:`12px`,fontWeight:`bold`,border:num===1?`1px solid #15803d`:`1px solid currentColor`,cursor:`pointer`,backgroundColor:num===1?`#15803d`:`transparent`,color:num===1?`#ffffff`:`inherit`,textAlign:`center`,transition:`all 0.2s`,whiteSpace:`nowrap`},children:titles[num-1]},`desktop-${num}`)})}),_jsxs(`div`,{id:`step-1`,style:{display:`flex`,flexDirection:`column`,flex:1,overflow:`hidden`},children:[_jsx(`div`,{style:{fontSize:`20px`,fontWeight:`bold`,marginBottom:`16px`,flexShrink:0},children:_jsx(_components.p,{children:`Điều 1. Thông tin Khách Hàng`})}),_jsxs(`div`,{className:`step-scroll-box`,style:{flex:1,overflowY:`auto`,paddingRight:`10px`},children:[_jsxs(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`6px`,marginBottom:`18px`},children:[_jsx(`label`,{style:{fontWeight:`bold`,display:`block`,marginBottom:`4px`,fontSize:`14px`},children:_jsxs(_components.p,{children:[`Tên Khách Hàng / Tổ chức `,_jsx(`span`,{style:{color:`#e53e3e`},children:`*`})]})}),_jsx(`input`,{type:`text`,name:`customerName`,required:true,minLength:2,placeholder:`Họ tên hoặc tên tổ chức`,style:{width:`100%`,padding:`9px 10px`,borderRadius:`6px`,border:`1px solid currentColor`,boxSizing:`border-box`}})]}),_jsxs(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`6px`,marginBottom:`20px`},children:[_jsx(`label`,{style:{fontWeight:`bold`,display:`block`,marginBottom:`4px`,fontSize:`14px`},children:_jsxs(_components.p,{children:[`Số lưu ký / Tài khoản tại PHS `,_jsx(`span`,{style:{color:`#e53e3e`},children:`*`})]})}),_jsx(`input`,{type:`text`,name:`phsCustCode`,required:true,placeholder:`Ví dụ: 069Cxxxxxx`,style:{width:`100%`,padding:`9px 10px`,borderRadius:`6px`,border:`1px solid currentColor`,boxSizing:`border-box`}})]}),_jsx(`div`,{style:{fontSize:`12px`,fontWeight:`bold`,textTransform:`uppercase`,letterSpacing:`0.04em`,color:`#15803d`,marginBottom:`10px`},children:_jsx(_components.p,{children:`Tiểu khoản đăng ký API`})}),_jsxs(`div`,{className:`mint-grid mint-grid-cols-1 sm:mint-grid-cols-2`,style:{gap:`16px`,marginBottom:`20px`},children:[_jsxs(`div`,{style:{display:`flex`,flexDirection:`column`},children:[_jsx(`label`,{style:{fontWeight:`bold`,display:`block`,marginBottom:`4px`,fontSize:`14px`},children:_jsx(_components.p,{children:`Tiểu khoản cơ sở`})}),_jsx(`input`,{type:`text`,name:`accountBasic`,placeholder:`Không bắt buộc`,style:{width:`100%`,padding:`9px 10px`,borderRadius:`6px`,border:`1px solid currentColor`,boxSizing:`border-box`}})]}),_jsxs(`div`,{style:{display:`flex`,flexDirection:`column`},children:[_jsx(`label`,{style:{fontWeight:`bold`,display:`block`,marginBottom:`4px`,fontSize:`14px`},children:_jsx(_components.p,{children:`Tiểu khoản phái sinh`})}),_jsx(`input`,{type:`text`,name:`accountDerivatives`,placeholder:`Không bắt buộc`,style:{width:`100%`,padding:`9px 10px`,borderRadius:`6px`,border:`1px solid currentColor`,boxSizing:`border-box`}})]})]}),_jsx(`div`,{style:{fontSize:`12px`,fontWeight:`bold`,textTransform:`uppercase`,letterSpacing:`0.04em`,color:`#15803d`,marginBottom:`10px`},children:_jsx(_components.p,{children:`Thông tin liên hệ`})}),_jsxs(`div`,{className:`mint-grid mint-grid-cols-1 sm:mint-grid-cols-2`,style:{gap:`16px`},children:[_jsxs(`div`,{style:{display:`flex`,flexDirection:`column`},children:[_jsx(`label`,{style:{fontWeight:`bold`,display:`block`,marginBottom:`4px`,fontSize:`14px`},children:_jsxs(_components.p,{children:[`Email (email đăng ký tại PHS) `,_jsx(`span`,{style:{color:`#e53e3e`},children:`*`})]})}),_jsx(`input`,{type:`email`,name:`notificationEmail`,required:true,placeholder:`example@email.com`,style:{width:`100%`,padding:`9px 10px`,borderRadius:`6px`,border:`1px solid currentColor`,boxSizing:`border-box`}})]}),_jsxs(`div`,{style:{display:`flex`,flexDirection:`column`},children:[_jsx(`label`,{style:{fontWeight:`bold`,display:`block`,marginBottom:`4px`,fontSize:`14px`},children:_jsxs(_components.p,{children:[`SĐT `,_jsx(`span`,{style:{color:`#e53e3e`},children:`*`})]})}),_jsx(`input`,{type:`tel`,name:`alertPhoneNumber`,required:true,inputMode:`numeric`,pattern:`\\\\d{9,15}`,title:`Digits only, 9 to 15 digits.`,placeholder:`09xxxxxxxx`,onInput:e=>{e.currentTarget.value=e.currentTarget.value.replace(/\\D/g,``)},style:{width:`100%`,padding:`9px 10px`,borderRadius:`6px`,border:`1px solid currentColor`,boxSizing:`border-box`}})]})]})]}),_jsx(`div`,{className:`mint-flex mint-flex-col-reverse sm:mint-flex-row mint-justify-end mint-gap-3`,style:{marginTop:`20px`,paddingTop:`10px`,borderTop:`1px solid currentColor`,opacity:.9,flexShrink:0},children:_jsx(`button`,{type:`button`,onClick:()=>{const form=document.getElementById(`oapi-registration-form`);const getValue=name=>(form[name]?.value??``).trim();const isValidEmail=value=>/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value);const isValidPhone=value=>/^\\d{9,15}$/.test(value);const showError=(message,fieldName)=>{const banner=document.getElementById(`form-error-banner`);const bannerText=document.getElementById(`form-error-banner-text`);if(banner\u0026\u0026bannerText){bannerText.innerText=message;banner.style.display=`flex`;document.getElementById(`oapi-registration-form`)?.scrollIntoView({behavior:`smooth`,block:`nearest`})}if(fieldName){setTimeout(()=>{const input=form[fieldName];if(input){const scrollBox=input.closest(`.step-scroll-box`);if(scrollBox){const scrollBoxRect=scrollBox.getBoundingClientRect();const inputRect=input.getBoundingClientRect();if(inputRect.top\u003cscrollBoxRect.top||inputRect.bottom>scrollBoxRect.bottom){scrollBox.scrollBy({top:inputRect.top-scrollBoxRect.top-20,behavior:`smooth`})}}input.focus({preventScroll:true})}},100)}};const errorBanner=document.getElementById(`form-error-banner`);if(errorBanner)errorBanner.style.display=`none`;const customerName=getValue(`customerName`);const phsCustCode=getValue(`phsCustCode`);const notificationEmail=getValue(`notificationEmail`);const alertPhoneNumber=getValue(`alertPhoneNumber`);if(customerName.length\u003c2){showError(`Tên khách hàng / tổ chức phải có ít nhất 2 ký tự.`,`customerName`);return}if(!phsCustCode){showError(`Số lưu ký / Tài khoản tại PHS là bắt buộc.`,`phsCustCode`);return}if(!isValidEmail(notificationEmail)){showError(`Email nhận thông báo về API phải là địa chỉ email hợp lệ (phải chứa ký tự @, ví dụ: name@example.com).`,`notificationEmail`);return}if(!isValidPhone(alertPhoneNumber)){showError(`Số điện thoại nhận OTP và thông báo phải chỉ chứa các chữ số và có độ dài từ 9–15 ký tự.`,`alertPhoneNumber`);return}const btn=document.getElementById(`desktop-tab-btn-2`)||document.getElementById(`mobile-tab-btn-2`);if(btn)btn.click()},className:`mint-w-full sm:mint-w-auto`,style:{padding:`10px 20px`,backgroundColor:`#15803d`,color:`#fff`,border:`none`,borderRadius:`6px`,fontWeight:`bold`,cursor:`pointer`},children:_jsx(_components.p,{children:`Tiếp theo: Phạm vi API đề nghị cấp ➔`})})})]}),_jsxs(`div`,{id:`step-2`,style:{display:`none`,flexDirection:`column`,flex:1,overflow:`hidden`},children:[_jsx(`div`,{style:{fontSize:`20px`,fontWeight:`bold`,marginBottom:`6px`,flexShrink:0},children:_jsx(_components.p,{children:`Điều 2. Phạm vi API đề nghị cấp (Production)`})}),_jsxs(`div`,{className:`step-scroll-box`,style:{flex:1,overflowY:`auto`,paddingRight:`10px`},children:[_jsx(`p`,{style:{fontSize:`14px`,marginBottom:`16px`,opacity:.8},children:_jsx(_components.p,{children:`Chọn các nhóm API bạn muốn đăng ký sử dụng:`})}),_jsxs(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`12px`},children:[[{val:`auth_security`,title:`Authentication \u0026 Security`,sub:`Cấp API Key, Secret Key, Access Token`,checked:true},{val:`trading_equity`,title:`Trading API – underlying securities`,sub:`Đặt, sửa, hủy lệnh, tra cứu lệnh cơ sở`},{val:`trading_derivatives`,title:`Trading API – derivatives`,sub:`Đặt, sửa, hủy lệnh, xác thực OTP, tra cứu lệnh phái sinh`},{val:`account_api`,title:`Account API`,sub:`Xem số dư, danh mục, sức mua, nghĩa vụ ký quỹ`},{val:`market_data`,title:`Market Data API / Historical Candles`,sub:`Truy xuất dữ liệu thị trường và nến lịch sử`},{val:`websocket_streaming`,title:`Streaming / WebSocket`,sub:`Đăng ký nhận stream realtime cho Account / Instrument / Trade`},{val:`developer_portal`,title:`API Playground / Developer Portal`,sub:`Quyền truy cập cổng thử nghiệm API`}].map(scope=>_jsxs(`label`,{style:{display:`flex`,gap:`12px`,alignItems:`center`,padding:`12px 16px`,border:`1px solid currentColor`,borderRadius:`8px`,cursor:`pointer`},children:[_jsx(`input`,{type:`checkbox`,name:`apiScope`,value:scope.val,defaultChecked:scope.checked,style:{width:`18px`,height:`18px`,cursor:`pointer`,accentColor:`#15803d`}}),_jsxs(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`2px`},children:[_jsx(`strong`,{style:{fontSize:`14px`},children:scope.title}),_jsx(`span`,{style:{fontSize:`13px`,opacity:.7},children:scope.sub})]})]},scope.val)),_jsxs(`div`,{style:{marginTop:`8px`,display:`flex`,flexDirection:`column`,gap:`6px`},children:[_jsx(`label`,{style:{fontWeight:`bold`,display:`block`,fontSize:`14px`},children:_jsx(_components.p,{children:`Ghi chú / Phạm vi tài khoản chi tiết`})}),_jsx(`input`,{type:`text`,name:`apiScopeNote`,placeholder:`Additional notes on the scope of API-enabled accounts...`,style:{width:`100%`,padding:`10px 12px`,borderRadius:`6px`,border:`1px solid currentColor`,backgroundColor:`transparent`,color:`inherit`,fontSize:`14px`,boxSizing:`border-box`}})]})]})]}),_jsxs(`div`,{className:`mint-flex mint-flex-col-reverse sm:mint-flex-row mint-justify-between mint-gap-3`,style:{marginTop:`20px`,paddingTop:`10px`,borderTop:`1px solid currentColor`,opacity:.9,flexShrink:0},children:[_jsx(`button`,{type:`button`,onClick:()=>{const btn=document.getElementById(`desktop-tab-btn-1`)||document.getElementById(`mobile-tab-btn-1`);if(btn)btn.click()},className:`mint-w-full sm:mint-w-auto`,style:{padding:`10px 20px`,border:`1px solid currentColor`,borderRadius:`6px`,fontWeight:`bold`,cursor:`pointer`,backgroundColor:`transparent`},children:_jsx(_components.p,{children:`Quay lại Bước 1`})}),_jsx(`button`,{type:`button`,onClick:e=>{const showError=message=>{const banner=document.getElementById(`form-error-banner`);const bannerText=document.getElementById(`form-error-banner-text`);if(banner\u0026\u0026bannerText){bannerText.innerText=message;banner.style.display=`flex`;banner.scrollIntoView({behavior:`smooth`,block:`center`})}};const errorBanner=document.getElementById(`form-error-banner`);if(errorBanner)errorBanner.style.display=`none`;const checkedScopes=document.querySelectorAll(`input[name=\"apiScope\"]:checked`);if(checkedScopes.length\u003c1){showError(`Please select at least one API scope before continuing.`);return}const btn=document.getElementById(`desktop-tab-btn-3`)||document.getElementById(`mobile-tab-btn-3`);if(btn)btn.click()},className:`mint-w-full sm:mint-w-auto`,style:{padding:`10px 20px`,backgroundColor:`#15803d`,color:`#fff`,border:`none`,borderRadius:`6px`,fontWeight:`bold`,cursor:`pointer`},children:_jsx(_components.p,{children:`Tiếp theo: Thông tin kỹ thuật ➔`})})]})]}),_jsxs(`div`,{id:`step-3`,style:{display:`none`,flexDirection:`column`,flex:1,overflow:`hidden`},children:[_jsx(`div`,{style:{fontSize:`20px`,fontWeight:`bold`,marginBottom:`16px`,flexShrink:0},children:_jsx(_components.p,{children:`Điều 3. Thông tin kỹ thuật đăng ký`})}),_jsx(`div`,{className:`step-scroll-box`,style:{flex:1,overflowY:`auto`,paddingRight:`10px`},children:_jsxs(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`14px`},children:[_jsxs(`div`,{children:[_jsxs(`div`,{style:{display:`flex`,alignItems:`center`,gap:`6px`,marginBottom:`4px`,position:`relative`,overflow:`visible`},children:[_jsx(`label`,{style:{fontWeight:`bold`,fontSize:`14px`,margin:0},children:_jsxs(_components.p,{children:[`IP WAN / IP Whitelist đăng ký `,_jsx(`span`,{style:{color:`#e53e3e`},children:`*`})]})}),_jsx(`button`,{type:`button`,\"aria-label\":`Hướng dẫn lấy IP WAN`,onMouseEnter:()=>{const t=document.getElementById(`ip-wan-tooltip`);if(t)t.style.display=`block`},onMouseLeave:()=>{const t=document.getElementById(`ip-wan-tooltip`);if(t\u0026\u0026t.dataset.pinned!==`1`)t.style.display=`none`},onClick:()=>{const t=document.getElementById(`ip-wan-tooltip`);if(!t)return;const pinned=t.dataset.pinned===`1`;t.dataset.pinned=pinned?`0`:`1`;t.style.display=pinned?`none`:`block`},style:{width:`18px`,height:`18px`,borderRadius:`50%`,border:`1px solid #15803d`,backgroundColor:`transparent`,color:`#15803d`,fontSize:`12px`,fontWeight:`bold`,lineHeight:`16px`,padding:0,cursor:`pointer`,flexShrink:0},children:_jsx(_components.p,{children:`?`})}),_jsxs(`div`,{id:`ip-wan-tooltip`,style:{display:`none`,position:`absolute`,top:`calc(100% + 6px)`,left:0,zIndex:20,maxWidth:`380px`,padding:`12px 14px`,borderRadius:`8px`,backgroundColor:`#f0fdf4`,border:`1px solid #15803d`,color:`#14532d`,fontSize:`13px`,lineHeight:1.5,boxShadow:`0 4px 12px rgba(0,0,0,0.12)`},children:[_jsx(`div`,{style:{fontWeight:`bold`,marginBottom:`6px`},children:`Cách lấy IP WAN`}),_jsxs(`ol`,{style:{margin:0,paddingLeft:`18px`},children:[_jsx(`li`,{children:`Kết nối máy tính với mạng Internet dùng để truy cập OpenAPI.`}),_jsx(`li`,{children:`Mở Google và tìm “What is my IP”.`}),_jsx(`li`,{children:`Cung cấp địa chỉ IPv4 công khai hiển thị trên màn hình.`})]})]})]}),_jsx(`input`,{type:`text`,name:`ipWhitelist`,required:true,placeholder:`Ví dụ: 1.2.3.4`,style:{width:`100%`,padding:`8px`,borderRadius:`6px`,border:`1px solid currentColor`,boxSizing:`border-box`}})]}),_jsxs(`div`,{children:[_jsx(`label`,{style:{fontWeight:`bold`,display:`block`,marginBottom:`4px`,fontSize:`14px`},children:_jsx(_components.p,{children:`Đơn vị phát triển / vận hành ứng dụng`})}),_jsxs(`div`,{style:{display:`flex`,gap:`20px`,alignItems:`center`,marginTop:`6px`},children:[_jsxs(`label`,{className:`mint-cursor-pointer mint-flex mint-items-center mint-gap-1.5`,children:[_jsx(`input`,{type:`radio`,name:`devUnit`,value:`self`,defaultChecked:true,style:{accentColor:`#15803d`}}),` `,_jsx(_components.p,{children:`Tự phát triển`})]}),_jsxs(`label`,{className:`mint-cursor-pointer mint-flex mint-items-center mint-gap-1.5`,children:[_jsx(`input`,{type:`radio`,name:`devUnit`,value:`third_party`,style:{accentColor:`#15803d`}}),` `,_jsx(_components.p,{children:`Thuê bên thứ ba`})]})]}),_jsx(`input`,{type:`text`,name:`thirdPartyName`,placeholder:`Name of third-party entity (if contracted)...`,style:{width:`100%`,padding:`8px`,borderRadius:`6px`,border:`1px solid currentColor`,marginTop:`6px`,boxSizing:`border-box`}})]}),_jsxs(`div`,{children:[_jsx(`label`,{style:{fontWeight:`bold`,display:`block`,marginBottom:`4px`,fontSize:`14px`},children:_jsx(_components.p,{children:`Ngày dự kiến Go-live Production`})}),_jsx(`input`,{type:`date`,name:`goLiveDate`,style:{width:`100%`,padding:`8px`,borderRadius:`6px`,border:`1px solid currentColor`,boxSizing:`border-box`}})]})]})}),_jsxs(`div`,{className:`mint-flex mint-flex-col-reverse sm:mint-flex-row mint-justify-between mint-gap-3`,style:{marginTop:`20px`,paddingTop:`10px`,borderTop:`1px solid currentColor`,opacity:.9,flexShrink:0},children:[_jsx(`button`,{type:`button`,onClick:()=>{const btn=document.getElementById(`desktop-tab-btn-2`)||document.getElementById(`mobile-tab-btn-2`);if(btn)btn.click()},className:`mint-w-full sm:mint-w-auto`,style:{padding:`10px 20px`,border:`1px solid currentColor`,borderRadius:`6px`,fontWeight:`bold`,cursor:`pointer`,backgroundColor:`transparent`},children:_jsx(_components.p,{children:`Quay lại Bước 2`})}),_jsx(`button`,{type:`button`,onClick:()=>{const form=document.getElementById(`oapi-registration-form`);const getValue=name=>(form[name]?.value??``).trim();const showError=(message,fieldName)=>{const banner=document.getElementById(`form-error-banner`);const bannerText=document.getElementById(`form-error-banner-text`);if(banner\u0026\u0026bannerText){bannerText.innerText=message;banner.style.display=`flex`;document.getElementById(`oapi-registration-form`)?.scrollIntoView({behavior:`smooth`,block:`nearest`})}if(fieldName){setTimeout(()=>{const input=form[fieldName];if(input){const scrollBox=input.closest(`.step-scroll-box`);if(scrollBox){const scrollBoxRect=scrollBox.getBoundingClientRect();const inputRect=input.getBoundingClientRect();if(inputRect.top\u003cscrollBoxRect.top||inputRect.bottom>scrollBoxRect.bottom){scrollBox.scrollBy({top:inputRect.top-scrollBoxRect.top-20,behavior:`smooth`})}}input.focus({preventScroll:true})}},100)}};const errorBanner=document.getElementById(`form-error-banner`);if(errorBanner)errorBanner.style.display=`none`;const ipWhitelist=getValue(`ipWhitelist`);if(!ipWhitelist){showError(`Registered WAN IP / IP whitelist is required.`,`ipWhitelist`);return}const btn=document.getElementById(`desktop-tab-btn-4`)||document.getElementById(`mobile-tab-btn-4`);if(btn)btn.click()},className:`mint-w-full sm:mint-w-auto`,style:{padding:`10px 20px`,backgroundColor:`#15803d`,color:`#fff`,border:`none`,borderRadius:`6px`,fontWeight:`bold`,cursor:`pointer`},children:_jsx(_components.p,{children:`Tiếp theo: Cam kết của Khách Hàng ➔`})})]})]}),_jsxs(`div`,{id:`step-4`,style:{display:`none`,flexDirection:`column`,flex:1,overflow:`hidden`},children:[_jsx(`div`,{style:{fontSize:`20px`,fontWeight:`bold`,marginBottom:`6px`,flexShrink:0},children:_jsx(_components.p,{children:`Điều 4. Cam kết của Khách Hàng`})}),_jsxs(`div`,{className:`step-scroll-box`,style:{flex:1,overflowY:`auto`,paddingRight:`10px`},children:[_jsx(`p`,{style:{fontSize:`14px`,color:`#15803d`,fontWeight:`bold`,marginBottom:`12px`},children:_jsx(_components.p,{children:`Vui lòng tích chọn xác nhận đủ tất cả các điều khoản bên dưới:`})}),_jsxs(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`12px`,fontSize:`14px`},children:[_jsxs(`label`,{style:{display:`flex`,gap:`10px`,alignItems:`center`,cursor:`pointer`,paddingBottom:`8px`,borderBottom:`1px solid currentColor`,opacity:.9,fontWeight:`bold`},children:[_jsx(`input`,{type:`checkbox`,id:`toggle-all-commitments`,onChange:e=>{const isChecked=e.target.checked;const checkboxes=document.querySelectorAll(`input[name=\"commitments\"]`);checkboxes.forEach(cb=>{cb.checked=isChecked})},style:{width:`18px`,height:`18px`,flexShrink:0,cursor:`pointer`,accentColor:`#15803d`}}),_jsx(`span`,{children:`Chọn tất cả`})]}),[`Khách Hàng đã mở và duy trì tài khoản giao dịch chứng khoán tại PHS; đối với từng loại API, Khách Hàng đã hoặc sẽ hoàn tất hồ sơ sản phẩm/tài khoản tương ứng trước khi sử dụng production.`,`Khách Hàng đã đọc, hiểu và đồng ý với Điều khoản và Điều kiện sử dụng dịch vụ PHS OpenAPI, Bản công bố rủi ro, Tài Liệu API, quy định giao dịch trực tuyến và các hợp đồng/hồ sơ tài khoản có liên quan tại PHS.`,`Khách Hàng chịu trách nhiệm bảo mật Thông Tin Xác Thực API, quản lý Ứng Dụng Tích Hợp API và mọi yêu cầu/lệnh phát sinh qua API.`,`Khách Hàng cam kết không sử dụng API để thao túng thị trường, lạm dụng thị trường, gửi lệnh gây nhiễu, thử lỗ hổng, vượt giới hạn API, phân phối lại dữ liệu trái phép hoặc thực hiện hành vi bị cấm theo pháp luật.`,`Khách Hàng đồng ý để PHS giám sát, ghi nhận log, áp dụng giới hạn, tạm ngừng hoặc thu hồi quyền truy cập API khi cần thiết để bảo vệ hệ thống, thị trường, nhà đầu tư hoặc để tuân thủ pháp luật/yêu cầu cơ quan có thẩm quyền.`].map((text,idx)=>_jsxs(`label`,{style:{display:`flex`,gap:`10px`,alignItems:`center`,cursor:`pointer`},children:[_jsx(`input`,{type:`checkbox`,name:`commitments`,required:true,onChange:()=>{const all=document.querySelectorAll(`input[name=\"commitments\"]`);const checked=document.querySelectorAll(`input[name=\"commitments\"]:checked`);const toggleAll=document.getElementById(`toggle-all-commitments`);if(toggleAll)toggleAll.checked=all.length===checked.length},style:{width:`18px`,height:`18px`,flexShrink:0,cursor:`pointer`,accentColor:`#15803d`}}),_jsx(`span`,{children:text})]},idx))]}),_jsx(`div`,{id:`form-status-msg`,style:{display:`none`,padding:`12px`,borderRadius:`6px`,fontSize:`14px`,marginTop:`16px`}})]}),_jsxs(`div`,{className:`mint-flex mint-flex-col-reverse sm:mint-flex-row mint-justify-between mint-gap-3`,style:{marginTop:`20px`,paddingTop:`10px`,borderTop:`1px solid currentColor`,opacity:.9,flexShrink:0},children:[_jsx(`button`,{type:`button`,onClick:()=>{const btn=document.getElementById(`desktop-tab-btn-3`)||document.getElementById(`mobile-tab-btn-3`);if(btn)btn.click()},className:`mint-w-full sm:mint-w-auto`,style:{padding:`10px 20px`,border:`1px solid currentColor`,borderRadius:`6px`,fontWeight:`bold`,cursor:`pointer`,backgroundColor:`transparent`},children:_jsx(_components.p,{children:`Quay lại Bước 3`})}),_jsx(`button`,{type:`submit`,className:`mint-w-full sm:mint-w-auto`,style:{padding:`12px 24px`,backgroundColor:`#15803d`,color:`#fff`,border:`none`,borderRadius:`6px`,fontWeight:`bold`,cursor:`pointer`,fontSize:`15px`},children:_jsx(_components.p,{children:`Gửi Đơn Đăng Ký`})})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Đăng ký OAPI","description":"Vui lòng điền vào mẫu đăng ký dưới đây để yêu cầu quyền truy cập PHS OpenAPI (Flash API). ","sidebarTitle":"Đăng ký OAPI","href":"/vi/registration-form"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[278,4834,""],[5718,5828,""],[6006,9460,""],[13307,13382,""],[13748,15740,""],[16541,16542,""],[16616,17982,""],[18528,18529,""],[18782,18915,""],[19187,19904,""],[21030,21432,""],[24234,24367,""],[24639,25911,""],[26740,26741,""],[26831,26832,""],[27073,27239,""],[27368,28927,""],[29305,29438,""]]},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"dynamicCss":".mint-block {\n display: block\n}\n.mint-flex {\n display: flex\n}\n.mint-grid {\n display: grid\n}\n.mint-hidden {\n display: none\n}\n.mint-w-full {\n width: 100%\n}\n.mint-cursor-pointer {\n cursor: pointer\n}\n.mint-grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr))\n}\n.mint-flex-col-reverse {\n flex-direction: column-reverse\n}\n.mint-items-center {\n align-items: center\n}\n.mint-justify-end {\n justify-content: flex-end\n}\n.mint-justify-between {\n justify-content: space-between\n}\n.mint-gap-1\\.5 {\n gap: 0.375rem\n}\n.mint-gap-3 {\n gap: 0.75rem\n}\n@media (min-width: 640px) {\n .sm\\:mint-flex {\n display: flex\n }\n .sm\\:mint-hidden {\n display: none\n }\n .sm\\:mint-w-auto {\n width: auto\n }\n .sm\\:mint-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr))\n }\n .sm\\:mint-flex-row {\n flex-direction: row\n }\n}","subdomain":"phuhungsecurities","siteName":"FlashAPI","title":"Đăng ký OAPI - FlashAPI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/registration-form","matchLevel":1},"vi":{"href":"/vi/registration-form","matchLevel":0}}},"lastModified":"2026-10-05T13:41:03.801Z","originalFileLocation":"vi/registration-form.mdx","locale":"vi"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Vui lòng điền vào mẫu đăng ký dưới đây để yêu cầu quyền truy cập PHS OpenAPI (Flash API).\">\u003cmeta data-mint-head name=\"application-name\" content=\"FlashAPI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/phuhungsecurities/Zsth3l6AGLh-Lo80/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/phuhungsecurities/Zsth3l6AGLh-Lo80/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/phuhungsecurities/Zsth3l6AGLh-Lo80/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/phuhungsecurities/Zsth3l6AGLh-Lo80/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/phuhungsecurities/Zsth3l6AGLh-Lo80/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/phuhungsecurities/Zsth3l6AGLh-Lo80/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/phuhungsecurities/Zsth3l6AGLh-Lo80/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/phuhungsecurities/Zsth3l6AGLh-Lo80/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/phuhungsecurities/Zsth3l6AGLh-Lo80/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Đăng ký OAPI - FlashAPI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Vui lòng điền vào mẫu đăng ký dưới đây để yêu cầu quyền truy cập PHS OpenAPI (Flash API).\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"FlashAPI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://flashapi.phs.vn/docs/vi/registration-form\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://phuhungsecurities.mintlify.app/_mintlify/api/og/v2?division=C%C3%A1c+%C4%91i%E1%BB%81u+kho%E1%BA%A3n+%26+th%E1%BB%8Fa+thu%E1%BA%ADn\u0026amp;title=%C4%90%C4%83ng+k%C3%BD+OAPI\u0026amp;description=Vui+l%C3%B2ng+%C4%91i%E1%BB%81n+v%C3%A0o+m%E1%BA%ABu+%C4%91%C4%83ng+k%C3%BD+d%C6%B0%E1%BB%9Bi+%C4%91%C3%A2y+%C4%91%E1%BB%83+y%C3%AAu+c%E1%BA%A7u+quy%E1%BB%81n+truy+c%E1%BA%ADp+PHS+OpenAPI+%28Flash+API%29.+\u0026amp;theme=ee041a0fba76bae95759ecf3\u0026amp;signature=7e6c391b7da19ce38a616843723960e3c9c7bb99c5ef8634888e26857554242f\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Đăng ký OAPI - FlashAPI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Vui lòng điền vào mẫu đăng ký dưới đây để yêu cầu quyền truy cập PHS OpenAPI (Flash API).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://phuhungsecurities.mintlify.app/_mintlify/api/og/v2?division=C%C3%A1c+%C4%91i%E1%BB%81u+kho%E1%BA%A3n+%26+th%E1%BB%8Fa+thu%E1%BA%ADn\u0026amp;title=%C4%90%C4%83ng+k%C3%BD+OAPI\u0026amp;description=Vui+l%C3%B2ng+%C4%91i%E1%BB%81n+v%C3%A0o+m%E1%BA%ABu+%C4%91%C4%83ng+k%C3%BD+d%C6%B0%E1%BB%9Bi+%C4%91%C3%A2y+%C4%91%E1%BB%83+y%C3%AAu+c%E1%BA%A7u+quy%E1%BB%81n+truy+c%E1%BA%ADp+PHS+OpenAPI+%28Flash+API%29.+\u0026amp;theme=ee041a0fba76bae95759ecf3\u0026amp;signature=7e6c391b7da19ce38a616843723960e3c9c7bb99c5ef8634888e26857554242f\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/phuhungsecurities/Zsth3l6AGLh-Lo80/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"FlashAPI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://flashapi.phs.vn/docs/vi/registration-form\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/vi/registration-form.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"vi\" href=\"https://flashapi.phs.vn/docs/vi/registration-form\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://flashapi.phs.vn/docs/registration-form\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://flashapi.phs.vn/docs/registration-form\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://flashapi.phs.vn/#organization\",\"name\":\"FlashAPI\",\"url\":\"https://flashapi.phs.vn\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/phuhungsecurities/zdoAbtvRgcpiQvL2/images/logo4-2-20nam-01.png?fit=max\u0026auto=format\u0026n=zdoAbtvRgcpiQvL2\u0026q=85\u0026s=b2ce27d4913e929c779bf3c69e383cec\"}},{\"@type\":\"WebSite\",\"@id\":\"https://flashapi.phs.vn/docs#website\",\"name\":\"FlashAPI\",\"url\":\"https://flashapi.phs.vn/docs\",\"publisher\":{\"@id\":\"https://flashapi.phs.vn/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://flashapi.phs.vn/docs/vi/registration-form#webpage\",\"url\":\"https://flashapi.phs.vn/docs/vi/registration-form\",\"name\":\"Đăng ký OAPI\",\"description\":\"Vui lòng điền vào mẫu đăng ký dưới đây để yêu cầu quyền truy cập PHS OpenAPI (Flash API).\",\"dateModified\":\"2026-10-05T13:41:03.801Z\",\"isPartOf\":{\"@id\":\"https://flashapi.phs.vn/docs#website\"},\"breadcrumb\":{\"@id\":\"https://flashapi.phs.vn/docs/vi/registration-form#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://flashapi.phs.vn/docs/vi/registration-form#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Các điều khoản \u0026 thỏa thuận\",\"item\":\"https://flashapi.phs.vn/docs/vi/registration-guide\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Đăng ký OAPI\",\"item\":\"https://flashapi.phs.vn/docs/vi/registration-form\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://flashapi.phs.vn/docs/vi/registration-form#article\",\"headline\":\"Đăng ký OAPI\",\"name\":\"Đăng ký OAPI\",\"description\":\"Vui lòng điền vào mẫu đăng ký dưới đây để yêu cầu quyền truy cập PHS OpenAPI (Flash API).\",\"url\":\"https://flashapi.phs.vn/docs/vi/registration-form\",\"mainEntityOfPage\":{\"@id\":\"https://flashapi.phs.vn/docs/vi/registration-form#webpage\"},\"dateModified\":\"2026-10-05T13:41:03.801Z\",\"publisher\":{\"@id\":\"https://flashapi.phs.vn/#organization\"},\"isPartOf\":{\"@id\":\"https://flashapi.phs.vn/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"FlashAPI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"FlashAPI","nav":{"global":null,"languages":[{"language":"en","default":true,"pages":[{"title":"en","href":"/registration-form"}]},{"language":"vi","tabs":[{"tab":"Tài liệu tham chiếu API","pages":[{"group":"Tài liệu API","pages":[{"title":"Tổng quan","href":"/vi/api-reference/welcome"},{"group":"Priceboard","expanded":true,"pages":[{"title":"Lấy dữ liệu mới nhất của mã chứng khoán","href":"/vi/priceboard/get-symbol-latest-data"},{"title":"Lấy dữ liệu thống kê của mã chứng khoán","href":"/vi/priceboard/get-symbol-statics-data"},{"title":"Lấy dữ liệu khớp lệnh theo mã","href":"/vi/priceboard/get-symbol-matching-data"},{"title":"Lấy toàn bộ thông tin cổ phiếu/mã chứng khoán","href":"/vi/priceboard/get_all_stocks"},{"title":"Lấy dữ liệu nến","href":"/vi/priceboard/Get_candlestick_data"}]},{"group":"Authentication","pages":[{"title":"Cơ sở","href":"/vi/authentication/underlying"},{"title":"Phái sinh","href":"/vi/authentication/derivate"}]},{"group":"Placing Order ","pages":[{"title":"Cơ sở","href":"/vi/trading/Underlying"},{"title":"Phái sinh","href":"/vi/trading/Derivative"},{"title":"Trạng thái lệnh","href":"/vi/api-reference/error-status"}]},{"group":"Portfolio","pages":[{"group":"Underlying","pages":[{"title":"Danh mục đầu tư","href":"/vi/inquiry/porfolio"}]},{"group":"Derivative","pages":[{"title":"Vị thế mở","href":"/vi/derivative/open-position"},{"title":"Vị thế đóng","href":"/vi/derivative/close-positions"}]}]},{"group":"Order History","pages":[{"group":"Underlying","pages":[{"title":"Sổ lệnh trong ngày","href":"/vi/trading/underlying-daily-order"},{"title":"Lịch sử đặt lệnh ","href":"/vi/trading/oderhistory/underlying/order-report"}]},{"group":"Derivative","pages":[{"title":"Sổ lệnh trong ngày ","href":"/vi/trading/derivative-daily-order"},{"title":"Lịch sử đặt lệnh ","href":"/vi/trading/order-report"}]}]},{"group":"Asset","pages":[{"title":"Cơ sở","href":"/vi/balance/underlying-1"},{"title":"Phái sinh","href":"/vi/balance/derivative"}]},{"group":"Socket","pages":[{"title":"Kết nối Socket.IO","href":"/vi/Socket-connection"},{"title":"Kết nối WebSocket dữ liệu thị trường","href":"/vi/websocket/market-data"},{"title":"WebSocket dữ liệu giao dịch (CS+PS)","href":"/vi/websocket/trading-data"}]},{"title":"Mã lỗi","href":"/vi/api-reference/error-code"},{"group":"Sandbox","pages":[{"title":"Sandbox dùng để làm gì?","href":"/vi/Introduction"},{"title":"Cách hoạt động của URL Sandbox","href":"/vi/how-sandbox-urls-work"},{"title":"Luồng xác thực","href":"/vi/authentication-account"},{"title":"Nhóm API Dữ liệu thị trường","href":"/vi/market"},{"title":"Nhóm API Xác thực","href":"/vi/authen-account-underlying"},{"title":"Xác thực tài khoản cơ sở","href":"/vi/authen-account-derivative"},{"title":"Nhóm API Giao dịch - Cơ sở (Chứng khoán)","href":"/vi/trading-underlying"},{"title":"API Giao dịch — Phái sinh (Futures)","href":"/vi/trading-derivative"},{"title":"Nhóm API Tài khoản, Danh mục \u0026 Số dư — Cơ sở","href":"/vi/account-portfolio-balance-underlying"},{"title":"Tham khảo: Mã trạng thái lệnh","href":"/vi/ref-order-status-codes"},{"title":"Phụ lục","href":"/vi/error-codes"},{"title":"Phụ lục","href":"/vi/appendix"}]},{"title":"Rate limit","href":"/vi/rate-limits"}]},{"group":"Endpoint examples","hidden":true,"pages":[{"title":"Get Plants","openapi":"GET /plants","href":"/vi/api-reference/endpoint/get"},{"title":"Create Plant","openapi":"POST /plants","href":"/vi/api-reference/endpoint/create"},{"title":"Delete Plant","openapi":"DELETE /plants/{id}","href":"/vi/api-reference/endpoint/delete"},{"title":"New Plant","openapi":"WEBHOOK /plant/webhook","href":"/vi/api-reference/endpoint/webhook"}]},{"title":"Các câu hỏi thường gặp (FAQs)","href":"/vi/api-reference/faqs"},{"group":"Các điều khoản \u0026 thỏa thuận","pages":[{"title":"Đăng ký sử dụng PHS OpenAPI","hidden":true,"href":"/vi/registration-guide"},{"title":"Công bố rủi ro","href":"/vi/risk-disclosure"},{"title":"Phụ lục phạm vi kĩ thuật","href":"/vi/service-scope-technical-apendix"},{"title":"Điều khoản và điều kiện","description":"Điều khoản và Điều kiện áp dụng đối với việc sử dụng PHS OpenAPI","href":"/vi/terms-and-conditions"},{"title":"Đăng ký OAPI","sidebarTitle":"Đăng ký OAPI","href":"/vi/registration-form"}]}]}]}]},"title":"Đăng ký OAPI - FlashAPI","buildId":"dpl_AUojGTPodKNPTVaxVPcxnNvkSVqo","deploymentId":"dpl_AUojGTPodKNPTVaxVPcxnNvkSVqo","dynamics":[],"chunks":[]}