PageSourceSearch

https://developers.tingee.vn/assets/js/208cbd29.aec68d02.js

js tingee.vn collected 2026-10-03 23:55:43 UTC 24,404 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkapi_docs=globalThis.webpackChunkapi_docs||[]).push([[15323],{22993:(n,e,t)=>{t.d(e,{A:()=>a});var c=t(96540),i=t(40961);const h={wrapper:"wrapper_RuOs",header:"header_G2Tb",title:"title_ADJs",controls:"controls_cUBc",zoomGroup:"zoomGroup_ArVi",zoomBtn:"zoomBtn_ktd5",zoomLabel:"zoomLabel_KQnu",fullscreenBtn:"fullscreenBtn_Jtd_",diagramArea:"diagramArea_M6KI",diagramAreaFullscreen:"diagramAreaFullscreen_TgLn",diagramInner:"diagramInner_u2Hx",mobileHint:"mobileHint_XTWA",cssFullscreen:"cssFullscreen_Rjzf"};var r=t(74848);function a({children:n,title:e,clickMap:t}){const a=(0,c.useRef)(null),[s,l]=(0,c.useState)(!1),[o,d]=(0,c.useState)(1),[u,g]=(0,c.useState)(!1),[k,x]=(0,c.useState)(!1);(0,c.useEffect)(()=>{g(!0)},[]),(0,c.useEffect)(()=>{if(!t||0===Object.keys(t).length)return;const n=a.current;if(!n)return;const e=()=>{const e=(n,e,t=!1)=>{n._diagramLinked||(n._diagramLinked=!0,n.classList.add("mermaid-linked"),t&&n.classList.add("mermaid-edge-linked"),n.addEventListener("click",n=>{n.stopPropagation(),window.location.href=e}))},c=n.querySelectorAll("g.node");c.forEach(n=>{const c=(n.textContent??"").replace(/\s+/g," ").trim();for(const[i,h]of Object.entries(t))if(c.includes(i)){e(n,h);break}});if(n.querySelectorAll("svg tspan, svg foreignObject *").forEach(n=>{if(n.closest("g.node"))return;const c=(n.textContent??"").replace(/\s+/g," ").trim();if(c)for(const[i,h]of Object.entries(t))if(c.includes(i)){const t=n.closest("g.edgeLabel")??n.closest("g.label")??n.closest("g")??n;e(t,h,!0);break}}),0===c.length){n.querySelectorAll("text, tspan").forEach(n=>{const c=(n.textContent??"").trim();for(const[i,h]of Object.entries(t))if(c.includes(i)){const t=n.closest("g.messageText, g.label")??n;e(t,h);break}})}},c=new MutationObserver(()=>{n.querySelector("svg")&&e()});return c.observe(n,{childList:!0,subtree:!0}),e(),()=>c.disconnect()},[t]);const p=(0,c.useCallback)(async()=>{const n=a.current;if(n){if(n.requestFullscreen)try{return await n.requestFullscreen(),l(!0),x(!1),void d(1)}catch{}document.documentElement.classList.add("has-diagram-fullscreen"),document.body.style.overflow="hidden",l(!0),x(!0),d(1)}},[]),m=(0,c.useCallback)(async()=>{if(document.fullscreenElement)try{await document.exitFullscreen()}catch{}document.documentElement.classList.remove("has-diagram-fullscreen"),document.body.style.overflow="",l(!1),x(!1),d(1)},[]);(0,c.useEffect)(()=>{const n=()=>{document.fullscreenElement||(document.documentElement.classList.remove("has-diagram-fullscreen"),document.body.style.overflow="",l(!1),x(!1),d(1))};return document.addEventListener("fullscreenchange",n),()=>document.removeEventListener("fullscreenchange",n)},[]);const y=(0,r.jsxs)("div",{ref:a,className:`${h.wrapper} ${k?h.cssFullscreen:""}`,children:[(0,r.jsxs)("div",{className:h.header,children:[e&&(0,r.jsx)("span",{className:h.title,children:e}),(0,r.jsxs)("div",{className:h.controls,children:[s&&(0,r.jsxs)("div",{className:h.zoomGroup,children:[(0,r.jsx)("button",{type:"button",className:h.zoomBtn,onClick:()=>d(n=>Math.max(n-.25,.25)),title:"Thu nh\u1ecf (\u2212)",children:(0,r.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",children:(0,r.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})})}),(0,r.jsxs)("button",{type:"button",className:h.zoomLabel,onClick:()=>d(1),title:"\u0110\u1eb7t l\u1ea1i zoom",children:[Math.round(100*o),"%"]}),(0,r.jsx)("button",{type:"button",className:h.zoomBtn,onClick:()=>d(n=>Math.min(n+.25,5)),title:"Ph\xf3ng to (+)",children:(0,r.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",children:[(0,r.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,r.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})})]}),(0,r.jsxs)("button",{type:"button",className:h.fullscreenBtn,onClick:s?m:p,title:s?"Tho\xe1t to\xe0n m\xe0n h\xecnh (Esc)":"Xem to\xe0n m\xe0n h\xecnh",children:[s?(0,r.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M8 3v3a2 2 0 0 1-2 2H3"}),(0,r.jsx)("path",{d:"M21 8h-3a2 2 0 0 1-2-2V3"}),(0,r.jsx)("path",{d:"M3 16h3a2 2 0 0 1 2 2v3"}),(0,r.jsx)("path",{d:"M16 21v-3a2 2 0 0 1 2-2h3"})]}):(0,r.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M8 3H5a2 2 0 0 0-2 2v3"}),(0,r.jsx)("path",{d:"M21 8V5a2 2 0 0 0-2-2h-3"}),(0,r.jsx)("path",{d:"M3 16v3a2 2 0 0 0 2 2h3"}),(0,r.jsx)("path",{d:"M16 21h3a2 2 0 0 0 2-2v-3"})]}),(0,r.jsx)("span",{children:s?"Thu nh\u1ecf":"To\xe0n m\xe0n h\xecnh"})]})]})]}),(0,r.jsx)("div",{className:`${h.diagramArea} ${s?h.diagramAreaFullscreen:""}`,children:(0,r.jsx)("div",{className:h.diagramInner,style:{zoom:o},children:n})}),!s&&(0,r.jsx)("div",{className:h.mobileHint,children:"\u2190 Vu\u1ed1t ngang \u0111\u1ec3 xem th\xeam \u2192"})]});return u&&k?i.createPortal(y,document.body):y}},96575:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>o});const c=JSON.parse('{"id":"direct-link/workflow-maker-checker","title":"Lu\u1ed3ng duy\u1ec7t Maker/Checker","description":"Lu\u1ed3ng duy\u1ec7t Maker/Checker \xe1p d\u1ee5ng cho 
1Ng\xe2n h\xe0ng BIDV y\xeau c\u1ea7u quy tr\xecnh b\u1ea3o m\u1eadt cao v\xe0 duy\u1ec7t l\u1ec7nh nhi\u1ec1u c\u1ea5p. Trong lu\u1ed3ng n\xe0y, l\u1ec7nh chi h\u1ed9 c\xf3 th\u1ec3 \u0111\u01b0\u1ee3c l\u01b0u nh\xe1p (INIT) ho\u1eb7c \u0111\u1ea9y duy\u1ec7t tr\u1ef1c ti\u1ebfp (REQUEST_APPROVAL), sau \u0111\xf3 b\u1eaft bu\u1ed9c ph\u1ea3i th\xf4ng qua b\u01b0\u1edbc x\xe1c th\u1ef1c m\xe3 SmartOTP tr\xean thi\u1ebft b\u1ecb.","source":"@site/versioned_docs/version-1.1.0/direct-link/workflow-maker-checker.mdx","sourceDirName":"direct-link","slug":"/direct-link/workflow-maker-checker","permalink":"/docs/1.1.0/direct-link/workflow-maker-checker","draft":false,"unlisted":false,"tags":[],"version":"1.1.0","sidebarPosition":2,"frontMatter":{"sidebar_position":2},"sidebar":"bankLinkSidebar","previous":{"title":"T\u1ed5ng quan","permalink":"/docs/1.1.0/direct-link/"},"next":{"title":"Lu\u1ed3ng chi t\u1ef1 \u0111\u1ed9ng","permalink":"/docs/1.1.0/direct-link/workflow-direct"}}');var i=t(74848),h=t(28453),r=t(22993);t(14085);const a={sidebar_position:2},s="Lu\u1ed3ng duy\u1ec7t Maker/Checker",l={},o=[{value:"\u0110\u1eb7c \u0111i\u1ec3m c\u1ee7a lu\u1ed3ng",id:"\u0111\u1eb7c-\u0111i\u1ec3m-c\u1ee7a-lu\u1ed3ng",level:2},{value:"S\u01a1 \u0111\u1ed3 lu\u1ed3ng (Sequence Diagram)",id:"s\u01a1-\u0111\u1ed3-lu\u1ed3ng-sequence-diagram",level:2},{value:"C\xe1c API tham gia trong lu\u1ed3ng",id:"c\xe1c-api-tham-gia-trong-lu\u1ed3ng",level:2},{value:"C\xe1c l\u01b0u \xfd \u0111\u1eb7c th\xf9 c\u1ee7a lu\u1ed3ng Maker/Checker",id:"c\xe1c-l\u01b0u-\xfd-\u0111\u1eb7c-th\xf9-c\u1ee7a-lu\u1ed3ng-makerchecker",level:2}];function d(n){const e={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",header:"header",hr:"hr",li:"li",mermaid:"mermaid",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,h.R)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.header,{children:(0,i.jsx)(e.h1,{id:"lu\u1ed3ng-duy\u1ec7t-makerchecker",children:"Lu\u1ed3ng duy\u1ec7t Maker/Checker"})}),"\n",(0,i.jsxs)(e.p,{children:["Lu\u1ed3ng duy\u1ec7t Maker/Checker \xe1p d\u1ee5ng cho Ng\xe2n h\xe0ng ",(0,i.jsx)(e.strong,{children:"BIDV"})," y\xeau c\u1ea7u quy tr\xecnh b\u1ea3o m\u1eadt cao v\xe0 duy\u1ec7t l\u1ec7nh nhi\u1ec1u c\u1ea5p. Trong lu\u1ed3ng n\xe0y, l\u1ec7nh chi h\u1ed9 c\xf3 th\u1ec3 \u0111\u01b0\u1ee3c l\u01b0u nh\xe1p (INIT) ho\u1eb7c \u0111\u1ea9y duy\u1ec7t tr\u1ef1c ti\u1ebfp (REQUEST_APPROVAL), sau \u0111\xf3 b\u1eaft bu\u1ed9c ph\u1ea3i th\xf4ng qua b\u01b0\u1edbc x\xe1c th\u1ef1c m\xe3 SmartOTP tr\xean thi\u1ebft b\u1ecb."]}),"\n",(0,i.jsx)(e.h2,{id:"\u0111\u1eb7c-\u0111i\u1ec3m-c\u1ee7a-lu\u1ed3ng",children:"\u0110\u1eb7c \u0111i\u1ec3m c\u1ee7a lu\u1ed3ng"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:"L\u01b0u nh\xe1p (INIT)"}),": Giao d\u1ecbch \u0111\u01b0\u1ee3c l\u01b0u v\xe0o h\u1ec7 th\u1ed1ng, ch\u01b0a \u0111\u1ea9y sang ng\xe2n h\xe0ng. L\u1ec7nh \u1edf tr\u1ea1ng th\xe1i n\xe0y c\xf3 th\u1ec3 b\u1ecb x\xf3a b\u1eb1ng API ",(0,i.jsx)(e.a,{href:"/docs/direct-link/delete-transfer",children:"X\xf3a l\u1ec7nh chi h\u1ed9"}),", ho\u1eb7c c\xf3 th\u1ec3 \u0111\u01b0\u1ee3c duy\u1ec7t sau \u0111\xf3 b\u1eb1ng API ",(0,i.jsx)(e.a,{href:"/docs/direct-link/process-transaction",children:"\u0110\u1ea9y duy\u1ec7t l\u1ec7nh chi h\u1ed9 \u0111\xe3 l\u01b0u"}),"."]}),"\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:"\u0110\u1ea9y duy\u1ec7t (REQUEST_APPROVAL)"}),": Giao d\u1ecbch \u0111\u01b0\u1ee3c \u0111\u1ea9y sang h\u1ec7 th\u1ed1ng ng\xe2n h\xe0ng ngay l\u1eadp t\u1ee9c \u0111\u1ec3 l\u1ea5y th\xf4ng tin x\xe1c th\u1ef1c (m\xe3 QR/SmartOTP). L\u1ec7nh \u1edf tr\u1ea1ng th\xe1i n\xe0y ",(0,i.jsx)(e.strong,{children:"kh\xf4ng th\u1ec3 x\xf3a"})," v\xe0 ph\u1ea3i \u0111\u01b0\u1ee3c x\xe1c th\u1ef1c b\u1eb1ng API ",(0,i.jsx)(e.a,{href:"/docs/direct-link/confirm-transfer",children:"X\xe1c th\u1ef1c l\u1ec7nh chi"}),"."]}),"\n",(0,i.jsxs)(e.li,{children:["Y\xeau c\u1ea7u x\xe1c th\u1ef1c b\u1ea3o m\u1eadt 2 l\u1edbp qua m\xe3 ",(0,i.jsx)(e.strong,{children:"SmartOTP"}),"."]}),"\n"]}),"\n",(0,i.jsx)(e.h2,{id:"s\u01a1-\u0111\u1ed3-lu\u1ed3ng-sequence-diagram",children:"S\u01a1 \u0111\u1ed3 lu\u1ed3ng (Sequence Diagram)"}),"\n",(0,i.jsx)(e.p,{children:"D\u01b0\u1edbi \u0111\xe2y l\xe0 s\u01a1 \u0111\u1ed3 m\xf4 t\u1ea3 c\xe1ch x\u1eed l\xfd l\u1ec7nh chi theo m\xf4 h\xecnh Maker/Checker:"}),"\n",(0,i.jsx)(r.A,{title:"Lu\u1ed3ng duy\u1ec7t Maker/Checker",clickMap:{"get-authorization-url":"/docs/direct-link/get-authorization-url","create-transfer":"/docs/direct-link/create-transfer-maker-checker","process-transaction":"/docs/direct-link/process-transaction","confirm-transfer":"/docs/direct-link/confirm-transfer","approve-transfer":"/docs/direct-link/approve-transfer","approve-confirm":"/docs/direct-link/approve-confirm","GET API check":"/docs/direct-link/transaction-log-inquiry"},children:(0,i.jsx)(e.mermaid,{value:"sequenceDiagram\n    autonumber\n    participant Maker as Maker (H\u1ec7 th\u1ed1ng \u0110\u1ed1i t\xe1c)\n    participant Checker as Checker (H\u1ec7 th\u1ed1ng \u0110\u1ed1i t\xe1c)\n    participant Tingee as Tingee API Gateway\n    participant Bank as Ng\xe2n h\xe0ng BIDV\n\n    Note over Maker, Bank: [Giai \u0111o\u1ea1n 1] Maker \u0111\u0103ng nh\u1eadp & Kh\u1edfi t\u1ea1o l\u1ec7nh chi\n    Maker->>Tingee: L\u1ea5y \u0111\u01b0\u1eddng d\u1eabn x\xe1c th\u1ef1c (GET /get-authorization-url)\n    activate Tingee\n    Tingee--\x3e>Maker: Tr\u1ea3 v\u1ec1 URL \u0111\u0103ng nh\u1eadp BIDV\n    deactivate Tingee\n    Note over Maker, Bank: Maker truy c\u1eadp URL tr\xean tr\xecnh duy\u1ec7t v\xe0 th\u1ef1c hi\u1ec7n \u0111\u0103ng nh\u1eadp BIDV\n    Bank--\x3e>Maker: X\xe1c th\u1ef1c th\xe0nh c\xf4ng (Chuy\u1ec3n h\u01b0\u1edbng v\u1ec1 returnUrl)\n\n    alt Tr\u01b0\u1eddng h\u1ee3p: L\u01b0u nh\xe1p (INIT)\n        Maker->>Tingee: Kh\u1edfi t\u1ea1o l\u1ec7nh chi h\u1ed9 (POST /create-transfer)\n        activate Tingee\n        Tingee->>Bank: Chuy\u1ec3n ti\u1ebfp y\xeau c\u1ea7u t\u1ea1o l\u1ec7nh l\u01b0u nh\xe1p\n        activate Bank\n        Bank--\x3e>Tingee: Ph\u1ea3n h\u1ed3i: L\u01b0u nh\xe1p th\xe0nh c\xf4ng\n        deactivate Bank\n        Tingee--\x3e>Maker: Ph\u1ea3n h\u1ed3i: L\u1ec7nh l\u01b0u nh\xe1p th\xe0nh c\xf4ng\n        deactivate Tingee\n        \n        Maker->>Tingee: \u0110\u1ea9y duy\u1ec7t l\u1ec7nh l\u01b0u nh\xe1p (POST /process-transaction)\n        activate Tingee\n        Tingee->>Bank: Chuy\u1ec3n ti\u1ebfp y\xeau c\u1ea7u \u0111\u1ea9y duy\u1ec7t\n        activate Bank\n        Bank--\x3e>Tingee: Ph\u1ea3n h\u1ed3i: Y\xeau c\u1ea7u x\xe1c th\u1ef1c OTP Maker\n        deactivate Bank\n        Tingee--\x3e>Maker: Ph\u1ea3n h\u1ed3i: Y\xeau c\u1ea7u x\xe1c th\u1ef1c OTP Maker (k\xe8m qrData)\n        deactivate Tingee\n    else Tr\u01b0\u1eddng h\u1ee3p: \u0110\u1ea9y duy\u1ec7t lu\xf4n (REQUEST_APPROVAL)\n        Maker->>Tingee: Kh\u1edfi t\u1ea1o l\u1ec7nh chi h\u1ed9 (POST /create-transfer)\n        activate Tingee\n        Tingee->>Bank: Chuy\u1ec3n ti\u1ebfp y\xeau c\u1ea7u t\u1ea1o & \u0111\u1ea9y duy\u1ec7t\n        activate Bank\n        Bank--\x3e>Tingee: Ph\u1ea3n h\u1ed3i: Y\xeau c\u1ea7u x\xe1c th\u1ef1c OTP Maker\n        deactivate Bank\n        Tingee--\x3e>Maker: Ph\u1ea3n h\u1ed3i: Y\xeau c\u1ea7u x\xe1c th\u1ef1c OTP Maker (k\xe8m qrData)\n        deactivate Tingee\n    end\n\n    Note over Maker, Tingee: Maker t\u1ea1o \u1ea3nh QR t\u1eeb qrData v\xe0 qu\xe9t tr\xean App BIDV Direct l\u1ea5y SmartOTP\n    Maker->>Tingee: X\xe1c nh\u1eadn \u0111\u1ea9y l\u1ec7nh b\u1eb1ng OTP (PUT /confirm-transfer)\n    activate Tingee\n    Tingee->>Bank: Chuy\u1ec3n ti\u1ebfp OTP x\xe1c nh\u1eadn\n    activate Bank\n    Bank--\x3e>Tingee: Ph\u1ea3n h\u1ed3i: L\u1ec7nh \u0111\u1ea9y duy\u1ec7t th\xe0nh c\xf4ng (Ch\u1edd Checker)\n    deactivate Bank\n    Tingee--\x3e>Maker: Ph\u1ea3n h\u1ed3i: L\u1ec7nh \u0111\u1ea9y duy\u1ec7t th\xe0nh c\xf4ng (Ch\u1edd Checker duy\u1ec7t)\n    deactivate Tingee\n\n    Note over Checker, Bank: [Giai \u0111o\u1ea1n 2] Checker \u0111\u0103ng nh\u1eadp & Ph\xea duy\u1ec7t l\u1ec7nh chi\n    Checker->>Tingee: L\u1ea5y \u0111\u01b0\u1eddng d\u1eabn x\xe1c th\u1ef1c (GET /get-authorization-url)\n    activate Tingee\n    Tingee--\x3e>Checker: Tr\u1ea3 v\u1ec1 URL \u0111\u0103ng nh\u1eadp BIDV\n    deactivate Tingee\n    Note over Checker, Bank: Checker truy c\u1eadp URL tr\xean tr\xecnh duy\u1ec7t v\xe0 th\u1ef1c hi\u1ec7n \u0111\u0103ng nh\u1eadp BIDV\n    Bank--\x3e>Checker: X\xe1c th\u1ef1c th\xe0nh c\xf4ng (Chuy\u1ec3n h\u01b0\u1edbng v\u1ec1 returnUrl)\n\n    Checker->>Tingee: Kh\u1edfi t\u1ea1o ph\xea duy\u1ec7t l\u1ec7nh (POST /approve-transfer)\n    activate Tingee\n    Tingee->>Bank: Chuy\u1ec3n ti\u1ebfp y\xeau c\u1ea7u kh\u1edfi t\u1ea1o ph\xea duy\u1ec7t\n    activate Bank\n    Bank--\x3e>Tingee: Ph\u1ea3n h\u1ed3i: Y\xeau c\u1ea7u OTP Checker\n    deactivate Bank\n    Tingee--\x3e>Checker: Ph\u1ea3n h\u1ed3i: Y\xeau c\u1ea7u OTP Checker (k\xe8m qrData)\n    deactivate Tingee\n\n    Note over Checker, Tingee: Checker t\u1ea1o \u1ea3nh QR t\u1eeb qrData v\xe0 qu\xe9t tr\xean App BIDV Direct l\u1ea5y SmartOTP\n    Checker->>Tingee: X\xe1c nh\u1eadn ph\xea duy\u1ec7t b\u1eb1ng OTP (PUT /approve-confirm)\n    activate Tingee\n    Tingee->>Bank: Chuy\u1ec3n ti\u1ebfp OTP & Y\xeau c\u1ea7u th\u1ef1c thi l\u1ec7nh\n    activate Bank\n    Bank--\x3e>Bank: X\u1eed l\xfd giao d\u1ecbch tr\u1eeb ti\u1ec1n & h\u1ea1ch to\xe1n\n    Bank--\x3e>Tingee: Tr\u1ea3 k\u1ebft qu\u1ea3 (Th\xe0nh c\xf4ng / Th\u1ea5t b\u1ea1i / Ch\u1edd)\n    deactivate Bank\n    Tingee--\x3e>Checker: Ph\u1ea3n h\u1ed3i k\u1ebft qu\u1ea3 Request (Th\xe0nh c\xf4ng / Th\u1ea5t b\u1ea1i / Ch\u1edd)\n    deactivate Tingee\n\n    opt N\u1ebfu k\u1ebft qu\u1ea3 tr\u1ea3 v\u1ec1 l\xe0 Ch\u1edd (Pending)\n        Checker->>Tingee: Ki\u1ec3m tra tr\u1ea1ng th\xe1i giao d\u1ecbch \u0111\u1ecbnh k\u1ef3 (GET API check)\n        activate Tingee\n        Tingee->>Bank: V\u1ea5n tin tr\u1ea1ng th\xe1i\n        activate Bank\n        Bank--\x3e>Tingee: Tr\u1ea3 k\u1ebft qu\u1ea3 cu\u1ed1i c\xf9ng\n        deactivate Bank\n        Tingee--\x3e>Checker: Tr\u1ea3 k\u1ebft qu\u1ea3 tr\u1ea1ng th\xe1i cu\u1ed1i c\xf9ng\n        deactivate Tingee\n    end"})}),"\n",(0,i.jsx)(e.h2,{id:"c\xe1c-api-tham-gia-trong-lu\u1ed3ng",children:"C\xe1c API tham gia trong lu\u1ed3ng"}),"\n",(0,i.jsx)(e.p,{children:"\u0110\u1ec3 t\xedch h\u1ee3p ho\xe0n ch\u1ec9nh lu\u1ed3ng Maker/Checker, b\u1ea1n s\u1ebd thao t\xe1c v\u1edbi c\xe1c API sau:"}),"\n",(0,i.jsxs)(e.ol,{children:["\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:(0,i.jsx)(e.a,{href:"/docs/direct-link/get-authorization-url",children:"L\u1ea5y \u0111\u01b0\u1eddng d\u1eabn x\xe1c th\u1ef1c"})}),":","\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"D\xf9ng \u0111\u1ec3 l\u1ea5y link \u0111\u0103ng nh\u1eadp t\xe0i kho\u1ea3n BIDV. B\u1eaft bu\u1ed9c ph\u1ea3i th\u1ef1c hi\u1ec7n b\u01b0\u1edbc n\xe0y (cho c\u1ea3 Maker v\xe0 Checker) tr\u01b0\u1edbc khi c\xf3 th\u1ec3 g\u1ecdi c\xe1c API ti\u1ebfp theo."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:(0,i.jsx)(e.a,{href:"/docs/direct-link/create-transfer-maker-checker",children:"Kh\u1edfi t\u1ea1o l\u1ec7nh chi h\u1ed9"})}),":","\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["D\xf9ng \u0111\u1ec3 L\u01b0u nh\xe1p (",(0,i.jsx)(e.code,{children:'action="INIT"'}),") ho\u1eb7c \u0111\u1ea9y duy\u1ec7t ngay (",(0,i.jsx)(e.code,{children:'action="REQUEST_APPROVAL"'}),")."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:(0,i.jsx)(e.a,{href:"/docs/direct-link/delete-transfer",children:"X\xf3a l\u1ec7nh chi"})}),":","\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["Ch\u1ec9 d\xf9ng \u0111\u01b0\u1ee3c \u0111\u1ed1i v\u1edbi c\xe1c giao d\u1ecbch \u0111ang \u1edf tr\u1ea1ng th\xe1i l\u01b0u nh\xe1p (",(0,i.jsx)(e.code,{children:"INIT"}),")."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:(0,i.jsx)(e.a,{href:"/docs/direct-link/process-transaction",children:"\u0110\u1ea9y duy\u1ec7t l\u1ec7nh chi h\u1ed9 \u0111\xe3 l\u01b0u"})}),":","\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["D\xf9ng \u0111\u1ec3 chuy\u1ec3n tr\u1ea1ng th\xe1i l\u1ec7nh nh\xe1p (",(0,i.jsx)(e.code,{children:"INIT"}),") sang tr\u1ea1ng th\xe1i ch\u1edd duy\u1ec7t (",(0,i.jsx)(e.code,{children:"REQUEST_APPROVAL"}),")."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:(0,i.jsx)(e.a,{href:"/docs/direct-link/confirm-transfer",children:"X\xe1c nh\u1eadn \u0111\u1ea9y duy\u1ec7t l\u1ec7nh chi"})}),":","\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["L\xe0 b\u01b0\u1edbc cu\u1ed1i c\xf9ng \u0111\u1ec3 ho\xe0n t\u1ea5t giao d\u1ecbch. B\u1eaft bu\u1ed9c ph\u1ea3i truy\u1ec1n m\xe3 SmartOTP t\u1eeb App Chi h\u1ed9 BIDV v\xe0o tham s\u1ed1 ",(0,i.jsx)(e.code,{children:"otp"})," \u0111\u1ec3 duy\u1ec7t l\u1ec7nh."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:(0,i.jsx)(e.a,{href:"/docs/direct-link/approve-transfer",children:"Duy\u1ec7t l\u1ec7nh chi h\u1ed9"})}),":","\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["D\xf9ng cho role Checker \u0111\u1ec3 kh\u1edfi t\u1ea1o qu\xe1 tr\xecnh ph\xea duy\u1ec7t l\u1ec7nh chi. API s\u1ebd tr\u1ea3 v\u1ec1 d\u1eef li\u1ec7u ",(0,i.jsx)(e.code,{children:"qrData"})," \u0111\u1ec3 Checker qu\xe9t b\u1eb1ng App Chi h\u1ed9 BIDV v\xe0 l\u1ea5y m\xe3 OTP."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:(0,i.jsx)(e.a,{href:"/docs/direct-link/approve-confirm",children:"X\xe1c nh\u1eadn duy\u1ec7t l\u1ec7nh chi h\u1ed9"})}),":","\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"D\xf9ng \u0111\u1ec3 Checker x\xe1c nh\u1eadn ph\xea duy\u1ec7t, b\u1eaft bu\u1ed9c truy\u1ec1n m\xe3 OTP thu \u0111\u01b0\u1ee3c t\u1eeb b\u01b0\u1edbc tr\xean \u0111\u1ec3 ho\xe0n t\u1ea5t vi\u1ec7c duy\u1ec7t l\u1ec7nh."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:(0,i.jsx)(e.a,{href:"/docs/direct-link/reject-transaction",children:"T\u1eeb ch\u1ed1i l\u1ec7nh chi"})}),":","\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["D\xf9ng khi Checker mu\u1ed1n t\u1eeb ch\u1ed1i l\u1ec7nh chi h\u1ed9. L\u1ec7nh s\u1ebd b\u1ecb h\u1ee7y b\u1ecf ngay l\u1eadp t\u1ee9c v\xe0 ",(0,i.jsx)(e.strong,{children:"kh\xf4ng y\xeau c\u1ea7u"})," x\xe1c th\u1ef1c OTP."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:(0,i.jsx)(e.a,{href:"/docs/direct-link/transaction-inquiry-maker-checker",children:"Truy v\u1ea5n giao d\u1ecbch"})}),":","\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"D\xf9ng cho Maker/Checker \u0111\u1ec3 ki\u1ec3m tra v\xe0 theo d\xf5i tr\u1ea1ng th\xe1i c\xe1c l\u1ec7nh chi h\u1ed9 (ch\u1edd duy\u1ec7t, \u0111\xe3 duy\u1ec7t, \u0111\xe3 h\u1ea1ch to\xe1n, b\u1ecb t\u1eeb ch\u1ed1i...) ho\u1eb7c l\u1ea5y danh s\xe1ch c\xe1c giao d\u1ecbch con trong L\xf4 theo tr\u1ea1ng th\xe1i h\u1ee3p l\u1ec7 ho\u1eb7c kh\xf4ng h\u1ee3p l\u1ec7."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(e.hr,{}),"\n",(0,i.jsx)(e.h2,{id:"c\xe1c-l\u01b0u-\xfd-\u0111\u1eb7c-th\xf9-c\u1ee7a-lu\u1ed3ng-makerchecker",children:"C\xe1c l\u01b0u \xfd \u0111\u1eb7c th\xf9 c\u1ee7a lu\u
11ed3ng Maker/Checker"}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsxs)(e.strong,{children:["\ud83d\udca1 \u0110\u1eb7c th\xf9 x\u1eed l\xfd theo Lo\u1ea1i nghi\u1ec7p v\u1ee5 (",(0,i.jsx)(e.code,{children:"actionType"}),")"]})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:["\u0110\u1ed1i v\u1edbi ",(0,i.jsxs)(e.strong,{children:["Thanh to\xe1n L\u01b0\u01a1ng (",(0,i.jsx)(e.code,{children:"SALARY"}),")"]})," v\xe0 ",(0,i.jsxs)(e.strong,{children:["Thanh to\xe1n H\xf3a \u0111\u01a1n (",(0,i.jsx)(e.code,{children:"BILL_PAYMENT"}),")"]}),": L\u1ec7nh chi h\u1ed9 lu\xf4n \u0111\u01b0\u1ee3c x\u1eed l\xfd theo ",(0,i.jsx)(e.strong,{children:"L\xf4 (Batch)"})," v\xe0 chia s\u1ebb chung m\u1ed9t m\xe3 ID. C\xe1c thao t\xe1c kh\u1edfi t\u1ea1o, \u0111\u1ea9y duy\u1ec7t (c\u1ee7a Maker) hay ph\xea duy\u1ec7t, t\u1eeb ch\u1ed1i (c\u1ee7a Checker) s\u1ebd t\xe1c \u0111\u1ed9ng l\xean ",(0,i.jsx)(e.strong,{children:"to\xe0n b\u1ed9 l\xf4 giao d\u1ecbch"}),"."]}),"\n",(0,i.jsxs)(e.li,{children:["\u0110\u1ed1i v\u1edbi ",(0,i.jsxs)(e.strong,{children:["Chuy\u1ec3n ti\u1ec1n trong n\u01b0\u1edbc (",(0,i.jsx)(e.code,{children:"INTERNAL_TRANSFER"}),")"]}),": L\u1ec7nh chi h\u1ed9 c\xf3 th\u1ec3 x\u1eed l\xfd d\u01b0\u1edbi d\u1ea1ng \u0110\u01a1n ho\u1eb7c L\xf4. \u0110i\u1ec3m \u0111\u1eb7c bi\u1ec7t c\u1ee7a giao d\u1ecbch L\xf4 l\xe0 c\xe1c b\u1ea3n ghi b\xean trong ho\u1ea1t \u0111\u1ed9ng ho\xe0n to\xe0n \u0111\u1ed9c l\u1eadp v\u1edbi m\xe3 ID ri\xeang bi\u1ec7t. Nh\u1edd \u0111\xf3, h\u1ec7 th\u1ed1ng h\u1ed7 tr\u1ee3 c\u01a1 ch\u1ebf x\u1eed l\xfd linh ho\u1ea1t ",(0,i.jsx)(e.strong,{children:"t\u1eebng ph\u1ea7n"}),": Maker c\xf3 th\u1ec3 ch\u1ecdn \u0111\u1ea9y duy\u1ec7t ho\u1eb7c x\xf3a m\u1ed9t ph\u1ea7n c\xe1c giao d\u1ecbch c\u1ee5 th\u1ec3; t\u01b0\u01a1ng t\u1ef1, Checker c\u0169ng c\xf3 quy\u1ec1n ph\xea duy\u1ec7t ho\u1eb7c t\u1eeb ch\u1ed1i m\u1ed9t ph\u1ea7n danh s\xe1ch c\xe1c giao d\u1ecbch m\xe0 Maker \u0111\xe3 \u0111\u1ea9y l\xean thay v\xec ph\u1ea3i x\u1eed l\xfd to\xe0n b\u1ed9 l\xf4."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(e.blockquote,{children:["\n",(0,i.jsx)(e.p,{children:(0,i.jsx)(e.strong,{children:"\ud83d\udca1 \u0110\u1eb7c th\xf9 th\u1eddi gian h\u1ea1ch to\xe1n theo Ph\u01b0\u01a1ng th\u1ee9c chuy\u1ec3n ti\u1ec1n"})}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:"Chuy\u1ec3n ti\u1ec1n nhanh NAPAS 24/7"}),": Ngay sau khi Checker th\u1ef1c hi\u1ec7n ph\xea duy\u1ec7t l\u1ec7nh th\xe0nh c\xf4ng, giao d\u1ecbch s\u1ebd \u0111\u01b0\u1ee3c h\u1ec7 th\u1ed1ng ng\xe2n h\xe0ng BIDV ",(0,i.jsx)(e.strong,{children:"h\u1ea1ch to\xe1n ngay l\u1eadp t\u1ee9c"}),"."]}),"\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.strong,{children:"Chuy\u1ec3n ti\u1ec1n N\u1ed9i b\u1ed9 BIDV"})," v\xe0 ",(0,i.jsx)(e.strong,{children:"Chuy\u1ec3n ti\u1ec1n th\u01b0\u1eddng Li\xean ng\xe2n h\xe0ng"}),": Sau khi Checker ph\xea duy\u1ec7t, giao d\u1ecbch s\u1ebd chuy\u1ec3n sang tr\u1ea1ng th\xe1i ch\u1edd x\u1eed l\xfd (Pending) v\xe0 c\u1ea7n m\u1ed9t kho\u1ea3ng th\u1eddi gian nh\u1ea5t \u0111\u1ecbnh \u0111\u1ec3 BIDV ti\u1ebfn h\xe0nh h\u1ea1ch to\xe1n. B\u1ea1n c\u1ea7n ch\u1ee7 \u0111\u1ed9ng g\u1ecdi API Truy v\u1ea5n giao d\u1ecbch \u0111\u1ec3 c\u1eadp nh\u1eadt tr\u1ea1ng th\xe1i cu\u1ed1i c\xf9ng."]}),"\n"]}),"\n"]})]})}function u(n={}){const{wrapper:e}={...(0,h.R)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(d,{...n})}):d(n)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.