PageSourceSearch

https://ohvps.github.io/assets/js/app.833beb9a.js

js ohvps.github.io collected 2026-10-03 09:42:34 UTC 2,311,802 bytes, 16 lines download raw bytes

1(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(e){function i(i){for(var a,t,d=i[0],m=i[1],s=i[2],k=0,o=[];k<d.length;k++)t=d[k],Object.prototype.hasOwnProperty.call(r,t)&&r[t]&&o.push(r[t][0]),r[t]=0;for(a in m)Object.prototype.hasOwnProperty.call(m,a)&&(e[a]=m[a]);for(u&&u(i);o.length;)o.shift()();return l.push.apply(l,s||[]),n()}function n(){for(var e,i=0;i<l.length;i++){for(var n=l[i],a=!0,d=1;d<n.length;d++){var m=n[d];0!==r[m]&&(a=!1)}a&&(l.splice(i--,1),e=t(t.s=n[0]))}return e}var a={},r={13:0},l=[];function t(i){if(a[i])return a[i].exports;var n=a[i]={i:i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,t),n.l=!0,n.exports}t.e=function(e){var i=[],n=r[e];if(0!==n)if(n)i.push(n[2]);else{var a=new Promise((function(i,a){n=r[e]=[i,a]}));i.push(n[2]=a);var l,d=document.createElement("script");d.charset="utf-8",d.timeout=120,t.nc&&d.setAttribute("nonce",t.nc),d.src=function(e){return t.p+"assets/js/"+({14:"vendors~docsearch"}[e]||e)+"."+{1:"d3419479",2:"484a14f6",3:"43da589b",4:"f865ed41",5:"ee1d951c",6:"ab10f7fc",7:"1da5ce0f",8:"93d599e6",9:"c1e1d6c2",10:"51f8626e",11:"452b283d",12:"9cfc9ded",14:"2cdbc4a2",15:"0ddc6579",16:"487f380b",17:"286f0068",18:"140498cb",19:"e806f998",20:"947b69c0",21:"20c03261",22:"17f00dc3",23:"dd5e09da",24:"db073f16",25:"dd740719",26:"a0ccbc75",27:"906389c9",28:"42c37ed6",29:"c32a9437",30:"62f76616",31:"b17fed96",32:"545f479b",33:"f2e76a85",34:"7cd9ebbc",35:"a0308e6f",36:"2e60eed1",37:"1d79f5c0",38:"2f097d28",39:"425d08b1",40:"6bef2065",41:"3876ae4c",42:"ac7a2ece",43:"381f48e0",44:"4113163c",45:"7761d8de",46:"7b930815",47:"aa5da579",48:"9daea828",49:"3355f252",50:"dfbe829f",51:"82759ea7",52:"0269347d",53:"4d00b261",54:"eef17477",55:"9200d8ee",56:"ece329b6",57:"cb8f95c1",58:"15a1c97b",59:"52f562ab",60:"d249f4f4",61:"54e25de5",62:"cc130124",63:"3cd612f3",64:"145aafc1",65:"a8fef4ab",66:"0906aefd",67:"c7e6d720",68:"25a08d2f",69:"a7a1880a",70:"f570af1a",71:"0238b940",72:"2c12f096",73:"b4ac53c8",74:"17fb3a33",75:"96e8ac3b",76:"9907dc4e",77:"575c93f3",78:"577450cd",79:"0a51d2e3",80:"d6ef57b4",81:"86dd65b7",82:"7705c415",83:"207e9c23",84:"665cea46",85:"16779d2e",86:"82b4f6b0",87:"ce388e58",88:"c8bce608",89:"f0dc1d72",90:"2746e664",91:"fdf7cfa0",92:"8afd71cd",93:"a2a017c9",94:"d194b8cd",95:"1a7a7043",96:"f93927e5",97:"29a8c7ab",98:"f7a59bb3",99:"02a9be02",100:"4bba77e7",101:"52660392",102:"34923ed6",103:"396ad9c1",104:"98661a9e",105:"88398786",106:"c16c355f",107:"83ed4c26",108:"936cc147",109:"6c13c824",110:"bd566c19",111:"fdb42917",112:"3951ee8d",113:"807e0ac8",114:"0b7c2831",115:"8a1300e0",116:"b4d01a96",117:"7b66cc05",118:"2d279739",119:"21593bd4",120:"20039be9",121:"d34a8ab5",122:"d489fae5",123:"434365d9",124:"d826e5cf",125:"8d668e4f",126:"0ceb7ec6",127:"804e6234",128:"7cd680d4",129:"8f5a3939",130:"8f245b7e",131:"a6f15b85",132:"4cd71ed6"}[e]+".js"}(e);var m=new Error;l=function(i){d.onerror=d.onload=null,clearTimeout(s);var n=r[e];if(0!==n){if(n){var a=i&&("load"===i.type?"missing":i.type),l=i&&i.target&&i.target.src;m.message="Loading chunk "+e+" failed.\n("+a+": "+l+")",m.name="ChunkLoadError",m.type=a,m.request=l,n[1](m)}r[e]=void 0}};var s=setTimeout((function(){l({type:"timeout",target:d})}),12e4);d.onerror=d.onload=l,document.head.appendChild(d)}return Promise.all(i)},t.m=e,t.c=a,t.d=function(e,i,n){t.o(e,i)||Object.defineProperty(e,i,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,i){if(1&i&&(e=t(e)),8&i)return e;if(4&i&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&i&&"string"!=typeof e)for(var a in e)t.d(n,a,function(i){return e[i]}.bind(null,a));return n},t.n=function(e){var i=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(i,"a",i),i},t.o=function(e,i){return Object.prototype.hasOwnProperty.call(e,i)},t.p="/",t.oe=function(e){throw console.error(e),e};var d=window.webpackJsonp=window.webpackJsonp||[],m=d.push.bind(d);d.push=i,d=d.slice();for(var s=0;s<d.length;s++)i(d[s]);var u=m;l.push([145,0]),n()}([function(e,i,n){"use strict";n.r(i),n.d(i,"EffectScope",(function(){return pi})),n.d(i,"computed",(function(){return di})),n.d(i,"customRef",(function(){return ei})),n.d(i,"default",(function(){return qa})),n.d(i,"defineAsyncComponent",(function(){return Nn})),n.d(i,"defineComponent",(function(){return jn})),n.d(i,"del",(function(){return Ee})),n.d(i,"effectScope",(function(){return Si})),n.d(i,"getCurrentInstance",(function(){return oe})),n.d(i,"getCurrentScope",(function(){return zi})),n.d(i,"h",(function(){return yn})),n.d(i,"inject",(function(){return Ai})),n.d(i,"isProxy",(function(){return Le})),n.d(i,"isReactive",(function(){return Me})),n.d(i,"isReadonly",(function(){return _e})),n.d(i,"isRef",(function(){return je})),n.d(i,"isShallow",(function(){return Fe})),n.d(i,"markRaw",(function(){return Ue})),n.d(i,"mergeDefaults",(function(){return mn})),n.d(i,"nextTick",(function(){return Bn})),n.d(i,"onActivated",(function(){return Vn})),n.d(i,"onBeforeMount",(function(){return On})),n.d(i,"onBeforeUnmount",(function(){return Zn})),n.d(i,"onBeforeUpdate",(function(){return In})),n.d(i,"onDeactivated",(function(){return Cn})),n.d(i,"onErrorCaptured",(function(){return xn})),n.d(i,"onMounted",(function(){return Dn})),n.d(i,"onRenderTracked",(function(){return Fn})),n.d(i,"onRenderTriggered",(function(){return _n})),n.d(i,"onScopeDispose",(function(){return hi})),n.d(i,"onServerPrefetch",(function(){return Mn})),n.d(i,"onUnmounted",(function(){return Gn})),n.d(i,"onUpdated",(function(){return En})),n.d(i,"provide",(function(){return Ki})),n.d(i,"proxyRefs",(function(){return qe})),n.d(i,"reactive",(function(){return Ge})),n.d(i,"readonly",(function(){return ai})),n.d(i,"ref",(function(){return we})),n.d(i,"set",(function(){return Ie})),n.d(i,"shallowReactive",(function(){return Ve})),n.d(i,"shallowReadonly",(function(){return ti})),n.d(i,"shallowRef",(function(){return $e})),n.d(i,"toRaw",(function(){return xe})),n.d(i,"toRef",(function(){return ni})),n.d(i,"toRefs",(function(){return ii})),n.d(i,"triggerRef",(function(){return Xe})),n.d(i,"unref",(function(){return We})),n.d(i,"useAttrs",(function(){return ln})),n.d(i,"useCssModule",(function(){return Rn})),n.d(i,"useCssVars",(function(){return Yn})),n.d(i,"useListeners",(function(){return tn})),n.d(i,"useSlots",(function(){return rn})),n.d(i,"version",(function(){return Un})),n.d(i,"watch",(function(){return ci})),n.d(i,"watchEffect",(function(){return ki})),n.d(i,"watchPostEffect",(function(){return oi})),n.d(i,"watchSyncEffect",(function(){return yi}));
2/*!
3 * Vue.js v2.7.16
4 * (c) 2014-2023 Evan You
5 * Released under the MIT License.
6 */
7var a=Object.freeze({}),r=Array.isArray;function l(e){return null==e}function t(e){return null!=e}function d(e){return!0===e}function m(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function s(e){return"function"==typeof e}function u(e){return null!==e&&"object"==typeof e}var k=Object.prototype.toString;function o(e){return"[object Object]"===k.call(e)}function y(e){return"[object RegExp]"===k.call(e)}function b(e){var i=parseFloat(String(e));return i>=0&&Math.floor(i)===i&&isFinite(e)}function g(e){return t(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function c(e){return null==e?"":Array.isArray(e)||o(e)&&e.toString===k?JSON.stringify(e,H,2):String(e)}function H(e,i){return i&&i.__v_isRef?i.value:i}function p(e){var i=parseFloat(e);return isNaN(i)?e:i}function S(e,i){for(var n=Object.create(null),a=e.split(","),r=0;r<a.length;r++)n[a[r]]=!0;return i?function(e){return n[e.toLowerCase()]}:function(e){return n[e]}}S("slot,component",!0);var z=S("key,ref,slot,slot-scope,is");function h(e,i){var n=e.length;if(n){if(i===e[n-1])return void(e.length=n-1);var a=e.indexOf(i);if(a>-1)return e.splice(a,1)}}var K=Object.prototype.hasOwnProperty;function v(e,i){return K.call(e,i)}function A(e){var i=Object.create(null);return function(n){return i[n]||(i[n]=e(n))}}var T=/-(\w)/g,f=A((function(e){return e.replace(T,(function(e,i){return i?i.toUpperCase():""}))})),B=A((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),R=/\B([A-Z])/g,Y=A((function(e){return e.replace(R,"-$1").toLowerCase()}));var N=Function.prototype.bind?function(e,i){return e.bind(i)}:function(e,i){function n(n){var a=arguments.length;return a?a>1?e.apply(i,arguments):e.call(i,n):e.call(i)}return n._length=e.length,n};
vendor: 15,259 bytes, line 7
7function P(e,i){i=i||0;for(var n=e.length-i,a=new Array(n);n--;)a[n]=e[n+i];return a}function O(e,i){for(var n in i)e[n]=i[n];return e}function D(e){for(var i={},n=0;n<e.length;n++)e[n]&&O(i,e[n]);return i}function I(e,i,n){}var E=function(e,i,n){return!1},Z=function(e){return e};function G(e,i){if(e===i)return!0;var n=u(e),a=u(i);if(!n||!a)return!n&&!a&&String(e)===String(i);try{var r=Array.isArray(e),l=Array.isArray(i);if(r&&l)return e.length===i.length&&e.every((function(e,n){return G(e,i[n])}));if(e instanceof Date&&i instanceof Date)return e.getTime()===i.getTime();if(r||l)return!1;var t=Object.keys(e),d=Object.keys(i);return t.length===d.length&&t.every((function(n){return G(e[n],i[n])}))}catch(e){return!1}}function V(e,i){for(var n=0;n<e.length;n++)if(G(e[n],i))return n;return-1}function C(e){var i=!1;return function(){i||(i=!0,e.apply(this,arguments))}}function M(e,i){return e===i?0===e&&1/e!=1/i:e==e||i==i}var F=["component","directive","filter"],_=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch","renderTracked","renderTriggered"],L={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:E,isReservedAttr:E,isUnknownElement:E,getTagNamespace:I,parsePlatformTagName:Z,mustUseProp:E,async:!0,_lifecycleHooks:_},x=/a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;function U(e){var i=(e+"").charCodeAt(0);return 36===i||95===i}function j(e,i,n,a){Object.defineProperty(e,i,{value:n,enumerable:!!a,writable:!0,configurable:!0})}var w=new RegExp("[^".concat(x.source,".$_\\d]"));var $="__proto__"in{},J="undefined"!=typeof window,X=J&&window.navigator.userAgent.toLowerCase(),W=X&&/msie|trident/.test(X),q=X&&X.indexOf("msie 9.0")>0,Q=X&&X.indexOf("edge/")>0;X&&X.indexOf("android");var ee=X&&/iphone|ipad|ipod|ios/.test(X);X&&/chrome\/\d+/.test(X),X&&/phantomjs/.test(X);var ie,ne=X&&X.match(/firefox\/(\d+)/),ae={}.watch,re=!1;if(J)try{var le={};Object.defineProperty(le,"passive",{get:function(){re=!0}}),window.addEventListener("test-passive",null,le)}catch(e){}var te=function(){return void 0===ie&&(ie=!J&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),ie},de=J&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function me(e){return"function"==typeof e&&/native code/.test(e.toString())}var se,ue="undefined"!=typeof Symbol&&me(Symbol)&&"undefined"!=typeof Reflect&&me(Reflect.ownKeys);se="undefined"!=typeof Set&&me(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var ke=null;function oe(){return ke&&{proxy:ke}}function ye(e){void 0===e&&(e=null),e||ke&&ke._scope.off(),ke=e,e&&e._scope.on()}var be=function(){function e(e,i,n,a,r,l,t,d){this.tag=e,this.data=i,this.children=n,this.text=a,this.elm=r,this.ns=void 0,this.context=l,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=i&&i.key,this.componentOptions=t,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=d,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(e.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),e}(),ge=function(e){void 0===e&&(e="");var i=new be;return i.text=e,i.isComment=!0,i};function ce(e){return new be(void 0,void 0,void 0,String(e))}function He(e){var i=new be(e.tag,e.data,e.children&&e.children.slice(),e.text,e.elm,e.context,e.componentOptions,e.asyncFactory);return i.ns=e.ns,i.isStatic=e.isStatic,i.key=e.key,i.isComment=e.isComment,i.fnContext=e.fnContext,i.fnOptions=e.fnOptions,i.fnScopeId=e.fnScopeId,i.asyncMeta=e.asyncMeta,i.isCloned=!0,i}"function"==typeof SuppressedError&&SuppressedError;var pe=0,Se=[],ze=function(){function e(){this._pending=!1,this.id=pe++,this.subs=[]}return e.prototype.addSub=function(e){this.subs.push(e)},e.prototype.removeSub=function(e){this.subs[this.subs.indexOf(e)]=null,this._pending||(this._pending=!0,Se.push(this))},e.prototype.depend=function(i){e.target&&e.target.addDep(this)},e.prototype.notify=function(e){var i=this.subs.filter((function(e){return e}));for(var n=0,a=i.length;n<a;n++){0,i[n].update()}},e}();ze.target=null;var he=[];function Ke(e){he.push(e),ze.target=e}function ve(){he.pop(),ze.target=he[he.length-1]}var Ae=Array.prototype,Te=Object.create(Ae);["push","pop","shift","unshift","splice","sort","reverse"].forEach((function(e){var i=Ae[e];j(Te,e,(function(){for(var n=[],a=0;a<arguments.length;a++)n[a]=arguments[a];var r,l=i.apply(this,n),t=this.__ob__;switch(e){case"push":case"unshift":r=n;break;case"splice":r=n.slice(2)}return r&&t.observeArray(r),t.dep.notify(),l}))}));var fe=Object.getOwnPropertyNames(Te),Be={},Re=!0;function Ye(e){Re=e}var Ne={notify:I,depend:I,addSub:I,removeSub:I},Pe=function(){function e(e,i,n){if(void 0===i&&(i=!1),void 0===n&&(n=!1),this.value=e,this.shallow=i,this.mock=n,this.dep=n?Ne:new ze,this.vmCount=0,j(e,"__ob__",this),r(e)){if(!n)if($)e.__proto__=Te;else for(var a=0,l=fe.length;a<l;a++){j(e,d=fe[a],Te[d])}i||this.observeArray(e)}else{var t=Object.keys(e);for(a=0;a<t.length;a++){var d;De(e,d=t[a],Be,void 0,i,n)}}}return e.prototype.observeArray=function(e){for(var i=0,n=e.length;i<n;i++)Oe(e[i],!1,this.mock)},e}();function Oe(e,i,n){return e&&v(e,"__ob__")&&e.__ob__ instanceof Pe?e.__ob__:!Re||!n&&te()||!r(e)&&!o(e)||!Object.isExtensible(e)||e.__v_skip||je(e)||e instanceof be?void 0:new Pe(e,i,n)}function De(e,i,n,a,l,t,d){void 0===d&&(d=!1);var m=new ze,s=Object.getOwnPropertyDescriptor(e,i);if(!s||!1!==s.configurable){var u=s&&s.get,k=s&&s.set;u&&!k||n!==Be&&2!==arguments.length||(n=e[i]);var o=l?n&&n.__ob__:Oe(n,!1,t);return Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:function(){var i=u?u.call(e):n;return ze.target&&(m.depend(),o&&(o.dep.depend(),r(i)&&Ze(i))),je(i)&&!l?i.value:i},set:function(i){var a=u?u.call(e):n;if(M(a,i)){if(k)k.call(e,i);else{if(u)return;if(!l&&je(a)&&!je(i))return void(a.value=i);n=i}o=l?i&&i.__ob__:Oe(i,!1,t),m.notify()}}}),m}}function Ie(e,i,n){if(!_e(e)){var a=e.__ob__;return r(e)&&b(i)?(e.length=Math.max(e.length,i),e.splice(i,1,n),a&&!a.shallow&&a.mock&&Oe(n,!1,!0),n):i in e&&!(i in Object.prototype)?(e[i]=n,n):e._isVue||a&&a.vmCount?n:a?(De(a.value,i,n,void 0,a.shallow,a.mock),a.dep.notify(),n):(e[i]=n,n)}}function Ee(e,i){if(r(e)&&b(i))e.splice(i,1);else{var n=e.__ob__;e._isVue||n&&n.vmCount||_e(e)||v(e,i)&&(delete e[i],n&&n.dep.notify())}}function Ze(e){for(var i=void 0,n=0,a=e.length;n<a;n++)(i=e[n])&&i.__ob__&&i.__ob__.dep.depend(),r(i)&&Ze(i)}function Ge(e){return Ce(e,!1),e}function Ve(e){return Ce(e,!0),j(e,"__v_isShallow",!0),e}function Ce(e,i){if(!_e(e)){Oe(e,i,te());0}}function Me(e){return _e(e)?Me(e.__v_raw):!(!e||!e.__ob__)}function Fe(e){return!(!e||!e.__v_isShallow)}function _e(e){return!(!e||!e.__v_isReadonly)}function Le(e){return Me(e)||_e(e)}function xe(e){var i=e&&e.__v_raw;return i?xe(i):e}function Ue(e){return Object.isExtensible(e)&&j(e,"__v_skip",!0),e}function je(e){return!(!e||!0!==e.__v_isRef)}function we(e){return Je(e,!1)}function $e(e){return Je(e,!0)}function Je(e,i){if(je(e))return e;var n={};return j(n,"__v_isRef",!0),j(n,"__v_isShallow",i),j(n,"dep",De(n,"value",e,null,i,te())),n}function Xe(e){e.dep&&e.dep.notify()}function We(e){return je(e)?e.value:e}function qe(e){if(Me(e))return e;for(var i={},n=Object.keys(e),a=0;a<n.length;a++)Qe(i,e,n[a]);return i}function Qe(e,i,n){Object.defineProperty(e,n,{enumerable:!0,configurable:!0,get:function(){var e=i[n];if(je(e))return e.value;var a=e&&e.__ob__;return a&&a.dep.depend(),e},set:function(e){var a=i[n];je(a)&&!je(e)?a.value=e:i[n]=e}})}function ei(e){var i=new ze,n=e((function(){i.depend()}),(function(){i.notify()})),a=n.get,r=n.set,l={get value(){return a()},set value(e){r(e)}};return j(l,"__v_isRef",!0),l}function ii(e){var i=r(e)?new Array(e.length):{};for(var n in e)i[n]=ni(e,n);return i}function ni(e,i,n){var a=e[i];if(je(a))return a;var r={get value(){var a=e[i];return void 0===a?n:a},set value(n){e[i]=n}};return j(r,"__v_isRef",!0),r}function ai(e){return ri(e,!1)}function ri(e,i){if(!o(e))return e;if(_e(e))return e;var n=i?"__v_rawToShallowReadonly":"__v_rawToReadonly",a=e[n];if(a)return a;var r=Object.create(Object.getPrototypeOf(e));j(e,n,r),j(r,"__v_isReadonly",!0),j(r,"__v_raw",e),je(e)&&j(r,"__v_isRef",!0),(i||Fe(e))&&j(r,"__v_isShallow",!0);for(var l=Object.keys(e),t=0;t<l.length;t++)li(r,e,l[t],i);return r}function li(e,i,n,a){Object.defineProperty(e,n,{enumerable:!0,configurable:!0,get:function(){var e=i[n];return a||!o(e)?e:ai(e)},set:function(){}})}function ti(e){return ri(e,!0)}function di(e,i){var n,a,r=s(e);r?(n=e,a=I):(n=e.get,a=e.set);var l=te()?null:new Wn(ke,n,I,{lazy:!0});var t={effect:l,get value(){return l?(l.dirty&&l.evaluate(),ze.target&&l.depend(),l.value):n()},set value(e){a(e)}};return j(t,"__v_isRef",!0),j(t,"__v_isReadonly",r),t}var mi="".concat("watcher"," callback"),si="".concat("watcher"," getter"),ui="".concat("watcher"," cleanup");function ki(e,i){return Hi(e,null,i)}function oi(e,i){return Hi(e,null,{flush:"post"})}function yi(e,i){return Hi(e,null,{flush:"sync"})}var bi,gi={};function ci(e,i,n){return Hi(e,i,n)}function Hi(e,i,n){var l=void 0===n?a:n,t=l.immediate,d=l.deep,m=l.flush,u=void 0===m?"pre":m;l.onTrack,l.onTrigger;var k,o,y=ke,b=function(e,i,n){void 0===n&&(n=null);var a=gn(e,null,n,y,i);return d&&a&&a.__ob__&&a.__ob__.dep.depend(),a},g=!1,c=!1;if(je(e)?(k=function(){return e.value},g=Fe(e)):Me(e)?(k=function(){return e.__ob__.dep.depend(),e},d=!0):r(e)?(c=!0,g=e.some((function(e){return Me(e)||Fe(e)})),k=function(){return e.map((function(e){return je(e)?e.value:Me(e)?(e.__ob__.dep.depend(),$n(e)):s(e)?b(e,si):void 0}))}):k=s(e)?i?function(){return b(e,si)}:function(){if(!y||!y._isDestroyed)return o&&o(),b(e,"watcher",[p])}:I,i&&d){var H=k;k=function(){return $n(H())}}var p=function(e){o=S.onStop=function(){b(e,ui)}};if(te())return p=I,i?t&&b(i,mi,[k(),c?[]:void 0,p]):k(),I;var S=new Wn(ke,k,I,{lazy:!0});S.noRecurse=!i;var z=c?[]:gi;return S.run=function(){if(S.active)if(i){var e=S.get();(d||g||(c?e.some((function(e,i){return M(e,z[i])})):M(e,z)))&&(o&&o(),b(i,mi,[e,z===gi?void 0:z,p]),z=e)}else S.get()},"sync"===u?S.update=S.run:"post"===u?(S.post=!0,S.update=function(){return pa(S)}):S.update=function(){if(y&&y===ke&&!y._isMounted){var e=y._preWatchers||(y._preWatchers=[]);e.indexOf(S)<0&&e.push(S)}else pa(S)},i?t?S.run():z=S.get():"post"===u&&y?y.$once("hook:mounted",(function(){return S.get()})):S.get(),function(){S.teardown()}}var pi=function(){function e(e){void 0===e&&(e=!1),this.detached=e,this.active=!0,this.effects=[],this.cleanups=[],this.parent=bi,!e&&bi&&(this.index=(bi.scopes||(bi.scopes=[])).push(this)-1)}return e.prototype.run=function(e){if(this.active){var i=bi;try{return bi=this,e()}finally{bi=i}}else 0},e.prototype.on=function(){bi=this},e.prototype.off=function(){bi=this.parent},e.prototype.stop=function(e){if(this.active){var i=void 0,n=void 0;for(i=0,n=this.effects.length;i<n;i++)this.effects[i].teardown();for(i=0,n=this.cleanups.length;i<n;i++)this.cleanups[i]();if(this.scopes)for(i=0,n=this.scopes.length;i<n;i++)this.scopes[i].stop(!0);if(!this.detached&&this.parent&&!e){var a=this.parent.scopes.pop();a&&a!==this&&(this.parent.scopes[this.index]=a,a.index=this.index)}this.parent=void 0,this.active=!1}},e}();function Si(e){return new pi(e)}function zi(){return bi}function hi(e){bi&&bi.cleanups.push(e)}function Ki(e,i){ke&&(vi(ke)[e]=i)}function vi(e){var i=e._provided,n=e.$parent&&e.$parent._provided;return n===i?e._provided=Object.create(n):i}function Ai(e,i,n){void 0===n&&(n=!1);var a=ke;if(a){var r=a.$parent&&a.$parent._provided;if(r&&e in r)return r[e];if(arguments.length>1)return n&&s(i)?i.call(a):i}else 0}var Ti=A((function(e){var i="&"===e.charAt(0),n="~"===(e=i?e.slice(1):e).charAt(0),a="!"===(e=n?e.slice(1):e).charAt(0);return{name:e=a?e.slice(1):e,once:n,capture:a,passive:i}}));function fi(e,i){function n(){var e=n.fns;if(!r(e))return gn(e,null,arguments,i,"v-on handler");for(var a=e.slice(),l=0;l<a.length;l++)gn(a[l],null,arguments,i,"v-on handler")}return n.fns=e,n}function Bi(e,i,n,a,r,t){var m,s,u,k;for(m in e)s=e[m],u=i[m],k=Ti(m),l(s)||(l(u)?(l(s.fns)&&(s=e[m]=fi(s,t)),d(k.once)&&(s=e[m]=r(k.name,s,k.capture)),n(k.name,s,k.capture,k.passive,k.params)):s!==u&&(u.fns=s,e[m]=u));for(m in i)l(e[m])&&a((k=Ti(m)).name,i[m],k.capture)}function Ri(e,i,n){var a;e instanceof be&&(e=e.data.hook||(e.data.hook={}));var r=e[i];function m(){n.apply(this,arguments),h(a.fns,m)}l(r)?a=fi([m]):t(r.fns)&&d(r.merged)?(a=r).fns.push(m):a=fi([r,m]),a.merged=!0,e[i]=a}function Yi(e,i,n,a,r){if(t(i)){if(v(i,n))return e[n]=i[n],r||delete i[n],!0;if(v(i,a))return e[n]=i[a],r||delete i[a],!0}return!1}function Ni(e){return m(e)?[ce(e)]:r(e)?function e(i,n){var a,s,u,k,o=[];for(a=0;a<i.length;a++)l(s=i[a])||"boolean"==typeof s||(u=o.length-1,k=o[u],r(s)?s.length>0&&(Pi((s=e(s,"".concat(n||"","_").concat(a)))[0])&&Pi(k)&&(o[u]=ce(k.text+s[0].text),s.shift()),o.push.apply(o,s)):m(s)?Pi(k)?o[u]=ce(k.text+s):""!==s&&o.push(ce(s)):Pi(s)&&Pi(k)?o[u]=ce(k.text+s.text):(d(i._isVList)&&t(s.tag)&&l(s.key)&&t(n)&&(s.key="__vlist".concat(n,"_").concat(a,"__")),o.push(s)));return o}(e):void 0}function Pi(e){return t(e)&&t(e.text)&&!1===e.isComment}function Oi(e,i){var n,a,l,d,m=null;if(r(e)||"string"==typeof e)for(m=new Array(e.length),n=0,a=e.length;n<a;n++)m[n]=i(e[n],n);else if("number"==typeof e)for(m=new Array(e),n=0;n<e;n++)m[n]=i(n+1,n);else if(u(e))if(ue&&e[Symbol.iterator]){m=[];for(var s=e[Symbol.iterator](),k=s.next();!k.done;)m.push(i(k.value,m.length)),k=s.next()}else for(l=Object.keys(e),m=new Array(l.length),n=0,a=l.length;n<a;n++)d=l[n],m[n]=i(e[d],d,n);return t(m)||(m=[]),m._isVList=!0,m}function Di(e,i,n,a){var r,l=this.$scopedSlots[e];l?(n=n||{},a&&(n=O(O({},a),n)),r=l(n)||(s(i)?i():i)):r=this.$slots[e]||(s(i)?i():i);var t=n&&n.slot;return t?this.$createElement("template",{slot:t},r):r}function Ii(e){return Za(this.$options,"filters",e,!0)||Z}function Ei(e,i){return r(e)?-1===e.indexOf(i):e!==i}function Zi(e,i,n,a,r){var l=L.keyCodes[i]||n;return r&&a&&!L.keyCodes[i]?Ei(r,a):l?Ei(l,e):a?Y(a)!==i:void 0===e}function Gi(e,i,n,a,l){if(n)if(u(n)){r(n)&&(n=D(n));var t=void 0,d=function(r){if("class"===r||"style"===r||z(r))t=e;else{var d=e.attrs&&e.attrs.type;t=a||L.mustUseProp(i,d,r)?e.domProps||(e.domProps={}):e.attrs||(e.attrs={})}var m=f(r),s=Y(r);m in t||s in t||(t[r]=n[r],l&&((e.on||(e.on={}))["update:".concat(r)]=function(e){n[r]=e}))};for(var m in n)d(m)}else;return e}function Vi(e,i){var n=this._staticTrees||(this._staticTrees=[]),a=n[e];return a&&!i||Mi(a=n[e]=this.$options.staticRenderFns[e].call(this._renderProxy,this._c,this),"__static__".concat(e),!1),a}
vendor: 2,489 bytes, line 7
7function Ci(e,i,n){return Mi(e,"__once__".concat(i).concat(n?"_".concat(n):""),!0),e}function Mi(e,i,n){if(r(e))for(var a=0;a<e.length;a++)e[a]&&"string"!=typeof e[a]&&Fi(e[a],"".concat(i,"_").concat(a),n);else Fi(e,i,n)}function Fi(e,i,n){e.isStatic=!0,e.key=i,e.isOnce=n}function _i(e,i){if(i)if(o(i)){var n=e.on=e.on?O({},e.on):{};for(var a in i){var r=n[a],l=i[a];n[a]=r?[].concat(r,l):l}}else;return e}function Li(e,i,n,a){i=i||{$stable:!n};for(var l=0;l<e.length;l++){var t=e[l];r(t)?Li(t,i,n):t&&(t.proxy&&(t.fn.proxy=!0),i[t.key]=t.fn)}return a&&(i.$key=a),i}function xi(e,i){for(var n=0;n<i.length;n+=2){var a=i[n];"string"==typeof a&&a&&(e[i[n]]=i[n+1])}return e}function Ui(e,i){return"string"==typeof e?i+e:e}function ji(e){e._o=Ci,e._n=p,e._s=c,e._l=Oi,e._t=Di,e._q=G,e._i=V,e._m=Vi,e._f=Ii,e._k=Zi,e._b=Gi,e._v=ce,e._e=ge,e._u=Li,e._g=_i,e._d=xi,e._p=Ui}function wi(e,i){if(!e||!e.length)return{};for(var n={},a=0,r=e.length;a<r;a++){var l=e[a],t=l.data;if(t&&t.attrs&&t.attrs.slot&&delete t.attrs.slot,l.context!==i&&l.fnContext!==i||!t||null==t.slot)(n.default||(n.default=[])).push(l);else{var d=t.slot,m=n[d]||(n[d]=[]);"template"===l.tag?m.push.apply(m,l.children||[]):m.push(l)}}for(var s in n)n[s].every($i)&&delete n[s];return n}function $i(e){return e.isComment&&!e.asyncFactory||" "===e.text}function Ji(e){return e.isComment&&e.asyncFactory}function Xi(e,i,n,r){var l,t=Object.keys(n).length>0,d=i?!!i.$stable:!t,m=i&&i.$key;if(i){if(i._normalized)return i._normalized;if(d&&r&&r!==a&&m===r.$key&&!t&&!r.$hasNormal)return r;for(var s in l={},i)i[s]&&"$"!==s[0]&&(l[s]=Wi(e,n,s,i[s]))}else l={};for(var u in n)u in l||(l[u]=qi(n,u));return i&&Object.isExtensible(i)&&(i._normalized=l),j(l,"$stable",d),j(l,"$key",m),j(l,"$hasNormal",t),l}function Wi(e,i,n,a){var l=function(){var i=ke;ye(e);var n=arguments.length?a.apply(null,arguments):a({}),l=(n=n&&"object"==typeof n&&!r(n)?[n]:Ni(n))&&n[0];return ye(i),n&&(!l||1===n.length&&l.isComment&&!Ji(l))?void 0:n};return a.proxy&&Object.defineProperty(i,n,{get:l,enumerable:!0,configurable:!0}),l}function qi(e,i){return function(){return e[i]}}function Qi(e){return{get attrs(){if(!e._attrsProxy){var i=e._attrsProxy={};j(i,"_v_attr_proxy",!0),en(i,e.$attrs,a,e,"$attrs")}return e._attrsProxy},get listeners(){e._listenersProxy||en(e._listenersProxy={},e.$listeners,a,e,"$listeners");return e._listenersProxy},get slots(){return function(e){e._slotsProxy||an(e._slotsProxy={},e.$scopedSlots);return e._slotsProxy}(e)}
vendor: 21,517 bytes, line 7
7,emit:N(e.$emit,e),expose:function(i){i&&Object.keys(i).forEach((function(n){return Qe(e,i,n)}))}}}function en(e,i,n,a,r){var l=!1;for(var t in i)t in e?i[t]!==n[t]&&(l=!0):(l=!0,nn(e,t,a,r));for(var t in e)t in i||(l=!0,delete e[t]);return l}function nn(e,i,n,a){Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:function(){return n[a][i]}})}function an(e,i){for(var n in i)e[n]=i[n];for(var n in e)n in i||delete e[n]}function rn(){return dn().slots}function ln(){return dn().attrs}function tn(){return dn().listeners}function dn(){var e=ke;return e._setupContext||(e._setupContext=Qi(e))}function mn(e,i){var n=r(e)?e.reduce((function(e,i){return e[i]={},e}),{}):e;for(var a in i){var l=n[a];l?r(l)||s(l)?n[a]={type:l,default:i[a]}:l.default=i[a]:null===l&&(n[a]={default:i[a]})}return n}var sn=null;function un(e,i){return(e.__esModule||ue&&"Module"===e[Symbol.toStringTag])&&(e=e.default),u(e)?i.extend(e):e}function kn(e){if(r(e))for(var i=0;i<e.length;i++){var n=e[i];if(t(n)&&(t(n.componentOptions)||Ji(n)))return n}}function on(e,i,n,a,k,o){return(r(n)||m(n))&&(k=a,a=n,n=void 0),d(o)&&(k=2),function(e,i,n,a,m){if(t(n)&&t(n.__ob__))return ge();t(n)&&t(n.is)&&(i=n.is);if(!i)return ge();0;r(a)&&s(a[0])&&((n=n||{}).scopedSlots={default:a[0]},a.length=0);2===m?a=Ni(a):1===m&&(a=function(e){for(var i=0;i<e.length;i++)if(r(e[i]))return Array.prototype.concat.apply([],e);return e}(a));var k,o;if("string"==typeof i){var y=void 0;o=e.$vnode&&e.$vnode.ns||L.getTagNamespace(i),k=L.isReservedTag(i)?new be(L.parsePlatformTagName(i),n,a,void 0,void 0,e):n&&n.pre||!t(y=Za(e.$options,"components",i))?new be(i,n,a,void 0,void 0,e):fa(y,n,e,a,i)}else k=fa(i,n,e,a);return r(k)?k:t(k)?(t(o)&&function e(i,n,a){i.ns=n,"foreignObject"===i.tag&&(n=void 0,a=!0);if(t(i.children))for(var r=0,m=i.children.length;r<m;r++){var s=i.children[r];t(s.tag)&&(l(s.ns)||d(a)&&"svg"!==s.tag)&&e(s,n,a)}}(k,o),t(n)&&function(e){u(e.style)&&$n(e.style);u(e.class)&&$n(e.class)}(n),k):ge()}(e,i,n,a,k)}function yn(e,i,n){return on(ke,e,i,n,2,!0)}function bn(e,i,n){Ke();try{if(i)for(var a=i;a=a.$parent;){var r=a.$options.errorCaptured;if(r)for(var l=0;l<r.length;l++)try{if(!1===r[l].call(a,e,i,n))return}catch(e){cn(e,a,"errorCaptured hook")}}cn(e,i,n)}finally{ve()}}function gn(e,i,n,a,r){var l;try{(l=n?e.apply(i,n):e.call(i))&&!l._isVue&&g(l)&&!l._handled&&(l.catch((function(e){return bn(e,a,r+" (Promise/async)")})),l._handled=!0)}catch(e){bn(e,a,r)}return l}function cn(e,i,n){if(L.errorHandler)try{return L.errorHandler.call(null,e,i,n)}catch(i){i!==e&&Hn(i,null,"config.errorHandler")}Hn(e,i,n)}function Hn(e,i,n){if(!J||"undefined"==typeof console)throw e;console.error(e)}var pn,Sn=!1,zn=[],hn=!1;function Kn(){hn=!1;var e=zn.slice(0);zn.length=0;for(var i=0;i<e.length;i++)e[i]()}if("undefined"!=typeof Promise&&me(Promise)){var vn=Promise.resolve();pn=function(){vn.then(Kn),ee&&setTimeout(I)},Sn=!0}else if(W||"undefined"==typeof MutationObserver||!me(MutationObserver)&&"[object MutationObserverConstructor]"!==MutationObserver.toString())pn="undefined"!=typeof setImmediate&&me(setImmediate)?function(){setImmediate(Kn)}:function(){setTimeout(Kn,0)};else{var An=1,Tn=new MutationObserver(Kn),fn=document.createTextNode(String(An));Tn.observe(fn,{characterData:!0}),pn=function(){An=(An+1)%2,fn.data=String(An)},Sn=!0}function Bn(e,i){var n;if(zn.push((function(){if(e)try{e.call(i)}catch(e){bn(e,i,"nextTick")}else n&&n(i)})),hn||(hn=!0,pn()),!e&&"undefined"!=typeof Promise)return new Promise((function(e){n=e}))}function Rn(e){if(void 0===e&&(e="$style"),!ke)return a;var i=ke[e];return i||a}function Yn(e){if(J){var i=ke;i&&oi((function(){var n=i.$el,a=e(i,i._setupProxy);if(n&&1===n.nodeType){var r=n.style;for(var l in a)r.setProperty("--".concat(l),a[l])}}))}}function Nn(e){s(e)&&(e={loader:e});var i=e.loader,n=e.loadingComponent,a=e.errorComponent,r=e.delay,l=void 0===r?200:r,t=e.timeout,d=(e.suspensible,e.onError);var m=null,u=0,k=function(){var e;return m||(e=m=i().catch((function(e){if(e=e instanceof Error?e:new Error(String(e)),d)return new Promise((function(i,n){d(e,(function(){return i((u++,m=null,k()))}),(function(){return n(e)}),u+1)}));throw e})).then((function(i){return e!==m&&m?m:(i&&(i.__esModule||"Module"===i[Symbol.toStringTag])&&(i=i.default),i)})))};return function(){return{component:k(),delay:l,timeout:t,error:a,loading:n}}}function Pn(e){return function(i,n){if(void 0===n&&(n=ke),n)return function(e,i,n){var a=e.$options;a[i]=Oa(a[i],n)}(n,e,i)}}var On=Pn("beforeMount"),Dn=Pn("mounted"),In=Pn("beforeUpdate"),En=Pn("updated"),Zn=Pn("beforeDestroy"),Gn=Pn("destroyed"),Vn=Pn("activated"),Cn=Pn("deactivated"),Mn=Pn("serverPrefetch"),Fn=Pn("renderTracked"),_n=Pn("renderTriggered"),Ln=Pn("errorCaptured");function xn(e,i){void 0===i&&(i=ke),Ln(e,i)}var Un="2.7.16";function jn(e){return e}var wn=new se;function $n(e){return function e(i,n){var a,l,t=r(i);if(!t&&!u(i)||i.__v_skip||Object.isFrozen(i)||i instanceof be)return;if(i.__ob__){var d=i.__ob__.dep.id;if(n.has(d))return;n.add(d)}if(t)for(a=i.length;a--;)e(i[a],n);else if(je(i))e(i.value,n);else for(l=Object.keys(i),a=l.length;a--;)e(i[l[a]],n)}(e,wn),wn.clear(),e}var Jn,Xn=0,Wn=function(){function e(e,i,n,a,r){var l,t;l=this,void 0===(t=bi&&!bi._vm?bi:e?e._scope:void 0)&&(t=bi),t&&t.active&&t.effects.push(l),(this.vm=e)&&r&&(e._watcher=this),a?(this.deep=!!a.deep,this.user=!!a.user,this.lazy=!!a.lazy,this.sync=!!a.sync,this.before=a.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++Xn,this.active=!0,this.post=!1,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new se,this.newDepIds=new se,this.expression="",s(i)?this.getter=i:(this.getter=function(e){if(!w.test(e)){var i=e.split(".");return function(e){for(var n=0;n<i.length;n++){if(!e)return;e=e[i[n]]}return e}}}(i),this.getter||(this.getter=I)),this.value=this.lazy?void 0:this.get()}return e.prototype.get=function(){var e;Ke(this);var i=this.vm;try{e=this.getter.call(i,i)}catch(e){if(!this.user)throw e;bn(e,i,'getter for watcher "'.concat(this.expression,'"'))}finally{this.deep&&$n(e),ve(),this.cleanupDeps()}return e},e.prototype.addDep=function(e){var i=e.id;this.newDepIds.has(i)||(this.newDepIds.add(i),this.newDeps.push(e),this.depIds.has(i)||e.addSub(this))},e.prototype.cleanupDeps=function(){for(var e=this.deps.length;e--;){var i=this.deps[e];this.newDepIds.has(i.id)||i.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},e.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():pa(this)},e.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||u(e)||this.deep){var i=this.value;if(this.value=e,this.user){var n='callback for watcher "'.concat(this.expression,'"');gn(this.cb,this.vm,[e,i],this.vm,n)}else this.cb.call(this.vm,e,i)}}},e.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},e.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},e.prototype.teardown=function(){if(this.vm&&!this.vm._isBeingDestroyed&&h(this.vm._scope.effects,this),this.active){for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1,this.onStop&&this.onStop()}},e}();function qn(e,i){Jn.$on(e,i)}function Qn(e,i){Jn.$off(e,i)}function ea(e,i){var n=Jn;return function a(){var r=i.apply(null,arguments);null!==r&&n.$off(e,a)}}function ia(e,i,n){Jn=e,Bi(i,n||{},qn,Qn,ea,e),Jn=void 0}var na=null;function aa(e){var i=na;return na=e,function(){na=i}}function ra(e){for(;e&&(e=e.$parent);)if(e._inactive)return!0;return!1}function la(e,i){if(i){if(e._directInactive=!1,ra(e))return}else if(e._directInactive)return;if(e._inactive||null===e._inactive){e._inactive=!1;for(var n=0;n<e.$children.length;n++)la(e.$children[n]);ta(e,"activated")}}function ta(e,i,n,a){void 0===a&&(a=!0),Ke();var r=ke,l=zi();a&&ye(e);var t=e.$options[i],d="".concat(i," hook");if(t)for(var m=0,s=t.length;m<s;m++)gn(t[m],e,n||null,e,d);e._hasHookEvent&&e.$emit("hook:"+i),a&&(ye(r),l&&l.on()),ve()}var da=[],ma=[],sa={},ua=!1,ka=!1,oa=0;var ya=0,ba=Date.now;if(J&&!W){var ga=window.performance;ga&&"function"==typeof ga.now&&ba()>document.createEvent("Event").timeStamp&&(ba=function(){return ga.now()})}var ca=function(e,i){if(e.post){if(!i.post)return 1}else if(i.post)return-1;return e.id-i.id};function Ha(){var e,i;for(ya=ba(),ka=!0,da.sort(ca),oa=0;oa<da.length;oa++)(e=da[oa]).before&&e.before(),i=e.id,sa[i]=null,e.run();var n=ma.slice(),a=da.slice();oa=da.length=ma.length=0,sa={},ua=ka=!1,function(e){for(var i=0;i<e.length;i++)e[i]._inactive=!0,la(e[i],!0)}(n),function(e){var i=e.length;for(;i--;){var n=e[i],a=n.vm;a&&a._watcher===n&&a._isMounted&&!a._isDestroyed&&ta(a,"updated")}}(a),function(){for(var e=0;e<Se.length;e++){var i=Se[e];i.subs=i.subs.filter((function(e){return e})),i._pending=!1}Se.length=0}(),de&&L.devtools&&de.emit("flush")}function pa(e){var i=e.id;if(null==sa[i]&&(e!==ze.target||!e.noRecurse)){if(sa[i]=!0,ka){for(var n=da.length-1;n>oa&&da[n].id>e.id;)n--;da.splice(n+1,0,e)}else da.push(e);ua||(ua=!0,Bn(Ha))}}function Sa(e,i){if(e){for(var n=Object.create(null),a=ue?Reflect.ownKeys(e):Object.keys(e),r=0;r<a.length;r++){var l=a[r];if("__ob__"!==l){var t=e[l].from;if(t in i._provided)n[l]=i._provided[t];else if("default"in e[l]){var d=e[l].default;n[l]=s(d)?d.call(i):d}else 0}}return n}}function za(e,i,n,l,t){var m,s=this,u=t.options;v(l,"_uid")?(m=Object.create(l))._original=l:(m=l,l=l._original);var k=d(u._compiled),o=!k;this.data=e,this.props=i,this.children=n,this.parent=l,this.listeners=e.on||a,this.injections=Sa(u.inject,l),this.slots=function(){return s.$slots||Xi(l,e.scopedSlots,s.$slots=wi(n,l)),s.$slots},Object.defineProperty(this,"scopedSlots",{enumerable:!0,get:function(){return Xi(l,e.scopedSlots,this.slots())}}),k&&(this.$options=u,this.$slots=this.slots(),this.$scopedSlots=Xi(l,e.scopedSlots,this.$slots)),u._scopeId?this._c=function(e,i,n,a){var t=on(m,e,i,n,a,o);return t&&!r(t)&&(t.fnScopeId=u._scopeId,t.fnContext=l),t}:this._c=function(e,i,n,a){return on(m,e,i,n,a,o)}}function ha(e,i,n,a,r){var l=He(e);return l.fnContext=n,l.fnOptions=a,i.slot&&((l.data||(l.data={})).slot=i.slot),l}function Ka(e,i){for(var n in i)e[f(n)]=i[n]}function va(e){return e.name||e.__name||e._componentTag}ji(za.prototype);var Aa={init:function(e,i){if(e.componentInstance&&!e.componentInstance._isDestroyed&&e.data.keepAlive){var n=e;Aa.prepatch(n,n)}else{(e.componentInstance=function(e,i){var n={_isComponent:!0,_parentVnode:e,parent:i},a=e.data.inlineTemplate;t(a)&&(n.render=a.render,n.staticRenderFns=a.staticRenderFns);return new e.componentOptions.Ctor(n)}(e,na)).$mount(i?e.elm:void 0,i)}},prepatch:function(e,i){var n=i.componentOptions;!function(e,i,n,r,l){var t=r.data.scopedSlots,d=e.$scopedSlots,m=!!(t&&!t.$stable||d!==a&&!d.$stable||t&&e.$scopedSlots.$key!==t.$key||!t&&e.$scopedSlots.$key),s=!!(l||e.$options._renderChildren||m),u=e.$vnode;e.$options._parentVnode=r,e.$vnode=r,e._vnode&&(e._vnode.parent=r),e.$options._renderChildren=l;var k=r.data.attrs||a;e._attrsProxy&&en(e._attrsProxy,k,u.data&&u.data.attrs||a,e,"$attrs")&&(s=!0),e.$attrs=k,n=n||a;var o=e.$options._parentListeners;if(e._listenersProxy&&en(e._listenersProxy,n,o||a,e,"$listeners"),e.$listeners=e.$options._parentListeners=n,ia(e,n,o),i&&e.$options.props){Ye(!1);for(var y=e._props,b=e.$options._propKeys||[],g=0;g<b.length;g++){var c=b[g],H=e.$options.props;y[c]=Ga(c,H,i,e)}Ye(!0),e.$options.propsData=i}s&&(e.$slots=wi(l,r.context),e.$forceUpdate())}(i.componentInstance=e.componentInstance,n.propsData,n.listeners,i,n.children)},insert:function(e){var i,n=e.context,a=e.componentInstance;a._isMounted||(a._isMounted=!0,ta(a,"mounted")),e.data.keepAlive&&(n._isMounted?((i=a)._inactive=!1,ma.push(i)):la(a,!0))},destroy:function(e){var i=e.componentInstance;i._isDestroyed||(e.data.keepAlive?function e(i,n){if(!(n&&(i._directInactive=!0,ra(i))||i._inactive)){i._inactive=!0;for(var a=0;a<i.$children.length;a++)e(i.$children[a]);ta(i,"deactivated")}}(i,!0):i.$destroy())}},Ta=Object.keys(Aa);function fa(e,i,n,m,s){if(!l(e)){var k=n.$options._base;if(u(e)&&(e=k.extend(e)),"function"==typeof e){var o;if(l(e.cid)&&void 0===(e=function(e,i){if(d(e.error)&&t(e.errorComp))return e.errorComp;if(t(e.resolved))return e.resolved;var n=sn;if(n&&t(e.owners)&&-1===e.owners.indexOf(n)&&e.owners.push(n),d(e.loading)&&t(e.loadingComp))return e.loadingComp;if(n&&!t(e.owners)){var a=e.owners=[n],r=!0,m=null,s=null;n.$on("hook:destroyed",(function(){return h(a,n)}));var k=function(e){for(var i=0,n=a.length;i<n;i++)a[i].$forceUpdate();e&&(a.length=0,null!==m&&(clearTimeout(m),m=null),null!==s&&(clearTimeout(s),s=null))},o=C((function(n){e.resolved=un(n,i),r?a.length=0:k(!0)})),y=C((function(i){t(e.errorComp)&&(e.error=!0,k(!0))})),b=e(o,y);return u(b)&&(g(b)?l(e.resolved)&&b.then(o,y):g(b.component)&&(b.component.then(o,y),t(b.error)&&(e.errorComp=un(b.error,i)),t(b.loading)&&(e.loadingComp=un(b.loading,i),0===b.delay?e.loading=!0:m=setTimeout((function(){m=null,l(e.resolved)&&l(e.error)&&(e.loading=!0,k(!1))}),b.delay||200)),t(b.timeout)&&(s=setTimeout((function(){s=null,l(e.resolved)&&y(null)}),b.timeout)))),r=!1,e.loading?e.loadingComp:e.resolved}}(o=e,k)))return function(e,i,n,a,r){var l=ge();return l.asyncFactory=e,l.asyncMeta={data:i,context:n,children:a,tag:r},l}(o,i,n,m,s);i=i||{},Wa(e),t(i.model)&&function(e,i){var n=e.model&&e.model.prop||"value",a=e.model&&e.model.event||"input";(i.attrs||(i.attrs={}))[n]=i.model.value;var l=i.on||(i.on={}),d=l[a],m=i.model.callback;t(d)?(r(d)?-1===d.indexOf(m):d!==m)&&(l[a]=[m].concat(d)):l[a]=m}(e.options,i);var y=function(e,i,n){var a=i.options.props;if(!l(a)){var r={},d=e.attrs,m=e.props;if(t(d)||t(m))for(var s in a){var u=Y(s);Yi(r,m,s,u,!0)||Yi(r,d,s,u,!1)}return r}}(i,e);if(d(e.options.functional))return function(e,i,n,l,d){var m=e.options,s={},u=m.props;if(t(u))for(var k in u)s[k]=Ga(k,u,i||a);else t(n.attrs)&&Ka(s,n.attrs),t(n.props)&&Ka(s,n.props);var o=new za(n,s,d,l,e),y=m.render.call(null,o._c,o);if(y instanceof be)return ha(y,n,o.parent,m,o);if(r(y)){for(var b=Ni(y)||[],g=new Array(b.length),c=0;c<b.length;c++)g[c]=ha(b[c],n,o.parent,m,o);return g}}(e,y,i,n,m);var b=i.on;if(i.on=i.nativeOn,d(e.options.abstract)){var c=i.slot;i={},c&&(i.slot=c)}!function(e){for(var i=e.hook||(e.hook={}),n=0;n<Ta.length;n++){var a=Ta[n],r=i[a],l=Aa[a];r===l||r&&r._merged||(i[a]=r?Ba(l,r):l)}}(i);var H=va(e.options)||s;return new be("vue-component-".concat(e.cid).concat(H?"-".concat(H):""),i,void 0,void 0,void 0,n,{Ctor:e,propsData:y,listeners:b,tag:s,children:m},o)}}}function Ba(e,i){var n=function(n,a){e(n,a),i(n,a)};return n._merged=!0,n}var Ra=I,Ya=L.optionMergeStrategies;function Na(e,i,n){if(void 0===n&&(n=!0),!i)return e;for(var a,r,l,t=ue?Reflect.ownKeys(i):Object.keys(i),d=0;d<t.length;d++)"__ob__"!==(a=t[d])&&(r=e[a],l=i[a],n&&v(e,a)?r!==l&&o(r)&&o(l)&&Na(r,l):Ie(e,a,l));return e}function Pa(e,i,n){return n?function(){var a=s(i)?i.call(n,n):i,r=s(e)?e.call(n,n):e;return a?Na(a,r):r}:i?e?function(){return Na(s(i)?i.call(this,this):i,s(e)?e.call(this,this):e)}:i:e}function Oa(e,i){var n=i?e?e.concat(i):r(i)?i:[i]:e;return n?function(e){for(var i=[],n=0;n<e.length;n++)-1===i.indexOf(e[n])&&i.push(e[n]);return i}(n):n}function Da(e,i,n,a){var r=Object.create(e||null);return i?O(r,i):r}Ya.data=function(e,i,n){return n?Pa(e,i,n):i&&"function"!=typeof i?e:Pa(e,i)},_.forEach((function(e){Ya[e]=Oa})),F.forEach((function(e){Ya[e+"s"]=Da})),Ya.watch=function(e,i,n,a){if(e===ae&&(e=void 0),i===ae&&(i=void 0),!i)return Object.create(e||null);if(!e)return i;var l={};for(var t in O(l,e),i){var d=l[t],m=i[t];d&&!r(d)&&(d=[d]),l[t]=d?d.concat(m):r(m)?m:[m]}return l},Ya.props=Ya.methods=Ya.inject=Ya.computed=function(e,i,n,a){if(!e)return i;var r=Object.create(null);return O(r,e),i&&O(r,i),r},Ya.provide=function(e,i){return e?function(){var n=Object.create(null);return Na(n,s(e)?e.call(this):e),i&&Na(n,s(i)?i.call(this):i,!1),n}:i};var Ia=function(e,i){return void 0===i?e:i};function Ea(e,i,n){if(s(i)&&(i=i.options),function(e,i){var n=e.props;if(n){var a,l,t={};if(r(n))for(a=n.length;a--;)"string"==typeof(l=n[a])&&(t[f(l)]={type:null});else if(o(n))for(var d in n)l=n[d],t[f(d)]=o(l)?l:{type:l};else 0;e.props=t}}(i),function(e,i){var n=e.inject;if(n){var a=e.inject={};if(r(n))for(var l=0;l<n.length;l++)a[n[l]]={from:n[l]};else if(o(n))for(var t in n){var d=n[t];a[t]=o(d)?O({from:t},d):{from:d}}else 0}}(i),function(e){var i=e.directives;if(i)for(var n in i){var a=i[n];s(a)&&(i[n]={bind:a,update:a})}}(i),!i._base&&(i.extends&&(e=Ea(e,i.extends,n)),i.mixins))for(var a=0,l=i.mixins.length;a<l;a++)e=Ea(e,i.mixins[a],n);var t,d={};for(t in e)m(t);for(t in i)v(e,t)||m(t);function m(a){var r=Ya[a]||Ia;d[a]=r(e[a],i[a],n,a)}return d}function Za(e,i,n,a){if("string"==typeof n){var r=e[i];if(v(r,n))return r[n];var l=f(n);if(v(r,l))return r[l];var t=B(l);return v(r,t)?r[t]:r[n]||r[l]||r[t]}}function Ga(e,i,n,a){var r=i[e],l=!v(n,e),t=n[e],d=Fa(Boolean,r.type);if(d>-1)if(l&&!v(r,"default"))t=!1;else if(""===t||t===Y(e)){var m=Fa(String,r.type);(m<0||d<m)&&(t=!0)}if(void 0===t){t=function(e,i,n){if(!v(i,"default"))return;var a=i.default;0;if(e&&e.$options.propsData&&void 0===e.$options.propsData[n]&&void 0!==e._props[n])return e._props[n];return s(a)&&"Function"!==Ca(i.type)?a.call(e):a}(a,r,e);var u=Re;Ye(!0),Oe(t),Ye(u)}return t}var Va=/^\s*function (\w+)/;function Ca(e){var i=e&&e.toString().match(Va);return i?i[1]:""}function Ma(e,i){return Ca(e)===Ca(i)}function Fa(e,i){if(!r(i))return Ma(i,e)?0:-1;for(var n=0,a=i.length;n<a;n++)if(Ma(i[n],e))return n;return-1}var _a={enumerable:!0,configurable:!0,get:I,set:I};function La(e,i,n){_a.get=function(){return this[i][n]},_a.set=function(e){this[i][n]=e},Object.defineProperty(e,n,_a)}function xa(e){var i=e.$options;if(i.props&&function(e,i){var n=e.$options.propsData||{},a=e._props=Ve({}),r=e.$options._propKeys=[];e.$parent&&Ye(!1);var l=function(l){r.push(l);var t=Ga(l,i,n,e);De(a,l,t,void 0,!0),l in e||La(e,"_props",l)};for(var t in i)l(t);Ye(!0)}(e,i.props),function(e){var i=e.$options,n=i.setup;if(n){var a=e._setupContext=Qi(e);ye(e),Ke();var r=gn(n,null,[e._props||Ve({}),a],e,"setup");if(ve(),ye(),s(r))i.render=r;else if(u(r))if(e._setupState=r,r.__sfc){var l=e._setupProxy={};for(var t in r)"__sfc"!==t&&Qe(l,r,t)}else for(var t in r)U(t)||Qe(e,r,t);else 0}}(e),i.methods&&function(e,i){e.$options.props;for(var n in i)e[n]="function"!=typeof i[n]?I:N(i[n],e)}(e,i.methods),i.data)!function(e){var i=e.$options.data;o(i=e._data=s(i)?function(e,i){Ke();try{return e.call(i,i)}catch(e){return bn(e,i,"data()"),{}}finally{ve()}}(i,e):i||{})||(i={});var n=Object.keys(i),a=e.$options.props,r=(e.$options.methods,n.length);for(;r--;){var l=n[r];0,a&&v(a,l)||U(l)||La(e,"_data",l)}var t=Oe(i);t&&t.vmCount++}(e);else{var n=Oe(e._data={});n&&n.vmCount++}i.computed&&function(e,i){var n=e._computedWatchers=Object.create(null),a=te();for(var r in i){var l=i[r],t=s(l)?l:l.get;0,a||(n[r]=new Wn(e,t||I,I,Ua)),r in e||ja(e,r,l)}}(e,i.computed),i.watch&&i.watch!==ae&&function(e,i){for(var n in i){var a=i[n];if(r(a))for(var l=0;l<a.length;l++)Ja(e,n,a[l]);else Ja(e,n,a)}}(e,i.watch)}var Ua={lazy:!0};function ja(e,i,n){var a=!te();s(n)?(_a.get=a?wa(i):$a(n),_a.set=I):(_a.get=n.get?a&&!1!==n.cache?wa(i):$a(n.get):I,_a.set=n.set||I),Object.defineProperty(e,i,_a)}function wa(e){return function(){var i=this._computedWatchers&&this._computedWatchers[e];if(i)return i.dirty&&i.evaluate(),ze.target&&i.depend(),i.value}}function $a(e){return function(){return e.call(this,this)}}function Ja(e,i,n,a){return o(n)&&(a=n,n=n.handler),"string"==typeof n&&(n=e[n]),e.$watch(i,n,a)}var Xa=0;function Wa(e){var i=e.options;if(e.super){var n=Wa(e.super);if(n!==e.superOptions){e.superOptions=n;var a=function(e){var i,n=e.options,a=e.sealedOptions;for(var r in n)n[r]!==a[r]&&(i||(i={}),i[r]=n[r]);return i}(e);a&&O(e.extendOptions,a),(i=e.options=Ea(n,e.extendOptions)).name&&(i.components[i.name]=e)}}return i}function qa(e){this._init(e)}function Qa(e){e.cid=0;var i=1;e.extend=function(e){e=e||{};var n=this,a=n.cid,r=e._Ctor||(e._Ctor={});if(r[a])return r[a];var l=va(e)||va(n.options);var t=function(e){this._init(e)};return(t.prototype=Object.create(n.prototype)).constructor=t,t.cid=i++,t.options=Ea(n.options,e),t.super=n,t.options.props&&function(e){var i=e.options.props;for(var n in i)La(e.prototype,"_props",n)}(t),t.options.computed&&function(e){var i=e.options.computed;for(var n in i)ja(e.prototype,n,i[n])}(t),t.extend=n.extend,t.mixin=n.mixin,t.use=n.use,F.forEach((function(e){t[e]=n[e]})),l&&(t.options.components[l]=t),t.superOptions=n.options,t.extendOptions=e,t.sealedOptions=O({},t.options),r[a]=t,t}}function er(e){return e&&(va(e.Ctor.options)||e.tag)}function ir(e,i){return r(e)?e.indexOf(i)>-1:"string"==typeof e?e.split(",").indexOf(i)>-1:!!y(e)&&e.test(i)}function nr(e,i){var n=e.cache,a=e.keys,r=e._vnode,l=e.$vnode;for(var t in n){var d=n[t];if(d){var m=d.name;m&&!i(m)&&ar(n,t,a,r)}}l.componentOptions.children=void 0}function ar(e,i,n,a){var r=e[i];!r||a&&r.tag===a.tag||r.componentInstance.$destroy(),e[i]=null,h(n,i)}!function(e){e.prototype._init=function(e){var i=this;i._uid=Xa++,i._isVue=!0,i.__v_skip=!0,i._scope=new pi(!0),i._scope.parent=void 0,i._scope._vm=!0,e&&e._isComponent?function(e,i){var n=e.$options=Object.create(e.constructor.options),a=i._parentVnode;
vendor: 1,248 bytes, line 7
7n.parent=i.parent,n._parentVnode=a;var r=a.componentOptions;n.propsData=r.propsData,n._parentListeners=r.listeners,n._renderChildren=r.children,n._componentTag=r.tag,i.render&&(n.render=i.render,n.staticRenderFns=i.staticRenderFns)}(i,e):i.$options=Ea(Wa(i.constructor),e||{},i),i._renderProxy=i,i._self=i,function(e){var i=e.$options,n=i.parent;if(n&&!i.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._provided=n?n._provided:Object.create(null),e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(i),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var i=e.$options._parentListeners;i&&ia(e,i)}(i),function(e){e._vnode=null,e._staticTrees=null;var i=e.$options,n=e.$vnode=i._parentVnode,r=n&&n.context;e.$slots=wi(i._renderChildren,r),e.$scopedSlots=n?Xi(e.$parent,n.data.scopedSlots,e.$slots):a,e._c=function(i,n,a,r){return on(e,i,n,a,r,!1)},e.$createElement=function(i,n,a,r){return on(e,i,n,a,r,!0)};var l=n&&n.data;De(e,"$attrs",l&&l.attrs||a,null,!0),De(e,"$listeners",i._parentListeners||a,null,!0)}(i),ta(i,"beforeCreate",void 0,!1),function(e){var i=Sa(e.$options.inject,e);
vendor: 31,835 bytes, line 7
7i&&(Ye(!1),Object.keys(i).forEach((function(n){De(e,n,i[n])})),Ye(!0))}(i),xa(i),function(e){var i=e.$options.provide;if(i){var n=s(i)?i.call(e):i;if(!u(n))return;for(var a=vi(e),r=ue?Reflect.ownKeys(n):Object.keys(n),l=0;l<r.length;l++){var t=r[l];Object.defineProperty(a,t,Object.getOwnPropertyDescriptor(n,t))}}}(i),ta(i,"created"),i.$options.el&&i.$mount(i.$options.el)}}(qa),function(e){var i={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",i),Object.defineProperty(e.prototype,"$props",n),e.prototype.$set=Ie,e.prototype.$delete=Ee,e.prototype.$watch=function(e,i,n){if(o(i))return Ja(this,e,i,n);(n=n||{}).user=!0;var a=new Wn(this,e,i,n);if(n.immediate){var r='callback for immediate watcher "'.concat(a.expression,'"');Ke(),gn(i,this,[a.value],this,r),ve()}return function(){a.teardown()}}}(qa),function(e){var i=/^hook:/;e.prototype.$on=function(e,n){var a=this;if(r(e))for(var l=0,t=e.length;l<t;l++)a.$on(e[l],n);else(a._events[e]||(a._events[e]=[])).push(n),i.test(e)&&(a._hasHookEvent=!0);return a},e.prototype.$once=function(e,i){var n=this;function a(){n.$off(e,a),i.apply(n,arguments)}return a.fn=i,n.$on(e,a),n},e.prototype.$off=function(e,i){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(r(e)){for(var a=0,l=e.length;a<l;a++)n.$off(e[a],i);return n}var t,d=n._events[e];if(!d)return n;if(!i)return n._events[e]=null,n;for(var m=d.length;m--;)if((t=d[m])===i||t.fn===i){d.splice(m,1);break}return n},e.prototype.$emit=function(e){var i=this,n=i._events[e];if(n){n=n.length>1?P(n):n;for(var a=P(arguments,1),r='event handler for "'.concat(e,'"'),l=0,t=n.length;l<t;l++)gn(n[l],i,a,i,r)}return i}}(qa),function(e){e.prototype._update=function(e,i){var n=this,a=n.$el,r=n._vnode,l=aa(n);n._vnode=e,n.$el=r?n.__patch__(r,e):n.__patch__(n.$el,e,i,!1),l(),a&&(a.__vue__=null),n.$el&&(n.$el.__vue__=n);for(var t=n;t&&t.$vnode&&t.$parent&&t.$vnode===t.$parent._vnode;)t.$parent.$el=t.$el,t=t.$parent},e.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},e.prototype.$destroy=function(){var e=this;if(!e._isBeingDestroyed){ta(e,"beforeDestroy"),e._isBeingDestroyed=!0;var i=e.$parent;!i||i._isBeingDestroyed||e.$options.abstract||h(i.$children,e),e._scope.stop(),e._data.__ob__&&e._data.__ob__.vmCount--,e._isDestroyed=!0,e.__patch__(e._vnode,null),ta(e,"destroyed"),e.$off(),e.$el&&(e.$el.__vue__=null),e.$vnode&&(e.$vnode.parent=null)}}}(qa),function(e){ji(e.prototype),e.prototype.$nextTick=function(e){return Bn(e,this)},e.prototype._render=function(){var e=this,i=e.$options,n=i.render,a=i._parentVnode;a&&e._isMounted&&(e.$scopedSlots=Xi(e.$parent,a.data.scopedSlots,e.$slots,e.$scopedSlots),e._slotsProxy&&an(e._slotsProxy,e.$scopedSlots)),e.$vnode=a;var l,t=ke,d=sn;try{ye(e),sn=e,l=n.call(e._renderProxy,e.$createElement)}catch(i){bn(i,e,"render"),l=e._vnode}finally{sn=d,ye(t)}return r(l)&&1===l.length&&(l=l[0]),l instanceof be||(l=ge()),l.parent=a,l}}(qa);var rr=[String,RegExp,Array],lr={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:rr,exclude:rr,max:[String,Number]},methods:{cacheVNode:function(){var e=this.cache,i=this.keys,n=this.vnodeToCache,a=this.keyToCache;if(n){var r=n.tag,l=n.componentInstance,t=n.componentOptions;e[a]={name:er(t),tag:r,componentInstance:l},i.push(a),this.max&&i.length>parseInt(this.max)&&ar(e,i[0],i,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)ar(this.cache,e,this.keys)},mounted:function(){var e=this;this.cacheVNode(),this.$watch("include",(function(i){nr(e,(function(e){return ir(i,e)}))})),this.$watch("exclude",(function(i){nr(e,(function(e){return!ir(i,e)}))}))},updated:function(){this.cacheVNode()},render:function(){var e=this.$slots.default,i=kn(e),n=i&&i.componentOptions;if(n){var a=er(n),r=this.include,l=this.exclude;if(r&&(!a||!ir(r,a))||l&&a&&ir(l,a))return i;var t=this.cache,d=this.keys,m=null==i.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):i.key;t[m]?(i.componentInstance=t[m].componentInstance,h(d,m),d.push(m)):(this.vnodeToCache=i,this.keyToCache=m),i.data.keepAlive=!0}return i||e&&e[0]}}};!function(e){var i={get:function(){return L}};Object.defineProperty(e,"config",i),e.util={warn:Ra,extend:O,mergeOptions:Ea,defineReactive:De},e.set=Ie,e.delete=Ee,e.nextTick=Bn,e.observable=function(e){return Oe(e),e},e.options=Object.create(null),F.forEach((function(i){e.options[i+"s"]=Object.create(null)})),e.options._base=e,O(e.options.components,lr),function(e){e.use=function(e){var i=this._installedPlugins||(this._installedPlugins=[]);if(i.indexOf(e)>-1)return this;var n=P(arguments,1);return n.unshift(this),s(e.install)?e.install.apply(e,n):s(e)&&e.apply(null,n),i.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=Ea(this.options,e),this}}(e),Qa(e),function(e){F.forEach((function(i){e[i]=function(e,n){return n?("component"===i&&o(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===i&&s(n)&&(n={bind:n,update:n}),this.options[i+"s"][e]=n,n):this.options[i+"s"][e]}}))}(e)}(qa),Object.defineProperty(qa.prototype,"$isServer",{get:te}),Object.defineProperty(qa.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(qa,"FunctionalRenderContext",{value:za}),qa.version=Un;var tr=S("style,class"),dr=S("input,textarea,option,select,progress"),mr=S("contenteditable,draggable,spellcheck"),sr=S("events,caret,typing,plaintext-only"),ur=S("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),kr="http://www.w3.org/1999/xlink",or=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},yr=function(e){return or(e)?e.slice(6,e.length):""},br=function(e){return null==e||!1===e};function gr(e){for(var i=e.data,n=e,a=e;t(a.componentInstance);)(a=a.componentInstance._vnode)&&a.data&&(i=cr(a.data,i));for(;t(n=n.parent);)n&&n.data&&(i=cr(i,n.data));return function(e,i){if(t(e)||t(i))return Hr(e,pr(i));return""}(i.staticClass,i.class)}function cr(e,i){return{staticClass:Hr(e.staticClass,i.staticClass),class:t(e.class)?[e.class,i.class]:i.class}}function Hr(e,i){return e?i?e+" "+i:e:i||""}function pr(e){return Array.isArray(e)?function(e){for(var i,n="",a=0,r=e.length;a<r;a++)t(i=pr(e[a]))&&""!==i&&(n&&(n+=" "),n+=i);return n}(e):u(e)?function(e){var i="";for(var n in e)e[n]&&(i&&(i+=" "),i+=n);return i}(e):"string"==typeof e?e:""}var Sr={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},zr=S("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),hr=S("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Kr=function(e){return zr(e)||hr(e)};var vr=Object.create(null);var Ar=S("text,number,password,search,email,tel,url");var Tr=Object.freeze({__proto__:null,createElement:function(e,i){var n=document.createElement(e);return"select"!==e||i.data&&i.data.attrs&&void 0!==i.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n},createElementNS:function(e,i){return document.createElementNS(Sr[e],i)},createTextNode:function(e){return document.createTextNode(e)},createComment:function(e){return document.createComment(e)},insertBefore:function(e,i,n){e.insertBefore(i,n)},removeChild:function(e,i){e.removeChild(i)},appendChild:function(e,i){e.appendChild(i)},parentNode:function(e){return e.parentNode},nextSibling:function(e){return e.nextSibling},tagName:function(e){return e.tagName},setTextContent:function(e,i){e.textContent=i},setStyleScope:function(e,i){e.setAttribute(i,"")}}),fr={create:function(e,i){Br(i)},update:function(e,i){e.data.ref!==i.data.ref&&(Br(e,!0),Br(i))},destroy:function(e){Br(e,!0)}};function Br(e,i){var n=e.data.ref;if(t(n)){var a=e.context,l=e.componentInstance||e.elm,d=i?null:l,m=i?void 0:l;if(s(n))gn(n,a,[d],a,"template ref function");else{var u=e.data.refInFor,k="string"==typeof n||"number"==typeof n,o=je(n),y=a.$refs;if(k||o)if(u){var b=k?y[n]:n.value;i?r(b)&&h(b,l):r(b)?b.includes(l)||b.push(l):k?(y[n]=[l],Rr(a,n,y[n])):n.value=[l]}else if(k){if(i&&y[n]!==l)return;y[n]=m,Rr(a,n,d)}else if(o){if(i&&n.value!==l)return;n.value=d}else 0}}}function Rr(e,i,n){var a=e._setupState;a&&v(a,i)&&(je(a[i])?a[i].value=n:a[i]=n)}var Yr=new be("",{},[]),Nr=["create","activate","update","remove","destroy"];function Pr(e,i){return e.key===i.key&&e.asyncFactory===i.asyncFactory&&(e.tag===i.tag&&e.isComment===i.isComment&&t(e.data)===t(i.data)&&function(e,i){if("input"!==e.tag)return!0;var n,a=t(n=e.data)&&t(n=n.attrs)&&n.type,r=t(n=i.data)&&t(n=n.attrs)&&n.type;return a===r||Ar(a)&&Ar(r)}(e,i)||d(e.isAsyncPlaceholder)&&l(i.asyncFactory.error))}function Or(e,i,n){var a,r,l={};for(a=i;a<=n;++a)t(r=e[a].key)&&(l[r]=a);return l}var Dr={create:Ir,update:Ir,destroy:function(e){Ir(e,Yr)}};function Ir(e,i){(e.data.directives||i.data.directives)&&function(e,i){var n,a,r,l=e===Yr,t=i===Yr,d=Zr(e.data.directives,e.context),m=Zr(i.data.directives,i.context),s=[],u=[];for(n in m)a=d[n],r=m[n],a?(r.oldValue=a.value,r.oldArg=a.arg,Vr(r,"update",i,e),r.def&&r.def.componentUpdated&&u.push(r)):(Vr(r,"bind",i,e),r.def&&r.def.inserted&&s.push(r));if(s.length){var k=function(){for(var n=0;n<s.length;n++)Vr(s[n],"inserted",i,e)};l?Ri(i,"insert",k):k()}u.length&&Ri(i,"postpatch",(function(){for(var n=0;n<u.length;n++)Vr(u[n],"componentUpdated",i,e)}));if(!l)for(n in d)m[n]||Vr(d[n],"unbind",e,e,t)}(e,i)}var Er=Object.create(null);function Zr(e,i){var n,a,r=Object.create(null);if(!e)return r;for(n=0;n<e.length;n++){if((a=e[n]).modifiers||(a.modifiers=Er),r[Gr(a)]=a,i._setupState&&i._setupState.__sfc){var l=a.def||Za(i,"_setupState","v-"+a.name);a.def="function"==typeof l?{bind:l,update:l}:l}a.def=a.def||Za(i.$options,"directives",a.name)}return r}function Gr(e){return e.rawName||"".concat(e.name,".").concat(Object.keys(e.modifiers||{}).join("."))}function Vr(e,i,n,a,r){var l=e.def&&e.def[i];if(l)try{l(n.elm,e,n,a,r)}catch(a){bn(a,n.context,"directive ".concat(e.name," ").concat(i," hook"))}}var Cr=[fr,Dr];function Mr(e,i){var n=i.componentOptions;if(!(t(n)&&!1===n.Ctor.options.inheritAttrs||l(e.data.attrs)&&l(i.data.attrs))){var a,r,m=i.elm,s=e.data.attrs||{},u=i.data.attrs||{};for(a in(t(u.__ob__)||d(u._v_attr_proxy))&&(u=i.data.attrs=O({},u)),u)r=u[a],s[a]!==r&&Fr(m,a,r,i.data.pre);for(a in(W||Q)&&u.value!==s.value&&Fr(m,"value",u.value),s)l(u[a])&&(or(a)?m.removeAttributeNS(kr,yr(a)):mr(a)||m.removeAttribute(a))}}function Fr(e,i,n,a){a||e.tagName.indexOf("-")>-1?_r(e,i,n):ur(i)?br(n)?e.removeAttribute(i):(n="allowfullscreen"===i&&"EMBED"===e.tagName?"true":i,e.setAttribute(i,n)):mr(i)?e.setAttribute(i,function(e,i){return br(i)||"false"===i?"false":"contenteditable"===e&&sr(i)?i:"true"}(i,n)):or(i)?br(n)?e.removeAttributeNS(kr,yr(i)):e.setAttributeNS(kr,i,n):_r(e,i,n)}function _r(e,i,n){if(br(n))e.removeAttribute(i);else{if(W&&!q&&"TEXTAREA"===e.tagName&&"placeholder"===i&&""!==n&&!e.__ieph){var a=function(i){i.stopImmediatePropagation(),e.removeEventListener("input",a)};e.addEventListener("input",a),e.__ieph=!0}e.setAttribute(i,n)}}var Lr={create:Mr,update:Mr};function xr(e,i){var n=i.elm,a=i.data,r=e.data;if(!(l(a.staticClass)&&l(a.class)&&(l(r)||l(r.staticClass)&&l(r.class)))){var d=gr(i),m=n._transitionClasses;t(m)&&(d=Hr(d,pr(m))),d!==n._prevClass&&(n.setAttribute("class",d),n._prevClass=d)}}var Ur,jr={create:xr,update:xr};function wr(e,i,n){var a=Ur;return function r(){var l=i.apply(null,arguments);null!==l&&Xr(e,r,n,a)}}var $r=Sn&&!(ne&&Number(ne[1])<=53);function Jr(e,i,n,a){if($r){var r=ya,l=i;i=l._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=r||e.timeStamp<=0||e.target.ownerDocument!==document)return l.apply(this,arguments)}}Ur.addEventListener(e,i,re?{capture:n,passive:a}:n)}function Xr(e,i,n,a){(a||Ur).removeEventListener(e,i._wrapper||i,n)}function Wr(e,i){if(!l(e.data.on)||!l(i.data.on)){var n=i.data.on||{},a=e.data.on||{};Ur=i.elm||e.elm,function(e){if(t(e.__r)){var i=W?"change":"input";e[i]=[].concat(e.__r,e[i]||[]),delete e.__r}t(e.__c)&&(e.change=[].concat(e.__c,e.change||[]),delete e.__c)}(n),Bi(n,a,Jr,Xr,wr,i.context),Ur=void 0}}var qr,Qr={create:Wr,update:Wr,destroy:function(e){return Wr(e,Yr)}};function el(e,i){if(!l(e.data.domProps)||!l(i.data.domProps)){var n,a,r=i.elm,m=e.data.domProps||{},s=i.data.domProps||{};for(n in(t(s.__ob__)||d(s._v_attr_proxy))&&(s=i.data.domProps=O({},s)),m)n in s||(r[n]="");for(n in s){if(a=s[n],"textContent"===n||"innerHTML"===n){if(i.children&&(i.children.length=0),a===m[n])continue;1===r.childNodes.length&&r.removeChild(r.childNodes[0])}if("value"===n&&"PROGRESS"!==r.tagName){r._value=a;var u=l(a)?"":String(a);il(r,u)&&(r.value=u)}else if("innerHTML"===n&&hr(r.tagName)&&l(r.innerHTML)){(qr=qr||document.createElement("div")).innerHTML="<svg>".concat(a,"</svg>");for(var k=qr.firstChild;r.firstChild;)r.removeChild(r.firstChild);for(;k.firstChild;)r.appendChild(k.firstChild)}else if(a!==m[n])try{r[n]=a}catch(e){}}}}function il(e,i){return!e.composing&&("OPTION"===e.tagName||function(e,i){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==i}(e,i)||function(e,i){var n=e.value,a=e._vModifiers;if(t(a)){if(a.number)return p(n)!==p(i);if(a.trim)return n.trim()!==i.trim()}return n!==i}(e,i))}var nl={create:el,update:el},al=A((function(e){var i={},n=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach((function(e){if(e){var a=e.split(n);a.length>1&&(i[a[0].trim()]=a[1].trim())}})),i}));function rl(e){var i=ll(e.style);return e.staticStyle?O(e.staticStyle,i):i}function ll(e){return Array.isArray(e)?D(e):"string"==typeof e?al(e):e}var tl,dl=/^--/,ml=/\s*!important$/,sl=function(e,i,n){if(dl.test(i))e.style.setProperty(i,n);else if(ml.test(n))e.style.setProperty(Y(i),n.replace(ml,""),"important");else{var a=kl(i);if(Array.isArray(n))for(var r=0,l=n.length;r<l;r++)e.style[a]=n[r];else e.style[a]=n}},ul=["Webkit","Moz","ms"],kl=A((function(e){if(tl=tl||document.createElement("div").style,"filter"!==(e=f(e))&&e in tl)return e;for(var i=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<ul.length;n++){var a=ul[n]+i;if(a in tl)return a}}));function ol(e,i){var n=i.data,a=e.data;if(!(l(n.staticStyle)&&l(n.style)&&l(a.staticStyle)&&l(a.style))){var r,d,m=i.elm,s=a.staticStyle,u=a.normalizedStyle||a.style||{},k=s||u,o=ll(i.data.style)||{};i.data.normalizedStyle=t(o.__ob__)?O({},o):o;var y=function(e,i){var n,a={};if(i)for(var r=e;r.componentInstance;)(r=r.componentInstance._vnode)&&r.data&&(n=rl(r.data))&&O(a,n);(n=rl(e.data))&&O(a,n);for(var l=e;l=l.parent;)l.data&&(n=rl(l.data))&&O(a,n);return a}(i,!0);for(d in k)l(y[d])&&sl(m,d,"");for(d in y)r=y[d],sl(m,d,null==r?"":r)}}var yl={create:ol,update:ol},bl=/\s+/;function gl(e,i){if(i&&(i=i.trim()))if(e.classList)i.indexOf(" ")>-1?i.split(bl).forEach((function(i){return e.classList.add(i)})):e.classList.add(i);else{var n=" ".concat(e.getAttribute("class")||""," ");n.indexOf(" "+i+" ")<0&&e.setAttribute("class",(n+i).trim())}}function cl(e,i){if(i&&(i=i.trim()))if(e.classList)i.indexOf(" ")>-1?i.split(bl).forEach((function(i){return e.classList.remove(i)})):e.classList.remove(i),e.classList.length||e.removeAttribute("class");else{for(var n=" ".concat(e.getAttribute("class")||""," "),a=" "+i+" ";n.indexOf(a)>=0;)n=n.replace(a," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function Hl(e){if(e){if("object"==typeof e){var i={};return!1!==e.css&&O(i,pl(e.name||"v")),O(i,e),i}return"string"==typeof e?pl(e):void 0}}var pl=A((function(e){return{enterClass:"".concat(e,"-enter"),enterToClass:"".concat(e,"-enter-to"),enterActiveClass:"".concat(e,"-enter-active"),leaveClass:"".concat(e,"-leave"),leaveToClass:"".concat(e,"-leave-to"),leaveActiveClass:"".concat(e,"-leave-active")}})),Sl=J&&!q,zl="transition",hl="transitionend",Kl="animation",vl="animationend";Sl&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(zl="WebkitTransition",hl="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Kl="WebkitAnimation",vl="webkitAnimationEnd"));var Al=J?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Tl(e){Al((function(){Al(e)}))}function fl(e,i){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(i)<0&&(n.push(i),gl(e,i))}function Bl(e,i){e._transitionClasses&&h(e._transitionClasses,i),cl(e,i)}function Rl(e,i,n){var a=Nl(e,i),r=a.type,l=a.timeout,t=a.propCount;if(!r)return n();var d="transition"===r?hl:vl,m=0,s=function(){e.removeEventListener(d,u),n()},u=function(i){i.target===e&&++m>=t&&s()};setTimeout((function(){m<t&&s()}),l+1),e.addEventListener(d,u)}var Yl=/\b(transform|all)(,|$)/;function Nl(e,i){var n,a=window.getComputedStyle(e),r=(a[zl+"Delay"]||"").split(", "),l=(a[zl+"Duration"]||"").split(", "),t=Pl(r,l),d=(a[Kl+"Delay"]||"").split(", "),m=(a[Kl+"Duration"]||"").split(", "),s=Pl(d,m),u=0,k=0;return"transition"===i?t>0&&(n="transition",u=t,k=l.length):"animation"===i?s>0&&(n="animation",u=s,k=m.length):k=(n=(u=Math.max(t,s))>0?t>s?"transition":"animation":null)?"transition"===n?l.length:m.length:0,{type:n,timeout:u,propCount:k,hasTransform:"transition"===n&&Yl.test(a[zl+"Property"])}}function Pl(e,i){for(;e.length<i.length;)e=e.concat(e);return Math.max.apply(null,i.map((function(i,n){return Ol(i)+Ol(e[n])})))}function Ol(e){return 1e3*Number(e.slice(0,-1).replace(",","."))}function Dl(e,i){var n=e.elm;t(n._leaveCb)&&(n._leaveCb.cancelled=!0,n._leaveCb());var a=Hl(e.data.transition);if(!l(a)&&!t(n._enterCb)&&1===n.nodeType){for(var r=a.css,d=a.type,m=a.enterClass,k=a.enterToClass,o=a.enterActiveClass,y=a.appearClass,b=a.appearToClass,g=a.appearActiveClass,c=a.beforeEnter,H=a.enter,S=a.afterEnter,z=a.enterCancelled,h=a.beforeAppear,K=a.appear,v=a.afterAppear,A=a.appearCancelled,T=a.duration,f=na,B=na.$vnode;B&&B.parent;)f=B.context,B=B.parent;var R=!f._isMounted||!e.isRootInsert;if(!R||K||""===K){var Y=R&&y?y:m,N=R&&g?g:o,P=R&&b?b:k,O=R&&h||c,D=R&&s(K)?K:H,I=R&&v||S,E=R&&A||z,Z=p(u(T)?T.enter:T);0;var G=!1!==r&&!q,V=Zl(D),M=n._enterCb=C((function(){G&&(Bl(n,P),Bl(n,N)),M.cancelled?(G&&Bl(n,Y),E&&E(n)):I&&I(n),n._enterCb=null}));e.data.show||Ri(e,"insert",(function(){var i=n.parentNode,a=i&&i._pending&&i._pending[e.key];a&&a.tag===e.tag&&a.elm._leaveCb&&a.elm._leaveCb(),D&&D(n,M)})),O&&O(n),G&&(fl(n,Y),fl(n,N),Tl((function(){Bl(n,Y),M.cancelled||(fl(n,P),V||(El(Z)?setTimeout(M,Z):Rl(n,d,M)))}))),e.data.show&&(i&&i(),D&&D(n,M)),G||V||M()}}}function Il(e,i){var n=e.elm;t(n._enterCb)&&(n._enterCb.cancelled=!0,n._enterCb());var a=Hl(e.data.transition);if(l(a)||1!==n.nodeType)return i();if(!t(n._leaveCb)){var r=a.css,d=a.type,m=a.leaveClass,s=a.leaveToClass,k=a.leaveActiveClass,o=a.beforeLeave,y=a.leave,b=a.afterLeave,g=a.leaveCancelled,c=a.delayLeave,H=a.duration,S=!1!==r&&!q,z=Zl(y),h=p(u(H)?H.leave:H);0;var K=n._leaveCb=C((function(){n.parentNode&&n.parentNode._pending&&(n.parentNode._pending[e.key]=null),S&&(Bl(n,s),Bl(n,k)),K.cancelled?(S&&Bl(n,m),g&&g(n)):(i(),b&&b(n)),n._leaveCb=null}));c?c(v):v()}function v(){K.cancelled||(!e.data.show&&n.parentNode&&((n.parentNode._pending||(n.parentNode._pending={}))[e.key]=e),o&&o(n),S&&(fl(n,m),fl(n,k),Tl((function(){Bl(n,m),K.cancelled||(fl(n,s),z||(El(h)?setTimeout(K,h):Rl(n,d,K)))}))),y&&y(n,K),S||z||K())}}function El(e){return"number"==typeof e&&!isNaN(e)}function Zl(e){if(l(e))return!1;var i=e.fns;return t(i)?Zl(Array.isArray(i)?i[0]:i):(e._length||e.length)>1}function Gl(e,i){!0!==i.data.show&&Dl(i)}var Vl=function(e){var i,n,a={},s=e.modules,u=e.nodeOps;for(i=0;i<Nr.length;++i)for(a[Nr[i]]=[],n=0;n<s.length;++n)t(s[n][Nr[i]])&&a[Nr[i]].push(s[n][Nr[i]]);function k(e){var i=u.parentNode(e);t(i)&&u.removeChild(i,e)}function o(e,i,n,r,l,m,s){if(t(e.elm)&&t(m)&&(e=m[s]=He(e)),e.isRootInsert=!l,!function(e,i,n,r){var l=e.data;if(t(l)){var m=t(e.componentInstance)&&l.keepAlive;if(t(l=l.hook)&&t(l=l.init)&&l(e,!1),t(e.componentInstance))return y(e,i),b(n,e.elm,r),d(m)&&function(e,i,n,r){var l,d=e;for(;d.componentInstance;)if(d=d.componentInstance._vnode,t(l=d.data)&&t(l=l.transition)){for(l=0;l<a.activate.length;++l)a.activate[l](Yr,d);i.push(d);break}b(n,e.elm,r)}(e,i,n,r),!0}}(e,i,n,r)){var k=e.data,o=e.children,c=e.tag;t(c)?(e.elm=e.ns?u.createElementNS(e.ns,c):u.createElement(c,e),p(e),g(e,o,i),t(k)&&H(e,i),b(n,e.elm,r)):d(e.isComment)?(e.elm=u.createComment(e.text),b(n,e.elm,r)):(e.elm=u.createTextNode(e.text),b(n,e.elm,r))}}function y(e,i){t(e.data.pendingInsert)&&(i.push.apply(i,e.data.pendingInsert),e.data.pendingInsert=null),e.elm=e.componentInstance.$el,c(e)?(H(e,i),p(e)):(Br(e),i.push(e))}function b(e,i,n){t(e)&&(t(n)?u.parentNode(n)===e&&u.insertBefore(e,i,n):u.appendChild(e,i))}function g(e,i,n){if(r(i)){0;for(var a=0;a<i.length;++a)o(i[a],n,e.elm,null,!0,i,a)}else m(e.text)&&u.appendChild(e.elm,u.createTextNode(String(e.text)))}function c(e){for(;e.componentInstance;)e=e.componentInstance._vnode;return t(e.tag)}function H(e,n){for(var r=0;r<a.create.length;++r)a.create[r](Yr,e);t(i=e.data.hook)&&(t(i.create)&&i.create(Yr,e),t(i.insert)&&n.push(e))}function p(e){var i;if(t(i=e.fnScopeId))u.setStyleScope(e.elm,i);else for(var n=e;n;)t(i=n.context)&&t(i=i.$options._scopeId)&&u.setStyleScope(e.elm,i),n=n.parent;t(i=na)&&i!==e.context&&i!==e.fnContext&&t(i=i.$options._scopeId)&&u.setStyleScope(e.elm,i)}function z(e,i,n,a,r,l){for(;a<=r;++a)o(n[a],l,e,i,!1,n,a)}function h(e){var i,n,r=e.data;if(t(r))for(t(i=r.hook)&&t(i=i.destroy)&&i(e),i=0;i<a.destroy.length;++i)a.destroy[i](e);if(t(i=e.children))for(n=0;n<e.children.length;++n)h(e.children[n])}function K(e,i,n){for(;i<=n;++i){var a=e[i];t(a)&&(t(a.tag)?(v(a),h(a)):k(a.elm))}}function v(e,i){if(t(i)||t(e.data)){var n,r=a.remove.length+1;for(t(i)?i.listeners+=r:i=function(e,i){function n(){0==--n.listeners&&k(e)}return n.listeners=i,n}(e.elm,r),t(n=e.componentInstance)&&t(n=n._vnode)&&t(n.data)&&v(n,i),n=0;n<a.remove.length;++n)a.remove[n](e,i);t(n=e.data.hook)&&t(n=n.remove)?n(e,i):i()}else k(e.elm)}function A(e,i,n,a){for(var r=n;r<a;r++){var l=i[r];if(t(l)&&Pr(e,l))return r}}function T(e,i,n,r,m,s){if(e!==i){t(i.elm)&&t(r)&&(i=r[m]=He(i));var k=i.elm=e.elm;if(d(e.isAsyncPlaceholder))t(i.asyncFactory.resolved)?R(e.elm,i,n):i.isAsyncPlaceholder=!0;else if(d(i.isStatic)&&d(e.isStatic)&&i.key===e.key&&(d(i.isCloned)||d(i.isOnce)))i.componentInstance=e.componentInstance;else{var y,b=i.data;t(b)&&t(y=b.hook)&&t(y=y.prepatch)&&y(e,i);var g=e.children,H=i.children;if(t(b)&&c(i)){for(y=0;y<a.update.length;++y)a.update[y](e,i);t(y=b.hook)&&t(y=y.update)&&y(e,i)}l(i.text)?t(g)&&t(H)?g!==H&&function(e,i,n,a,r){var d,m,s,k=0,y=0,b=i.length-1,g=i[0],c=i[b],H=n.length-1,p=n[0],S=n[H],h=!r;for(0;k<=b&&y<=H;)l(g)?g=i[++k]:l(c)?c=i[--b]:Pr(g,p)?(T(g,p,a,n,y),g=i[++k],p=n[++y]):Pr(c,S)?(T(c,S,a,n,H),c=i[--b],S=n[--H]):Pr(g,S)?(T(g,S,a,n,H),h&&u.insertBefore(e,g.elm,u.nextSibling(c.elm)),g=i[++k],S=n[--H]):Pr(c,p)?(T(c,p,a,n,y),h&&u.insertBefore(e,c.elm,g.elm),c=i[--b],p=n[++y]):(l(d)&&(d=Or(i,k,b)),l(m=t(p.key)?d[p.key]:A(p,i,k,b))?o(p,a,e,g.elm,!1,n,y):Pr(s=i[m],p)?(T(s,p,a,n,y),i[m]=void 0,h&&u.insertBefore(e,s.elm,g.elm)):o(p,a,e,g.elm,!1,n,y),p=n[++y]);k>b?z(e,l(n[H+1])?null:n[H+1].elm,n,y,H,a):y>H&&K(i,k,b)}(k,g,H,n,s):t(H)?(t(e.text)&&u.setTextContent(k,""),z(k,null,H,0,H.length-1,n)):t(g)?K(g,0,g.length-1):t(e.text)&&u.setTextContent(k,""):e.text!==i.text&&u.setTextContent(k,i.text),t(b)&&t(y=b.hook)&&t(y=y.postpatch)&&y(e,i)}}}function f(e,i,n){if(d(n)&&t(e.parent))e.parent.data.pendingInsert=i;else for(var a=0;a<i.length;++a)i[a].data.hook.insert(i[a])}var B=S("attrs,class,staticClass,staticStyle,key");function R(e,i,n,a){var r,l=i.tag,m=i.data,s=i.children;if(a=a||m&&m.pre,i.elm=e,d(i.isComment)&&t(i.asyncFactory))return i.isAsyncPlaceholder=!0,!0;if(t(m)&&(t(r=m.hook)&&t(r=r.init)&&r(i,!0),t(r=i.componentInstance)))return y(i,n),!0;if(t(l)){if(t(s))if(e.hasChildNodes())if(t(r=m)&&t(r=r.domProps)&&t(r=r.innerHTML)){if(r!==e.innerHTML)return!1}else{for(var u=!0,k=e.firstChild,o=0;o<s.length;o++){if(!k||!R(k,s[o],n,a)){u=!1;break}k=k.nextSibling}if(!u||k)return!1}else g(i,s,n);if(t(m)){var b=!1;for(var c in m)if(!B(c)){b=!0,H(i,n);break}!b&&m.class&&$n(m.class)}}else e.data!==i.text&&(e.data=i.text);return!0}return function(e,i,n,r){if(!l(i)){var m,s=!1,k=[];if(l(e))s=!0,o(i,k);else{var y=t(e.nodeType);if(!y&&Pr(e,i))T(e,i,k,null,null,r);else{if(y){if(1===e.nodeType&&e.hasAttribute("data-server-rendered")&&(e.removeAttribute("data-server-rendered"),n=!0),d(n)&&R(e,i,k))return f(i,k,!0),e;m=e,e=new be(u.tagName(m).toLowerCase(),{},[],void 0,m)}var b=e.elm,g=u.parentNode(b);if(o(i,k,b._leaveCb?null:g,u.nextSibling(b)),t(i.parent))for(var H=i.parent,p=c(i);H;){for(var S=0;S<a.destroy.length;++S)a.destroy[S](H);if(H.elm=i.elm,p){for(var z=0;z<a.create.length;++z)a.create[z](Yr,H);var v=H.data.hook.insert;if(v.merged)for(var A=v.fns.slice(1),B=0;B<A.length;B++)A[B]()}else Br(H);H=H.parent}t(g)?K([e],0,0):t(e.tag)&&h(e)}}return f(i,k,s),i.elm}t(e)&&h(e)}}({nodeOps:Tr,modules:[Lr,jr,Qr,nl,yl,J?{create:Gl,activate:Gl,remove:function(e,i){!0!==e.data.show?Il(e,i):i()}}:{}].concat(Cr)});q&&document.addEventListener("selectionchange",(function(){var e=document.activeElement;e&&e.vmodel&&jl(e,"input")}));var Cl={inserted:function(e,i,n,a){"select"===n.tag?(a.elm&&!a.elm._vOptions?Ri(n,"postpatch",(function(){Cl.componentUpdated(e,i,n)})):Ml(e,i,n.context),e._vOptions=[].map.call(e.options,Ll)):("textarea"===n.tag||Ar(e.type))&&(e._vModifiers=i.modifiers,i.modifiers.lazy||(e.addEventListener("compositionstart",xl),e.addEventListener("compositionend",Ul),e.addEventListener("change",Ul),q&&(e.vmodel=!0)))},componentUpdated:function(e,i,n){if("select"===n.tag){Ml(e,i,n.context);var a=e._vOptions,r=e._vOptions=[].map.call(e.options,Ll);if(r.some((function(e,i){return!G(e,a[i])})))(e.multiple?i.value.some((function(e){return _l(e,r)})):i.value!==i.oldValue&&_l(i.value,r))&&jl(e,"change")}}};function Ml(e,i,n){Fl(e,i,n),(W||Q)&&setTimeout((function(){Fl(e,i,n)}),0)}function Fl(e,i,n){var a=i.value,r=e.multiple;if(!r||Array.isArray(a)){for(var l,t,d=0,m=e.options.length;d<m;d++)if(t=e.options[d],r)l=V(a,Ll(t))>-1,t.selected!==l&&(t.selected=l);else if(G(Ll(t),a))return void(e.selectedIndex!==d&&(e.selectedIndex=d));r||(e.selectedIndex=-1)}}function _l(e,i){return i.every((function(i){return!G(i,e)}))}function Ll(e){return"_value"in e?e._value:e.value}function xl(e){e.target.composing=!0}function Ul(e){e.target.composing&&(e.target.composing=!1,jl(e.target,"input"))}function jl(e,i){var n=document.createEvent("HTMLEvents");n.initEvent(i,!0,!0),e.dispatchEvent(n)}function wl(e){return!e.componentInstance||e.data&&e.data.transition?e:wl(e.componentInstance._vnode)}var $l={model:Cl,show:{bind:function(e,i,n){var a=i.value,r=(n=wl(n)).data&&n.data.transition,l=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;a&&r?(n.data.show=!0,Dl(n,(function(){e.style.display=l}))):e.style.display=a?l:"none"},update:function(e,i,n){var a=i.value;!a!=!i.oldValue&&((n=wl(n)).data&&n.data.transition?(n.data.show=!0,a?Dl(n,(function(){e.style.display=e.__vOriginalDisplay})):Il(n,(function(){e.style.display="none"}))):e.style.display=a?e.__vOriginalDisplay:"none")},unbind:function(e,i,n,a,r){r||(e.style.display=e.__vOriginalDisplay)}}},Jl={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Xl(e){var i=e&&e.componentOptions;return i&&i.Ctor.options.abstract?Xl(kn(i.children)):e}function Wl(e){var i={},n=e.$options;for(var a in n.propsData)i[a]=e[a];var r=n._parentListeners;for(var a in r)i[f(a)]=r[a];return i}function ql(e,i){if(/\d-keep-alive$/.test(i.tag))return e("keep-alive",{props:i.componentOptions.propsData})}var Ql=function(e){return e.tag||Ji(e)},et=function(e){return"show"===e.name},it={name:"transition",props:Jl,abstract:!0,render:function(e){var i=this,n=this.$slots.default;if(n&&(n=n.filter(Ql)).length){0;var a=this.mode;0;var r=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return r;var l=Xl(r);if(!l)return r;if(this._leaving)return ql(e,r);var t="__transition-".concat(this._uid,"-");l.key=null==l.key?l.isComment?t+"comment":t+l.tag:m(l.key)?0===String(l.key).indexOf(t)?l.key:t+l.key:l.key;var d=(l.data||(l.data={})).transition=Wl(this),s=this._vnode,u=Xl(s);if(l.data.directives&&l.data.directives.some(et)&&(l.data.show=!0),u&&u.data&&!function(e,i){return i.key===e.key&&i.tag===e.tag}(l,u)&&!Ji(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var k=u.data.transition=O({},d);if("out-in"===a)return this._leaving=!0,Ri(k,"afterLeave",(function(){i._leaving=!1,i.$forceUpdate()})),ql(e,r);if("in-out"===a){if(Ji(l))return s;var o,y=function(){o()};Ri(d,"afterEnter",y),Ri(d,"enterCancelled",y),Ri(k,"delayLeave",(function(e){o=e}))}}return r}}},nt=O({tag:String,moveClass:String},Jl);function at(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function rt(e){e.data.newPos=e.elm.getBoundingClientRect()}function lt(e){var i=e.data.pos,n=e.data.newPos,a=i.left-n.left,r=i.top-n.top;if(a||r){e.data.moved=!0;var l=e.elm.style;l.transform=l.WebkitTransform="translate(".concat(a,"px,").concat(r,"px)"),l.transitionDuration="0s"}}delete nt.mode;var tt={Transition:it,TransitionGroup:{props:nt,beforeMount:function(){var e=this,i=this._update;this._update=function(n,a){var r=aa(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,r(),i.call(e,n,a)}},render:function(e){for(var i=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),a=this.prevChildren=this.children,r=this.$slots.default||[],l=this.children=[],t=Wl(this),d=0;d<r.length;d++){if((u=r[d]).tag)if(null!=u.key&&0!==String(u.key).indexOf("__vlist"))l.push(u),n[u.key]=u,(u.data||(u.data={})).transition=t;else;}if(a){var m=[],s=[];for(d=0;d<a.length;d++){var u;(u=a[d]).data.transition=t,u.data.pos=u.elm.getBoundingClientRect(),n[u.key]?m.push(u):s.push(u)}this.kept=e(i,null,m),this.removed=s}return e(i,null,l)},updated:function(){var e=this.prevChildren,i=this.moveClass||(this.name||"v")+"-move";e.length&&this.hasMove(e[0].elm,i)&&(e.forEach(at),e.forEach(rt),e.forEach(lt),this._reflow=document.body.offsetHeight,e.forEach((function(e){if(e.data.moved){var n=e.elm,a=n.style;fl(n,i),a.transform=a.WebkitTransform=a.transitionDuration="",n.addEventListener(hl,n._moveCb=function e(a){a&&a.target!==n||a&&!/transform$/.test(a.propertyName)||(n.removeEventListener(hl,e),n._moveCb=null,Bl(n,i))})}})))},methods:{hasMove:function(e,i){if(!Sl)return!1;if(this._hasMove)return this._hasMove;var n=e.cloneNode();
7e._transitionClasses&&e._transitionClasses.forEach((function(e){cl(n,e)})),gl(n,i),n.style.display="none",this.$el.appendChild(n);var a=Nl(n);return this.$el.removeChild(n),this._hasMove=a.hasTransform}}}};qa.config.mustUseProp=function(e,i,n){return"value"===n&&dr(e)&&"button"!==i||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},qa.config.isReservedTag=Kr,qa.config.isReservedAttr=tr,qa.config.getTagNamespace=function(e){return hr(e)?"svg":"math"===e?"math":void 0},qa.config.isUnknownElement=function(e){if(!J)return!0;if(Kr(e))return!1;if(e=e.toLowerCase(),null!=vr[e])return vr[e];var i=document.createElement(e);return e.indexOf("-")>-1?vr[e]=i.constructor===window.HTMLUnknownElement||i.constructor===window.HTMLElement:vr[e]=/HTMLUnknownElement/.test(i.toString())},O(qa.options.directives,$l),O(qa.options.components,tt),qa.prototype.__patch__=J?Vl:I,qa.prototype.$mount=function(e,i){return function(e,i,n){var a;e.$el=i,e.$options.render||(e.$options.render=ge),ta(e,"beforeMount"),a=function(){e._update(e._render(),n)},new Wn(e,a,I,{before:function(){e._isMounted&&!e._isDestroyed&&ta(e,"beforeUpdate")}},!0),n=!1;var r=e._preWatchers;if(r)for(var l=0;l<r.length;l++)r[l].run();return null==e.$vnode&&(e._isMounted=!0,ta(e,"mounted")),e}(this,e=e&&J?function(e){if("string"==typeof e){var i=document.querySelector(e);return i||document.createElement("div")}return e}(e):void 0,i)},J&&setTimeout((function(){L.devtools&&de&&de.emit("init",qa)}),0)},function(e,i,n){"use strict";e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,i,n){"use strict";var a="object"==typeof document&&document.all;e.exports=void 0===a&&void 0!==a?function(e){return"function"==typeof e||e===a}:function(e){return"function"==typeof e}},function(e,i,n){"use strict";var a=function(e){return e&&e.Math===Math&&e};e.exports=a("object"==typeof globalThis&&globalThis)||a("object"==typeof window&&window)||a("object"==typeof self&&self)||a("object"==typeof global&&global)||a("object"==typeof this&&this)||function(){return this}()||Function("return this")()},function(e,i,n){"use strict";var a=n(36),r=Function.prototype,l=r.call,t=a&&r.bind.bind(l,l);e.exports=a?t:function(e){return function(){return l.apply(e,arguments)}}},function(e,i,n){"use strict";var a=n(9),r=String,l=TypeError;e.exports=function(e){if(a(e))return e;throw new l(r(e)+" is not an object")}},function(e,i,n){"use strict";var a=n(36),r=Function.prototype.call;e.exports=a?r.bind(r):function(){return r.apply(r,arguments)}},function(e,i,n){"use strict";var a=n(1);e.exports=!a((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(e,i,n){"use strict";var a=n(4),r=n(33),l=a({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,i){return l(r(e),i)}},function(e,i,n){"use strict";var a=n(2);e.exports=function(e){return"object"==typeof e?null!==e:a(e)}},function(e,i,n){"use strict";var a=n(3),r=n(83).f,l=n(21),t=n(45),d=n(55),m=n(74),s=n(156);e.exports=function(e,i){var n,u,k,o,y,b=e.target,g=e.global,c=e.stat;if(n=g?a:c?a[b]||d(b,{}):a[b]&&a[b].prototype)for(u in i){if(o=i[u],k=e.dontCallGetSet?(y=r(n,u))&&y.value:n[u],!s(g?u:b+(c?".":"#")+u,e.forced)&&void 0!==k){if(typeof o==typeof k)continue;m(o,k)}(e.sham||k&&k.sham)&&l(o,"sham",!0),t(n,u,o,e)}}},function(e,i,n){"use strict";var a=n(2),r=n(49),l=TypeError;e.exports=function(e){if(a(e))return e;throw new l(r(e)+" is not a function")}},function(e,i,n){"use strict";var a=n(6),r=n(5),l=n(35);e.exports=function(e,i,n){var t,d;r(e);try{if(!(t=l(e,"return"))){if("throw"===i)throw n;return n}t=a(t,e)}catch(e){d=!0,t=e}if("throw"===i)throw n;if(d)throw t;return r(t),n}},function(e,i){var n=Array.isArray;e.exports=n},function(e,i,n){var a=n(97),r="object"==typeof self&&self&&self.Object===Object&&self,l=a||r||Function("return this")();e.exports=l},function(e,i,n){"use strict";var a=n(3),r=n(87),l=n(8),t=n(50),d=n(48),m=n(85),s=a.Symbol,u=r("wks"),k=m?s.for||s:s&&s.withoutSetter||t;e.exports=function(e){return l(u,e)||(u[e]=d&&l(s,e)?s[e]:k("Symbol."+e)),u[e]}},function(e,i,n){"use strict";var a=n(10),r=n(3),l=n(134),t=n(5),d=n(2),m=n(72),s=n(121),u=n(127),k=n(1),o=n(8),y=n(15),b=n(94).IteratorPrototype,g=n(7),c=n(20),H=y("toStringTag"),p=TypeError,S=r.Iterator,z=c||!d(S)||S.prototype!==b||!k((function(){S({})})),h=function(){if(l(this,b),m(this)===b)throw new p("Abstract class Iterator not directly constructable")},K=function(e,i){g?s(b,e,{configurable:!0,get:function(){return i},set:function(i){if(t(this),this===b)throw new p("You can't redefine this property");o(this,e)?this[e]=i:u(this,e,i)}}):b[e]=i};o(b,H)||K(H,"Iterator"),!z&&o(b,"constructor")&&b.constructor!==Object||K("constructor",h),h.prototype=b,a({global:!0,constructor:!0,forced:z},{Iterator:h})},function(e,i,n){"use strict";var a=n(7),r=n(88),l=n(90),t=n(5),d=n(84),m=TypeError,s=Object.defineProperty,u=Object.getOwnPropertyDescriptor;i.f=a?l?function(e,i,n){if(t(e),i=d(i),t(n),"function"==typeof e&&"prototype"===i&&"value"in n&&"writable"in n&&!n.writable){var a=u(e,i);
7a&&a.writable&&(e[i]=n.value,n={configurable:"configurable"in n?n.configurable:a.configurable,enumerable:"enumerable"in n?n.enumerable:a.enumerable,writable:!1})}return s(e,i,n)}:s:function(e,i,n){if(t(e),i=d(i),t(n),r)try{return s(e,i,n)}catch(e){}if("get"in n||"set"in n)throw new m("Accessors not supported");return"value"in n&&(e[i]=n.value),e}},function(e,i,n){"use strict";var a=n(4),r=a({}.toString),l=a("".slice);e.exports=function(e){return l(r(e),8,-1)}},function(e,i,n){var a=n(199),r=n(202);e.exports=function(e,i){var n=r(e,i);return a(n)?n:void 0}},function(e,i,n){"use strict";e.exports=!1},function(e,i,n){"use strict";var a=n(7),r=n(17),l=n(34);e.exports=a?function(e,i,n){return r.f(e,i,l(1,n))}:function(e,i,n){return e[i]=n,e}},function(e,i){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,i,n){"use strict";e.exports=function(e){return{iterator:e,next:e.next,done:!1}}},function(e,i,n){"use strict";var a=n(10),r=n(6),l=n(11),t=n(5),d=n(23),m=n(75),s=n(95),u=n(20),k=n(12),o=n(76),y=n(26),b=!u&&!o("filter",(function(){})),g=!u&&!b&&y("filter",TypeError),c=u||b||g,H=m((function(){for(var e,i,n=this.iterator,a=this.predicate,l=this.next;;){if(e=t(r(l,n)),this.done=!!e.done)return;if(i=e.value,s(n,a,[i,this.counter++],!0))return i}}));a({target:"Iterator",proto:!0,real:!0,forced:c},{filter:function(e){t(this);try{l(e)}catch(e){k(this,"throw",e)}return g?r(g,this,e):new H(d(this),{predicate:e})}})},function(e,i,n){"use strict";var a=n(3),r=n(2),l=function(e){return r(e)?e:void 0};e.exports=function(e,i){return arguments.length<2?l(a[e]):a[e]&&a[e][i]}},function(e,i,n){"use strict";var a=n(3);e.exports=function(e,i){var n=a.Iterator,r=n&&n.prototype,l=r&&r[e],t=!1;if(l)try{l.call({next:function(){return{done:!0}},return:function(){t=!0}},-1)}catch(e){e instanceof i||(t=!1)}if(!t)return l}},function(e,i,n){var a=n(28),r=n(184),l=n(185),t=a?a.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":t&&t in Object(e)?r(e):l(e)}},function(e,i,n){var a=n(14).Symbol;e.exports=a},function(e,i,n){"use strict";function a(e,i,n,a,r,l,t,d){var m,s="function"==typeof e?e.options:e;if(i&&(s.render=i,s.staticRenderFns=n,s._compiled=!0),a&&(s.functional=!0),l&&(s._scopeId="data-v-"+l),t?(m=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(t)},s._ssrRegister=m):r&&(m=d?function(){r.call(this,(s.functional?this.parent:this).$root.$options.shadowRoot)}:r),m)if(s.functional){s._injectStyles=m;var u=s.render;s.render=function(e,i){return m.call(i),u(e,i)}}else{var k=s.beforeCreate;s.beforeCreate=k?[].concat(k,m):[m]}return{exports:e,options:s}}n.d(i,"a",(function(){return a}))},function(e,i,n){"use strict";var a=n(133);e.exports=function(e){return a(e.length)}},function(e,i,n){"use strict";var a=n(10),r=n(6),l=n(11),t=n(5),d=n(23),m=n(75),s=n(95),u=n(12),k=n(76),o=n(26),y=n(20),b=!y&&!k("map",(function(){})),g=!y&&!b&&o("map",TypeError),c=y||b||g,H=m((function(){var e=this.iterator,i=t(r(this.next,e));if(!(this.done=!!i.done))return s(e,this.mapper,[i.value,this.counter++],!0)}));a({target:"Iterator",proto:!0,real:!0,forced:c},{map:function(e){t(this);try{l(e)}catch(e){u(this,"throw",e)}return g?r(g,this,e):new H(d(this),{mapper:e})}})},function(e,i,n){"use strict";var a=n(4);e.exports=a({}.isPrototypeOf)},function(e,i,n){"use strict";var a=n(47),r=Object;e.exports=function(e){return r(a(e))}},function(e,i,n){"use strict";e.exports=function(e,i){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:i}}},function(e,i,n){"use strict";var a=n(11),r=n(52);e.exports=function(e,i){var n=e[i];return r(n)?void 0:a(n)}},function(e,i,n){"use strict";var a=n(1);e.exports=!a((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))},function(e,i,n){"use strict";var a=n(77),r=n(47);e.exports=function(e){return a(r(e))}},function(e,i,n){var a=n(189),r=n(190),l=n(191),t=n(192),d=n(193);function m(e){var i=-1,n=null==e?0:e.length;for(this.clear();++i<n;){var a=e[i];this.set(a[0],a[1])}}m.prototype.clear=a,m.prototype.delete=r,m.prototype.get=l,m.prototype.has=t,m.prototype.set=d,e.exports=m},function(e,i,n){var a=n(99);e.exports=function(e,i){for(var n=e.length;n--;)if(a(e[n][0],i))return n;return-1}},function(e,i,n){var a=n(19)(Object,"create");e.exports=a},function(e,i,n){var a=n(211);e.exports=function(e,i){var n=e.__data__;return a(i)?n["string"==typeof i?"string":"hash"]:n.map}},function(e,i,n){var a=n(66);e.exports=function(e){if("string"==typeof e||a(e))return e;var i=e+"";return"0"==i&&1/e==-1/0?"-0":i}},function(e,i,n){var a,r;
8/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
9 * @license MIT */void 0===(r="function"==typeof(a=function(){var e,i,n={version:"0.2.0"},a=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function r(e,i,n){return e<i?i:e>n?n:e}function l(e){return 100*(-1+e)}n.configure=function(e){var i,n;for(i in e)void 0!==(n=e[i])&&e.hasOwnProperty(i)&&(a[i]=n);return this}
9,n.status=null,n.set=function(e){var i=n.isStarted();e=r(e,a.minimum,1),n.status=1===e?null:e;var m=n.render(!i),s=m.querySelector(a.barSelector),u=a.speed,k=a.easing;return m.offsetWidth,t((function(i){""===a.positionUsing&&(a.positionUsing=n.getPositioningCSS()),d(s,function(e,i,n){var r;return(r="translate3d"===a.positionUsing?{transform:"translate3d("+l(e)+"%,0,0)"}:"translate"===a.positionUsing?{transform:"translate("+l(e)+"%,0)"}:{"margin-left":l(e)+"%"}).transition="all "+i+"ms "+n,r}(e,u,k)),1===e?(d(m,{transition:"none",opacity:1}),m.offsetWidth,setTimeout((function(){d(m,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),i()}),u)}),u)):setTimeout(i,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),a.trickleSpeed)};return a.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var i=n.status;return i?("number"!=typeof e&&(e=(1-i)*r(Math.random()*i,.1,.95)),i=r(i+e,0,.994),n.set(i)):n.start()},n.trickle=function(){return n.inc(Math.random()*a.trickleRate)},e=0,i=0,n.promise=function(a){return a&&"resolved"!==a.state()?(0===i&&n.start(),e++,i++,a.always((function(){0==--i?(e=0,n.done()):n.set((e-i)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");s(document.documentElement,"nprogress-busy");var i=document.createElement("div");i.id="nprogress",i.innerHTML=a.template;var r,t=i.querySelector(a.barSelector),m=e?"-100":l(n.status||0),u=document.querySelector(a.parent);return d(t,{transition:"all 0 linear",transform:"translate3d("+m+"%,0,0)"}),a.showSpinner||(r=i.querySelector(a.spinnerSelector))&&o(r),u!=document.body&&s(u,"nprogress-custom-parent"),u.appendChild(i),i},n.remove=function(){u(document.documentElement,"nprogress-busy"),u(document.querySelector(a.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&o(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,i="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return i+"Perspective"in e?"translate3d":i+"Transform"in e?"translate":"margin"};var t=function(){var e=[];function i(){var n=e.shift();n&&n(i)}return function(n){e.push(n),1==e.length&&i()}}(),d=function(){var e=["Webkit","O","Moz","ms"],i={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,i){return i.toUpperCase()})),i[n]||(i[n]=function(i){var n=document.body.style;if(i in n)return i;for(var a,r=e.length,l=i.charAt(0).toUpperCase()+i.slice(1);r--;)if((a=e[r]+l)in n)return a;return i}(n))}function a(e,i,a){i=n(i),e.style[i]=a}return function(e,i){var n,r,l=arguments;if(2==l.length)for(n in i)void 0!==(r=i[n])&&i.hasOwnProperty(n)&&a(e,n,r);else a(e,l[1],l[2])}}();function m(e,i){return("string"==typeof e?e:k(e)).indexOf(" "+i+" ")>=0}function s(e,i){var n=k(e),a=n+i;m(n,i)||(e.className=a.substring(1))}function u(e,i){var n,a=k(e);m(e,i)&&(n=a.replace(" "+i+" "," "),e.className=n.substring(1,n.length-1))}function k(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function o(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n})?a.call(i,n,i,e):a)||(e.exports=r)},function(e,i,n){"use strict";var a=n(137),r=n(6),l=n(5),t=n(49),d=n(168),m=n(30),s=n(32),u=n(170),k=n(79),o=n(12),y=TypeError,b=function(e,i){this.stopped=e,this.result=i},g=b.prototype;e.exports=function(e,i,n){var c,H,p,S,z,h,K,v=n&&n.that,A=!(!n||!n.AS_ENTRIES),T=!(!n||!n.IS_RECORD),f=!(!n||!n.IS_ITERATOR),B=!(!n||!n.INTERRUPTED),R=a(i,v),Y=function(e){var i=c;return c=void 0,i&&o(i,"normal"),new b(!0,e)},N=function(e){return A?(l(e),B?R(e[0],e[1],Y):R(e[0],e[1])):B?R(e,Y):R(e)};if(T)c=e.iterator;else if(f)c=e;else{if(!(H=k(e)))throw new y(t(e)+" is not iterable");if(d(H)){for(p=0,S=m(e);S>p;p++)if((z=N(e[p]))&&s(g,z))return z;return new b(!1)}c=u(e,H)}for(h=T?e.next:c.next;!(K=r(h,c)).done;){var P=K.value;try{z=N(P)}catch(e){if(!c)throw e;o(c,"throw",e)}if("object"==typeof z&&z&&s(g,z))return z}return new b(!1)}},function(e,i,n){"use strict";var a=n(2),r=n(17),l=n(91),t=n(55);e.exports=function(e,i,n,d){d||(d={});var m=d.enumerable,s=void 0!==d.name?d.name:i;if(a(n)&&l(n,s,d),d.global)m?e[i]=n:t(i,n);else{try{d.unsafe?e[i]&&(m=!0):delete e[i]}catch(e){}
9m?e[i]=n:r.f(e,i,{value:n,enumerable:!1,configurable:!d.nonConfigurable,writable:!d.nonWritable})}return e}},function(e,i,n){"use strict";var a,r=n(5),l=n(158),t=n(58),d=n(57),m=n(160),s=n(89),u=n(56),k=u("IE_PROTO"),o=function(){},y=function(e){return"<script>"+e+"<\/script>"},b=function(e){e.write(y("")),e.close();var i=e.parentWindow.Object;return e=null,i},g=function(){try{a=new ActiveXObject("htmlfile")}catch(e){}var e,i;g="undefined"!=typeof document?document.domain&&a?b(a):((i=s("iframe")).style.display="none",m.appendChild(i),i.src=String("javascript:"),(e=i.contentWindow.document).open(),e.write(y("document.F=Object")),e.close(),e.F):b(a);for(var n=t.length;n--;)delete g.prototype[t[n]];return g()};d[k]=!0,e.exports=Object.create||function(e,i){var n;return null!==e?(o.prototype=r(e),n=new o,o.prototype=null,n[k]=e):n=g(),void 0===i?n:l.f(n,i)}},function(e,i,n){"use strict";var a=n(52),r=TypeError;e.exports=function(e){if(a(e))throw new r("Can't call method on "+e);return e}},function(e,i,n){"use strict";var a=n(78),r=n(1),l=n(3).String;e.exports=!!Object.getOwnPropertySymbols&&!r((function(){var e=Symbol("symbol detection");return!l(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&a&&a<41}))},function(e,i,n){"use strict";var a=String;e.exports=function(e){try{return a(e)}catch(e){return"Object"}}},function(e,i,n){"use strict";var a=n(4),r=0,l=Math.random(),t=a(1.1.toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+t(++r+l,36)}},function(e,i,n){"use strict";var a,r,l,t=n(150),d=n(3),m=n(9),s=n(21),u=n(8),k=n(54),o=n(56),y=n(57),b=d.TypeError,g=d.WeakMap;if(t||k.state){var c=k.state||(k.state=new g);
9c.get=c.get,c.has=c.has,c.set=c.set,a=function(e,i){if(c.has(e))throw new b("Object already initialized");return i.facade=e,c.set(e,i),i},r=function(e){return c.get(e)||{}},l=function(e){return c.has(e)}}else{var H=o("state");y[H]=!0,a=function(e,i){if(u(e,H))throw new b("Object already initialized");return i.facade=e,s(e,H,i),i},r=function(e){return u(e,H)?e[H]:{}},l=function(e){return u(e,H)}}e.exports={set:a,get:r,has:l,enforce:function(e){return l(e)?r(e):a(e,{})},getterFor:function(e){return function(i){var n;if(!m(i)||(n=r(i)).type!==e)throw new b("Incompatible receiver, "+e+" required");return n}}}},function(e,i,n){"use strict";e.exports=function(e){return null==e}},function(e,i,n){"use strict";var a=n(25),r=n(2),l=n(32),t=n(85),d=Object;e.exports=t?function(e){return"symbol"==typeof e}:function(e){var i=a("Symbol");return r(i)&&l(i.prototype,d(e))}},function(e,i,n){"use strict";var a=n(20),r=n(3),l=n(55),t=e.exports=r["__core-js_shared__"]||l("__core-js_shared__",{});(t.versions||(t.versions=[])).push({version:"3.50.0",mode:a?"pure":"global",copyright:"© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.",license:"https://github.com/zloirock/core-js/blob/v3.50.0/LICENSE",source:"https://github.com/zloirock/core-js"})},function(e,i,n){"use strict";var a=n(3),r=Object.defineProperty;e.exports=function(e,i){try{r(a,e,{value:i,configurable:!0,writable:!0})}catch(n){a[e]=i}return i}},function(e,i,n){"use strict";var a=n(87),r=n(50),l=a("keys");e.exports=function(e){return l[e]||(l[e]=r(e))}},function(e,i,n){"use strict";e.exports={}},function(e,i,n){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,i,n){var a=n(183),r=n(22),l=Object.prototype,t=l.hasOwnProperty,d=l.propertyIsEnumerable,m=a(function(){return arguments}())?a:function(e){return r(e)&&t.call(e,"callee")&&!d.call(e,"callee")};e.exports=m},function(e,i,n){var a=n(19)(n(14),"Map");e.exports=a},function(e,i){e.exports=function(e){var i=typeof e;return null!=e&&("object"==i||"function"==i)}},function(e,i,n){var a=n(203),r=n(210),l=n(212),t=n(213),d=n(214);function m(e){var i=-1,n=null==e?0:e.length;for(this.clear();++i<n;){var a=e[i];this.set(a[0],a[1])}}m.prototype.clear=a,m.prototype.delete=r,m.prototype.get=l,m.prototype.has=t,m.prototype.set=d,e.exports=m},function(e,i){e.exports=function(e){var i=-1,n=Array(e.size);return e.forEach((function(e){n[++i]=e})),n}},function(e,i){e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},function(e,i,n){var a=n(13),r=n(66),l=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,t=/^\w*$/;e.exports=function(e,i){if(a(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!r(e))||(t.test(e)||!l.test(e)||null!=i&&e in Object(i))}},function(e,i,n){var a=n(27),r=n(22);e.exports=function(e){return"symbol"==typeof e||r(e)&&"[object Symbol]"==a(e)}},function(e,i){e.exports=function(e){return e}},function(e,i,n){"use strict";var a=n(154);e.exports=function(e){var i=+e;return i!=i||0===i?0:a(i)}},function(e,i,n){"use strict";var a=n(125),r=String;e.exports=function(e){if("Symbol"===a(e))throw new TypeError("Cannot convert a Symbol value to a string");return r(e)}},function(e,i,n){"use strict";var a=n(10),r=n(6),l=n(44),t=n(11),d=n(5),m=n(23),s=n(12),u=n(26)("some",TypeError);a({target:"Iterator",proto:!0,real:!0,forced:u},{some:function(e){d(this);try{t(e)}catch(e){s(this,"throw",e)}if(u)return r(u,this,e);var i=m(this),n=0;return l(i,(function(i,a){if(e(i,n++))return a()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})},function(e,i,n){"use strict";var a=n(10),r=n(6),l=n(44),t=n(11),d=n(5),m=n(23),s=n(12),u=n(26)("forEach",TypeError);a({target:"Iterator",proto:!0,real:!0,forced:u},{forEach:function(e){d(this);try{t(e)}catch(e){s(this,"throw",e)}if(u)return r(u,this,e);var i=m(this),n=0;l(i,(function(i){e(i,n++)}),{IS_RECORD:!0})}})},function(e,i,n){"use strict";var a=n(8),r=n(2),l=n(33),t=n(56),d=n(157),m=t("IE_PROTO"),s=Object,u=s.prototype;e.exports=d?s.getPrototypeOf:function(e){var i=l(e);if(a(i,m))return i[m];var n=i.constructor;return r(n)&&i instanceof n?n.prototype:i instanceof s?u:null}},function(e,i,n){"use strict";var a=n(123),r=n(9),l=n(47),t=n(171);
9e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,i=!1,n={};try{(e=a(Object.prototype,"__proto__","set"))(n,[]),i=n instanceof Array}catch(e){}return function(n,a){return l(n),t(a),r(n)?(i?e(n,a):n.__proto__=a,n):n}}():void 0)},function(e,i,n){"use strict";var a=n(8),r=n(151),l=n(83),t=n(17);e.exports=function(e,i,n){for(var d=r(i),m=t.f,s=l.f,u=0;u<d.length;u++){var k=d[u];a(e,k)||n&&a(n,k)||m(e,k,s(i,k))}}},function(e,i,n){"use strict";var a=n(6),r=n(46),l=n(21),t=n(161),d=n(15),m=n(51),s=n(35),u=n(94).IteratorPrototype,k=n(162),o=n(12),y=n(163),b=n(164),g=d("toStringTag"),c=m.set,H=function(e){var i=m.getterFor(e?"WrapForValidIterator":"IteratorHelper");return t(r(u),{next:function(){var n=i(this);if(e)return n.nextHandler();if(n.done)return k(void 0,!0);try{var a=n.nextHandler();return n.done&&b(n),n.returnHandlerResult?a:k(a,n.done)}catch(e){throw n.done=!0,b(n),e}},return:function(){var n=i(this),r=n.iterator,l=n.inner,t=n.openIters,d=n.done;if(n.done=!0,e){var m=s(r,"return");return m?a(m,r):k(void 0,!0)}if(b(n),d)return k(void 0,!0);if(l)try{o(l.iterator,"normal")}catch(e){return o(r,"throw",e)}if(t)try{y(t,"normal")}catch(e){if(r)return o(r,"throw",e);throw e}return r&&o(r,"normal"),k(void 0,!0)}})},p=H(!0),S=H(!1);l(S,g,"Iterator Helper"),e.exports=function(e,i,n){var a=function(a,r){r?(r.iterator=a.iterator,r.next=a.next):r=a,r.type=i?"WrapForValidIterator":"IteratorHelper",r.returnHandlerResult=!!n,r.nextHandler=e,r.counter=0,r.done=!1,c(this,r)};return a.prototype=i?p:S,a}},function(e,i,n){"use strict";e.exports=function(e,i){var n="function"==typeof Iterator&&Iterator.prototype[e];if(n)try{n.call({next:null},i).next()}catch(e){return!0}}},function(e,i,n){"use strict";var a=n(4),r=n(1),l=n(18),t=Object,d=a("".split);e.exports=r((function(){return!t("z").propertyIsEnumerable(0)}))?function(e){return"String"===l(e)?d(e,""):t(e)}:t},function(e,i,n){"use strict";var a,r,l=n(3),t=n(86),d=l.process,m=l.Deno,s=d&&d.versions||m&&m.version,u=s&&s.v8;u&&(r=(a=u.split("."))[0]>0&&a[0]<4?1:+(a[0]+a[1])),!r&&t&&(!(a=t.match(/Edge\/(\d+)/))||a[1]>=74)&&(a=t.match(/Chrome\/(\d+)/))&&(r=+a[1]),e.exports=r},function(e,i,n){"use strict";var a=n(18),r=n(52),l=n(35),t=n(15)("iterator"),d=Array.prototype;e.exports=function(e){if(!r(e))return l(e,t)||l(e,"@@iterator")||("Arguments"===a(e)?d[t]:void 0)}},function(e,i,n){"use strict";var a=n(36),r=Function.prototype,l=r.apply,t=r.call;e.exports="object"==typeof Reflect&&Reflect.apply||(a?t.bind(l):function(){return t.apply(l,arguments)})},function(e,i,n){"use strict";var a=n(18);e.exports=Array.isArray||function(e){return"Array"===a(e)}},function(e,i){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,i,n){"use strict";var a=n(7),r=n(6),l=n(146),t=n(34),d=n(37),m=n(84),s=n(8),u=n(88),k=Object.getOwnPropertyDescriptor;i.f=a?k:function(e,i){if(e=d(e),i=m(i),u)try{return k(e,i)}catch(e){}if(s(e,i))return t(!r(l.f,e,i),e[i])}},function(e,i,n){"use strict";var a=n(132),r=n(53);e.exports=function(e){var i=a(e,"string");return r(i)?i:i+""}},function(e,i,n){"use strict";var a=n(48);e.exports=a&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(e,i,n){"use strict";var a=n(3).navigator,r=a&&a.userAgent;e.exports=r?String(r):""},function(e,i,n){"use strict";var a=n(54),r=Object.create||Object;e.exports=function(e,i){return a[e]||(a[e]=i||r(null))}},function(e,i,n){"use strict";var a=n(7),r=n(1),l=n(89);e.exports=!a&&!r((function(){return 7!==Object.defineProperty(l("div"),"a",{get:function(){return 7}}).a}))},function(e,i,n){"use strict";var a=n(3),r=n(9),l=a.document,t=r(l)&&r(l.createElement);e.exports=function(e){return t?l.createElement(e):{}}},function(e,i,n){"use strict";var a=n(7),r=n(1);e.exports=a&&r((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},function(e,i,n){"use strict";var a=n(4),r=n(1),l=n(2),t=n(8),d=n(7),m=n(148).CONFIGURABLE,s=n(149),u=n(51),k=u.enforce,o=u.get,y=String,b=Object.defineProperty,g=a("".slice),c=a("".replace),H=a([].join),p=d&&!r((function(){return 8!==b((function(){}),"length",{value:8}).length})),S=String(String).split("String"),z=e.exports=function(e,i,n){"Symbol("===g(y(i),0,7)&&(i="["+c(y(i),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),n&&n.getter&&(i="get "+i),n&&n.setter&&(i="set "+i),(!t(e,"name")||m&&e.name!==i)&&(d?b(e,"name",{value:i,configurable:!0}):e.name=i),p&&n&&t(n,"arity")&&e.length!==n.arity&&b(e,"length",{value:n.arity});try{n&&t(n,"constructor")&&n.constructor?d&&b(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var a=k(e);return t(a,"source")||(a.source=H(S,"string"==typeof i?i:"")),e};Function.prototype.toString=z((function(){return l(this)&&o(this).source||s(this)}),"toString")},function(e,i,n){"use strict";var a=n(4),r=n(8),l=n(37),t=n(93).indexOf,d=n(57),m=a([].push);e.exports=function(e,i){var n,a=l(e),s=0,u=[];for(n in a)!r(d,n)&&r(a,n)&&m(u,n);for(;i.length>s;)r(a,n=i[s++])&&(~t(u,n)||m(u,n));return u}},function(e,i,n){"use strict";var a=n(37),r=n(153),l=n(30),t=function(e){return function(i,n,t){var d=a(i),m=l(d);if(0===m)return!e&&-1;var s,u=r(t,m);if(e&&n!=n){for(;m>u;)if((s=d[u++])!=s)return!0}else for(;m>u;u++)if((e||u in d)&&d[u]===n)return e||u||0;return!e&&-1}};e.exports={includes:t(!0),indexOf:t(!1)}},function(e,i,n){"use strict";var a,r,l,t=n(1),d=n(2),m=n(9),s=n(46),u=n(72),k=n(45),o=n(15),y=n(20),b=o("iterator"),g=!1;[].keys&&("next"in(l=[].keys())?(r=u(u(l)))!==Object.prototype&&(a=r):g=!0),!m(a)||t((function(){var e={};return a[b].call(e)!==e}))?a={}:y&&(a=s(a)),d(a[b])||k(a,b,(function(){return this})),e.exports={IteratorPrototype:a,BUGGY_SAFARI_ITERATORS:g}},function(e,i,n){"use strict";var a=n(5),r=n(12);e.exports=function(e,i,n,l){try{return l?i(a(n)[0],n[1]):i(n)}catch(i){r(e,"throw",i)}}},function(e,i){e.exports=function(e,i){for(var n=-1,a=i.length,r=e.length;++n<a;)e[r+n]=i[n];return e}},function(e,i){var n="object"==typeof global&&global&&global.Object===Object&&global;e.exports=n},function(e,i,n){var a=n(38),r=n(194),l=n(195),t=n(196),d=n(197),m=n(198);function s(e){var i=this.__data__=new a(e);this.size=i.size}s.prototype.clear=r,s.prototype.delete=l,s.prototype.get=t,s.prototype.has=d,s.prototype.set=m,e.exports=s},function(e,i){e.exports=function(e,i){return e===i||e!=e&&i!=i}},function(e,i,n){var a=n(27),r=n(61);e.exports=function(e){if(!r(e))return!1;var i=a(e);return"[object Function]"==i||"[object GeneratorFunction]"==i||"[object AsyncFunction]"==i||"[object Proxy]"==i}},function(e,i){var n=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return n.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},function(e,i,n){var a=n(215),r=n(22);e.exports=function e(i,n,l,t,d){return i===n||(null==i||null==n||!r(i)&&
9!r(n)?i!=i&&n!=n:a(i,n,l,t,e,d))}},function(e,i,n){var a=n(104),r=n(218),l=n(105);e.exports=function(e,i,n,t,d,m){var s=1&n,u=e.length,k=i.length;if(u!=k&&!(s&&k>u))return!1;var o=m.get(e),y=m.get(i);if(o&&y)return o==i&&y==e;var b=-1,g=!0,c=2&n?new a:void 0;for(m.set(e,i),m.set(i,e);++b<u;){var H=e[b],p=i[b];if(t)var S=s?t(p,H,b,i,e,m):t(H,p,b,e,i,m);if(void 0!==S){if(S)continue;g=!1;break}if(c){if(!r(i,(function(e,i){if(!l(c,i)&&(H===e||d(H,e,n,t,m)))return c.push(i)}))){g=!1;break}}else if(H!==p&&!d(H,p,n,t,m)){g=!1;break}}return m.delete(e),m.delete(i),g}},function(e,i,n){var a=n(62),r=n(216),l=n(217);function t(e){var i=-1,n=null==e?0:e.length;for(this.__data__=new a;++i<n;)this.add(e[i])}t.prototype.add=t.prototype.push=r,t.prototype.has=l,e.exports=t},function(e,i){e.exports=function(e,i){return e.has(i)}},function(e,i,n){var a=n(228),r=n(234),l=n(110);e.exports=function(e){return l(e)?a(e):r(e)}},function(e,i,n){(function(e){var a=n(14),r=n(230),l=i&&!i.nodeType&&i,t=l&&"object"==typeof e&&e&&!e.nodeType&&e,d=t&&t.exports===l?a.Buffer:void 0,m=(d?d.isBuffer:void 0)||r;e.exports=m}).call(this,n(82)(e))},function(e,i){var n=/^(?:0|[1-9]\d*)$/;e.exports=function(e,i){var a=typeof e;return!!(i=null==i?9007199254740991:i)&&("number"==a||"symbol"!=a&&n.test(e))&&e>-1&&e%1==0&&e<i}},function(e,i,n){var a=n(231),r=n(232),l=n(233),t=l&&l.isTypedArray,d=t?r(t):a;e.exports=d},function(e,i,n){var a=n(100),r=n(64);e.exports=function(e){return null!=e&&r(e.length)&&!a(e)}},function(e,i,n){var a=n(19)(n(14),"Set");e.exports=a},function(e,i,n){var a=n(61);e.exports=function(e){return e==e&&!a(e)}},function(e,i){e.exports=function(e,i){return function(n){return null!=n&&(n[e]===i&&(void 0!==i||e in Object(n)))}}},function(e,i,n){var a=n(115),r=n(42);e.exports=function(e,i){for(var n=0,l=(i=a(i,e)).length;null!=e&&n<l;)e=e[r(i[n++])];return n&&n==l?e:void 0}},function(e,i,n){var a=n(13),r=n(65),l=n(244),t=n(247);e.exports=function(e,i){return a(e)?e:r(e,i)?[e]:l(t(e))}},function(e,i,n){},function(e,i,n){},function(e,i,n){var a=n(181),r=n(186),l=n(256),t=n(264),d=n(273),m=n(143),s=l((function(e){var i=m(e);return d(i)&&(i=void 0),t(a(e,1,d,!0),r(i,2))}));e.exports=s},function(e,i,n){"use strict";
10/*!
11 * escape-html
12 * Copyright(c) 2012-2013 TJ Holowaychuk
13 * Copyright(c) 2015 Andreas Lubbe
14 * Copyright(c) 2015 Tiancheng "Timothy" Gu
15 * MIT Licensed
16 */var a=/["'&<>]/;e.exports=function(e){var i,n=""+e,r=a.exec(n);if(!r)return n;var l="",t=0,d=0;for(t=r.index;t<n.length;t++){switch(n.charCodeAt(t)){case 34:i="&quot;";break;case 38:i="&amp;";break;case 39:i="&#39;";break;case 60:i="&lt;";break;case 62:i="&gt;";break;default:continue}d!==t&&(l+=n.substring(d,t)),d=t+1,l+=i}return d!==t?l+n.substring(d,t):l}},function(e,i){var n=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,l=/^0o[0-7]+$/i,t=parseInt,d="object"==typeof global&&global&&global.Object===Object&&global,m="object"==typeof self&&self&&self.Object===Object&&self,s=d||m||Function("return this")(),u=Object.prototype.toString,k=Math.max,o=Math.min,y=function(){return s.Date.now()};function b(e){var i=typeof e;return!!e&&("object"==i||"function"==i)}function g(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==u.call(e)}(e))return NaN;if(b(e)){var i="function"==typeof e.valueOf?e.valueOf():e;e=b(i)?i+"":i}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(n,"");var d=r.test(e);return d||l.test(e)?t(e.slice(2),d?2:8):a.test(e)?NaN:+e}e.exports=function(e,i,n){var a,r,l,t,d,m,s=0,u=!1,c=!1,H=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function p(i){var n=a,l=r;return a=r=void 0,s=i,t=e.apply(l,n)}function S(e){return s=e,d=setTimeout(h,i),u?p(e):t}function z(e){var n=e-m;return void 0===m||n>=i||n<0||c&&e-s>=l}function h(){var e=y();if(z(e))return K(e);d=setTimeout(h,function(e){var n=i-(e-m);return c?o(n,l-(e-s)):n}(e))}function K(e){return d=void 0,H&&a?p(e):(a=r=void 0,t)}function v(){var e=y(),n=z(e);if(a=arguments,r=this,m=e,n){if(void 0===d)return S(m);if(c)return d=setTimeout(h,i),p(m)}return void 0===d&&(d=setTimeout(h,i)),t}return i=g(i)||0,b(n)&&(u=!!n.leading,l=(c="maxWait"in n)?k(g(n.maxWait)||0,i):l,H="trailing"in n?!!n.trailing:H),v.cancel=function(){void 0!==d&&clearTimeout(d),s=0,a=m=r=d=void 0},v.flush=function(){return void 0===d?t:K(y())},v}},function(e,i,n){"use strict";var a=n(91),r=n(17);e.exports=function(e,i,n){return n.get&&a(n.get,i,{getter:!0}),n.set&&a(n.set,i,{setter:!0}),r.f(e,i,n)}},function(e,i,n){"use strict";var a=n(10),r=n(33),l=n(30),t=n(176),d=n(177);a({target:"Array",proto:!0,arity:1,forced:n(1)((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(e){return e instanceof TypeError}}()},{push:function(e){var i=r(this),n=l(i),a=arguments.length;d(n+a);for(var m=0;m<a;m++)i[n]=arguments[m],n++;return t(i,n),n}})},function(e,i,n){"use strict";var a=n(4),r=n(11);e.exports=function(e,i,n){try{return a(r(Object.getOwnPropertyDescriptor(e,i)[n]))}catch(e){}}},function(e,i,n){"use strict";var a=n(69);e.exports=function(e,i){return void 0===e?arguments.length<2?"":i:a(e)}},function(e,i,n){"use strict";var a=n(174),r=n(2),l=n(18),t=n(15)("toStringTag"),d=Object,m="Arguments"===l(function(){return arguments}());e.exports=a?l:function(e){var i,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,i){try{return e[i]}catch(e){}}(i=d(e),t))?n:m?l(i):"Object"===(a=l(i))&&r(i.callee)?"Arguments":a}},function(e,i,n){"use strict";var a=n(10),r=n(25),l=n(6),t=n(4),d=n(1),m=n(81),s=n(2),u=n(9),k=n(46),o=n(178),y=n(53),b=n(18),g=n(179),c=n(93).includes,H=n(8),p=n(69),S=n(142),z=n(50),h=n(48),K=n(180),v=String,A=TypeError,T=r("JSON","stringify"),f=r("BigInt"),B=t("".valueOf),R=t((!0).valueOf),Y=f&&t(f.prototype.valueOf),N=t(/./.exec),P=t("".charAt),O=t("".charCodeAt),D=t("".replace),I=t("".slice),E=t([].push),Z=t([].pop),G=t(1.1.toString),V=/[\uD800-\uDFFF]/g,C=/^[\uD800-\uDBFF]$/,M=/^[\uDC00-\uDFFF]$/,F=/^\d+$/,_=z(),L=z(),x=z(),U=_.length,j=L.length,w=!h||d((function(){var e=r("Symbol")("stringify detection");return"[null]"!==T([e])||"{}"!==T({a:e})||"{}"!==T(Object(e))})),$=d((function(){return'"\\udf06\\ud834"'!==T("\udf06\ud834")||'"\\udead"'!==T("\udead")})),J=K?r("JSON","isRawJSON"):o,X=w?function(e,i,n){return T(e,(function(e,n){var a=l(i,this,e,n);if(!y(a))return a}),n)}:T,W=function(e,i,n){var a=P(n,i-1),r=P(n,i+1);return N(C,e)&&!N(M,r)||N(M,e)&&!N(C,a)?"\\u"+G(O(e,0),16):e},q=function(e,i){try{return e(i),!0}catch(e){return!1}},Q=function(e){if(!u(e)||s(e)||m(e))return!1;try{return!function(e){var i=b(e);return"Number"===i&&q(g,e)||"String"===i&&q(B,e)||"Boolean"===i&&q(R,e)||!!Y&&"BigInt"===i&&q(Y,e)}(e)}catch(e){return!0}},ee=function(e,i){return{toJSON:function(){var n=e[i];if(u(n)||"bigint"==typeof n){var a=n.toJSON;s(a)&&(n=l(a,n,i))}return n}}};T&&a({target:"JSON",stat:!0,arity:3,forced:w||$||!K},{stringify:function(e,i,n){var a,r=s(i)?i:void 0,t=r?void 0:function(e){if(m(e)){for(var i=e.length,n=[],a=k(null),r=0;r<i;r++){var l,t=e[r];if("string"==typeof t)l=t;else{if("number"!=typeof t&&"Number"!==b(t)&&"String"!==b(t))continue;l=p(t)}H(a,l)||(a[l]=!0,E(n,l))}return n}}(i),d=t&&function(e){for(var i=0,n=e.length;i<n;i++)if(N(F,e[i]))return L;return""}(t),u=[],o=[],y=[],g=!1,z=!0,h=X(e,(function(e,i){if(e=v(e),t){if(e===x)return Z(o),void(a=Z(y));if(z)z=!1;else if(this!==a&&!m(this)&&!c(t,e))return}else r&&(i=l(r,this,e,i));if(J(i))return K?i:(g=!0,_+(E(u,i.rawJSON)-1));if(t&&Q(i)){if(c(o,i))throw new A("Converting circular structure to JSON");var n=function(e,i,n){for(var a=k(null),r=0,l=i.length;r<l;r++){var t=i[r];a[n+t]=ee(e,t)}return a[x]=null,a}(i,t,d);return E(o,i),E(y,a),a=n,d&&(g=!0),n}return i}),n);if("string"!=typeof h)return h;if($&&(h=D(h,V,W)),!g)return h;for(var T="",f=h.length,B=0;B<f;B++){var R=P(h,B);if('"'===R){var Y=S(h,++B).end-1,O=I(h,B,Y);I(O,0,U)===_?T+=u[I(O,U)]:I(O,0,j)===L?T+='"'+I(O,j)+'"':T+='"'+O+'"',B=Y}else T+=R}return T}})},function(e,i,n){"use strict";var a=n(7),r=n(17),l=n(34);e.exports=function(e,i,n){a?r.f(e,i,l(0,n)):e[i]=n}},function(e,i,n){"use strict";var a=n(10),r=n(165).left,l=n(166),t=n(78);a({target:"Array",proto:!0,forced:!n(135)&&t>79&&t<83||!l("reduce")},{reduce:function(e){var i=arguments.length;return r(this,e,i,i>1?arguments[1]:void 0)}})},function(e,i,n){"use strict";var a=n(10),r=n(44),l=n(11),t=n(5),d=n(23),m=n(12),s=n(26),u=n(80),k=n(1),o=TypeError,y=k((function(){[].keys().reduce((function(){}),void 0)})),b=!y&&s("reduce",o);a({target:"Iterator",proto:!0,real:!0,forced:y||b},{reduce:function(e){t(this);try{l(e)}catch(e){m(this,"throw",e)}var i=arguments.length<2,n=i?void 0:arguments[1];if(b)return u(b,this,i?[e]:[e,n]);var a=d(this),s=0;if(r(a,(function(a){i?(i=!1,n=a):n=e(n,a,s),s++}),{IS_RECORD:!0}),i)throw new o("Reduce of empty iterator with no initial value");return n}})},function(e,i,n){"use strict";var a=n(10),r=n(3),l=n(80),t=n(138),d=r.WebAssembly,m=7!==new Error("e",{cause:7}).cause,s=function(e,i){var n={};n[e]=t(e,i,m),a({global:!0,constructor:!0,arity:1,forced:m},n)},u=function(e,i){if(d&&d[e]){var n={};n[e]=t("WebAssembly."+e,i,m),a({target:"WebAssembly",stat:!0,constructor:!0,arity:1,forced:m},n)}};s("Error",(function(e){return function(i){return l(e,this,arguments)}})),s("EvalError",(function(e){return function(i){return l(e,this,arguments)}})),s("RangeError",(function(e){return function(i){return l(e,this,arguments)}})),s("ReferenceError",(function(e){return function(i){return l(e,this,arguments)}})),s("SyntaxError",(function(e){return function(i){return l(e,this,arguments)}})),s("TypeError",(function(e){return function(i){return l(e,this,arguments)}})),s("URIError",(function(e){return function(i){return l(e,this,arguments)}})),u("CompileError",(function(e){return function(i){return l(e,this,arguments)}})),u("LinkError",(function(e){return function(i){return l(e,this,arguments)}})),u("RuntimeError",(function(e){return function(i){return l(e,this,arguments)}}))},function(e,i,n){"use strict";var a=n(21),r=n(141),l=n(175),t=Error.captureStackTrace;e.exports=function(e,i,n,d){l&&(t?t(e,i):a(e,"stack",r(n,d)))}},function(e,i,n){"use strict";var a=n(6),r=n(9),l=n(53),t=n(35),d=n(147),m=n(15),s=TypeError,u=m("toPrimitive");e.exports=function(e,i){if(!r(e)||l(e))return e;var n,m=t(e,u);if(m){if(void 0===i&&(i="default"),n=a(m,e,i),!r(n)||l(n))return n;throw new s("Can't convert object to primitive value")}return void 0===i&&(i="number"),d(e,i)}},function(e,i,n){"use strict";var a=n(68),r=Math.min;e.exports=function(e){var i=a(e);return i>0?r(i,9007199254740991):0}},function(e,i,n){"use strict";var a=n(32),r=TypeError;e.exports=function(e,i){if(a(i,e))return e;throw new r("Incorrect invocation")}},function(e,i,n){"use strict";var a=n(136);e.exports="NODE"===a},function(e,i,n){"use strict";var a=n(3),r=n(86),l=n(18),t=function(e){return r.slice(0,e.length)===e};
16e.exports=t("Bun/")?"BUN":t("Cloudflare-Workers")?"CLOUDFLARE":t("Deno/")?"DENO":t("Node.js/")?"NODE":a.Bun&&"string"==typeof Bun.version?"BUN":a.Deno&&"object"==typeof Deno.version?"DENO":"process"===l(a.process)?"NODE":a.window&&a.document?"BROWSER":"REST"},function(e,i,n){"use strict";var a=n(167),r=n(11),l=n(36),t=a(a.bind);e.exports=function(e,i){return r(e),void 0===i?e:l?t(e,i):function(){return e.apply(i,arguments)}}},function(e,i,n){"use strict";var a=n(25),r=n(8),l=n(21),t=n(32),d=n(73),m=n(74),s=n(173),u=n(139),k=n(124),o=n(140),y=n(131),b=n(7),g=n(20);e.exports=function(e,i,n,c){var H=c?2:1,p=e.split("."),S=p[p.length-1],z=a.apply(null,p);if(z){var h=z.prototype;if(!g&&r(h,"cause")&&delete h.cause,!n)return z;var K=a("Error"),v=i((function(e,i){var n=k(c?i:e,void 0),a=c?new z(e):new z;return void 0!==n&&l(a,"message",n),y(a,v,a.stack,2),this&&t(h,this)&&u(a,this,v),arguments.length>H&&o(a,arguments[H]),a}));if(v.prototype=h,"Error"!==S?d?d(v,K):m(v,K,{name:!0}):b&&"stackTraceLimit"in z&&(s(v,z,"stackTraceLimit"),s(v,z,"prepareStackTrace")),m(v,z),!g)try{h.name!==S&&l(h,"name",S),h.constructor=v}catch(e){}return v}}},function(e,i,n){"use strict";var a=n(2),r=n(9),l=n(73);e.exports=function(e,i,n){var t,d;return l&&a(t=i.constructor)&&t!==n&&r(d=t.prototype)&&d!==n.prototype&&l(e,d),e}},function(e,i,n){"use strict";var a=n(9),r=n(21);e.exports=function(e,i){a(i)&&"cause"in i&&r(e,"cause",i.cause)}},function(e,i,n){"use strict";var a=n(4),r=Error,l=a("".replace),t=String(new r("zxcasd").stack),d=/\n\s*at [^:]*:[^\n]*/,m=d.test(t);e.exports=function(e,i){if(m&&"string"==typeof e&&!r.prepareStackTrace)for(;i--;)e=l(e,d,"");return e}},function(e,i,n){"use strict";var a=n(4),r=n(8),l=SyntaxError,t=parseInt,d=String.fromCharCode,m=a("".charAt),s=a("".slice),u=a(/./.exec),k={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":"\n","\\r":"\r","\\t":"\t"},o=/^[\da-f]{4}$/i,y=/^[\u0000-\u001F]$/;e.exports=function(e,i){for(var n=!0,a="";i<e.length;){var b=m(e,i);if("\\"===b){var g=s(e,i,i+2);if(r(k,g))a+=k[g],i+=2;else{if("\\u"!==g)throw new l('Unknown escape sequence: "'+g+'"');var c=s(e,i+=2,i+4);if(!u(o,c))throw new l("Bad Unicode escape at: "+i);a+=d(t(c,16)),i+=4}}else{if('"'===b){n=!1,i++;break}if(u(y,b))throw new l("Bad control character in string literal at: "+i);a+=b,i++}}if(n)throw new l("Unterminated string at: "+i);return{value:a,end:i}}},function(e,i){e.exports=function(e){var i=null==e?0:e.length;return i?e[i-1]:void 0}},function(e,i,n){var a=n(114);e.exports=function(e,i,n){var r=null==e?void 0:a(e,i);return void 0===r?n:r}},function(e,i,n){e.exports=n(278)},function(e,i,n){"use strict";var a={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,l=r&&!a.call({1:2},1);i.f=l?function(e){var i=r(this,e);return!!i&&i.enumerable}:a},function(e,i,n){"use strict";var a=n(6),r=n(2),l=n(9),t=TypeError;e.exports=function(e,i){var n,d;if("string"===i&&r(n=e.toString)&&!l(d=a(n,e)))return d;if(r(n=e.valueOf)&&!l(d=a(n,e)))return d;if("string"!==i&&r(n=e.toString)&&!l(d=a(n,e)))return d;throw new t("Can't convert object to primitive value")}},function(e,i,n){"use strict";var a=n(7),r=n(8),l=Function.prototype,t=a&&Object.getOwnPropertyDescriptor,d=r(l,"name"),m=d&&"something"===function(){}.name,s=d&&(!a||a&&t(l,"name").configurable);e.exports={EXISTS:d,PROPER:m,CONFIGURABLE:s}},function(e,i,n){"use strict";var a=n(4),r=n(2),l=n(54),t=a(Function.toString);r(l.inspectSource)||(l.inspectSource=function(e){return t(e)}),e.exports=l.inspectSource},function(e,i,n){"use strict";var a=n(3),r=n(2),l=a.WeakMap;e.exports=r(l)&&/native code/.test(String(l))},function(e,i,n){"use strict";var a=n(25),r=n(4),l=n(152),t=n(155),d=n(5),m=r([].concat);e.exports=a("Reflect","ownKeys")||function(e){var i=l.f(d(e)),n=t.f;return n?m(i,n(e)):i}},function(e,i,n){"use strict";var a=n(92),r=n(58).concat("length","prototype");i.f=Object.getOwnPropertyNames||function(e){return a(e,r)}},function(e,i,n){"use strict";var a=n(68),r=Math.max,l=Math.min;e.exports=function(e,i){var n=a(e);return n<0?r(n+i,0):l(n,i)}},function(e,i,n){"use strict";var a=Math.ceil,r=Math.floor;e.exports=Math.trunc||function(e){var i=+e;return(i>0?r:a)(i)}},function(e,i,n){"use strict";i.f=Object.getOwnPropertySymbols},function(e,i,n){"use strict";var a=n(1),r=n(2),l=/#|\.prototype\./,t=function(e,i){var n=m[d(e)];return n===u||n!==s&&(r(i)?a(i):!!i)},d=t.normalize=function(e){return String(e).replace(l,".").toLowerCase()},m=t.data={},s=t.NATIVE="N",u=t.POLYFILL="P";e.exports=t},function(e,i,n){"use strict";var a=n(1);e.exports=!a((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},function(e,i,n){"use strict";var a=n(7),r=n(90),l=n(17),t=n(5),d=n(37),m=n(159);i.f=a&&!r?Object.defineProperties:function(e,i){t(e);for(var n,a=d(i),r=m(i),s=r.length,u=0;s>u;)l.f(e,n=r[u++],a[n]);return e}},function(e,i,n){"use strict";var a=n(92),r=n(58);e.exports=Object.keys||function(e){return a(e,r)}},function(e,i,n){"use strict";var a=n(25);e.exports=a("document","documentElement")},function(e,i,n){"use strict";var a=n(45);e.exports=function(e,i,n){for(var r in i)a(e,r,i[r],n);return e}},function(e,i,n){"use strict";e.exports=function(e,i){return{value:e,done:i}}},function(e,i,n){"use strict";var a=n(12);e.exports=function(e,i,n){for(var r=e.length-1;r>=0;r--)if(void 0!==e[r])try{n=a(e[r].iterator,i,n)}catch(e){i="throw",n=e}if("throw"===i)throw n;return n}},function(e,i,n){"use strict";e.exports=function(e){e.iterator=e.next=e.nextHandler=e.mapper=e.predicate=e.inner=e.iterables=e.iters=e.openIters=e.padding=e.finishResults=e.buffer=null}},function(e,i,n){"use strict";var a=n(11),r=n(33),l=n(77),t=n(30),d=TypeError,m="Reduce of empty array with 
16no initial value",s=function(e){return function(i,n,s,u){var k=r(i),o=l(k),y=t(k);if(a(n),0===y&&s<2)throw new d(m);var b=e?y-1:0,g=e?-1:1;if(s<2)for(;;){if(b in o){u=o[b],b+=g;break}if(b+=g,e?b<0:y<=b)throw new d(m)}for(;e?b>=0:y>b;b+=g)b in o&&(u=n(u,o[b],b,k));return u}};e.exports={left:s(!1),right:s(!0)}},function(e,i,n){"use strict";var a=n(1);e.exports=function(e,i){var n=[][e];return!!n&&a((function(){n.call(null,i||function(){return 1},1)}))}},function(e,i,n){"use strict";var a=n(18),r=n(4);e.exports=function(e){if("Function"===a(e))return r(e)}},function(e,i,n){"use strict";var a=n(15),r=n(169),l=a("iterator"),t=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||t[l]===e)}},function(e,i,n){"use strict";e.exports=Object.create?Object.create(null):{}},function(e,i,n){"use strict";var a=n(6),r=n(2),l=n(5),t=n(49),d=n(79),m=TypeError;e.exports=function(e,i){var n=arguments.length<2?d(e):i;if(r(n))return l(a(n,e));throw new m(t(e)+" is not iterable")}},function(e,i,n){"use strict";var a=n(172),r=String,l=TypeError;e.exports=function(e){if(a(e))return e;throw new l("Can't set "+r(e)+" as a prototype")}},function(e,i,n){"use strict";var a=n(9);e.exports=function(e){return a(e)||null===e}},function(e,i,n){"use strict";var a=n(17).f;e.exports=function(e,i,n){n in e||a(e,n,{configurable:!0,get:function(){return i[n]},set:function(e){i[n]=e}})}},function(e,i,n){"use strict";var a={};a[n(15)("toStringTag")]="z",e.exports="[object z]"===String(a)},function(e,i,n){"use strict";var a=n(1),r=n(34);e.exports=!a((function(){var e=new Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",r(1,7)),7!==e.stack)}))},function(e,i,n){"use strict";var a=n(7),r=n(81),l=TypeError,t=Object.getOwnPropertyDescriptor,d=a&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(e){return e instanceof TypeError}}();e.exports=d?function(e,i){if(r(e)&&!t(e,"length").writable)throw new l("Cannot set read only .length");return e.length=i}:function(e,i){return e.length=i}},function(e,i,n){"use strict";var a=TypeError;e.exports=function(e){if(e>9007199254740991)throw new a("Maximum allowed index exceeded");return e}},function(e,i,n){"use strict";var a=n(9),r=n(51).get;e.exports=function(e){if(!a(e))return!1;var i=r(e);return!!i&&"RawJSON"===i.type}},function(e,i,n){"use strict";var a=n(4);e.exports=a(1.1.valueOf)},function(e,i,n){"use strict";var a=n(1);e.exports=!a((function(){var e=JSON.rawJSON("9007199254740993");return!JSON.isRawJSON(e)||"9007199254740993"!==JSON.stringify(e)}))},function(e,i,n){var a=n(96),r=n(182);e.exports=function e(i,n,l,t,d){var m=-1,s=i.length;for(l||(l=r),d||(d=[]);++m<s;){var u=i[m];n>0&&l(u)?n>1?e(u,n-1,l,t,d):a(d,u):t||(d[d.length]=u)}return d}},function(e,i,n){var a=n(28),r=n(59),l=n(13),t=a?a.isConcatSpreadable:void 0;e.exports=function(e){return l(e)||r(e)||!!(t&&e&&e[t])}},function(e,i,n){var a=n(27),r=n(22);e.exports=function(e){return r(e)&&"[object Arguments]"==a(e)}},function(e,i,n){var a=n(28),r=Object.prototype,l=r.hasOwnProperty,t=r.toString,d=a?a.toStringTag:void 0;e.exports=function(e){var i=l.call(e,d),n=e[d];try{e[d]=void 0;var a=!0}catch(e){}var r=t.call(e);return a&&(i?e[d]=n:delete e[d]),r}},function(e,i){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,i,n){var a=n(187),r=n(243),l=n(67),t=n(13),d=n(253);e.exports=function(e){return"function"==typeof e?e:null==e?l:"object"==typeof e?t(e)?r(e[0],e[1]):a(e):d(e)}},function(e,i,n){var a=n(188),r=n(242),l=n(113);e.exports=function(e){var i=r(e);return 1==i.length&&i[0][2]?l(i[0][0],i[0][1]):function(n){return n===e||a(n,e,i)}}},function(e,i,n){var a=n(98),r=n(102);e.exports=function(e,i,n,l){var t=n.length,d=t,m=!l;if(null==e)return!d;for(e=Object(e);t--;){var s=n[t];if(m&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++t<d;){var u=(s=n[t])[0],k=e[u],o=s[1];if(m&&s[2]){if(void 0===k&&!(u in e))return!1}else{var y=new a;if(l)var b=l(k,o,u,e,i,y);if(!(void 0===b?r(o,k,3,l,y):b))return!1}}return!0}},function(e,i){e.exports=function(){this.__data__=[],this.size=0}},function(e,i,n){var a=n(39),r=Array.prototype.splice;e.exports=function(e){var i=this.__data__,n=a(i,e);return!(n<0)&&(n==i.length-1?i.pop():r.call(i,n,1),--this.size,!0)}},function(e,i,n){var a=n(39);e.exports=function(e){var i=this.__data__,n=a(i,e);return n<0?void 0:i[n][1]}},function(e,i,n){var a=n(39);e.exports=function(e){return a(this.__data__,e)>-1}},function(e,i,n){var a=n(39);e.exports=function(e,i){var n=this.__data__,r=a(n,e);return r<0?(++this.size,n.push([e,i])):n[r][1]=i,this}},function(e,i,n){var a=n(38);e.exports=function(){this.__data__=new a,this.size=0}},function(e,i){e.exports=function(e){var i=this.__data__,n=i.delete(e);return this.size=i.size,n}},function(e,i){e.exports=function(e){return this.__data__.get(e)}},function(e,i){e.exports=function(e){return this.__data__.has(e)}},function(e,i,n){var a=n(38),r=n(60),l=n(62);e.exports=function(e,i){var n=this.__data__;if(n instanceof a){var t=n.__data__;if(!r||t.length<199)return t.push([e,i]),this.size=++n.size,this;n=this.__data__=new l(t)}return n.set(e,i),this.size=n.size,this}},function(e,i,n){var a=n(100),r=n(200),l=n(61),t=n(101),d=/^\[object .+?Constructor\]$/,m=Function.prototype,s=Object.prototype,u=m.toString,k=s.hasOwnProperty,o=RegExp("^"+u.call(k).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!l(e)||r(e))&&(a(e)?o:d).test(t(e))}}
vendor: 6,524 bytes, line 16
16,function(e,i,n){var a,r=n(201),l=(a=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||""))?"Symbol(src)_1."+a:"";e.exports=function(e){return!!l&&l in e}},function(e,i,n){var a=n(14)["__core-js_shared__"];e.exports=a},function(e,i){e.exports=function(e,i){return null==e?void 0:e[i]}},function(e,i,n){var a=n(204),r=n(38),l=n(60);e.exports=function(){this.size=0,this.__data__={hash:new a,map:new(l||r),string:new a}}},function(e,i,n){var a=n(205),r=n(206),l=n(207),t=n(208),d=n(209);function m(e){var i=-1,n=null==e?0:e.length;for(this.clear();++i<n;){var a=e[i];this.set(a[0],a[1])}}m.prototype.clear=a,m.prototype.delete=r,m.prototype.get=l,m.prototype.has=t,m.prototype.set=d,e.exports=m},function(e,i,n){var a=n(40);e.exports=function(){this.__data__=a?a(null):{},this.size=0}},function(e,i){e.exports=function(e){var i=this.has(e)&&delete this.__data__[e];return this.size-=i?1:0,i}},function(e,i,n){var a=n(40),r=Object.prototype.hasOwnProperty;e.exports=function(e){var i=this.__data__;if(a){var n=i[e];return"__lodash_hash_undefined__"===n?void 0:n}return r.call(i,e)?i[e]:void 0}},function(e,i,n){var a=n(40),r=Object.prototype.hasOwnProperty;e.exports=function(e){var i=this.__data__;return a?void 0!==i[e]:r.call(i,e)}},function(e,i,n){var a=n(40);e.exports=function(e,i){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=a&&void 0===i?"__lodash_hash_undefined__":i,this}},function(e,i,n){var a=n(41);e.exports=function(e){var i=a(this,e).delete(e);return this.size-=i?1:0,i}},function(e,i){e.exports=function(e){var i=typeof e;return"string"==i||"number"==i||"symbol"==i||"boolean"==i?"__proto__"!==e:null===e}},function(e,i,n){var a=n(41);e.exports=function(e){return a(this,e).get(e)}},function(e,i,n){var a=n(41);e.exports=function(e){return a(this,e).has(e)}},function(e,i,n){var a=n(41);e.exports=function(e,i){var n=a(this,e),r=n.size;return n.set(e,i),this.size+=n.size==r?0:1,this}},function(e,i,n){var a=n(98),r=n(103),l=n(219),t=n(222),d=n(238),m=n(13),s=n(107),u=n(109),k="[object Object]",o=Object.prototype.hasOwnProperty;e.exports=function(e,i,n,y,b,g){var c=m(e),H=m(i),p=c?"[object Array]":d(e),S=H?"[object Array]":d(i),z=(p="[object Arguments]"==p?k:p)==k,h=(S="[object Arguments]"==S?k:S)==k,K=p==S;if(K&&s(e)){if(!s(i))return!1;c=!0,z=!1}if(K&&!z)return g||(g=new a),c||u(e)?r(e,i,n,y,b,g):l(e,i,p,n,y,b,g);if(!(1&n)){var v=z&&o.call(e,"__wrapped__"),A=h&&o.call(i,"__wrapped__");if(v||A){var T=v?e.value():e,f=A?i.value():i;return g||(g=new a),b(T,f,n,y,g)}}return!!K&&(g||(g=new a),t(e,i,n,y,b,g))}},function(e,i){e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},function(e,i){e.exports=function(e){return this.__data__.has(e)}},function(e,i){e.exports=function(e,i){for(var n=-1,a=null==e?0:e.length;++n<a;)if(i(e[n],n,e))return!0;return!1}},function(e,i,n){var a=n(28),r=n(220),l=n(99),t=n(103),d=n(221),m=n(63),s=a?a.prototype:void 0,u=s?s.valueOf:void 0;e.exports=function(e,i,n,a,s,k,o){switch(n){case"[object DataView]":if(e.byteLength!=i.byteLength||e.byteOffset!=i.byteOffset)return!1;e=e.buffer,i=i.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=i.byteLength||!k(new r(e),new r(i)));case"[object Boolean]":case"[object Date]":case"[object Number]":return l(+e,+i);case"[object Error]":return e.name==i.name&&e.message==i.message;case"[object RegExp]":case"[object String]":return e==i+"";case"[object Map]":var y=d;case"[object Set]":var b=1&a;if(y||(y=m),e.size!=i.size&&!b)return!1;var g=o.get(e);if(g)return g==i;a|=2,o.set(e,i);var c=t(y(e),y(i),a,s,k,o);return o.delete(e),c;case"[object Symbol]":if(u)return u.call(e)==u.call(i)}return!1}},function(e,i,n){var a=n(14).Uint8Array;e.exports=a},function(e,i){e.exports=function(e){var i=-1,n=Array(e.size);return e.forEach((function(e,a){n[++i]=[a,e]})),n}},function(e,i,n){var a=n(223),r=Object.prototype.hasOwnProperty;e.exports=function(e,i,n,l,t,d){var m=1&n,s=a(e),u=s.length;if(u!=a(i).length&&!m)return!1;for(var k=u;k--;){var o=s[k];if(!(m?o in i:r.call(i,o)))return!1}var y=d.get(e),b=d.get(i);if(y&&b)return y==i&&b==e;var g=!0;d.set(e,i),d.set(i,e);for(var c=m;++k<u;){var H=e[o=s[k]],p=i[o];if(l)var S=m?l(p,H,o,i,e,d):l(H,p,o,e,i,d);if(!(void 0===S?H===p||t(H,p,n,l,d):S)){g=!1;break}c||(c="constructor"==o)}if(g&&!c){var z=e.constructor,h=i.constructor;z==h||!("constructor"in e)||!("constructor"in i)||"function"==typeof z&&z instanceof z&&"function"==typeof h&&h instanceof h||(g=!1)}return d.delete(e),d.delete(i),g}},function(e,i,n){var a=n(224),r=n(225),l=n(106);e.exports=function(e){return a(e,l,r)}},function(e,i,n){var a=n(96),r=n(13);e.exports=function(e,i,n){var l=i(e);return r(e)?l:a(l,n(e))}},function(e,i,n){var a=n(226),r=n(227),l=Object.prototype.propertyIsEnumerable,t=Object.getOwnPropertySymbols,d=t?function(e){return null==e?[]:(e=Object(e),a(t(e),(function(i){return l.call(e,i)})))}:r;e.exports=d},function(e,i){e.exports=function(e,i){for(var n=-1,a=null==e?0:e.length,r=0,l=[];++n<a;){var t=e[n];i(t,n,e)&&(l[r++]=t)}return l}},function(e,i){e.exports=function(){return[]}},function(e,i,n){var a=n(229),r=n(59),l=n(13),t=n(107),d=n(108),m=n(109),s=Object.prototype.hasOwnProperty;e.exports=function(e,i){var n=l(e),u=!n&&r(e),k=!n&&!u&&t(e),o=!n&&!u&&!k&&m(e),y=n||u||k||o,b=y?a(e.length,String):[],g=b.length;for(var c in e)!i&&!s.call(e,c)||y&&("length"==c||k&&("offset"==c||"parent"==c)||o&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||d(c,g))||b.push(c);return b}},function(e,i){e.exports=function(e,i){for(var n=-1,a=Array(e);++n<e;)a[n]=i(n);return a}},function(e,i){e.exports=function(){return!1}},function(e,i,n){var a=n(27),r=n(64),l=n(22),t={};t["[object Float32Array]"]=t["[object Float64Array]"]=t["[object Int8Array]"]=t["[object Int16Array]"]=t["[object Int32Array]"]=t["[object Uint8Array]"]=t["[object Uint8ClampedArray]"]=t["[object Uint16Array]"]=t["[object Uint32Array]"]=!0,t["[object Arguments]"]=t["[object Array]"]=t["[object ArrayBuffer]"]=t["[object Boolean]"]=t["[object DataView]"]=t["[object Date]"]=t["[object Error]"]=t["[object Function]"]=t["[object Map]"]=t["[object Number]"]=t["[object Object]"]=t["[object RegExp]"]=t["[object Set]"]=t["[object String]"]=t["[object WeakMap]"]=!1,e.exports=function(e){return l(e)&&r(e.length)&&!!t[a(e)]}},function(e,i){e.exports=function(e){return function(i){return e(i)}}},function(e,i,n){(function(e){var a=n(97),r=i&&!i.nodeType&&i,l=r&&"object"==typeof e&&e&&!e.nodeType&&e,t=l&&l.exports===r&&a.process,d=function(){try{var e=l&&l.require&&l.require("util").t
vendor: 5,010 bytes, line 16
16ypes;return e||t&&t.binding&&t.binding("util")}catch(e){}}();e.exports=d}).call(this,n(82)(e))},function(e,i,n){var a=n(235),r=n(236),l=Object.prototype.hasOwnProperty;e.exports=function(e){if(!a(e))return r(e);var i=[];for(var n in Object(e))l.call(e,n)&&"constructor"!=n&&i.push(n);return i}},function(e,i){var n=Object.prototype;e.exports=function(e){var i=e&&e.constructor;return e===("function"==typeof i&&i.prototype||n)}},function(e,i,n){var a=n(237)(Object.keys,Object);e.exports=a},function(e,i){e.exports=function(e,i){return function(n){return e(i(n))}}},function(e,i,n){var a=n(239),r=n(60),l=n(240),t=n(111),d=n(241),m=n(27),s=n(101),u=s(a),k=s(r),o=s(l),y=s(t),b=s(d),g=m;(a&&"[object DataView]"!=g(new a(new ArrayBuffer(1)))||r&&"[object Map]"!=g(new r)||l&&"[object Promise]"!=g(l.resolve())||t&&"[object Set]"!=g(new t)||d&&"[object WeakMap]"!=g(new d))&&(g=function(e){var i=m(e),n="[object Object]"==i?e.constructor:void 0,a=n?s(n):"";if(a)switch(a){case u:return"[object DataView]";case k:return"[object Map]";case o:return"[object Promise]";case y:return"[object Set]";case b:return"[object WeakMap]"}return i}),e.exports=g},function(e,i,n){var a=n(19)(n(14),"DataView");e.exports=a},function(e,i,n){var a=n(19)(n(14),"Promise");e.exports=a},function(e,i,n){var a=n(19)(n(14),"WeakMap");e.exports=a},function(e,i,n){var a=n(112),r=n(106);e.exports=function(e){for(var i=r(e),n=i.length;n--;){var l=i[n],t=e[l];i[n]=[l,t,a(t)]}return i}},function(e,i,n){var a=n(102),r=n(144),l=n(250),t=n(65),d=n(112),m=n(113),s=n(42);e.exports=function(e,i){return t(e)&&d(i)?m(s(e),i):function(n){var t=r(n,e);return void 0===t&&t===i?l(n,e):a(i,t,3)}}},function(e,i,n){var a=n(245),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,l=/\\(\\)?/g,t=a((function(e){var i=[];return 46===e.charCodeAt(0)&&i.push(""),e.replace(r,(function(e,n,a,r){i.push(a?r.replace(l,"$1"):n||e)})),i}));e.exports=t},function(e,i,n){var a=n(246);e.exports=function(e){var i=a(e,(function(e){return 500===n.size&&n.clear(),e})),n=i.cache;return i}},function(e,i,n){var a=n(62);function r(e,i){if("function"!=typeof e||null!=i&&"function"!=typeof i)throw new TypeError("Expected a function");var n=function(){var a=arguments,r=i?i.apply(this,a):a[0],l=n.cache;if(l.has(r))return l.get(r);var t=e.apply(this,a);return n.cache=l.set(r,t)||l,t};return n.cache=new(r.Cache||a),n}r.Cache=a,e.exports=r},function(e,i,n){var a=n(248);e.exports=function(e){return null==e?"":a(e)}},function(e,i,n){var a=n(28),r=n(249),l=n(13),t=n(66),d=a?a.prototype:void 0,m=d?d.toString:void 0;e.exports=function e(i){if("string"==typeof i)return i;if(l(i))return r(i,e)+"";if(t(i))return m?m.call(i):"";var n=i+"";return"0"==n&&1/i==-1/0?"-0":n}},function(e,i){e.exports=function(e,i){for(var n=-1,a=null==e?0:e.length,r=Array(a);++n<a;)r[n]=i(e[n],n,e);return r}},function(e,i,n){var a=n(251),r=n(252);e.exports=function(e,i){return null!=e&&r(e,i,a)}},function(e,i){e.exports=function(e,i){return null!=e&&i in Object(e)}},function(e,i,n){var a=n(115),r=n(59),l=n(13),t=n(108),d=n(64),m=n(42);e.exports=function(e,i,n){for(var s=-1,u=(i=a(i,e)).length,k=!1;++s<u;){var o=m(i[s]);if(!(k=null!=e&&n(e,o)))break;e=e[o]}return k||++s!=u?k:!!(u=null==e?0:e.length)&&d(u)&&t(o,u)&&(l(e)||r(e))}},function(e,i,n){var a=n(254),r=n(255),l=n(65),t=n(42);e.exports=function(e){return l(e)?a(t(e)):r(e)}},function(e,i){e.exports=function(e){return function(i){return null==i?void 0:i[e]}}},function(e,i,n){var a=n(114);e.exports=function(e){return function(i){return a(i,e)}}},function(e,i,n){var a=n(67),r=n(257),l=n(259);e.exports=function(e,i){return l(r(e,i,a),e+"")}},function(e,i,n){var a=n(258),r=Math.max;e.exports=function(e,i,n){return i=r(void 0===i?e.length-1:i,0),function(){for(var l=arguments,t=-1,d=r(l.length-i,0),m=Array(d);++t<d;)m[t]=l[i+t];t=-1;for(var s=Array(i+1);++t<i;)s[t]=l[t];return s[i]=n(m),a(e,this,s)}}},function(e,i){e.exports=function(e,i,n){switch(n.length){case 0:return e.call(i);case 1:return e.call(i,n[0]);case 2:return e.call(i,n[0],n[1]);case 3:return e.call(i,n[0],n[1],n[2])}return e.apply(i,n)}},function(e,i,n){var a=n(260),r=n(263)(a);e.exports=r},function(e,i,n){var a=n(261),r=n(262),l=n(67),t=r?function(e,i){return r(e,"toString",{configurable:!0,enumerable:!1,value:a(i),writable:!0})}:l;e.exports=t},function(e,i){e.exports=function(e){return function(){return e}}},function(e,i,n){var a=n(19),r=function(){try{var e=a(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=r},function(e,i){var n=Date.now;e.exports=function(e){var i=0,a=0;return function(){var r=n(),l=16-(r-a);if(a=r,l>0){if(++i>=800)return arguments[0]}else i=0;return e.apply(void 0,arguments)}}},function(e,i,n){var a=n(104),r=n(265),l=n(270),t=n(105),d=n(271),m=n(63);e.exports=function(e,i,n){var s=-1,u=r,k=e.length,o=!0,y=[],b=y;if(n)o=!1,u=l;else if(k>=200){var g=i?null:d(e);if(g)return m(g);o=!1,u=t,b=new a}else b=i?[]:y;e:for(;++s<k;){var c=e[s],H=i?i(c):c;
16if(c=n||0!==c?c:0,o&&H==H){for(var p=b.length;p--;)if(b[p]===H)continue e;i&&b.push(H),y.push(c)}else u(b,H,n)||(b!==y&&b.push(H),y.push(c))}return y}},function(e,i,n){var a=n(266);e.exports=function(e,i){return!!(null==e?0:e.length)&&a(e,i,0)>-1}},function(e,i,n){var a=n(267),r=n(268),l=n(269);e.exports=function(e,i,n){return i==i?l(e,i,n):a(e,r,n)}},function(e,i){e.exports=function(e,i,n,a){for(var r=e.length,l=n+(a?1:-1);a?l--:++l<r;)if(i(e[l],l,e))return l;return-1}},function(e,i){e.exports=function(e){return e!=e}},function(e,i){e.exports=function(e,i,n){for(var a=n-1,r=e.length;++a<r;)if(e[a]===i)return a;return-1}},function(e,i){e.exports=function(e,i,n){for(var a=-1,r=null==e?0:e.length;++a<r;)if(n(i,e[a]))return!0;return!1}},function(e,i,n){var a=n(111),r=n(272),l=n(63),t=a&&1/l(new a([,-0]))[1]==1/0?function(e){return new a(e)}:r;e.exports=t},function(e,i){e.exports=function(){}},function(e,i,n){var a=n(110),r=n(22);e.exports=function(e){return r(e)&&a(e)}},function(e,i,n){},function(e,i,n){},function(e,i,n){"use strict";n(116)},function(e,i,n){"use strict";n(117)},function(e,i,n){"use strict";n.r(i);n(16),n(24),n(31);var a=n(0);function r(e,i){for(var n in i)e[n]=i[n];return e}var l=/[!'()*]/g,t=function(e){return"%"+e.charCodeAt(0).toString(16)},d=/%2C/g,m=function(e){return encodeURIComponent(e).replace(l,t).replace(d,",")};function s(e){try{return decodeURIComponent(e)}catch(e){0}return e}var u=function(e){return null==e||"object"==typeof e?e:String(e)};function k(e){var i={};return(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var n=e.replace(/\+/g," ").split("="),a=s(n.shift()),r=n.length>0?s(n.join("=")):null;void 0===i[a]?i[a]=r:Array.isArray(i[a])?i[a].push(r):i[a]=[i[a],r]})),i):i}function o(e){var i=e?Object.keys(e).map((function(i){var n=e[i];if(void 0===n)return"";if(null===n)return m(i);if(Array.isArray(n)){var a=[];return n.forEach((function(e){void 0!==e&&(null===e?a.push(m(i)):a.push(m(i)+"="+m(e)))})),a.join("&")}return m(i)+"="+m(n)})).filter((function(e){return e.length>0})).join("&"):null;return i?"?"+i:""}var y=/\/?$/;function b(e,i,n,a){var r=a&&a.options.stringifyQuery,l=i.query||{};try{l=g(l)}catch(e){}var t={name:i.name||e&&e.name,meta:e&&e.meta||{},path:i.path||"/",hash:i.hash||"",query:l,params:i.params||{},fullPath:p(i,r),matched:e?H(e):[]};return n&&(t.redirectedFrom=p(n,r)),Object.freeze(t)}function g(e){if(Array.isArray(e))return e.map(g);if(e&&"object"==typeof e){var i={};for(var n in e)i[n]=g(e[n]);return i}return e}var c=b(null,{path:"/"});function H(e){for(var i=[];e;)i.unshift(e),e=e.parent;return i}function p(e,i){var n=e.path,a=e.query;void 0===a&&(a={});var r=e.hash;return void 0===r&&(r=""),(n||"/")+(i||o)(a)+r}function S(e,i,n){return i===c?e===i:!!i&&(e.path&&i.path?e.path.replace(y,"")===i.path.replace(y,"")&&(n||e.hash===i.hash&&z(e.query,i.query)):!(!e.name||!i.name)&&(e.name===i.name&&(n||e.hash===i.hash&&z(e.query,i.query)&&z(e.params,i.params))))}function z(e,i){if(void 0===e&&(e={}),void 0===i&&(i={}),!e||!i)return e===i;var n=Object.keys(e).sort(),a=Object.keys(i).sort();return n.length===a.length&&n.every((function(n,r){var l=e[n];if(a[r]!==n)return!1;var t=i[n];return null==l||null==t?l===t:"object"==typeof l&&"object"==typeof t?z(l,t):String(l)===String(t)}))}function h(e){for(var i=0;i<e.matched.length;i++){var n=e.matched[i];for(var a in n.instances){var r=n.instances[a],l=n.enteredCbs[a];if(r&&l){delete n.enteredCbs[a];for(var t=0;t<l.length;t++)r._isBeingDestroyed||l[t](r)}}}}var K={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(e,i){var n=i.props,a=i.children,l=i.parent,t=i.data;t.routerView=!0;for(var d=l.$createElement,m=n.name,s=l.$route,u=l._routerViewCache||(l._routerViewCache={}),k=0,o=!1;l&&l._routerRoot!==l;){var y=l.$vnode?l.$vnode.data:{};y.routerView&&k++,y.keepAlive&&l._directInactive&&l._inactive&&(o=!0),l=l.$parent}if(t.routerViewDepth=k,o){var b=u[m],g=b&&b.component;return g?(b.configProps&&v(g,t,b.route,b.configProps),d(g,t,a)):d()}var c=s.matched[k],H=c&&c.components[m];if(!c||!H)return u[m]=null,d();u[m]={component:H},t.registerRouteInstance=function(e,i){var n=c.instances[m];(i&&n!==e||!i&&n===e)&&(c.instances[m]=i)},(t.hook||(t.hook={})).prepatch=function(e,i){c.instances[m]=i.componentInstance},t.hook.init=function(e){e.data.keepAlive&&e.componentInstance&&e.componentInstance!==c.instances[m]&&(c.instances[m]=e.componentInstance),h(s)};var p=c.props&&c.props[m];return p&&(r(u[m],{route:s,configProps:p}),v(H,t,s,p)),d(H,t,a)}};function v(e,i,n,a){var l=i.props=function(e,i){switch(typeof i){case"undefined":return;case"object":return i;case"function":return i(e);case"boolean":return i?e.params:void 0;default:0}}(n,a);if(l){l=i.props=r({},l);var t=i.attrs=i.attrs||{};for(var d in l)e.props&&d in e.props||(t[d]=l[d],delete l[d])}}function A(e,i,n){var a=e.charAt(0);if("/"===a)return e;if("?"===a||"#"===a)return i+e;var r=i.split("/");n&&r[r.length-1]||r.pop();for(var l=e.replace(/^\//,"").split("/"),t=0;t<l.length;t++){var d=l[t];".."===d?r.pop():"."!==d&&r.push(d)}return""!==r[0]&&r.unshift(""),r.join("/")}function T(e){return e.replace(/\/(?:\s*\/)+/g,"/")}var f=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)},B=F,R=D,Y=function(e,i){return E(D(e,i),i)},N=E,P=M,O=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function D(e,i){for(var n,a=[],r=0,l=0,t="",d=i&&i.delimiter||"/";null!=(n=O.exec(e));){var m=n[0],s=n[1],u=n.index;if(t+=e.slice(l,u),l=u+m.length,s)t+=s[1];else{var k=e[l],o=n[2],y=n[3],b=n[4],g=n[5],c=n[6],H=n[7];t&&(a.push(t),t="");var p=null!=o&&null!=k&&k!==o,S="+"===c||"*"===c,z="?"===c||"*"===c,h=n[2]||d,K=b||g;a.push({name:y||r++,prefix:o||"",delimiter:h,optional:z,repeat:S,partial:p,asterisk:!!H,pattern:K?G(K):H?".*":"[^"+Z(h)+"]+?"})}}return l<e.length&&(t+=e.substr(l)),t&&a.push(t),a}function I(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function E(e,i){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",C(i)));return function(i,a){for(var r="",l=i||{},t=(a||{}).pretty?I:encodeURIComponent,d=0;d<e.length;d++){var m=e[d];if("string"!=typeof m){var s,u=l[m.name];if(null==u){if(m.optional){m.partial&&(r+=m.prefix);continue}throw new TypeError('Expected "'+m.name+'" to be defined')}if(f(u)){if(!m.repeat)throw new TypeError('Expected "'+m.name+'" to not repeat, but received `'+JSON.stringify(u)+"`");if(0===u.length){if(m.optional)continue;throw new TypeError('Expected "'+m.name+'" to not be empty')}for(var k=0;k<u.length;k++){if(s=t(u[k]),!n[d].test(s))throw new TypeError('Expected all "'+m.name+'" to match "'+m.pattern+'", but received `'+JSON.stringify(s)+"`");r+=(0===k?m.prefix:m.delimiter)+s}}else{if(s=m.asterisk?encodeURI(u).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):t(u),!n[d].test(s))throw new TypeError('Expected "'+m.name+'" to match "'+m.pattern+'", but received "'+s+'"');r+=m.prefix+s}}else r+=m}return r}}function Z(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function G(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function V(e,i){return e.keys=i,e}function C(e){return e&&e.sensitive?"":"i"}function M(e,i,n){f(i)||(n=i||n,i=[]);for(var a=(n=n||{}).strict,r=!1!==n.end,l="",t=0;t<e.length;t++){var d=e[t];if("string"==typeof d)l+=Z(d);else{var m=Z(d.prefix),s="(?:"+d.pattern+")";i.push(d),d.repeat&&(s+="(?:"+m+s+")*"),l+=s=d.optional?d.partial?m+"
16("+s+")?":"(?:"+m+"("+s+"))?":m+"("+s+")"}}var u=Z(n.delimiter||"/"),k=l.slice(-u.length)===u;return a||(l=(k?l.slice(0,-u.length):l)+"(?:"+u+"(?=$))?"),l+=r?"$":a&&k?"":"(?="+u+"|$)",V(new RegExp("^"+l,C(n)),i)}function F(e,i,n){return f(i)||(n=i||n,i=[]),n=n||{},e instanceof RegExp?function(e,i){var n=e.source.match(/\((?!\?)/g);if(n)for(var a=0;a<n.length;a++)i.push({name:a,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return V(e,i)}(e,i):f(e)?function(e,i,n){for(var a=[],r=0;r<e.length;r++)a.push(F(e[r],i,n).source);return V(new RegExp("(?:"+a.join("|")+")",C(n)),i)}(e,i,n):function(e,i,n){return M(D(e,n),i,n)}(e,i,n)}B.parse=R,B.compile=Y,B.tokensToFunction=N,B.tokensToRegExp=P;var _=Object.create(null);function L(e,i,n){i=i||{};try{var a=_[e]||(_[e]=B.compile(e));return"string"==typeof i.pathMatch&&(i[0]=i.pathMatch),a(i,{pretty:!0})}catch(e){return""}finally{delete i[0]}}function x(e,i,n,a){var l="string"==typeof e?{path:e}:e;if(l._normalized)return l;if(l.name){var t=(l=r({},e)).params;return t&&"object"==typeof t&&(l.params=r({},t)),l}if(!l.path&&l.params&&i){(l=r({},l))._normalized=!0;var d=r(r({},i.params),l.params);if(i.name)l.name=i.name,l.params=d;else if(i.matched.length){var m=i.matched[i.matched.length-1].path;l.path=L(m,d,i.path)}else 0;return l}var s=function(e){var i="",n="",a=e.indexOf("#");a>=0&&(i=e.slice(a),e=e.slice(0,a));var r=e.indexOf("?");return r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),{path:e,query:n,hash:i}}(l.path||""),o=i&&i.path||"/",y=s.path?A(s.path,o,n||l.append):o,b=function(e,i,n){void 0===i&&(i={});var a,r=n||k;try{a=r(e||"")}catch(e){a={}}for(var l in i){var t=i[l];a[l]=Array.isArray(t)?t.map(u):u(t)}return a}(s.query,l.query,a&&a.options.parseQuery),g=l.hash||s.hash;return g&&"#"!==g.charAt(0)&&(g="#"+g),{_normalized:!0,path:y,query:b,hash:g}}var U,j=function(){},w={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(e){var i=this,n=this.$router,a=this.$route,l=n.resolve(this.to,a,this.append),t=l.location,d=l.route,m=l.href,s={},u=n.options.linkActiveClass,k=n.options.linkExactActiveClass,o=null==u?"router-link-active":u,g=null==k?"router-link-exact-active":k,c=null==this.activeClass?o:this.activeClass,H=null==this.exactActiveClass?g:this.exactActiveClass,p=d.redirectedFrom?b(null,x(d.redirectedFrom),null,n):d;s[H]=S(a,p,this.exactPath),s[c]=this.exact||this.exactPath?s[H]:function(e,i){return 0===e.path.replace(y,"/").indexOf(i.path.replace(y,"/"))&&(!i.hash||e.hash===i.hash)&&function(e,i){for(var n in i)if(!(n in e))return!1;return!0}(e.query,i.query)}(a,p);var z=s[H]?this.ariaCurrentValue:null,h=function(e){$(e)&&(i.replace?n.replace(t,j):n.push(t,j))},K={click:$};Array.isArray(this.event)?this.event.forEach((function(e){K[e]=h})):K[this.event]=h;var v={class:s},A=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:m,route:d,navigate:h,isActive:s[c],isExactActive:s[H]});if(A){if(1===A.length)return A[0];if(A.length>1||!A.length)return 0===A.length?e():e("span",{},A)}if("a"===this.tag)v.on=K,v.attrs={href:m,"aria-current":z};else{var T=function e(i){var n;if(i)for(var a=0;a<i.length;a++){if("a"===(n=i[a]).tag)return n;if(n.children&&(n=e(n.children)))return n}}(this.$slots.default);if(T){T.isStatic=!1;var f=T.data=r({},T.data);for(var B in f.on=f.on||{},f.on){var R=f.on[B];B in K&&(f.on[B]=Array.isArray(R)?R:[R])}for(var Y in K)Y in f.on?f.on[Y].push(K[Y]):f.on[Y]=h;var N=T.data.attrs=r({},T.data.attrs);N.href=m,N["aria-current"]=z}else v.on=K}return e(this.tag,v,this.$slots.default)}};function $(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||e.defaultPrevented||void 0!==e.button&&0!==e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){var i=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(i))return}return e.preventDefault&&e.preventDefault(),!0}}var J="undefined"!=typeof window;function X(e,i,n,a,r){var l=i||[],t=n||Object.create(null),d=a||Object.create(null);e.forEach((function(e){!function e(i,n,a,r,l,t){var d=r.path,m=r.name;0;var s=r.pathToRegexpOptions||{},u=function(e,i,n){n||(e=e.replace(/\/$/,""));if("/"===e[0])return e;if(null==i)return e;return T(i.path+"/"+e)}
16(d,l,s.strict);"boolean"==typeof r.caseSensitive&&(s.sensitive=r.caseSensitive);var k={path:u,regex:W(u,s),components:r.components||{default:r.component},alias:r.alias?"string"==typeof r.alias?[r.alias]:r.alias:[],instances:{},enteredCbs:{},name:m,parent:l,matchAs:t,redirect:r.redirect,beforeEnter:r.beforeEnter,meta:r.meta||{},props:null==r.props?{}:r.components?r.props:{default:r.props}};r.children&&r.children.forEach((function(r){var l=t?T(t+"/"+r.path):void 0;e(i,n,a,r,k,l)}));n[k.path]||(i.push(k.path),n[k.path]=k);if(void 0!==r.alias)for(var o=Array.isArray(r.alias)?r.alias:[r.alias],y=0;y<o.length;++y){0;var b={path:o[y],children:r.children};e(i,n,a,b,l,k.path||"/")}m&&(a[m]||(a[m]=k))}(l,t,d,e,r)}));for(var m=0,s=l.length;m<s;m++)"*"===l[m]&&(l.push(l.splice(m,1)[0]),s--,m--);return{pathList:l,pathMap:t,nameMap:d}}function W(e,i){return B(e,[],i)}function q(e,i){var n=X(e),a=n.pathList,r=n.pathMap,l=n.nameMap;function t(e,n,t){var d=x(e,n,!1,i),s=d.name;if(s){var u=l[s];if(!u)return m(null,d);var k=u.regex.keys.filter((function(e){return!e.optional})).map((function(e){return e.name}));if("object"!=typeof d.params&&(d.params={}),n&&"object"==typeof n.params)for(var o in n.params)!(o in d.params)&&k.indexOf(o)>-1&&(d.params[o]=n.params[o]);return d.path=L(u.path,d.params),m(u,d,t)}if(d.path){d.params={};for(var y=0;y<a.length;y++){var b=a[y],g=r[b];if(Q(g.regex,d.path,d.params))return m(g,d,t)}}return m(null,d)}function d(e,n){var a=e.redirect,r="function"==typeof a?a(b(e,n,null,i)):a;if("string"==typeof r&&(r={path:r}),!r||"object"!=typeof r)return m(null,n);var d=r,s=d.name,u=d.path,k=n.query,o=n.hash,y=n.params;if(k=d.hasOwnProperty("query")?d.query:k,o=d.hasOwnProperty("hash")?d.hash:o,y=d.hasOwnProperty("params")?d.params:y,s){l[s];return t({_normalized:!0,name:s,query:k,hash:o,params:y},void 0,n)}if(u){var g=function(e,i){return A(e,i.parent?i.parent.path:"/",!0)}(u,e);return t({_normalized:!0,path:L(g,y),query:k,hash:o},void 0,n)}return m(null,n)}function m(e,n,a){return e&&e.redirect?d(e,a||n):e&&e.matchAs?function(e,i,n){var a=t({_normalized:!0,path:L(n,i.params)});if(a){var r=a.matched,l=r[r.length-1];return i.params=a.params,m(l,i)}return m(null,i)}(0,n,e.matchAs):b(e,n,a,i)}return{match:t,addRoute:function(e,i){var n="object"!=typeof e?l[e]:void 0;X([i||e],a,r,l,n),n&&n.alias.length&&X(n.alias.map((function(e){return{path:e,children:[i]}})),a,r,l,n)},getRoutes:function(){return a.map((function(e){return r[e]}))},addRoutes:function(e){X(e,a,r,l)}}}function Q(e,i,n){var a=i.match(e);if(!a)return!1;if(!n)return!0;for(var r=1,l=a.length;r<l;++r){var t=e.keys[r-1];
16t&&(n[t.name||"pathMatch"]="string"==typeof a[r]?s(a[r]):a[r])}return!0}var ee=J&&window.performance&&window.performance.now?window.performance:Date;function ie(){return ee.now().toFixed(3)}var ne=ie();function ae(){return ne}function re(e){return ne=e}var le=Object.create(null);function te(){"scrollRestoration"in window.history&&(window.history.scrollRestoration="manual");var e=window.location.protocol+"//"+window.location.host,i=window.location.href.replace(e,""),n=r({},window.history.state);return n.key=ae(),window.history.replaceState(n,"",i),window.addEventListener("popstate",se),function(){window.removeEventListener("popstate",se)}}function de(e,i,n,a){if(e.app){var r=e.options.scrollBehavior;r&&e.app.$nextTick((function(){var l=function(){var e=ae();if(e)return le[e]}(),t=r.call(e,i,n,a?l:null);t&&("function"==typeof t.then?t.then((function(e){be(e,l)})).catch((function(e){0})):be(t,l))}))}}function me(){var e=ae();e&&(le[e]={x:window.pageXOffset,y:window.pageYOffset})}function se(e){me(),e.state&&e.state.key&&re(e.state.key)}function ue(e){return oe(e.x)||oe(e.y)}function ke(e){return{x:oe(e.x)?e.x:window.pageXOffset,y:oe(e.y)?e.y:window.pageYOffset}}function oe(e){return"number"==typeof e}var ye=/^#\d/;function be(e,i){var n,a="object"==typeof e;if(a&&"string"==typeof e.selector){var r=ye.test(e.selector)?document.getElementById(e.selector.slice(1)):document.querySelector(e.selector);if(r){var l=e.offset&&"object"==typeof e.offset?e.offset:{};i=function(e,i){var n=document.documentElement.getBoundingClientRect(),a=e.getBoundingClientRect();return{x:a.left-n.left-i.x,y:a.top-n.top-i.y}}(r,l={x:oe((n=l).x)?n.x:0,y:oe(n.y)?n.y:0})}else ue(e)&&(i=ke(e))}else a&&ue(e)&&(i=ke(e));i&&("scrollBehavior"in document.documentElement.style?window.scrollTo({left:i.x,top:i.y,behavior:e.behavior}):window.scrollTo(i.x,i.y))}var ge,ce=J&&((-1===(ge=window.navigator.userAgent).indexOf("Android 2.")&&-1===ge.indexOf("Android 4.0")||-1===ge.indexOf("Mobile Safari")||-1!==ge.indexOf("Chrome")||-1!==ge.indexOf("Windows Phone"))&&window.history&&"function"==typeof window.history.pushState);function He(e,i){me();var n=window.history;try{if(i){var a=r({},n.state);a.key=ae(),n.replaceState(a,"",e)}else n.pushState({key:re(ie())},"",e)}catch(n){window.location[i?"replace":"assign"](e)}}function pe(e){He(e,!0)}var Se={redirected:2,aborted:4,cancelled:8,duplicated:16};function ze(e,i){return Ke(e,i,Se.redirected,'Redirected when going from "'+e.fullPath+'" to "'+function(e){if("string"==typeof e)return e;if("path"in e)return e.path;var i={};return ve.forEach((function(n){n in e&&(i[n]=e[n])})),JSON.stringify(i,null,2)}(i)+'" via a navigation guard.')}function he(e,i){return Ke(e,i,Se.cancelled,'Navigation cancelled from "'+e.fullPath+'" to "'+i.fullPath+'" with a new navigation.')}function Ke(e,i,n,a){var r=new Error(a);return r._isRouter=!0,r.from=e,r.to=i,r.type=n,r}var ve=["params","query","hash"];function Ae(e){return Object.prototype.toString.call(e).indexOf("Error")>-1}function Te(e,i){return Ae(e)&&e._isRouter&&(null==i||e.type===i)}function fe(e,i,n){var a=function(r){r>=e.length?n():e[r]?i(e[r],(function(){a(r+1)})):a(r+1)};a(0)}function Be(e){return function(i,n,a){var r=!1,l=0,t=null;Re(e,(function(e,i,n,d){if("function"==typeof e&&void 0===e.cid){r=!0,l++;var m,s=Pe((function(i){var r;((r=i).__esModule||Ne&&"Module"===r[Symbol.toStringTag])&&(i=i.default),e.resolved="function"==typeof i?i:U.extend(i),n.components[d]=i,--l<=0&&a()})),u=Pe((function(e){var i="Failed to resolve async component "+d+": "+e;t||(t=Ae(e)?e:new Error(i),a(t))}));try{m=e(s,u)}catch(e){u(e)}if(m)if("function"==typeof m.then)m.then(s,u);else{var k=m.component;k&&"function"==typeof k.then&&k.then(s,u)}}})),r||a()}}function Re(e,i){return Ye(e.map((function(e){return Object.keys(e.components).map((function(n){return i(e.components[n],e.instances[n],e,n)}))})))}function Ye(e){return Array.prototype.concat.apply([],e)}var Ne="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Pe(e){var i=!1;return function(){for(var n=[],a=arguments.length;a--;)n[a]=arguments[a];if(!i)return i=!0,e.apply(this,n)}}var Oe=function(e,i){this.router=e,this.base=function(e){if(!e)if(J){var i=document.querySelector("base");e=(e=i&&i.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else e="/";"/"!==e.charAt(0)&&(e="/"+e);return e.replace(/\/$/,"")}(i),this.current=c,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function De(e,i,n,a){var r=Re(e,(function(e,a,r,l){var t=function(e,i){"function"!=typeof e&&(e=U.extend(e));return e.options[i]}(e,i);if(t)return Array.isArray(t)?t.map((function(e){return n(e,a,r,l)})):n(t,a,r,l)}));return Ye(a?r.reverse():r)}function Ie(e,i){if(i)return function(){return e.apply(i,arguments)}}Oe.prototype.listen=function(e){this.cb=e},Oe.prototype.onReady=function(e,i){this.ready?e():(this.readyCbs.push(e),i&&this.readyErrorCbs.push(i))},Oe.prototype.onError=function(e){this.errorCbs.push(e)},Oe.prototype.transitionTo=function(e,i,n){var a,r=this;try{a=this.router.match(e,this.current)}
vendor: 9,080 bytes, line 16
16catch(e){throw this.errorCbs.forEach((function(i){i(e)})),e}var l=this.current;this.confirmTransition(a,(function(){r.updateRoute(a),i&&i(a),r.ensureURL(),r.router.afterHooks.forEach((function(e){e&&e(a,l)})),r.ready||(r.ready=!0,r.readyCbs.forEach((function(e){e(a)})))}),(function(e){n&&n(e),e&&!r.ready&&(Te(e,Se.redirected)&&l===c||(r.ready=!0,r.readyErrorCbs.forEach((function(i){i(e)}))))}))},Oe.prototype.confirmTransition=function(e,i,n){var a=this,r=this.current;this.pending=e;var l,t,d=function(e){!Te(e)&&Ae(e)&&(a.errorCbs.length?a.errorCbs.forEach((function(i){i(e)})):console.error(e)),n&&n(e)},m=e.matched.length-1,s=r.matched.length-1;if(S(e,r)&&m===s&&e.matched[m]===r.matched[s])return this.ensureURL(),e.hash&&de(this.router,r,e,!1),d(((t=Ke(l=r,e,Se.duplicated,'Avoided redundant navigation to current location: "'+l.fullPath+'".')).name="NavigationDuplicated",t));var u=function(e,i){var n,a=Math.max(e.length,i.length);for(n=0;n<a&&e[n]===i[n];n++);return{updated:i.slice(0,n),activated:i.slice(n),deactivated:e.slice(n)}}(this.current.matched,e.matched),k=u.updated,o=u.deactivated,y=u.activated,b=[].concat(function(e){return De(e,"beforeRouteLeave",Ie,!0)}(o),this.router.beforeHooks,function(e){return De(e,"beforeRouteUpdate",Ie)}(k),y.map((function(e){return e.beforeEnter})),Be(y)),g=function(i,n){if(a.pending!==e)return d(he(r,e));try{i(e,r,(function(i){!1===i?(a.ensureURL(!0),d(function(e,i){return Ke(e,i,Se.aborted,'Navigation aborted from "'+e.fullPath+'" to "'+i.fullPath+'" via a navigation guard.')}(r,e))):Ae(i)?(a.ensureURL(!0),d(i)):"string"==typeof i||"object"==typeof i&&("string"==typeof i.path||"string"==typeof i.name)?(d(ze(r,e)),"object"==typeof i&&i.replace?a.replace(i):a.push(i)):n(i)}))}catch(e){d(e)}};fe(b,g,(function(){fe(function(e){return De(e,"beforeRouteEnter",(function(e,i,n,a){return function(e,i,n){return function(a,r,l){return e(a,r,(function(e){"function"==typeof e&&(i.enteredCbs[n]||(i.enteredCbs[n]=[]),i.enteredCbs[n].push(e)),l(e)}))}}(e,n,a)}))}(y).concat(a.router.resolveHooks),g,(function(){if(a.pending!==e)return d(he(r,e));a.pending=null,i(e),a.router.app&&a.router.app.$nextTick((function(){h(e)}))}))}))},Oe.prototype.updateRoute=function(e){this.current=e,this.cb&&this.cb(e)},Oe.prototype.setupListeners=function(){},Oe.prototype.teardown=function(){this.listeners.forEach((function(e){e()})),this.listeners=[],this.current=c,this.pending=null};var Ee=function(e){function i(i,n){e.call(this,i,n),this._startLocation=Ze(this.base)}return e&&(i.__proto__=e),i.prototype=Object.create(e&&e.prototype),i.prototype.constructor=i,i.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var i=this.router,n=i.options.scrollBehavior,a=ce&&n;a&&this.listeners.push(te());var r=function(){var n=e.current,r=Ze(e.base);e.current===c&&r===e._startLocation||e.transitionTo(r,(function(e){a&&de(i,e,n,!0)}))};window.addEventListener("popstate",r),this.listeners.push((function(){window.removeEventListener("popstate",r)}))}},i.prototype.go=function(e){window.history.go(e)},i.prototype.push=function(e,i,n){var a=this,r=this.current;this.transitionTo(e,(function(e){He(T(a.base+e.fullPath)),de(a.router,e,r,!1),i&&i(e)}),n)},i.prototype.replace=function(e,i,n){var a=this,r=this.current;this.transitionTo(e,(function(e){pe(T(a.base+e.fullPath)),de(a.router,e,r,!1),i&&i(e)}),n)},i.prototype.ensureURL=function(e){if(Ze(this.base)!==this.current.fullPath){var i=T(this.base+this.current.fullPath);e?He(i):pe(i)}},i.prototype.getCurrentLocation=function(){return Ze(this.base)},i}(Oe);function Ze(e){var i=window.location.pathname,n=i.toLowerCase(),a=e.toLowerCase();return!e||n!==a&&0!==n.indexOf(T(a+"/"))||(i=i.slice(e.length)),(i||"/")+window.location.search+window.location.hash}var Ge=function(e){function i(i,n,a){e.call(this,i,n),a&&function(e){var i=Ze(e);if(!/^\/#/.test(i))return window.location.replace(T(e+"/#"+i)),!0}(this.base)||Ve()}return e&&(i.__proto__=e),i.prototype=Object.create(e&&e.prototype),i.prototype.constructor=i,i.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var i=this.router.options.scrollBehavior,n=ce&&i;n&&this.listeners.push(te());var a=function(){var i=e.current;Ve()&&e.transitionTo(Ce(),(function(a){n&&de(e.router,a,i,!0),ce||_e(a.fullPath)}))},r=ce?"popstate":"hashchange";window.addEventListener(r,a),this.listeners.push((function(){window.removeEventListener(r,a)}))}},i.prototype.push=function(e,i,n){var a=this,r=this.current;this.transitionTo(e,(function(e){Fe(e.fullPath),de(a.router,e,r,!1),i&&i(e)}),n)},i.prototype.replace=function(e,i,n){var a=this,r=this.current;this.transitionTo(e,(function(e){_e(e.fullPath),de(a.router,e,r,!1),i&&i(e)}),n)},i.prototype.go=function(e){window.history.go(e)},i.prototype.ensureURL=function(e){var i=this.current.fullPath;Ce()!==i&&(e?Fe(i):_e(i))},i.prototype.getCurrentLocation=function(){return Ce()},i}(Oe);function Ve(){var e=Ce();return"/"===e.charAt(0)||(_e("/"+e),!1)}function Ce(){var e=window.location.href,i=e.indexOf("#");return i<0?"":e=e.slice(i+1)}function Me(e){var i=window.location.href,n=i.indexOf("#");return(n>=0?i.slice(0,n):i)+"#"+e}function Fe(e){ce?He(Me(e)):window.location.hash=e}function _e(e){ce?pe(Me(e)):window.location.replace(Me(e))}var Le=function(e){function i(i,n){e.call(this,i,n),this.stack=[],this.index=-1}return e&&(i.__proto__=e),i.prototype=Object.create(e&&e.prototype),i.prototype.constructor=i,i.prototype.push=function(e,i,n){var a=this;this.transitionTo(e,(function(e){a.stack=a.stack.slice(0,a.index+1).concat(e),a.index++,i&&i(e)}),n)},i.prototype.replace=function(e,i,n){var a=this;this.transitionTo(e,(function(e){a.stack=a.stack.slice(0,a.index).concat(e),i&&i(e)}),n)},i.prototype.go=function(e){var i=this,n=this.index+e;if(!(n<0||n>=this.stack.length)){var a=this.stack[n];this.confirmTransition(a,(function(){var e=i.current;i.index=n,i.updateRoute(a),i.router.afterHooks.forEach((function(i){i&&i(a,e)}))}),(function(e){Te(e,Se.duplicated)&&(i.index=n)}))}},i.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},i.prototype.ensureURL=function(){},i}(Oe),xe=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=q(e.routes||[],this);var i=e.mode||"hash";switch(this.fallback="history"===i&&!ce&&!1!==e.fallback,this.fallback&&(i="hash"),J||(i="abstract"),this.mode=i,i){case"history":this.history=new Ee(this,e.base);break;case"hash":this.history=new Ge(this,e.base,this.fallback);break;case"abstract":this.history=new Le(this,e.base);break;default:0}},Ue={currentRoute:{configurable:!0}};xe.prototype.match=function(e,i,n){return this.matcher.match(e,i,n)},Ue.currentRoute.get=function(){return this.history&&this.history.current},xe.prototype.init=function(e){var i=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var n=i.apps.indexOf(e);n>-1&&i.apps.splice(n,1),i.app===e&&(i.app=i.apps[0]||null),i.app||i.history.teardown()})),!this.app){this.app=e;var n=this.history;if(n instanceof Ee||n instanceof Ge){var a=function(e){n.setupListeners(),function(e){var a=n.current,r=i.options.scrollBehavior;ce&&r&&"fullPath"in e&&de(i,e,a,!1)}(e)};n.transitionTo(n.getCurrentLocation(),a,a)}n.listen((function(e){i.apps.forEach((function(i){i._route=e}))}))}},xe.prototype.beforeEach=function(e){return we(this.beforeHooks,e)},xe.prototype.beforeResolve=function(e){return we(this.resolveHooks,e)},xe.prototype.afterEach=function(e){return we(this.afterHooks,e)},xe.prototype.onReady=function(e,i){this.history.onReady(e,i)},xe.prototype.onError=function(e){this.history.onError(e)},xe.prototype.push=function(e,i,n){var a=this;if(!i&&!n&&"undefined"!=typeof Promise)return new Promise((function(i,n){a.history.push(e,i,n)}));this.history.push(e,i,n)},xe.prototype.replace=function(e,i,n){var a=this;if(!i&&!n&&"undefined"!=typeof Promise)return new Promise((function(i,n){a.history.replace(e,i,n)}));this.history.replace(e,i,n)},xe.prototype.go=function(e){this.history.go(e)},xe.prototype.back=function(){this.go(-1)},xe.prototype.forward=function(){this.go(1)},xe.prototype.getMatchedComponents=function(e){var i=e?e.matched?e:this.resolve(e).route:this.currentRoute;return i?[].concat.apply([],i.matched.map((function(e){return Object.keys(e.components).map((function(i){return e.components[i]}))}))):[]},xe.prototype.resolve=function(e,i,n){var a=x(e,i=i||this.history.current,n,this),r=this.match(a,i),l=r.redirectedFrom||r.fullPath;return{location:a,route:r,href:function(e,i,n){var a="hash"===n?"#"+i:i;return e?T(e+"/"+a):a}(this.history.base,l,this.mode),normalizedTo:a,resolved:r}},xe.prototype.getRoutes=function(){return this.matcher.getRoutes()},xe.prototype.addRoute=function(e,i){this.matcher.addRoute(e,i),this.history.current!==c&&this.history.transitionTo(this.history.getCurrentLocation())},xe.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==c&&this.history.transitionTo(this.history.getCurrentLocation())}
16,Object.defineProperties(xe.prototype,Ue);var je=xe;function we(e,i){return e.push(i),function(){var n=e.indexOf(i);n>-1&&e.splice(n,1)}}xe.install=function e(i){if(!e.installed||U!==i){e.installed=!0,U=i;var n=function(e){return void 0!==e},a=function(e,i){var a=e.$options._parentVnode;n(a)&&n(a=a.data)&&n(a=a.registerRouteInstance)&&a(e,i)};i.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),i.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,a(this,this)},destroyed:function(){a(this)}}),Object.defineProperty(i.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(i.prototype,"$route",{get:function(){return this._routerRoot._route}}),i.component("RouterView",K),i.component("RouterLink",w);var r=i.config.optionMergeStrategies;r.beforeRouteEnter=r.beforeRouteLeave=r.beforeRouteUpdate=r.created}},xe.version="3.6.5",xe.isNavigationFailure=Te,xe.NavigationFailureType=Se,xe.START_LOCATION=c,J&&window.Vue&&window.Vue.use(xe);n(128),n(71),n(129);n(130),n(122);var $e={"components/AlgoliaSearchBox":()=>Promise.all([n.e(0),n.e(28)]).then(n.bind(null,778)),"components/DropdownLink":()=>Promise.all([n.e(0),n.e(25)]).then(n.bind(null,494)),"components/DropdownTransition":()=>Promise.all([n.e(0),n.e(61)]).then(n.bind(null,454)),"components/Home":()=>Promise.all([n.e(0),n.e(44)]).then(n.bind(null,604)),"components/NavLink":()=>n.e(65).then(n.bind(null,394)),"components/NavLinks":()=>Promise.all([n.e(0),n.e(24)]).then(n.bind(null,509)),"components/Navbar":()=>Promise.all([n.e(0),n.e(4)]).then(n.bind(null,766)),"components/Page":()=>Promise.all([n.e(0),n.e(23)]).then(n.bind(null,605)),"components/PageEdit":()=>Promise.all([n.e(0),n.e(45)]).then(n.bind(null,524)),"components/PageNav":()=>Promise.all([n.e(0),n.e(38)]).then(n.bind(null,525)),"components/Sidebar":()=>Promise.all([n.e(0),n.e(22)]).then(n.bind(null,606)),"components/SidebarButton":()=>Promise.all([n.e(0),n.e(62)]).then(n.bind(null,608)),"components/SidebarGroup":()=>Promise.all([n.e(0),n.e(7)]).then(n.bind(null,510)),"components/SidebarLink":()=>Promise.all([n.e(0),n.e(47)]).then(n.bind(null,495)),"components/SidebarLinks":()=>Promise.all([n.e(0),n.e(7)]).then(n.bind(null,487)),"global-components/Badge":()=>Promise.all([n.e(0),n.e(9)]).then(n.bind(null,796)),"global-components/CodeBlock":()=>Promise.all([n.e(0),n.e(10)]).then(n.bind(null,779)),"global-components/CodeGroup":()=>Promise.all([n.e(0),n.e(11)]).then(n.bind(null,780)),"layouts/404":()=>n.e(12).then(n.bind(null,781)),"layouts/Layout":()=>Promise.all([n.e(0),n.e(4),n.e(5),n.e(8)]).then(n.bind(null,782)),NotFound:()=>n.e(12).then(n.bind(null,781)),Layout:()=>Promise.all([n.e(0),n.e(4),n.e(5),n.e(8)]).then(n.bind(null,782))},Je={"v-64dca03d":()=>n.e(66).then(n.bind(null,797)),"v-22024c43":()=>n.e(79).then(n.bind(null,798)),"v-90050004":()=>n.e(76).then(n.bind(null,799)),"v-61b42a93":()=>n.e(77).then(n.bind(null,800)),"v-6465b33d":()=>n.e(78).then(n.bind(null,801)),"v-81b8a67a":()=>n.e(80).then(n.bind(null,802)),"v-48317b86":()=>n.e(67).then(n.bind(null,803)),"v-23bd824f":()=>n.e(81).then(n.bind(null,804)),"v-5b1695dd":()=>n.e(39).then(n.bind(null,805)),"v-822cf8c6":()=>n.e(82).then(n.bind(null,806)),"v-7e81b77d":()=>n.e(48).then(n.bind(null,807)),"v-4888cd9d":()=>n.e(83).then(n.bind(null,808)),"v-7301a6d1":()=>n.e(84).then(n.bind(null,809)),"v-1178fa5d":()=>n.e(85).then(n.bind(null,810)),"v-01c649bd":()=>n.e(29).then(n.bind(null,811)),"v-432b5bd6":()=>n.e(86).then(n.bind(null,812)),"v-bc107546":()=>n.e(68).then(n.bind(null,813)),"v-d80dcb06":()=>n.e(88).then(n.bind(null,814)),"v-485bbe8d":()=>n.e(87).then(n.bind(null,815)),"v-3539d41d":()=>n.e(49).then(n.bind(null,816)),"v-f0808a06":()=>n.e(40).then(n.bind(null,817)),"v-1be15362":()=>n.e(90).then(n.bind(null,818)),"v-3e221f7d":()=>n.e(91).then(n.bind(null,819)),"v-1ef8939d":()=>n.e(30).then(n.bind(null,820)),"v-03088e53":()=>n.e(92).then(n.bind(null,821)),"v-cc5a0b86":()=>n.e(69).then(n.bind(null,822)),"v-0ec6f57d":()=>n.e(89).then(n.bind(null,823)),"v-751f6acf":()=>n.e(93).then(n.bind(null,824)),"v-9cc354c6":()=>n.e(94).then(n.bind(null,825)),"v-553c6446":()=>n.e(41).then(n.bind(null,826)),"v-9e25e106":()=>n.e(50).then(n.bind(null,827)),"v-206455c6":()=>n.e(95).then(n.bind(null,828)),"v-3358815e":()=>n.e(96).then(n.bind(null,829)),"v-7e5b51bd":()=>n.e(31).then(n.bind(null,830)),"v-8d4168c6":()=>n.e(70).then(n.bind(null,831)),"v-e8779b46":()=>n.e(97).then(n.bind(null,832)),"v-70a6dc4e":()=>n.e(99).then(n.bind(null,833)),"v-2fcc3a95":()=>n.e(98).then(n.bind(null,834)),"v-3637769d":()=>n.e(100).then(n.bind(null,835)),"v-3ee390dd":()=>n.e(101).then(n.bind(null,836)),"v-642a7506":()=>n.e(103).then(n.bind(null,837)),"v-68ac6685":()=>n.e(104).then(n.bind(null,838)),"v-6480bcc7":()=>n.e(102).then(n.bind(null,839)),"v-f0a9c5f2":()=>n.e(26).then(n.bind(null,840)),"v-e89e9b86":()=>n.e(71).then(n.bind(null,841)),"v-14ad9962":()=>n.e(105).then(n.bind(null,842)),"v-2b71dd9d":()=>n.e(106).then(n.bind(null,843)),"v-2c81f446":()=>n.e(32).then(n.bind(null,844)),"v-143b3106":()=>n.e(51).then(n.bind(null,845)),"v-c07c3efa":()=>n.e(33).then(n.bind(null,846)),"v-29ce59bd":()=>n.e(34).then(n.bind(null,847)),"v-448b4d1d":()=>n.e(107).then(n.bind(null,848)),"v-64fc905e":()=>n.e(108).then(n.bind(null,849)),"v-bfbd2b46":()=>n.e(109).then(n.bind(null,850)),"v-48365a59":()=>n.e(112).then(n.bind(null,851)),"v-e73a02ea":()=>n.e(111).then(n.bind(null,852)),"v-24f9d8c6":()=>n.e(72).then(n.bind(null,853)),"v-9f53f9d6":()=>n.e(110).then(n.bind(null,854)),"v-d8bdee46":()=>n.e(114).then(n.bind(null,855)),"v-b537e5f2":()=>n.e(115).then(n.bind(null,856)),"v-7b0a82c6":()=>n.e(113).then(n.bind(null,857)),"v-5a2e0d7d":()=>n.e(117).then(n.bind(null,858)),"v-35eaf572":()=>n.e(116).then(n.bind(null,859)),"v-aa99c1f6":()=>n.e(118).then(n.bind(null,860)),"v-51c1355d":()=>n.e(73).then(n.bind(null,861)),"v-1d292df6":()=>n.e(27).then(n.bind(null,862)),"v-1a476f8d":()=>n.e(119).then(n.bind(null,863)),"v-7adaab06":()=>n.e(74).then(n.bind(null,864)),"v-16682afd":()=>n.e(35).then(n.bind(null,865)),"v-1c9ff506":()=>n.e(120).then(n.bind(null,866)),"v-a6caf7c6":()=>
16n.e(52).then(n.bind(null,867)),"v-dbcd7a7e":()=>n.e(36).then(n.bind(null,868)),"v-4c8f674f":()=>n.e(122).then(n.bind(null,869)),"v-0219a13d":()=>n.e(121).then(n.bind(null,870)),"v-4700a39d":()=>n.e(37).then(n.bind(null,871)),"v-2b804dc9":()=>n.e(125).then(n.bind(null,872)),"v-666ae106":()=>n.e(123).then(n.bind(null,873)),"v-5617815a":()=>n.e(124).then(n.bind(null,874)),"v-43c4777d":()=>n.e(127).then(n.bind(null,875)),"v-6cd49697":()=>n.e(126).then(n.bind(null,876)),"v-3f5d6285":()=>n.e(129).then(n.bind(null,877)),"v-09a8c185":()=>n.e(130).then(n.bind(null,878)),"v-512f5cfd":()=>n.e(128).then(n.bind(null,879)),"v-6b037b83":()=>n.e(132).then(n.bind(null,880)),"v-49107346":()=>n.e(131).then(n.bind(null,881))};function Xe(e){const i=Object.create(null);return function(n){return i[n]||(i[n]=e(n))}}const We=/-(\w)/g,qe=Xe(e=>e.replace(We,(e,i)=>i?i.toUpperCase():"")),Qe=/\B([A-Z])/g,ei=Xe(e=>e.replace(Qe,"-$1").toLowerCase()),ii=Xe(e=>e.charAt(0).toUpperCase()+e.slice(1));function ni(e,i){if(!i)return;if(e(i))return e(i);return i.includes("-")?e(ii(qe(i))):e(ii(i))||e(ei(i))}const ai=Object.assign({},$e,Je),ri=e=>ai[e],li=e=>Je[e],ti=e=>$e[e],di=e=>a.default.component(e);function mi(e){return ni(li,e)}function si(e){return ni(ti,e)}function ui(e){return ni(ri,e)}function ki(e){return ni(di,e)}function oi(...e){return Promise.all(e.filter(e=>e).map(async e=>{if(!ki(e)&&ui(e)){const i=await ui(e)();a.default.component(e,i.default)}}))}function yi(e,i){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[e]=i)}n(126);var bi=n(118),gi=n.n(bi),ci=n(119),Hi=n.n(ci),pi={created(){if(this.siteMeta=this.$site.headTags.filter(([e])=>"meta"===e).map(([e,i])=>i),this.$ssrContext){const i=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(e=i)?e.map(e=>{let i="<meta";return Object.keys(e).forEach(n=>{i+=` ${n}="${Hi()(e[n])}"`}),i+">"}).join("\n    "):"",this.$ssrContext.canonicalLink=zi(this.$canonicalUrl)}var e},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const e=this.getMergedMetaTags();this.currentMetaTags=hi(e,this.currentMetaTags)},getMergedMetaTags(){const e=this.$page.frontmatter.meta||[];return gi()([{name:"description",content:this.$description}],e,this.siteMeta,Ki)},updateCanonicalLink(){Si(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",zi(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){hi(null,this.currentMetaTags),Si()}};function Si(){const e=document.querySelector("link[rel='canonical']");e&&e.remove()}function zi(e=""){return e?`<link href="${e}" rel="canonical" />`:""}function hi(e,i){if(i&&[...i].filter(e=>e.parentNode===document.head).forEach(e=>document.head.removeChild(e)),e)return e.map(e=>{const i=document.createElement("meta");return Object.keys(e).forEach(n=>{i.setAttribute(n,e[n])}),document.head.appendChild(i),i})}function Ki(e){for(const i of["name","property","itemprop"])if(e.hasOwnProperty(i))return e[i]+i;return JSON.stringify(e)}n(70);var vi=n(120),Ai={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:n.n(vi)()((function(){this.setActiveHash()}),300),setActiveHash(){const e=[].slice.call(document.querySelectorAll(".sidebar-link")),i=[].slice.call(document.querySelectorAll(".header-anchor")).filter(i=>e.some(e=>e.hash===i.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),r=window.innerHeight+n;for(let e=0;e<i.length;e++){const l=i[e],t=i[e+1],d=0===e&&0===n||n>=l.parentElement.offsetTop+10&&(!t||n<t.parentElement.offsetTop-10),m=decodeURIComponent(this.$route.hash);if(d&&m!==decodeURIComponent(l.hash)){const n=l;if(r===a)for(let n=e+1;n<i.length;n++)if(m===decodeURIComponent(i[n].hash))return;return this.$vuepress.$set("disableScrollBehavior",!0),void this.$router.replace(decodeURIComponent(n.hash),()=>{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},Ti=n(43),fi=n.n(Ti),Bi=[pi,Ai,{mounted(){fi.a.configure({showSpinner:!1}),this.$router.beforeEach((e,i,n)=>{e.path===i.path||a.default.component(e.name)||fi.a.start(),n()}),this.$router.afterEach(()=>{fi.a.done(),this.isSidebarOpen=!1})}}],Ri={name:"GlobalLayout",computed:{layout(){const e=this.getLayout();return yi("layout",e),a.default.component(e)}},methods:{getLayout(){if(this.$page.path){const e=this.$page.frontmatter.layout;return e&&(this.$vuepress.getLayoutAsyncComponent(e)||this.$vuepress.getVueComponent(e))?e:"Layout"}return"NotFound"}}},Yi=n(29),Ni=Object(Yi.a)(Ri,(function(){return(0,this._self._c)(this.layout,{tag:"component"})}),[],!1,null,null,null).exports;!function(e,i,n){switch(i){case"components":e[i]||(e[i]={}),Object.assign(e[i],n);break;case"mixins":e[i]||(e[i]=[]),e[i].push(...n);break;default:throw new Error("Unknown option name.")}}(Ni,"mixins",Bi);const Pi=[{name:"v-64dca03d",path:"/pages/contact.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-64dca03d").then(n)}},{name:"v-22024c43",path:"/surum-yonetimi.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-22024c43").then(n)}},{name:"v-90050004",path:"/",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-90050004").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-61b42a93",path:"/dijital-cuzdan.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-61b42a93").then(n)}},{name:"v-6465b33d",path:"/sorulan-sorular.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-6465b33d").then(n)}},{name:"v-81b8a67a",path:"/uyum-tarihleri.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-81b8a67a").then(n)}},{name:"v-48317b86",path:"/v1.0.1/contents/ekler.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-48317b86").then(n)}},{name:"v-23bd824f",path:"/v1.0.1/contents/erisim-belirteci.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-23bd824f").then(n)}},{name:"v-5b1695dd",path:"/v1.0.1/contents/hesap-bilgisi-hizmeti.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-5b1695dd").then(n)}},{name:"v-822cf8c6",path:"/v1.0.1/contents/gkd.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-822cf8c6").then(n)}},{name:"v-7e81b77d",path:"/v1.0.1/contents/kapsam-ve-dayanak.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-7e81b77d").then(n)}},{name:"v-4888cd9d",path:"/v1.0.1/contents/hhs-yos-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-4888cd9d").then(n)}},{name:"v-7301a6d1",path:"/v1.0.1/contents/riza-durumlari.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-7301a6d1").then(n)}},{name:"v-1178fa5d",path:"/v1.0.1/contents/tanim-ve-kisitlamalar.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-1178fa5d").then(n)}},{name:"v-01c649bd",path:"/v1.0.1/contents/odeme-emri-baslatma-hizmeti.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-01c649bd").then(n)}},{name:"v-432b5bd6",path:"/v1.0.1/contents/temel-prensipler.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-432b5bd6").then(n)}},{name:"v-bc107546",path:"/v1.0.2/contents/ekler.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-bc107546").then(n)}},{name:"v-d80dcb06",path:"/v1.0.2/contents/gkd.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-d80dcb06").then(n)}},{name:"v-485bbe8d",path:"/v1.0.2/contents/erisim-belirteci.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-485bbe8d").then(n)}},{name:"v-3539d41d",path:"/v1.0.2/contents/kapsam-ve-dayanak.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-3539d41d").then(n)}},{name:"v-f0808a06",path:"/v1.0.2/contents/hesap-bilgisi-hizmeti.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-f0808a06").then(n)}},{name:"v-1be15362",path:"/v1.0.2/contents/riza-durumlari.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-1be15362").then(n)}},{name:"v-3e221f7d",path:"/v1.0.2/contents/tanim-ve-kisitlamalar.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-3e221f7d").then(n)}},{name:"v-1ef8939d",path:"/v1.0.2/contents/odeme-emri-baslatma-hizmeti.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-1ef8939d").then(n)}},{name:"v-03088e53",path:"/v1.0.2/contents/temel-prensipler.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-03088e53").then(n)}},{name:"v-cc5a0b86",path:"/v1.1.0/contents/ekler.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-cc5a0b86").then(n)}},{name:"v-0ec6f57d",path:"/v1.0.2/contents/hhs-yos-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-0ec6f57d").then(n)}},{name:"v-751f6acf",path:"/v1.1.0/contents/erisim-belirteci.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-751f6acf").then(n)}},{name:"v-9cc354c6",path:"/v1.1.0/contents/hhs-yos-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-9cc354c6").then(n)}},{name:"v-553c6446",path:"/v1.1.0/contents/hesap-bilgisi-hizmeti.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-553c6446").then(n)}},{name:"v-9e25e106",path:"/v1.1.0/contents/kapsam-ve-dayanak.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-9e25e106").then(n)}},{name:"v-206455c6",path:"/v1.1.0/contents/olay-bildirim.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-206455c6").then(n)}},{name:"v-3358815e",path:"/v1.1.0/contents/riza-durumlari.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-3358815e").then(n)}},{name:"v-7e5b51bd",path:"/v1.1.0/contents/odeme-emri-baslatma-hizmeti.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-7e5b51bd").then(n)}},{name:"v-8d4168c6",path:"/v1.1.0/contents/gkd.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-8d4168c6").then(n)}},{name:"v-e8779b46",path:"/v1.1.0/contents/tanim-ve-kisitlamalar.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-e8779b46").then(n)}},{name:"v-70a6dc4e",path:"/v1.1.0/deneyalani/genel-bilgiler.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-70a6dc4e").then(n)}},{name:"v-2fcc3a95",path:"/v1.1.0/contents/temel-prensipler.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-2fcc3a95").then(n)}},{name:"v-3637769d",path:"/v1.1.0/deneyalani/hesap-bilgisi-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-3637769d").then(n)}},{name:"v-3ee390dd",path:"/v1.1.0/deneyalani/hhs-yos-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-3ee390dd").then(n)}},{name:"v-642a7506",path:"/v1.1.0/deneyalani/olay-bildirim-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-642a7506").then(n)}},{name:"v-68ac6685",path:"/v1.1.0/deneyalani/test.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-68ac6685").then(n)}},{name:"v-6480bcc7",path:"/v1.1.0/deneyalani/odeme-emri-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-6480bcc7").then(n)}},{name:"v-f0a9c5f2",path:"/v2.0.0/contents/duzenli-odeme-emri-hizmeti.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-f0a9c5f2").then(n)}},{name:"v-e89e9b86",path:"/v2.0.0/contents/ekler.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-e89e9b86").then(n)}},{name:"v-14ad9962",path:"/v2.0.0/contents/erisim-belirteci.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-14ad9962").then(n)}},{name:"v-2b71dd9d",path:"/v2.0.0/contents/hhs-yos-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-2b71dd9d").then(n)}},{name:"v-2c81f446",path:"/v2.0.0/contents/hesap-bilgisi-hizmeti.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-2c81f446").then(n)}},{name:"v-143b3106",path:"/v2.0.0/contents/kapsam-ve-dayanak.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-143b3106").then(n)}},{name:"v-c07c3efa",path:"/v2.0.0/contents/ileri-tarihli-odeme-emri-hizmeti.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-c07c3efa").then(n)}},{name:"v-29ce59bd",path:"/v2.0.0/contents/odeme-emri-baslatma-hizmeti.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-29ce59bd").then(n)}},{name:"v-448b4d1d",path:"/v2.0.0/contents/olay-bildirim.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-448b4d1d").then(n)}},{name:"v-64fc905e",path:"/v2.0.0/contents/riza-durumlari.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-64fc905e").then(n)}},{name:"v-bfbd2b46",path:"/v2.0.0/contents/tanim-ve-kisitlamalar.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-bfbd2b46").then(n)}},{name:"v-48365a59",path:"/v2.0.0/deneyalani/genel-bilgiler.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-48365a59").then(n)}},{name:"v-e73a02ea",path:"/v2.0.0/deneyalani/duzenli-odeme-emri-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-e73a02ea").then(n)}},{name:"v-24f9d8c6",path:"/v2.0.0/contents/gkd.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-24f9d8c6").then(n)}},{name:"v-9f53f9d6",path:"/v2.0.0/contents/temel-prensipler.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-9f53f9d6").then(n)}},{name:"v-d8bdee46",path:"/v2.0.0/deneyalani/hhs-yos-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-d8bdee46").then(n)}},{name:"v-b537e5f2",path:"/v2.0.0/deneyalani/ileri-tarihli-odeme-emri-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-b537e5f2").then(n)}},{name:"v-7b0a82c6",path:"/v2.0.0/deneyalani/hesap-bilgisi-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-7b0a82c6").then(n)}},{name:"v-5a2e0d7d",path:"/v2.0.0/deneyalani/olay-bildirim-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-5a2e0d7d").then(n)}},{name:"v-35eaf572",path:"/v2.0.0/deneyalani/odeme-emri-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-35eaf572").then(n)}},{name:"v-aa99c1f6",path:"/v2.0.0/deneyalani/test.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-aa99c1f6").then(n)}},{name:"v-51c1355d",path:"/v2.0.1/contents/ekler.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-51c1355d").then(n)}},{name:"v-1d292df6",path:"/v2.0.1/contents/duzenli-odeme-emri-hizmeti.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-1d292df6").then(n)}},{name:"v-1a476f8d",path:"/v2.0.1/contents/erisim-belirteci.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-1a476f8d").then(n)}},{name:"v-7adaab06",path:"/v2.0.1/contents/gkd.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-7adaab06").then(n)}},{name:"v-16682afd",path:"/v2.0.1/contents/hesap-bilgisi-hizmeti.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-16682afd").then(n)}},{name:"v-1c9ff506",path:"/v2.0.1/contents/hhs-yos-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-1c9ff506").then(n)}},{name:"v-a6caf7c6",path:"/v2.0.1/contents/kapsam-ve-dayanak.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-a6caf7c6").then(n)}},{name:"v-dbcd7a7e",path:"/v2.0.1/contents/ileri-tarihli-odeme-emri-hizmeti.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-dbcd7a7e").then(n)}},{name:"v-4c8f674f",path:"/v2.0.1/contents/riza-durumlari.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-4c8f674f").then(n)}},{name:"v-0219a13d",path:"/v2.0.1/contents/olay-bildirim.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-0219a13d").then(n)}},{name:"v-4700a39d",path:"/v2.0.1/contents/odeme-emri-baslatma-hizmeti.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-4700a39d").then(n)}},{name:"v-2b804dc9",path:"/v2.0.1/deneyalani/duzenli-odeme-emri-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-2b804dc9").then(n)}},{name:"v-666ae106",path:"/v2.0.1/contents/tanim-ve-kisitlamalar.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-666ae106").then(n)}},{name:"v-5617815a",path:"/v2.0.1/contents/temel-prensipler.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-5617815a").then(n)}},{name:"v-43c4777d",path:"/v2.0.1/deneyalani/hesap-bilgisi-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-43c4777d").then(n)}},{name:"v-6cd49697",path:"/v2.0.1/deneyalani/genel-bilgiler.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-6cd49697").then(n)}},{name:"v-3f5d6285",path:"/v2.0.1/deneyalani/ileri-tarihli-odeme-emri-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-3f5d6285").then(n)}},{name:"v-09a8c185",path:"/v2.0.1/deneyalani/odeme-emri-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-09a8c185").then(n)}},{name:"v-512f5cfd",path:"/v2.0.1/deneyalani/hhs-yos-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi
16("Layout","v-512f5cfd").then(n)}},{name:"v-6b037b83",path:"/v2.0.1/deneyalani/test.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-6b037b83").then(n)}},{name:"v-49107346",path:"/v2.0.1/deneyalani/olay-bildirim-api.html",component:Ni,beforeEnter:(e,i,n)=>{oi("Layout","v-49107346").then(n)}},{path:"*",component:Ni}],Oi={title:"(ÖHVPS) API İLKE VE KURALLARI",description:" ",base:"/",headTags:[],pages:[{frontmatter:{},regularPath:"/pages/contact.html",relativePath:"pages/contact.md",key:"v-64dca03d",path:"/pages/contact.html",content:" Türkiye Cumhuriyeti Merkez Bankası\[email protected] \n \n"},{title:"ÖDEME HİZMETLERİ VERİ PAYLAŞIM SERVİSLERİ (ÖHVPS)",frontmatter:{},regularPath:"/surum-yonetimi.html",relativePath:"surum-yonetimi.md",key:"v-22024c43",path:"/surum-yonetimi.html",content:" ÖDEME HİZMETLERİ VERİ PAYLAŞIM SERVİSLERİ (ÖHVPS) \n API İLKE VE KURALLARI SÜRÜM YÖNETİMİ  \n OHVPS API İlke ve Kuralları dokümanındaki sürüm bilgileri aşağıdaki kurallara göre belirlenmektedir. \n \n \n Sürümler 3 basamaklı kodla belirlenir. Sürüm değişiklikleri basamak sırasına göre Major değişiklikler, Minör değişiklikler ve Patch değişiklikleri olarak sıralanır. Örneğin  Sürüm 1.0.0 üzerinde yapılacak major değişiklik Sürüm 2.0.0 olarak ifade edilirken, Minör değişiklik Sürüm 1.1.0 olarak ifade edilir. Patch değişiklik ise Sürüm 1.1.1 olarak ifade edilir. \n \n \n Major değişiklikler: \na. Sürümün 1. basamağı proje kapsamındaki major değişiklikleri ifade eder. Bu major değişiklikler ; \n    § Kredi kartı akışları, tekrarlı işlem akışları gibi kapsama yeni akışların eklenmiş olması, \n    §  Eski hizmetlerin çalışamaz hale getirilmesi, \n    § API desenlerinde değişiklik olması ve geriye yönelik desteğin sona ermesidir. \nb. Major değişiklikler, öncelikle API standartlarının taslak sürümüne eklenir. Paralelinde simülatör geliştirmelerine başlanır.  Simülatörde ilgili değişikliğin hayata geçirileceği tarih ayrıca katılımcılarla paylaşılır. \nc. Major değişiklikler sınırlı bir set ya da tüm set ile sertifikasyona tabiidir. \nd. Simülatör tek bir major ya da minör sürümü destekler. \ne. Simülatörün desteklediği sürüm üzerinden sertifikasyon yapılır. \nf. API Standartlarında major  Sürüm Geçiş Tarihinin  duyurusu TCMB tarafından yapılır. \ng. Katılımcıların  HHS/YÖS Yeni Sürüm Üretime Geçiş Son Tarihi  yine TCMB tarafından belirlenir ve duyurulur. Bu tarihe kadar katılımcıların sertifikasyonlarının tamamlanması beklenir. \n \n \n Minör değişiklikler:    \na. Sürümün 2. basamağı proje kapsamındaki minör değişiklikleri ifade eder. Bu minör değişiklikler ; \n    § Kural değişiklikleri, \n    § API desenlerinde olabilecek opsiyonel alan değişiklikleri, \n    § Sıralı veri türlerine yeni değerlerin eklenmesi, \n    § GKD sürecinde değişiklik yapılması, \n    § API desenlerinde değişiklik olması ve geriye yönelik desteğin devam etmesi, \n    § Yeni bir endpoint eklenmesidir. \nb. Değişiklik kapsamı TCMB tarafından belirlenir. \nc. Bu basamakta yapılan değişikliklerin tümünün sertifikasyona tabi olması gerekir. Ancak değişikliğin boyutuna göre sınırlı bir set ya da tüm değişiklik seti ile sertifikasyon senaryoları oluşturulur. \nd. Geriye dönük destek bittiği noktada sürüm değeri artar. \ne. Major ve minör değişikliklerin sürüm yönetimi aynı akışla işletilir. \n \n \n Patch değişiklikler: \n a. Sürümün 3. basamağı proje kapsamındaki patch değişiklikleri ifade eder. API desenlerinde bir değişiklik yaratmayan iş kuralı değişikliği örnek olabilir. \n b. Patch değişiklikler sonrası katılımcıların yeniden sertifikasyon yapmaları gerekmemektedir. \n \n \n İlk defa sertifikasyona gelecek kurumlar en son aktif sürüm ile sertifikasyona gelir. \n \n \n API Endpointlerde yapılacak major ve minor değişiklikler, endpointin pathi içerisinde yer alır. Detaylı bilgi  3.5.\tKaynak URI Yol Yapısı  adresinde yer alır.  \n \n \n Sürüm geçişlerinde kullanılan tarih bilgileri şu şekildedir: \n \n \n \n Sürüm Geçiş Tarihi  : \n \n Yeni API Standartı sürümünün yayınlandığı tarih bilgisidir.\n \n API Standartları taslak sürümü, güncel sürüm haline getirilir. \n Simülatörde yapılan güncellemeler development ortamından, katılımcıların kullanımında olan Tripsit ortamına aktarılır. \n Tripsit ortamında katılımcılar hem simülatör hem de kendi uygulama testlerine başlayabilir. \n \n \n \n Sertifikasyona Başlangıç Tarihi  : \n \n HHS ve YÖS'ler için ayrı olarak iletilecek tarih bilgisidir. \n \n HHS Yeni Sürüm Üretime Geçiş S
16on Tarihi / YÖS Yeni Sürüm Üretime Geçiş Başlangıç Tarihi   : \n \n Bu tarihe kadar HHS'lerin sertifikasyonu tamamlayıp başarı ile geçmesi gerekir. Bu tarihten önce sertifikasyonu tamamlayan HHS'ler üretime geçer. \n Bu tarih HHS'lerin üretime geçişi için tanımlanmış son tarih olduğu için, bu tarihte tüm HHS'ler üretime geçmiş olacaktır. YÖS'ler bu tarihten itibaren üretime geçişe başlar. \n BKM tarafından yapılması gerekecek API sürüm değişikliği varsa bu tarihte yayına alınır.(HHS-YÖS API gibi) \n \n YÖS Yeni Sürüm Üretime Geçiş Son Tarihi  : \n \n YÖS'lerin sertifikasyon süreci, YÖS Yeni Sürüm Üretime Geçiş Başlangıç Tarihinden, YÖS Yeni Sürüm Üretime Geçiş Son Tarihine kadar sürer. \n Mevcut YÖS'ler yeni sürümü en geç bu tarihte üretim ortamına alır. \n \n Eski Sürümün Kaldırılma Tarihi  : \n \n HHS'ler; HHS Yeni Sürüm Üretime Geçiş Son Tarihi ile Eski Sürümün Kaldırılma Tarihi arasında iki servis sürümünü de desteklemek zorundadır. \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n "},{title:"ÖDEME HİZMETLERİ VERİ PAYLAŞIM SERVİSLERİ (ÖHVPS)",frontmatter:{},regularPath:"/",relativePath:"README.md",key:"v-90050004",path:"/",content:" ÖDEME HİZMETLERİ VERİ PAYLAŞIM SERVİSLERİ (ÖHVPS) \n API İLKE VE KURALLARI   \n SÜRÜM 2.0.0 aktif sürümdür. \n https://github.com/ohvps/ohvps.github.io/commits/master  adresi üzerinden değişiklik açıklamaları ve tarihçesi incelenebilir. \n \n SÜRÜM 2.0.1 geçiş tarihleri şu şekildedir. \n \n Sürüm Geçiş Tarihi : 7 Ekim 2026 \n \n SÜRÜM 2.0.0 geçiş tarihleri şu şekildedir. \n \n \n Sürüm Geçiş Tarihi : 1 Ağustos 2025 \n \n \n HHS(1.1.0’dan 2.0.0'a geçecek olan ve direkt 2.0.0’a gelecek olan) Sertifikasyon Başlangıç Tarihi :  1 Eylül 2025 \n \n \n HHS(1.1.0’dan 2.0.0’a geçecek olan, direkt 2.0.0’a gelecek olan) Yeni Sürüm Üretime Geçiş Başlangıç Tarihi : 1 Ekim 2025 \n \n \n YÖS(1.1.0’dan 2.0.0'a geçecek olan ve direkt 2.0.0’a gelecek olan) Sertifikasyon Başlangıç Tarihi : 1 Ekim 2025 \n \n \n HHS(1.1.0’dan 2.0.0’a geçecek olan) Sertifikasyon Bitiş Tarihi : 16 Ocak 2026 \n \n \n HHS(1.1.0’dan 2.0.0’a geçecek olan) Yeni Sürüm Üretime Geçiş Son Tarihi: 1 Mart 2026 \n \n \n YÖS(1.1.0’dan 2.0.0'a geçecek olan ve direkt 2.0.0’a gelecek olan) Yeni Sürüm Üretime Geçiş Başlangıç Tarihi : 1 Mart 2026 \n \n \n YÖS(1.1.0’dan 2.0.0’a geçecek olan) Sertifikasyon Bitiş Tarihi : 15 Mayıs 2026 \n \n \n YÖS(1.1.0’dan 2.0.0'a geçecek olan ve direkt 2.0.0’a gelecek olan) Yeni Sürüm Üretime Geçiş Son Tarihi : 1 Haziran 2026'dan 1 Temmuz 2026’ya ertelenmiştir. (14.05.2026 tarihinde ilgili tarih güncellemesi sağlanmıştır.) \n \n \n Eski Sürümün(1.1.0) Kaldırılma Tarihi : 1 Haziran 2026’dan 1 Temmuz 2026’ya ertelenmiştir. (14.05.2026 tarihinde ilgili tarih güncellemesi sağlanmıştır.)\n \n \n \n ÖNEMLİ BİLGİLENDİRME : 3
161 Aralık 2025 tarihinde geçiş zorunluluğu olan HHS’lerin 1 Ağustos 2025 tarihinden sonra Sürüm 2.0.0 sertifikasyonuna gelmesi durumunda en geç 31 Aralık 2025 tarihine kadar sertifikasyon sürecini tamamlayarak üretime geçmeleri gerekmektedir. \n YÖS’lerin sadece kendilerinin destekledikleri API sürümünü destekleyen HHS’leri listelemesi gerekmektedir. \n 2.0.0 sürümü için hesap bilgisi rızası ve ödeme emri rızası oluşturmak isteyen YÖS kurumu için YOS API içerisinde apiBilgileri olarak \"ODS\" tanımı HHS tarafından kontrol edilmelidir. YÖS'ün ilgili tanımı olmaması halinde rıza isteğinde \"TR.OHVPS.Resource.APIVersionNotSupported\" hatası verilmelidir. \n Sürüm Yönetimi  bölümünden tarih bilgilerinin açıklamalarına ulaşılabilir. \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n "},{title:"Dijital Cüzdanlardan TR Karekod ile Ödeme",frontmatter:{},regularPath:"/dijital-cuzdan.html",relativePath:"dijital-cuzdan.md",key:"v-61b42a93",path:"/dijital-cuzdan.html",headers:[{level:2,title:"1.      Dijital Cüzdana Kart Ekleme Akışı",slug:"_1-dijital-cuzdana-kart-ekleme-akısı"},{level:2,title:"2. Uyum Tarihi",slug:"_2-uyum-tarihi"}],content:" Dijital Cüzdanlardan TR Karekod ile Ödeme \n Dijital cüzdanlara eklenmiş ve cüzdan sahibi kuruluşun kendisinin ihraç etmediği, diğer Kart Çıkaran Kuruluşlar tarafından ihraç edilmiş kartlar ile TR Karekod ödemesi yapılabilmesi için HHS olarak GEÇİT’e bağlanmış olan Kart Çıkaran Kuruluşların,  BKM (Kartlı Ödemeler) TR Karekod Teknik İlke ve Kuralları Rehberinde  yer alan 5.2 maddelerindeki belirtilen akışlar için BKM Karekod Yönlendirme Sistemi (KYS) entegrasyonu yapması gerekmektedir.  \n Bu sayede Kart Çıkaran Kuruluşlar, otorizasyon öncesinde işlemin POS’ta Kart PIN’i ile doğrulanmasını veya müşterinin telefonunda yüklü olan Kart Çıkaran Kuruluşa ait mobil uygulamaya anlık bildirim göndererek doğrulanmasını sağlayabilecektir. HHS olarak GEÇİT’e bağlanmış olan Kart Çıkaran Kuruluşlar için de bu doğrulama akışlarından en az birini hayata geçirmesi zorunludur. \n 1.      Dijital Cüzdana Kart Ekleme Akışı \n Dijital Cüzdanlardan ödeme yapılabilmesi için kullanıcıların ilk olarak kartı Dijital Cüzdana eklemesi gerekmektedir. Dijital Cüzdana eklenecek olan karta ait bilgiler kullanıcı tarafından cüzdana girilmektedir. Kart bilgilerinin Dijital Cüzdana eklenmesinin ardından kart hamili iki faktörlü doğrulama yöntemi (GO Güvenli Öde, 3D Secure  vb.) ile doğrulanması gerekmektedir.  Kart hamilinin iki faktörlü doğrulanmasının ardından kart cüzdana eklenir ve eklenen bu kartlar ile ödeme işlemleri yapılabilir. Dijital Cüzdanlarla yapılabilen işlemler aşağıda bilgi amaçlı özetlenmiştir. Bu belgenin Uyum Tarihi başlığında TR Karekod ile yapılan işlemler için kullanılacak doğrulama akışlarına yer verilmiştir. \n \n \n Dijital cüzdanlar ile fiziksel mağazalarda POS terminali üzerinden, e-ticaret sitelerinde ise online kanallar üzerinden  ödeme yapmak mümkündür. \n \n \n Fiziksel ödemelerde dijital cüzdan POS terminallerinde gösterilen TR Karekod’u okuyarak ödemeyi gerçekleştirebilir. İkinci bir yöntem olarak, mobil telefonun ve dijital cüzdanın NFC teknolojisini desteklemesi durumunda telefonun POS terminaline temassız olarak okutulması suretiyle ödeme yapılabilmesi mümkündür. \n \n \n E-ticaret ödemelerinde web sitesinde gösterilen TR Karekod’un dijital cüzdan ile okutulması suretiyle ödeme yapılması mümkündür. Sanal POS işlemlerinden kastedilen dijital cüzdanda saklı olan kart ile online kanallar üzerinden bir e-ticaret ödemesinin yapılmasıdır. \n 2. Uyum Tarihi \n Dijital cüzdan sahibi kuruluş ile cüzdana eklenen kart kuruluşunun farklı olması durumunda hem fiziki POS’larda hem de sanal POS’larda TR Karekod ile ödeme yapılabilmesine ilişkin akışlar BKM (Kartlı Ödemeler) TR Karekod Teknik İlke ve Kuralları Rehberinde 5.2. maddelerinde tariflenmiştir. \n Bu akışlarda; \n \n \n No-CVM (İlave doğrulama yapmadan) veya  \n \n \n Kart PIN (POS cihazında kart şifresi girilerek) veya  \n \n \n Anlık Bildirim ile (mobil telefonda yüklü olan kart çıkaran kuruluşa ait uygulama üzerinden ile müşteri doğrulaması yer almaktadır.) müşteri doğrulaması yer almaktadır. \n \n \n Kuruluşların tercihine göre yukarıda tariflenmiş olan akışlardan biri veya tamamı kuruluşlar tarafından desteklenebilir. Kuruluşların tercih ettiği akışlar için Karekod Yönlendirme Sistemi sertifikasyonlarını tamamlanması gerekmektedir. Yukarıda tariflenmiş akışlarda görüleceği üzere kart çıkaran kuruluşlar otorizasyon öncesinde kendi risk değerlendirmesini yaparak “No cvm” ilave bir doğrulama yöntemine gerek kalmadan da işlemleri sonlandırılmasını isteyebilmektedir. \n ** 31.12.2023 tarihinden önce HHS olarak GEÇİT’e bağlanmış olan Kart Çıkaran Kuruluşların  BKM (Kartlı Ödemeler) TR K
16arekod Teknik İlke ve Kuralları Rehberinde  yer alan madde 5.2’de tarifli akış/akışlar için Karekod Yönlendirme Sistemi sertifikasyonunun tamamlanarak en geç  30 Haziran 2024  tarihinde üretime geçmiş olması zorunludur. \n Nezdinde Ödeme hesabı bulunduran Kart Çıkaran diğer tüm Ödeme Hizmeti Sağlayıcıların da GEÇİT’e bağlantı sağlamaları sonrası ilk 6 ay içerisinde KYS sertifikasyonunu tamamlaması gerekmektedir.** \n"},{title:"Sıkça Sorulan Sorular",frontmatter:{},regularPath:"/sorulan-sorular.html",relativePath:"sorulan-sorular.md",key:"v-6465b33d",path:"/sorulan-sorular.html",content:" Sıkça Sorulan Sorular \n 1) ÖHVPS kapsamında Hesap Bilgisi Hizmeti ve Ödeme Emri Başlatma Hizmeti’ni kullanabilmemiz için hangi şartların sağlanması beklenmektedir? \n \n Hesap Hizmeti Sağlayıcılar(HHS) ve Yetkilendirilmiş Ödeme Hizmeti sağlayıcılarının(YÖS) ÖHVPS kapsamında sağlması gereken şartlar için TCMB’nin yayınladığı kanun ve yönetmeliklerin incelenmesi gerekmektedir. İlgili linkte yer alan  https://ohvps.github.io/uyum-tarihleri.html  referans adreslerinin incelenmesini öneririz. \n TCMB tarafından lisans süreciniz başlatıldığında geliştirmelerinizde yardımcı olmak adına BKM başvuru yapan Kurum/Kuruluşlara test hesabı tanımlanmakta ve ilgili alanlara yetki almanı için gerekli yönlendirme yapılmaktadır. \n ÖHVPS kapsamında;\n \n Lisans sürecini yürüten Kurum/Kuruluşların BKM tarafından BKM ÖHVPS Teknik Sertifikasyon Onay Belgesi alması gerekmektedir. \n Lisans alması gerekmeyen Kurum/Kuruluşların üretime geçmeden önce BKM ÖHVPS Teknik Sertifikasyon Onay Belgesi alması gerekmektedir. \n \n \n \n 2) BKM ÖHVPS Teknik Sertifikasyon Onay Belgesi nedir, nasıl alınır? \n \n BKM ÖHVPS Teknik Sertifikasyon Onay Belgesi,  https://ohvps.github.io/ ‘da yayınlanan teknik şartların yerine getirilecek şekilde geliştirme yapılması ve Trip/Tripsit üzerinden paylaşılan sertifikasyon senaryolarının test ortamında simulator üzerinden koşularak onaya gönderilmesi sonrası BKM tarafından yapılan kontrollerin olumlu olması sonucunda verilen belgedir. Teknik sertifikasyon belgesi alınabilmesi için katılımcıların öncelikle sertifikasyona gelmeleri gerekmektedir. Sertifikasyon sürecine ait detaylı bilgiler Tripsit> BKM Online> ÖHVPS> Dokümanlar menüsü altında yer almaktadır. \n \n 3) Elektronik Para Kuruluşları ve Ödeme Kuruluşları olarak HHS olma zorunluluğumuz var mıdır? \n \n TCMB tarafından yayınlanan kanun ve yönetmeliklerde bu bilgi yer almaktadır. Kanun, yönetmelik, tebliğ vb. aşağıdaki sayfadan ulaşabilirsiniz. \n \n https://www.tcmb.gov.tr/wps/wcm/connect/25571f4f-72ac-4f4b-ab59-2d683fcbc271/Y%C3%B6netmelik.pdf?MOD=AJPERES&CACHEID=ROOTWORKSPACE-25571f4f-72ac-4f4b-ab59-2d683fcbc271-pntoxwf  55. Sayfa \n \n Elektronik Para Kuruluşları ve Ödeme Kuruluşları’nın HHS uyum tarihleri,  https://ohvps.github.io/uyum-tarihleri.html , adresinde yer almaktadır. \n \n 4) EPK ve/veya ÖK olarak HHS ve YÖS sertifikasyonuna aynı anda gelme zorunluluğumuz bulunmakta mıdır? \n \n API dokümanında da belirtildiği üzere Banka rolündeki HHS’ler HHS olmadan YÖS olamazlar. Ancak EPK/ÖK’lar için böyle bir zorunluluk bulunmamaktadır. Ek olarak, API ilke ve kuralları dokümanında bulunan tüm hizmetlerin (HHS’ler mevcut kanallarında bu hizmetleri sunuyorsa açık bankacılık kapsamında da sunmaları gerekmektedir.) HHS’ler tarafından sunulması gerekmektedir. YÖS’ler hangi lisansı alacaklarsa HBH ve ÖBH hizmetleri ayrı ayrı ya da beraber olacak şekilde sertifikasyona gelebilirler. \n \n 5) Ödeme Hizmetleri Veri Paylaşım Servisleri API İlke ve Kuralları’na nereden erişebiliriz? \n \n https://ohvps.github.io/ adresinden erişebilirsiniz. \n \n 6) ÖHVPS API sürüm geçiş tarihlerine nereden ulaşabiliriz? \n \n https://ohvps.github.io/  adresinden ulaşabilirsiniz. \n \n 7) Yatırım Bankası olarak sertifikasyona gelmemiz gereken son tarih bilgisi nedir? \n \n https://ohvps.github.io/uyum-tarihleri.html  uyum tarihleri paylaşılmıştır. Buradan sizin için belirtilen tarih aralığını baz alabilirsiniz. \n \n 8) Henüz Açık Bankacılık kapsamında herhangi bir çalışmada bulunmamış/ yeni sertifikasyona gelecek olan bir banka olarak sertifikasyona geleceğimiz son tarih bilgisi konusunda bizlere destek olabilir misiniz? \n \n https://ohvps.github.io/uyum-tarihleri.html  uyum tarihleri paylaşılmıştır. Buradan sizin için belirtilen tarih aralığını baz alabilirsiniz. \n \n 9) Simülatörün mobil uygulaması bulunmakta mıdır? Var ise uygulamayı nasıl indirebiliriz? \n \n Evet, BOSS mobil uygulamamız bulunmaktadır. Trip/Tripsit > BKM Online > ÖHVPS > Dokümanlar kısmından adımları takip ederek indirebilirsiniz.\nAyrıca Tr
16ip / Tripsit > Dokümanlar bölümündeki  SİMÜLATÖR KULLANIMI VE SERTİFİKASYON SÜREÇ KILAVUZU  bu belgenin de süreçler için incelenmesi gerektiği tavsiye edilmektedir. \n \n 10) ÖHVPS API’larının entegrasyonu için hangi adımlar ile ilerlemeliyiz? \n \n \n ÖHVPS API geliştirmeleri için BKM olarak simülator ortamı sunulmaktadır. Simülatör ortamına erişim için test entegrasyonu sağlanmalıdır. Entegrasyon için aşağıdaki adımlar takip edilmelidir. \n \n “Yeni Kayıt” ve “Güncelleme” işlemine dair süreçler  https://pys-preprod.bkm.com.tr   adresi üzerinden yapılacaktır. Mevcut durumda PYS giriş yetkisi olan katılımcılar Tripsit'e giriş yaptıkları kullanıcı adı ve şifresi ile giriş yapabilir. \n İlgili adrese erişimler açık olup katılımcılar Tripsit’e  https://tripsit.bkm.com.tr  giriş yaptıkları kullanıcı adı ve şifresi ile girebilecektir. \n HHS, YÖS test ortamı tanımlarına ait menüler için yetki alınması gerekmektedir. İlgili yetkiler için kurumunuza özgü olan süper kullanıcıdan yetki talep edilmelidir. Süper kullanıcı süreçleri ile PYS üzerinde ilgili hizmetlerin yetkilerine dair dokümanlar Trip/Tripsit > BKM Online > ÖHVPS içerisinde yer almaktadır.\n \n Ek-1: Merkezi Kullanıcı Yönetim Sistemi Uygulama Kuralları-Şubat 2025 \n Ek-2: Parametre Yönetim Sistemi Açık Bankacılık YÖS ve HHS Yetki Talebi Kılavuzu \n \n \n \n Kurumunuza ait en az iki süper kullanıcı bulunmaktadır. Süper kullanıcınız üzerinden yetki talebinde bulunabilirsiniz. Yetki talebi verildikten sonra kurumunuzdaki diğer süper kullanıcı tarafından isteğiniz onaylanmaktadır. Eğer kurumunuza ait süper kullanıcılarınız bulunmuyor ise [email protected]’e mail atılarak yetki talep edilmelidir. \n \n \n 11) İstemci sertifikası talebini nereden yapabiliriz? \n \n ‘İstemci Sertifikası Talep Ekranı’  sadece yetkili kişi tarafından seçilerek gönderilmelidir. Yetkili kişi Trip/Tripsit > BKM Online > ÖHVPS > Dokümanlar menüsü altından ulaşabilir. \n \n 12) Mesaj imzalama süreçleri nasıl olmalıdır? \n \n https://ohvps.github.io/v2.0.0/contents/ekler.html#ek-5-mesaj-imzalama-ak%C4%B1s%C4%B1  detaylı bilgiye erişebilirsiniz. \n \n 13) Sertifikasyona gelmeden önce yapılması gerekenleri paylaşabilir misiniz? \n \n HHS rolünde sertifikasyona gelmeden önce  tüm hizmetler için “Test Otomasyon” çalıştırılarak başarısız senaryolar düzeltilmelidir.\n \n Ekranlarda gösterilmesi gerekli tüm alanlar Trip/Tripsit > ÖHVPS > Dokümanlar > ÖHVPS Sürüm 2.0 Sertifikasyon Senaryoları Aktarım Toplantısı dokümanında yer almaktadır. İlgili doküman incelenerek ekran tasarımları tasarlanmalıdır. Dokümanda ekranda gösterilmesi gereken zorunlu alanlar belirtilmektedir. Ekranlarda istenilen şartlar yerine getirildiği sürece ekran tasarımları kurum/kuruluşların insiyatifine bırakılmıştır. \n \n \n YÖS rolünde ise  Ekranlarda gösterilmesi gerekli tüm alanlar Trip/Tripsit > ÖHVPS > Dokümanlar > ÖHVPS Sürüm 2.0 Sertifikasyon Senaryoları Aktarım Toplantısı dokümanında yer almaktadır. İncelenerek ekran tasarımları tasarlanmalıdır. Dokümanda ekranda gösterilmesi gereken zorunlu alanlar belirtilmektedir. Zorunlu alanların tek ekranda gösterilmesine gerek bulunmamaktadır. Ekranlarda istenilen şartlar yerine getirildiği sürece ekran tasarımları kurum/kuruluşların insiyatifine bırakılmıştır. \n Sertifikasyon onayı iletilmeden en az bir ay öncesinde sertifikasyon slot talebi ekranından slot tarihi alınmalıdır. Sertifikasyon slot talebi ekranına  https://sertifikasyon-preprod.bkmtest.com.tr/certification-slots  adresinden erişim sağlayabilirsiniz.\nAlmış olduğunuz slot tarihinden en az üç iş günü öncesinde sistem üzerinden sertifikasyon onayı iletmeniz beklenmektedir. \n Sertifikasyon kontrolleri sonrasında sizlere geri bildirimlerde bulunulur. Tüm revizeler tamamlandıktan sonra sertifikasyon onayı verilir ve üretime geçiş için planlama yapılır. \n \n 14) Kurum/Kuruluş olarak mobil kanallardan müşterimize hizmet vermemekteyiz. Bu kapsamda sertifikasyonda sadece web akışlarını işletebilir miyiz? \n \n Sertifikasyon sürecinde mobil ve web sertifikasyonları ayrı işletilmektedir. Bu kapsamda mevcut durumda hangi kanal üzerinden müşterilere hizmet sunuluyorsa sadece o hizmet kapsamında sertifikasyona gelebilirsiniz. \n \n 15) Bireysel segmentte mobil ve web kanallarında hizmetimiz bulunurken Kurumsal müşteri özelinde sadece web kanalında hizmetimiz bulunmaktadır. Bu kapsamda Kurumsal müşteriler için sadece web akışını destekleyebilir miyiz? \n \n Sertifikasyon sürecinde mobil ve web sertifikasyonları ayrı işletilmektedir. Bu kapsamda mevcut durumda hangi servisi destekleniyorsa ya da hangi kanal üzerinden müşterilere hizmet sunuluyorsa sadece o hizmet kapsamında sertifikasyona gelebilirsiniz. \n \n 16) Sertifikasyon onay isteği oluşturmak için nasıl bir yol izlemeliyiz? \n \n Tüm seritifkasyon süreçleri ile ilgili bilgiler Tripsit>BKM Online> ÖHVPS > dokümanlar menüsü altında paylaşılmaktadır. Bu süreçle ilgili yine destek alabileceğiniz Sertifikasyon Merkezi > ÖHVPS Sertifikasyon Bilgilendirme menüsü altında sertifikasyon süreci ile ilgili video kaydı bulunmaktadır. Gerekli video kaydına  https://sertifikasyon-preprod.bkmtest.com.tr/certification-ohvps-info link üzerinden erişim sağlayabilirsiniz.\nBu alanlardaki belgeleri ve video kayıtlarını inceleyerek destek alabilirsiniz. Simülatör üzerinden sertifikasyon senaryolarının kapsam dışı hariç hepsinin tiklenerek onaya gönderilmesi gerekmektedir. \n \n 17) Sertifikasyon slot tarihine yetişememe durumu ile karşılaşılaşılırsa nasıl ilerlemeliyiz? \n \n Sertifikasyon slot tarihine yetişilemediği durumda bir sonraki uygun sertifikasyon tarihinin katılımcı tarafından tekrar talep edilmesi gereklidir. \n \n 18) Sertifikasyon için koşulması gereken senaryolara nereden ulaşabiliriz? \n \n Aşağıdaki link üzerinden erişim sağlayabilirsiniz.\n https://sertifikasyon-preprod.bkmtest.com.tr/certification-rules \n \n 19) Sertifikasyon senaryolarının hepsi koşulmalı mıdır? Bireysel ve kurumsal için ayrı sertifikasyona gelinebilir mi? \n \n Kapsam dışı olduğunuz tüm senaryolar hariç hepsi koşulmalıdır. \n HHS Sertifikasyonları için bireysel ve kurumsal birlikte koşularak gönderilmelidir. YÖS sertifikasyonları için hangi müşteri segmentine hizmet verilecekse ilgili müşteri segmenti için ayrı olarak sertifikasyona gelinebilir. \n Mobil ve Web Kanallar için aynı altyapı (backend-arkayüz) kullanılıyor ise sertifikasyonda web ve mobilin tek bir sertifikasyonda koşulması gerekmektedir. Detaylar  SİMÜLATÖR KULLANIMI VE SERTİFİKASYON SÜREÇ KILAVUZU ’unda yer almaktadır. \n \n 20) Sertifikasyon senaryoları koşulurken nelere dikkat edilmelidir? Ekranlar nasıl olmalıdır? \n \n Sertifikasyon için  https://ohvps.github.io/  adresinde yayınlanan API İlke ve Kuralları dokümanındaki teknik gereksinimleri yerine getirmeniz beklenmektedir. \n Web/mobil ekranlar için sertifikasyonda iletilmesi gereken zorunlu alanlar bulunmaktadır. Bu alanlar için Trip/Tripsit > BKM Online > ÖHVPS >Dokümanlar menüsü altında yer alan ‘Müşteri Deneyim Dokümanı’nı inceleyebilirsiniz. Ekranlarda istenilen şartlar yerine getirildiği sürece ekran tasarımları kurum/kuruluşların insiyatifine bırakılmıştır.\nSertifikasyona gelmeden önce ekranlar son kullanıcıya gösterilecek şekilde hazırlanmalıdır. \n \n 21) Sertifikasyon onay isteği nasıl oluşturabiliriz? \n \n Tripsit >BOSS> Sertifikasyon Onayı Oluşturma seçilerek sertifikasyon ekranına erişim sağlanır. “Sertifikasyon Onay İsteği Oluşturma” ekranı ile katılımcılar ilgili API’ye ait sertifikasyon senaryoları kapsamındaki işlemlerini tamamladıktan sonra sertifikasyon isteklerini bu ekran üzerinden iletebilirler. Bu ekran üzerinden ekran görüntüsü ekleme, senaryonun kapsam dışına alınması gibi işlemler yapılabilmektedir. Sertifikasyon sonuçları da yine bu ekran üzerinden takip edilebilir.\nDetaylar  SİMÜLATÖR KULLANIMI VE SERTİFİKASYON SÜREÇ KILAVUZU ’unda yer almaktadır.  Bu süreçle ilgili yine destek alabileceğiniz video kaydı bulunmaktadır. \n \n 22) Sertifikasyon onay isteği oluşturdum. Başlatıldı statüsünde kaldı. Yardımcı olabilir misiniz? \n \n Sertifikasyon talebinde bulunulduğunda seçilen tarih aralığındaki log kayıtları çekilerek otomatik olarak ‘Çalıştırıldı’ statüsüne geçmektedir. Sizin çalıştırdığınız tarih aralığında log kaydı olup olmadığı kontrol edilmelidir. HHS senaryoları koşulurken X-Group-ID seçiminin yapıldığı kontrol edilmelidir. \n \n 23) Sertifikasyon onay isteği oluşturdum. Senaryolar tiklenmedi. Kontrol edebilir misiniz? \n \n Sertifikasyon onayı oluşturulduktan sonra ilgili sertifikasyon id için ‘Detay’ seçilmeli ve senaryonun neden tiklenmediği ‘Hata Gör’ kolonundan kontrol edilmelidir. \n \n 24) ÖHVPS Simülatörlerini kullanarak geliştirmelerimizi tamamladık. Üretim ortamına geçiş için neler yapılması gerekir? \n \n Üretim ortamına ait entegrasyon için gerekli bilgilere aşağıdaki dokümanlardan ulaşabilirsiniz.\nTrip/Tripsit → BKM Online → ÖHVPS dokümanlar içerisinde yer almaktadır.\nBKM Geçit - ÖHVPS Uygulama Kuralları_Ver1.11\nDoküman içerisinde özellikle incelenmesi gereken ilgili başlıklar:\n \n \n \n Katılımcı Gereksinimleri \n \n \n \n \n Entegrasyon Adımları \n \n \n \n \n Üretime Geçiş \n \n \n \n \n \n Üretim ortamı YÖS ve HHS BKM GEÇİT entegrasyonları https://pys.bkm.com.tr adresi üzerinden yapılacaktır.\nİlgili adrese erişimler açık olup katılımcılar Trip’e ( https://trip.bkm.com.tr ) giriş yapılan kullanıcı adı ve şifresi ile girilebilecektir.\nHHS ve YÖS tanımlarına ait menüler için yetki alınması gerekmektedir. İlgili yetkiler için kurumunuza özgü olan Superuser kullanıcılardan yetki talep edilmelidir.\nSuperuser süreçleri ile PYS üzerinde ilgili hizmetlerin yetkilerine dair dokümanlar Trip/Tripsit → BKM Online → ÖHVPS dokümanlar içerisinde yer almaktadır.\nEk-1: Merkezi Kullanıcı Yönetim Sistemi Uygulama Kuralları-Şubat 2025\nEk-2: Parametre Yönetim Sistemi Açık Bankacılık YÖS ve HHS Yetki Talebi Kılavuzu \n 25) ÖHVPS API’larına ait swagger dosyası bulunmakta mıdır? \n \n Evet bulunmaktadır. ÖHVPS > HHS/YÖS Simülatörü ekranına gidilerek açılan sayfada istenilen API seçilir ve ‘Swagger Dokümanını İndir’ seçilerek indirebilir. \n \n 26) ÖHVPS API İlke ve Kuralları dokümanında yapılan değişiklikleri nereden görebiliriz? \n \n https://ohvps.github.io/  adresine gidildiğinde ana sayfada yer alan  https://github.com/ohvps/ohvps.github.io/commits/master  adresi üzerinden değişiklik açıklamaları ve tarihçesi incelenebilir. \n \n 27) Geliştirmeler sırasında doküman ile simülatör arasında fark görüldüğünde hangisi doğrudur? Nasıl ilerlemeliyiz? \n \n Simülatör ortamı katılımcıların API geliştirmelerini test edebilmesi için oluşturulmuş sandbox ortamdır. Bazı geliştirmeler katılımcıların test edebilmesi için simülatör tarafında esnek bırakılmıştır. Bu yüzden her zaman doküman dikkate alınmalıdır. Simülatörün geliştirilmesi için farklılığı bizlere iletebilirsiniz. \n \n 28) Açık Bankacılık kanal ayarları her kullanıcıya default olarak açık mı olmalıdır? \n \n Açık Bankacılık müşteriye bir kanal olarak sunuluyorsa müşterinin kanal ayarını açıp kapatabileceği bir ekran olması gerekmektedir. Üretim ortamına ilk çıkıldığında default olarak açık olmalıdır. Müşteri dilerse kendi kapatabilmelidir.   https://ohvps.github.io/v1.1.0/contents/temel-prensipler.html  temel prensipler başlığı altından inceleyebilirsiniz. \n \n 29) Sadece web uygulamamız üzerinden ÖHVPS API’larını kullanmak istiyoruz. Sorun olur mu? \n \n HHS olunan rolde tarayıcı tabanlı yönlendirme yapılması zorunlu olmakla beraber 1 Ekim 2023 itibarıyla HHS’nin uygulaması varsa uygulama tabanlı yönlendirme hizmeti vermesi de zorunludur. \n \n 30) Daha önce sorulan katılımcı sorularına nereden ulaşabiliriz? \n \n Trip/Tripsit > BKM Online > ÖHVPS > Dokümanlar menüsü altından ulaşabilirsiniz. \n \n 31) ÖHVPS Üretim ortamı katılımcılarının iletişim adreslerine nereden ulaşabiliriz? \n \n Trip/Tripsit > BKM Online > ÖHVPS > İletişim Listesi altından bulabilirsiniz. Bu menüye erişim sağlayamıyorsanız  [email protected]  adresinden yetki talep edebilirsiniz. \n \n 32) Sertifikasyon için yeni sürüm olan V 2.0.0 sürümüne gelmek zorunda mıyız? Eski sürüm ile sertifikasyona gelebilir miyiz? \n \n 1 Eylül 2025 tarihinden sonra sertifikasyon talebinde bulunan tüm katılımcıların V 2.0.0 aktif sürümüne gelme zorunluluğu bulunmaktadır.\nMevcutta 1.1.0 sürümü ile üretim ortamında hizmet veren katılımcıların V 2.0 için hangi tarihlerde sertifikasyona geleceği ve üretime geçiş yapacağı bilgisi  https://ohvps.github.io/  linkinde yer almaktadır. \n \n 33) Sürüm 2.0 sertifikasyonu
16nu almak için Sürüm 1.1 sertifikasyonunu almak gerekiyor mu? Açık bankacılık sistemine 2.0 versiyonu ile dahil olunabilir mi? \n \n ÖHVPS kapsamında ilk kez sertifikasyona gelecek olan kurumlar aktif sürüm olan 2.0 sürümü ile sertifikasyona gelmeleri yeterlidir. Sertifikasyon senaryoları listeleme ekranında versiyon güncelleme seçeneğini seçmeden hizmet verecek kanal ve müşteri bazında senaryoları listlemeli ve ilgili senaryoları koşarak sertifikasyona gelmelidir. \n \n 34) Ayrık GKD bilgilendirme mesajı kullanıcıya iletilmezse süreci nasıl yönetebiliriz? \n \n \n Müşterinin ne şekilde bilgilendirileceği HHS inisiyatifindedir. Aşağıda paylaşmış olduğumuz linkte detaylı bilgi yer almaktadır. Linkte yer alan detaya istinaden HHS olarak işlemi red etmeniz uygundur. YÖS olarak ise hata almış bir ayrık GKD işlemini yönlendirmeli akışa çevirip tekrar iletebilirsiniz. \n https://ohvps.github.io/v2.0.0/contents/gkd.html#_5-2-ayr%C4%B1k-guclu-kimlik-dogrulama \n \n \n 35) Ayrık GKD sadece mobil uygulamaya mı bildirim gönderilebilir? Sms içerisinde webe yönlenecek universal link verebilir mi? \n \n Ayrık GKD sürecinde HHS tarafında sadece mobil uygulama üzerinden GKD yapılmalıdır. ÖHK’nın web uygulamasına yönlendirme yapmaması gerekmektedir. SMS iletilecekse sms içerisindeki universal link sadece mobile yönlendirilmelidir.  https://ohvps.github.io/v2.0.0/contents/gkd.html#_5-2-ayr%C4%B1k-guclu-kimlik-dogrulama  adresinden detaylı inceleyebilirsiniz. \n \n 36) Mevcut sistemimizde GSM birden fazla müşteride tanımlıdır. Bu noktada Ayrık GKD Tek seferlik ödeme akışında hangi müşteriye bildirim gönderilmesi gerektiğini ayırt edemeyeceğimizden sorun oluşturmaktadır. Bu nedenle GSM için muafiyet talep edilebilir mi? \n \n Mevcut durumda ilgili cep numarasına nasıl bildirim gönderiliyorsa aynı yöntem izlenebilir. (Yetkili kişi ataması yapılabilir vs.) \n \n 37) Hesap Bilgisi Hizmeti ve Ödeme Emri Başlatma Hizmeti akışlarında default olarak yönlendirmeli akış tercih edilebilir mi? Yoksa ayrık GKD sunan HHS’ler için, YÖS’ün de ayrık GKD’yi tercih etmesi zorunlu mudur? \n \n YÖS’ün kendi insiyatifindedir.  https://ohvps.github.io/v2.0.0/contents/gkd.html#_5-2-ayr%C4%B1k-guclu-kimlik-dogrulama  detaylı bilgiye erişebilirsiniz. \n \n 38) Kurumumuzun YÖS olduğu durumda karşı HHS Ayrık GKD'yi desteklese dahi kullanıcıda HHS'ye ait mobil uygulama olmadığı takdirde nasıl ilerlememiz beklenmektedir? \n \n https://ohvps.github.io/v2.0.0/contents/gkd.html#_5-2-ayr%C4%B1k-guclu-kimlik-dogrulama  adresinden detaylı senaryoları inceleyebilirsiniz. \n \n 39) YÖS olduğumuz durumda ayrık GKD kimlik doğrulama web akışından başlayabilir mi yoksa mobil uygulamada olma zorunluluğu var mıdır? \n \n Her iki kanaldan işlem başlatılabilmektedir. \n \n 40) Yeni sürüm (V 2.0) kapsamında Olay Bildirim Servis’lerinin kullanılması zorunlu mudur? \n \n Olay Dinleme API’nın (ODS) servis olarak sunulması HHS ve YÖS’ler için zorunludur. Olay Abonelik Servisleri’nin (OAS) kullanımı YÖS insiyatifindedir. YÖS, Ayrık GKD yöntemi kullanacaksa ise AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için de abonelik oluşturulması gerekir.  https://ohvps.github.io/v2.0.0/contents/olay-bildirim.html  detaylı inceleyebilirsiniz. \n \n 41) Sertifikasyon senaryoları içerisinde yer alan sistem olay dinlemeyi nasıl test edebiliriz? Bu konuda yönlendirebilir misiniz? \n \n Kullanmış olduğunuz YÖS simülatörü için Tripsit üzerinden güncelleme yapılması sağlanarak HHS tarafına sistem olay dinleme kaydı oluşturabilirsiniz. \n \n 42) ÖHVPS API kullanımları için ücretlendirme olacak mıdır? Ücretlendirme kapsamında nasıl bir yol haritası izlenecektir? \n \n Sorgulama yönteminin ne şekilde devam edeceği YÖS'ün inisiyatifindedir. API sorgulamaları üzerinden ücret alınmaya devam edecektir. Olay bildirimi ile YÖS'lerin api sorgulaması arasında bir bağlantı olmamakla beraber TCMB'nin belirlediği tarihten itibaren ücretlendirme devreye alınacaktır. \n TCMB'nin daha evvel bilgi verdiği ücretlendirme içeriği ile ilgili detaylar önümüzdeki günlerde Trip>ÖHVPS dokümanları altında yer alan ÖHVPS Uygulama Kuralları Dokümanında detaylandırılacaktır. \n \n 43) Olay Bildirim devreye alındıktan sonra bankaların sorgulamaları devam edebilecek mi, o sorgulamalardan ücret alınabilir mi? \n \n Sorgulama yönteminin ne şekilde devam edeceği YÖS'ün inisiyatifindedir. API sorgulamaları üzerinden ücret alınmaya devam edecektir. Olay bildirim ile YÖS'lerin api sorgulaması arasında bir bağlantı olmamakla beraber TCMB'nin belirlediği tarihten itibaren ücretlendirme devreye alınacaktır. \n \n 44) Sertifikasyonu tamamlayarak üretim ortamına geçiş yaptıktan sonra hizmet vermeyi durdurabilir miyiz? Evet ise, ne kadar süre ile hizmet vermeyebiliriz? \n \n HHS olunan rolde hizmet durdurulması gibi b
16ir durum söz konusu değildir. \n \n 45) BKM Açık Bankacılık Deney Alanı Nedir? \n \n Açık Bankacılık Deney Alanı, ÖHVPS (Ödeme Hizmetleri Veri Paylaşım Servisleri) kapsamındaki açık bankacılık hizmetlerinin katılımcılar (HHS ve YÖS) ve katılımcı olmayan kuruluşlar ve finansal teknoloji girişimleri tarafından belirli çerçevelerde deneyebileceği, test amaçlı kullanılan açık simülatörlerin bulunduğu bir test ortamıdır. İlgili alana  https://ohvps.github.io/v2.0.0/deneyalani/genel-bilgiler.html  linkinden erişebilirsiniz. \n \n 46) Açık Bankacılık Kurumsal Bankacılık tarafında tüzel kişilerin hesaplarının yetkilendirilmesi (münferit/müşterek) nasıl yapılmalı, nereden bilgi alabilirim? \n \n Tüzel taraftaki Müşteri yetkileri için BKM tarafında bir yönlendirme yapılamamaktadır. Banka içinde bu kişilerin neye yetkisi varsa ÖHVPS kapsamında da aynı müşteri deneyimini yansıtacak şekilde çözüm üretmeniz beklenir. \n \n 47) FAST katılımcısı olan kurumların HHS olma zorunluluğu bulunmakta mıdır? Nezdinde ödeme hesabı bulunduran kuruluşlar ÖHVPS kapsamında HHS olarak hizmet verme zorunluluğu bulunuyor mu? \n \n ÖHVPS API ilke ve Kuralları dokümanında da ifade edildiği üzere, Yönetmelik ve Tebliğde yapılan 28 Mart 2025 tarihli değişiklik itibarıyla;\n \n FAST Sistemine katılımcı olan ödeme hizmeti sağlayıcılarının 31 Aralık 2025 tarihine kadar teknik sertifikasyonlarını başarıyla tamamlayarak GEÇİT’e bağlantı sağlamaları gerekmektedir (HHS’leri ilgilendirmektedir.) \n \n \n \n 48) HHS 1.1 sürümü tamamlanamadıysa, yalnızca HHS 2.0 için hazırlanan senaryoları çalıştırmak yeterli olur mu? \n \n S1.1 ile üretim ortamında hizmet verilmiyor ise sertifikasyon senaryolarını listelerken versiyon güncelleme seçmeden (en baştan tüm senaryolar koşulacaktır) S2.0 sertifikasyonuna gelinmelidir. \n \n 49) Test otomasyon adımını “sertifikasyon öncesi test süreci” olarak adlandırabilir miyiz? Bu adım zorunlu bir adımdır mı? \n \n HHS'lerin S2.0 sertifikasyonunu geçebilmeleri için test otomasyon adımını başarılı bir şekilde tamamlamaları beklenmektedir. Sertifikasyon Onay İsteği çalıştırıldıktan sonra onaya gönderme aşamasında çalıştırılan test otomasyon id bilgileri talep edilmektedir. \n \n 50) Slot (zaman dilimi) içinde yapılan incelemeler sonucunda sertifikasyon başarısız olursa ve yeniden koşulması istenirse, yeni bir slot alınması gerekir mi? Yeni bir slot bulunamazsa ne tür bir yol izlenmelidir? \n \n Revize süreçleri kapsamında tekrardan slot alınmasına gerek yoktur. Sadece ilk kez sertifikasyon onayı gönderilecek durum için slot alınması gereklidir. \n \n 51) Sertifikasyon senaryoları ve test otomasyon testleri slot tarih aralığında mı öncesinde mi koşulacaktır? \n \n Slot tarihi seritifikasyon kontrollerinin gerçekleştirileceği tarih olup bu kapsamda slot tarihinden önce sertifikasyon onayı ve test otomasyon koşumu gerçekleştirilmelidir. \n \n 52) Demo kontrolleri için önce sertifikasyon onayı alınması mı gerekmektedir? \n \n Demo, üretim ortamında gerçekleştirilen; sistemlerinizin başarılı çalışıp çalışmadığının kontrolü yapılan uygulamadır. Bu kapsamda, önce sertifikasyon onayı alınması şarttır. \n \n 53) Ödeme emri test otomasyonu senaryosunda KOLAS ya da Ayrık GKD desteklemeyen bir katılımcı ne yapmalı? \n \n HHS'lerin FAST katılımcı olma şartı bulunduğu için KOLAS desteklenmesi beklenmektedir. Eğer mobil uygulamanız var ise yine Ayrık GKD desteklenmesi gerekiyor. Bu şartların dışında farklı bir durumunuz var ise desteklemediğiniz akışları otomasyonda koşmayabilirsiniz. \n \n 54) Kurum olarak mevcut yapımızda kart hizmeti vermediğimiz durum için kartlarla ilgili senaryolarıı ve adımları atlayabilir miyiz? \n \n HHS olarak ilgili hizmet desteklenmiyor ise kapsam dışı açıklaması girerek kapsam dışına alabilirsiniz. YÖS olarak dilediğiniz hizmet ve özellik için sertifikasyona gelebilirsiniz. \n \n 55) Kurumsal bir firmayız bireysel hesaplarımız bulunmamaktadır. Buna istinaden sertifikasyon isteğimizi kurumsal/web olarak talep ettik ancak HHS olarak bireysel müşteriler içinde bir süreç koşmalı mıyız? \n \n Mevcutta HHS rolü için hangi kanal ve müşteri tipi üzerinden hizmet veriliyorsa açık bankacılık kapsamında da ilgili hizmetler verilmelidir. YÖS rolü için herhangi bir zorunluluk bulunmamaktadır. \n \n 56) İleri tarihli ödeme ve düzenli ödeme hizmetleri zorunlu mudur? Bu hizmetlerden muaf olunabilir mi? \n \n HHS olarak mevcut durumda kendi kanallarınızdan vermiş olduğunuz hizmetleri ÖHVPS kapsamında da vermek zorundasınız. \n \n 57) Mevcut olmayan bir özelliği sonradan eklersek nasıl sertifikasyona gelmemiz gerekecek? Örneğin sonradan kurumsal eklemesi yapıldı. \n \n Sadece ilgili senaryolar için tekrar sertifikasyona gelmeniz beklenmektedir. \n \n 58) HHS olarak banka olmayan bir 
16kuruluş sertifikasyona girdiğinde ödeme servislerinde Kolas ve QR ile ödeme gibi yöntemleri muaf olabilir mi? \n \n Kurumunuzun mevcut yapısında ilgili servisler desteklenmiyor ise kapsam dışına alabilirsiniz. \n \n 59) YÖS olarak daha önce mobil süreçleri devreye almadığımız durumda 2.0.0 kapsamında da muaf olabilir miyiz? S2.0 kapsamında mobil zorunlu mudur? \n \n YÖS’ler için kanal zorunluluğu bulunmamaktadır. Sertifikasyona dilediğiniz kanaldan gelebilirsiniz. \n \n 60) YÖS olarak alınacak kart bilgileri ve hareketleri için uygulamamızda kullanıcıya bir kart görseli göstermek zorunda mıyız? Kart görseli göstermesek olmaz mı? \n \n Kart görseli için belirlenmiş olan standartlar bulunmaktadır. Sertifikasyon dokümanlarından ilgili bilgiye erişebilirsiniz. \n \n 61) Asıl kart sahibi ek karta da rıza verebilir mi? \n \n \n HHS ekranlarında kart seçimi yapılarak rıza verilirken asıl kart seçilmeden ilgili asıl karta bağlı sanal ve ek kartların ayrıca seçilerek rıza verilmesine izin verilmemelidir. HHS mevcut kanallarında ek ve sanal kart hareketlerini asıl karttan ayırt etmeden müşterisine gösteriyor ise asıl kart seçimi ile birlikte asıl karta bağlı sanal ve/veya ek kart seçimini zorunlu kılmalıdır. Asıl kart hamili dışında bir kişi için ek kart çıkartıldığı durumda ek kart sahibi HHS'de asıl kartı görmeyecek olduğundan sadece kendisine çıkartılan ek kartı listelenecek ve seçerek rıza vermesi sağlanacaktır. Ek kart hamilinin asıl kart hamilinden farklı olduğu durumda asıl karta ait bir rıza olmasa da ek karta rıza verilebilir. \n Detaylı bilgi için  https://ohvps.github.io/v2.0.0/contents/hesap-bilgisi-hizmeti.html#_9-9-adim-4-kart-bilgilerinin-sorgulanmas%C4%B1 . \n \n \n 62) YÖS ortamında aynı anda hem hesap hem de kart rıza izni verilebiliyor mu? Rıza izinleri 1-6 ve ek olarak 7-9 gibi ayrı gruplar halinde mi sunuluyor; bu izinler ayrı ayrı mı gönderilmeli? \n \n Hesap ve kart izinleri alınmak isteniyor ise aynı anda hesap rıza isteği verilmelidir. YÖS olarak sadece hesap ya da kart hizmeti de sunabilirsiniz. \n \n 63) Hesaba rıza verilip karta verilmediği durumda HHS rolünde rıza altında tüm kartlar görüntülenecek midir? \n \n Hayır, sadece hesap için izin türleri iletildi ise HHS tarafından sadece hesaplar listelenmelidir. YÖS üzerinden iletilen izin türleri kapsamında hesaplar listelemelidir. \n \n 64) Hesap bilgisi güncelleme akışında, daha önce hesap rızası vermiş bir müşteri aynı işlem sırasında kartlara da rıza verebilir mi? \n \n Evet, belirttiğiniz şekilde yapılabilmektedir. Ancak müşteriye mevcut rızadaki bilgiler default gösterilmeli; müşteri istediği kartları da ekleyebilmelidir. \n \n 65) Hem Hesap İzni Hem de kart iznini veren bir kullanıcı kart özelinde iznini kaldırdığında / yenilediğinde hesap izni de kaldırılacak mı? Yoksa hesap izni devam edecek mi? \n \n Hesaplar ve kartlar için tek hesap bilgi rızası üzerinden izin verilmektedir. Kullanıcı sadece kartlara iznini kaldırır, hesap için devam etmesini istiyor ise hesap izinleri devam edecektir. \n \n 66) Kart numarasının değiştiği durumda (Kayıp/Çalıntı sebebiyle A kartının B kart numarasına döndüğü durum) müşterinin kartına verdiği rıza devam etmeli mi? \n \n Kart ref ID değişmediği sürece mevcut rıza devam etmelidir. \n \n 67) Talimat Durumu statüleri servisten mi dönmektedir, diğer HHS’lerden bu bilgi alınacak mıdır? \n \n İTÖ'de ödeme durumu yer almaktadır. DTÖ'de de ödeme planı içerisinde ödeme durumu yer almaktadır. API dokümanını inceleyebilirsiniz. \n \n 68) Kart Detay servisindeki kalanToplamTaksitTutari parametresi için kredi kartı mevcut yapımızda YP (yabancı para) işlemlerde taksitli işlem bulunmadığı durumda ilgili alanda dönülmesi gereken bilgi nedir? \n \n YP'de taksit çözümünün olmaması durumunda bu alanın 0 olarak dönmesi beklenecektir. \n \n 69) Düzenli tekrarlı ödemelerde ödeme planı içerisinde bulunan herhangi bir tekil ödeme, düzenli ödeme rızasından bağımsız şekilde düzenlenebilecek midir? \n \n HHS'ler ödeme planında güncelleme yapılabilir; güncelleme yapıldığı bilgisi olay bildirimi ile YÖS’e iletilmelidir. \n \n 70) Kart hareketleri raporunda “Dönem Taksit Tutarı” ifadesi, ilgili döneme giren taksitli işlemlerin toplamını mı ifade etmektedir? \n \n İlgili dönem değeri içerisindeki toplam taksit tutar bilgisi iletilmelidir. \n \n 71. Kart durumu \"Pasif\" olacak kartlar için hangi durumları dahil etmeliyiz? Blokeli olan ve geçici kapalı olan kartlar da \"pasif\" olarak mı değerlendirilmelidir? \n \n Tekrar aktif/açık hale gelme ihtimali olan kartlar pasif kart olarak değerlendirilmelidir. \n \n 72) Düzenli Ödeme Emri için YÖS ekranından kullanıcıdan hangi bilgiler alınmalıdır? Tutar, tarih veya transfer sıklığı (Haftalık/Aylık) seçilecek midir? Yoksa tüm bilgiler HHS üzerinden mi YÖS'lere gelecek? \n \n Talimat tutarı dahil talimata dair tüm bilgiler HHS ekranlarından alınacak olup, HHS ekranlarından güncelleme yapılabilecektir. \n \n"},{title:"ÖDEME HİZMETLERİ VERİ PAYLAŞIM SERVİSLERİ (ÖHVPS) UYUM TARİHLERİ",frontmatter:{},regularPath:"/uyum-tarihleri.html",relativePath:"uyum-tarihleri.md",key:"v-81b8a67a",path:"/uyum-tarihleri.html",content:" ÖDEME HİZMETLERİ VERİ PAYLAŞIM SERVİSLERİ (ÖHVPS) UYUM TARİHLERİ \n Hesap Hizmeti Sağlayıcılar ve Yetkili Ödeme Hizmeti Sağlayıcıların ÖHVPS standartlarına uyumu için tarihler, Ödeme Hizmetleri ve Elektronik Para İhracı ile Ödeme Hizmeti Sağlayıcıları Hakkında Yönetmelik ile 
16Ödeme ve Elektronik Para Kuruluşlarının Bilgi Sistemleri İle Ödeme Hizmeti Sağlayıcılarının Ödeme Hizmetleri Alanındaki Veri Paylaşım Servislerine İlişkin Tebliğ’de belirlenmiştir. \n Yönetmeliğin 59 uncu maddesinin beşinci fıkrasında belirlenen yükümlülükler, nezdinde ödeme hesabı bulunduran ve bu hesaplar için müşterilerine doğrudan çevrim içi erişim imkânı sağlayan hesap hizmeti sağlayıcılarından \n \n Fonların Anlık ve Sürekli Transferi (FAST) Sistemine katılımcı olan ödeme hizmeti sağlayıcıları ile \n FAST Sistemine katılımcı olmayan kuruluşlardan her yıl ayrıca hesaplanmak üzere ödeme hacmi bakımından ilk on arasında yer alanlar\niçin geçerlidir. \n \n Kapsamda yer alan Hesap Hizmeti Sağlayıcılar için Yönetmelik ve Tebliğde ÖHVPS uyum tarihleri aşağıdaki şekilde belirlenmiştir: \n \n \n FAST Sistemine katılımcı olmayan ödeme hizmeti sağlayıcılarının, katılımcı olmaları halinde, katılımcı oldukları tarihten itibaren 6 ay içerisinde teknik sertifikasyonlarını başarıyla tamamlayarak GEÇİT’e bağlantı sağlamaları gerekmektedir (HHS’leri ilgilendirmektedir.). \n \n \n FAST Sistemine katılımcı olmayan ödeme ve elektronik para kuruluşlarından her yıl ayrıca hesaplanmak üzere bir önceki takvim yılında gerçekleşen işlemlere göre ödeme hacmi bakımından ilk on arasında yer alan ve; \n •\t    Nezdinde bulunan ödeme hesapları için müşterilerine doğrudan çevrim içi erişim imkânı sağlayan kuruluşların, içinde bulunulan yılın sonuna kadar teknik sertifikasyonlarını başarıyla tamamlayarak GEÇİT’e bağlantı sağlamaları gerekmektedir (HHS’leri ilgilendirmektedir.). \n •\tNezdinde bulunan ödeme hesapları için müşterilerine doğrudan çevrim içi erişim imkânı sağlamayan kuruluşların ise, içinde bulunulan yıl sonuna kadar çevrim içi erişim imkânı sağlamaları halinde çevrim içi erişim imkânı sağladıkları tarihten itibaren 6 ay içerisinde teknik sertifikasyonlarını başarıyla tamamlayarak GEÇİT’e bağlantı sağlamaları gerekmektedir (HHS’leri ilgilendirmektedir.). \n \n \n Yönetmelik ve Tebliğde yapılan 28 Mart 2025 tarihli değişiklik itibarıyla; \n •\tFAST Sistemine katılımcı olan ödeme hizmeti sağlayıcılarının 31 Aralık 2025 tarihine kadar teknik sertifikasyonlarını başarıyla tamamlayarak GEÇİT’e bağlantı sağlamaları gerekmektedir (HHS’leri ilgilendirmektedir.). \n •\tFAST Sistemine katılımcı olmayan ve 2024 takvim yılı ödeme hacmi bakımından ilk on arasında yer alan kuruluşlardan; \n \n \n Nezdinde bulunan ödeme hesapları için müşterilerine doğrudan çevrim içi erişim imkânı sağlayanların 31 Aralık 2025 tarihine kadar teknik sertifikasyonlarını başarıyla tamamlayarak GEÇİT’e bağlantı sağlamaları gerekmektedir (HHS’leri ilgilendirmektedir.). \n \n \n Nezdinde bulunan ödeme hesapları için müşterilerine doğrudan çevrim içi erişim imkânı sağlamayanların 2025 yılı sonuna kadar çevrim içi erişim imkânı sağlamaları halinde çevrim içi erişim imkânı sağladıkları tarihten itibaren 6 ay içerisinde teknik sertifikasyonlarını başarıyla tamamlayarak GEÇİT’e bağlantı sağlamaları gerekmektedir (HHS’leri ilgilendirmektedir.). \n \n \n FAST Sistemine katılımcı olmayan ve 2024 takvim yılı ödeme hacmi bakımından ilk 10 arasında yer alan kuruluşlar aşağıdaki gibidir: \n \n \n \n Kuruluş Kod \n Kuruluş Unvan \n \n \n \n \n 0855 \n Elekse Elektronik Para ve Ödeme Kuruluşu A.Ş. \n \n \n 0853 \n UPT Ödeme Hizmetleri ve Elektronik Para A.Ş. \n \n \n 0850 \n BPN Ödeme ve Elektronik Para Hizmetleri A.Ş. \n \n \n 0830 \n D Ödeme Elektronik Para ve Ödeme Hizmetleri A.Ş. \n \n \n 0852 \n N Kolay Ödeme ve Elektronik Para Kuruluşu A.Ş. \n \n \n 0863 \n Paytr Ödeme ve Elektronik Para Kuruluşu A.Ş. \n \n \n \n \n \n \n \n 6493 Sayılı Kanun’un Geçici 3 üncü maddesinin üçüncü fıkrası uyarınca TCMB’ye faaliyet izni başvurusunda bulunmuş olup faaliyet izni süreci devam edenler ile TCMB’den faaliyet izni almış olan Kuruluşlara teknik gereklilikleri belirlenmiş veri paylaşım hizmetleri, standart olmayan servislerle 30 Haziran 2024 tarihine kadar sunulabilir. (HHS’leri ilgilendirmektedir.) \n \n \n 6493 Sayılı Kanun’un Geçici 3 üncü maddesinin üçüncü fıkrası uyarınca TCMB’ye faaliyet izni başvurusunda bulunmuş olup faaliyet izni değerlendirme süreci devam edenler, teknik gereklilikleri belirlenmiş veri paylaşım hizmetlerini, 30 Haziran 2024 tarihine kadar standart olmayan servisleri kullanarak verebilir. (YÖS’leri ilgilendirmektedir.) \n \n \n 5411 sayılı Kanun kapsamındaki bankalar ile teknik gereklilikleri belirlenmiş veri paylaşım  hizmetlerini sunmak üzere TCMB’den izin almış olan kuruluşlar (YÖS’ler), TCMB Ödeme Sistemlerinde 2020 yılı içerisinde gerçekleştirilen hesaba ödeme işlemleri açısından, toplam adedine göre ilk on katılımcı arasında yer almayan ödeme hizmeti sağlayıcıları nezdinde bulunan ödeme hesapları ile ilgili olarak, teknik gereklilikleri belirlenmiş veri paylaşım servisleri hizmetlerini 30 Haziran 2024 tarihine kadar standart olmayan servisleri kullanarak verebilir. (YÖS’leri ilgilendirmektedir.) \n \n \n Teknik gereklilikleri henüz belirlenmemiş veri paylaşım servisi hizmetleri, gereklilikler belirleninceye kadar standart olmayan servisler kullanılarak verilmeye devam edilir. Banka tarafından teknik ve operasyonel gerekliliklerin belirlenmesinin ardından bu hizmetler için de en geç bir yıl içerisinde uyum sağlanarak, hizmetler söz konusu gerekliliklere uygun olarak yürütülmeye başlanır. \n \n \n Referanslar: \n 6493 Sayılı Ödeme ve Menkul Kıymet Mutabakat Sistemleri, Ödeme Hizmetleri ve Elektronik Para Kuruluşları Hakkında Kanun   \
16n Ödeme Hizmetleri ve Elektronik Para İhracı ile Ödeme Hizmeti Sağlayıcıları Hakkında Yönetmelik   \n Ödeme ve Elektronik Para Kuruluşlarının Bilgi Sistemleri İle Ödeme Hizmeti Sağlayıcılarının Ödeme Hizmetleri Alanındaki Veri Paylaşım Servislerine İlişkin Tebliğ \n"},{title:"EK-1: İstek/Cevap Mesajlarında Kullanılacak Nesne Yapıları",frontmatter:{},regularPath:"/v1.0.1/contents/ekler.html",relativePath:"v1.0.1/contents/ekler.md",key:"v-48317b86",path:"/v1.0.1/contents/ekler.html",headers:[{level:2,title:"EK-1: İstek/Cevap Mesajlarında Kullanılacak Nesne Yapıları",slug:"ek-1-istek-cevap-mesajlarında-kullanılacak-nesne-yapıları"},{level:2,title:"EK-2: Sıralı Veri Türleri",slug:"ek-2-sıralı-veri-turleri"},{level:2,title:"EK-3: İstemci Sertifikalarının Tanım ve Yönetimi",slug:"ek-3-istemci-sertifikalarının-tanım-ve-yonetimi"},{level:2,title:"EK-4: Sunucu Sertifikaları",slug:"ek-4-sunucu-sertifikaları"},{level:2,title:"EK-5: Mesaj İmzalama Akışı",slug:"ek-5-mesaj-imzalama-akısı"},{level:3,title:"İmzalama Kuralları (YÖS)",slug:"imzalama-kuralları-yos"},{level:2,title:"EK-6: HHS/YÖS API Mimarisi",slug:"ek-6-hhs-yos-api-mimarisi"}],content:' EK-1: İstek/Cevap Mesajlarında Kullanılacak Nesne Yapıları \n Açık Bankacılık simülatör uygulaması üzerinde swagger dökümanlarının güncel sürümlerine erişim sağlanabilir. \n EK-2: Sıralı Veri Türleri \n \n \n \n Kod \n Açıklama \n \n \n \n \n TR.OHVPS.DataCode.KimlikTur \n Kod, Tip, Format K , TCKN , N11 M , MNO , AN1..30 (HHS’ye özel bireysel veya kurum müşteri numarası) Y , YKN , N11 P , PNO , AN7..9 \n \n \n TR.OHVPS.DataCode.KurumKimlikTur \n Kod, Tip, Format K , TCKN , N11 M , MNO , AN1..30 (HHS’ye özel bireysel veya kurum müşteri numarası) V , VKN , N10 \n \n \n TR.OHVPS.DataCode.OhkTur \n Kod: B: Bireysel  K: Kurumsal \n \n \n TR.OHVPS.DataCode.KolasTur \n Müşterinin sorgulama istediği Kolay Adres Tipi değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır: T: Telefon Numarası E: E-Posta K: TCKN V: VKN Y: YKN P: Pasaport Numarası \n \n \n TR.OHVPS.DataCode.KareKodAksTur \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  01: FAST katılımcısından dinamik doğrulamalı hizmet alınan işyeri ödemesi 02: FAST katılımcısından statik doğrulamalı işyeri ödemesi 03: Kişiden kişiye ödemeler \n \n \n TR.OHVPS.DataCode.OdemeKaynak \n I: İnternet bankacılığından gönderilen ödemelerde kullanılır. A: Otomatik para makineleri (ATM) ile gönderilen ödemelerde kullanılır. T: Telefon bankacılığı ile gönderilen ödemelerde kullanılır. K: Kiosklar aracılığıyla gönderilen ödemelerde kullanılır. S: Şubeden girilen ödemelerde kullanılır. M: Mobil uygulamadan gönderilen ödemelerde kullanılır. D: Yukarıdakiler dışındaki ödeme kaynaklarından gönderilen ödemelerde kullanılır.  O: Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır. \n \n \n TR.OHVPS.DataCode.OdemeAmaci \n Ödemenin Amacına yönelik olarak aşağıdaki değerlerden birini alır: 01: Konut Kirası Ödemesi 02: İş yeri Kirası Ödemesi 03: Diğer Kira Ödemesi 04: E-Ticaret Ödemesi: Elektronik ticaret işlem amaçlı aktarımlar 05: Çalışan Ödemesi: Maaş, harcırah, prim gibi çalışan ödemeleri 06: Ticari ödeme: Ticari işletmelerin birbirlerine, kendi hesaplarına veya müşterilerine ödemeleri, borç, ithalat, ihracat, şirket satın alma, vb. kapsamında ödemeler 07: Bireysel Ödeme: Özel amaçlı (aile bireylerine, hediye, bağış, borç, alışveriş vs.) ödemeler 08: Yatırım: Mevduat, menkul kıymet, döviz, gayrı menkul, taşıt, varlık alımı, temettü ödeme, tahsilat vb. gibi yatırım amaçlı ödemeler 09: Finansal: Kredi, depo, repo, türev, finansal varlık alım/satımı vb. ödemeler 10: Eğitim ödemesi 11: Aidat ödemesi \n \n \n TR.OHVPS.DataCode.OdemeDurumu \n Ödemenin durumunu gösterir. Alabileceği değerler: 01: Gerçekleşti (Ödeme ilgili ödeme sistemine iletildi ve alıcı hesabına ulaştı.)  02: Gönderildi (Ödeme ilgili ödeme sistemine iletildi ancak alıcı hesabına ulaştığına dair teyit alınmadı.)İşlemin son durumunun teyidi için YÖS sorgulama yapmalıdır. 03- Gerçekleşmedi (Ödemenin ilgili ödeme sistemine işletiminde veya işlenmesi sırasında hata, zaman aşımı, sistemin gün sonu işlemlerine başlaması vb. durum oluştu ve ödeme gereçeklemedi veya iade edildi.) 04- Onayda bekliyor (Ödeme emri alındı. Çoklu onay akışının tamamlanması bekleniyor.) 05- İşleme Alındı ( Ödeme emri alındı. ) YÖS tarafından müşteriye gösterilmeyen bir koddur. Bu kod dönüldüğünde YÖS uygulamasında ÖHK’ya ödeme durumu 02-Gönderildi  olarak gösterilir. İşlemin son durumunun teyidi için YÖS sorgulama yapmalıdır. \n \n \n TR.OHVPS.DataCode.IslemAmaci \n Ödemenin Amacına yönelik olarak aşağıdaki değerlerden birini alır: 01: Konut Kirası Ödemesi 02: İş yeri Kirası Ödemesi 03: Diğer Kira Ödemesi 04: E-Ticaret Ödemesi: Elektronik ticaret işlem amaçlı aktarımlar 05: Çalışan Ödemesi: Maaş, harcırah, prim gibi çalışan ödemeleri 06: Ticari ödeme: Ticari işletmelerin birbirlerine, kendi hesaplarına veya müşterilerine ödemeleri, borç, ithalat, ihracat, şirket satın alma, vb. kapsamında ödemeler 07: Bireysel Ödeme: Özel amaçlı (aile bireylerine, hediye, bağış, borç, alışveriş vs.) ödemeler 08: Yatırım: Mevduat, menkul kıymet, döviz, gayrı menkul, taşıt, varlık alımı, temettü ödeme, tahsilat vb. gibi yatırım amaçlı ödemeler 09: Finansal: Kredi, depo, repo, türev, finansal varlık alım/satımı vb. ödemeler 10: Eğitim ödemesi 11: Aid
16at ödemesi 12: Diğer \n \n \n TR.OHVPS.DataCode.RizaDurumu \n B: Yetki Bekleniyor Y: Yetkilendirildi K: Yetki Kullanıldı E: Yetki Ödeme Emrine Dönüştü S: Yetki Sonlandırıldı I :Yetki Iptal \n \n \n TR.OHVPS.DataCode.GkdTur \n GKD yapılmasını gerekli bulduğu durumda HHS, YÖS’ün belirlediği yöntemi dikkate alarak kendi belirlediği GKD yöntemini bildirir: Y: Yönlendirmeli GKD A: Ayrık GKD \n \n \n TR.OHVPS.DataCode.RizaTip \n H: Hesap Bilgisi Rızası O: Ödeme Emri Rızası \n \n \n TR.OHVPS.DataCode.IzinTur \n 01: Temel Hesap Bilgisi 02: Ayrıntılı Hesap Bilgisi 03: Bakiye Bilgisi 04: Temel İşlem (Hesap Hareketleri) Bilgisi 05: Ayrıntılı İşlem Bilgisi \n \n \n TR.OHVPS.DataCode.OdemeSistemi \n İşlemin yönlendirildiği Ödeme Sistemine göre aşağıdaki değerlerden birini alabilir: H: Havale F: FAST E: EFT (PÖS) değerlerinden birini alabilir. \n \n \n TR.OHVPS.DataCode.IslemTuru \n Hesap hareketleri (işlemler) sorgusunda dönülen İşlem Türü (islTur) parametresi aşağıdaki değerlerden birini alabilir: HAVALE EFT FAST PARA_YATIRMA PARA_CEKME YABANCI_PARA_HAVALE YATIRIM_HESABINA_AKTARIM YATIRIM_HESABINDAN_AKTARIM KURUM_FATURA_ODEMESI CEK SENET SIGORTA_ODEMESI UCRET_KOMISYON_FAIZ SGK_ODEMESI VERGI_ODEMESI DOVIZ_ALIM DOVIZ_SATIM KREDI_ODEMESI KREDI_KULLANIM KK_ODEMESI KK_NAKIT_AVANS SANS_OYUNU UYE_ISYERI_ISLEMLERI HGS_OGS_ISLEMLERI DOGRUDAN_BORCLANDIRMA_SISTEMI DIGER \n \n \n TR.OHVPS.DataCode.HspTur \n Hesabın bireysel veya ticari nitelikte olduğunu belirtir: B: Bireysel T: Ticari \n \n \n TR.OHVPS.DataCode.KolasHspTur \n Hesabın bireysel veya ticari nitelikte olduğunu belirtir: B: Bireysel T: Ticari \n \n \n TR.OHVPS.DataCode.HspTip \n Hesap çeşidini belirtir: VADESIZ VADELI KREDILI MEVDUAT HESABI POS CEK YATIRIM \n \n \n TR.OHVPS.DataCode.HspDrm \n Hesabın durumunu belirtir: AKTIF PASIF KAPALI \n \n \n TR.OHVPS.DataCode.YetTip \n Alabileceği değerlere göre hangi belirtecin döneceğine karar verilir. yet_kod yenileme_belirteci \n \n \n TR.OHVPS.DataCode.BrcAlc \n İşlemin hesabı borçlandırdığı ya da alacaklandırdığı bilgisidir. B : Borç A : Alacak \n \n \n TR.OHVPS.DataCode.RizaIptDtyKod \n ‘01’ :Yeni Rıza Talebi ile İptal ‘02’ :Kullanıcı İsteği ile HHS üzerinden İptal ‘03’ :Kullanıcı İsteği ile YÖS üzerinden İptal ‘04’ :Süre Aşımı : Yetki Bekleniyor ‘05’ :Süre Aşımı : Yetkilendirildi ‘06’ :Süre Aşımı : Yetki Ödemeye Dönüşmedi ‘07’ :GKD iptali : Aynı rıza no ile mükerrer çağrımı ‘08’ :GKD iptali : Rızano ile TCKN uyuşmaması ‘09’ :GKD iptali : Uygun ürünü bulunmuyor ‘10’ :GKD iptali : HHS Açık Bankacılık kanalı işleme kapalı ’11’ :GKD iptali : Hesap Yetki Sorunu ‘12’ :GKD iptali : ÖHK HHS müşterisi değil ‘13’ :GKD iptali : ÖHK HHS kontrollerini aşamadı ‘14’ :GKD iptali : Başarısız GKD ‘15’ :GKD iptali : ÖHK isteği ile GKD’den vazgeçildi ‘16’ :GKD iptali : Diğer \n \n \n TR.OHVPS.DataCode.PSUInitiated \n ‘E’ : Evet ‘H’ : Hayır \n \n \n TR.OHVPS.DataCode.HHSYOSSrlmKrtr \n ‘kod’ : Kod,‘unv’ : Unvan \n \n \n TR.OHVPS.DataCode. SrlmYon \n ‘A’: Azalan değerle sıralama ‘Y’: Artan değerle sıralama \n EK-3: İstemci Sertifikalarının Tanım ve Yönetimi \n YÖS rolü ile gelen katılımcılar BKM API Geçidi erişimlerini kendileri ile BKM tarafından önden paylaşılacak olan istemci sertifikalarını kullanarak sağlayacaklardır. \n Bu sertifikalar BKM bünyesinde oluşturulacak ve erişimde bulunacak olan kuruma özel olarak hazırlanacaktır. Hazırlanan istemci sertifikaları güvenli FTP veya e-posta aracılığı ile önden ilgili kişiler ile paylaşılacaktır. \n Sertifika doğrulama işlemi API Geçidi üzerinde yapılacak olup, istemci tarafında web isteğinin ilgili sertifika ile ilişkilendirilerek oluşturulması gerekecektir. \n Uzun dönemli olarak hazırlanacak olan sertifikalar test, sertifikasyon ve üretim ortamlarında kullanılacaktır. Sertifikaların işlevselliği ve geçerliliği bu aşamalarda  sınanacaktır. \n BKM API Geçidi çözümünün test ve üretim ortamları ayrımında istemci sertifikaları, HHS Listeleme API erişimleri ve  Sertifikasyon bağlantıları Şekil 15-HHS/YÖS API Mimarisi Diagramında resmedilmiştir. \n OpenSSL ile CSR (Certificate Signing Request) Oluşturma \nAşağıdaki komut ile 2048-bit RSA private key ve CSR oluşturulur. \nopenssl req -new -newkey rsa:2048 -nodes -keyout PRIVATEKEY.key -out CSR.csr \n CSR ile ilgili detay bilgilerin girişinde; \nOrganization Unit Name (OU) olarak BKM tarafından size iletilen clientId değeri, \nCommon Name (CN) olarak 4 karakterli yosKod değeri, \nDiğer alanlar için de kurum bilgilerinize göre giriş yapılır. \n Tüm bilgilerin girilmesinden sonra CSR dosyası imzalanmak üzere BKM ye iletilir. \n EK-4: Sunucu Sertifikaları \n Sunucu sertifikalarının endpoint bilgisini (Fqdn) içerecek ve global bir Certification Authority tarafından imzalanmış olarak sunulması gerekmektedir.\nÖrneğin; entegrasyon formu içerinde yer alan URL bilgisinin (test.xbank.com.tr) sertifika içerisinde tanımlı olması ve bu sertifikanın global bir CA örneğin Verisign tarafından imzalanmış olarak sunulması gerekmektedir. \n EK-5: Mesaj İmzalama Akışı \n Dijital imzalama yapısı, 
16ÖHVPS API’de gerçekleştirilen işlemlerin ve taşınan verilerin bütünlük ve inkâr edilemezliğini sağlamak amacıyla kurgulanmıştır.\nBu kapsamda imzalama akışı aşağıdaki gibi olmalıdır: \n \n HHS ya da YÖS öncelikle özel ve açık anahtarlarını oluşturmalıdır. Bu anahtarları oluşturmak için aşağıda “openssl” kullanılarak oluşturma örneği paylaşılmıştır.  Bu anahtarlardan özel olan anahtar mesajı imzalamak için kullanılacak olup, açık anahtar ise mesajı doğrulamak amacıyla mesajın alıcısı tarafından kullanılacaktır. \n \n private_key.pem ve public_key.pem dosyasinin içerikleri kod tarafında kullanılacaktır. \n --private.pem => Özel anahtarın ismi\nopenssl genrsa -out private.pem 2048 \n --public_key.pem => Açık anahtarın ismi\nopenssl rsa -in private.pem -pubout -outform PEM -out public_key.pem \n --private_key.pem => Özel anahtarın PCKS8 formatına çevrilmesi (Java açısından PCKS8 formatında olma ihtiyacı nedeniyle) openssl pkcs8 -topk8 -inform PEM -in private.pem -out private_key.pem -nocrypt \n \n \n Açık ve Özel anahtarlar oluşturulduktan sonra Açık Anahtar BKM ile paylaşılır. BKM bu açık anahtarı diğer katılımcıların ulaşabilmesi ve alabilmesi için bir Anahtar Deposu yaklaşımı ile bünyesinde tutar. İlgili anahtarı iletebilmek ve alabilmek için kullanılacak HHS/YOS API ye erişim detayları EK-6 bölümünde detaylı olarak paylaşılmıştır.  Eğer kurumun ilgili anahtar çiftinin yenilenme durumu söz konusu ise yenilemenin hemen ardından açık anahtar yeni bir imzalama yapılmadan önce mutlaka BKM ile paylaşılmalıdır. \n \n \n İmzalı mesajı açacak olan kurum mesajı imzalayan kurumun açık anahtarını her sorguda yeniden almak durumunda değildir. Belirli periyodlarda kendi ortamındaki anahtarı yenileyerek sistemi işletebilir. Ancak imzalayan kurum anahtar çifti yenilemesi yaptığında BKM ile açık anahtarını paylaşsa dahi imzalı mesajı doğrulayacak taraf eski açık anahtar ile doğrulama yapmaya çalıştığı için hata alacaktır. Bu ilk hata durumunda hızlıca BKM üzerinden yeni anahtarı alıp mesajı tekrar doğrulamayı denemelidir. Eğer yine hata alıyor ise doğrulama işlemini hata statüsüne almalıdır. Bu sebeple anahtar yenileyen kurum yeni açık anahtarını yeni bir mesaj imzalama yapmadan önce mutlaka BKM ile paylaşmalıdır. \n İmzalama Kuralları (YÖS) \n Bir YÖS üzerinden başlayan akış örnek olarak paylaşılmıştır. \n \n \n YÖS, mesaj imzalama gerektiren her API isteğinin HTTP gövdesini (request body) kendi özel anahtarı ile şifreleyerek imza bilgisini oluşturur. \n \n \n Ardından bu imza verisini, göndereceği mesajın istek başlığında yer alan X-JWS-Signature alanında göndermelidir. \n \n \n X-JWS-Signature alanında gönderilecek olan bilgi aşağıdaki yöntem ile oluşturulmalıdır. \n \n \n Bu alana yazılacak olan bilgi JWT formatında oluşturulmalıdır. \n \n \n Bir JWT, header-payload-signature alanlarından oluşmaktadır. \n \n Header alanında JWT’yi imzalamak için kullanılacak algoritma belirtilmelidir.  Standartlar kapsamında RS256 kullanılacaktır. \n Payload kısmında özel olarak oluşturulacak olan “body” claim alanına istek gövdesi (request body) verisinin SHA256 hash değeri karşılığı yazılmalıdır. \n JSON payload oluşturulurken RFC 7519 baz alınmalıdır. "iss" (Issuer) Claim, "exp" (Expiration Time) Claim, "iat" (Issued At) Claim, “body” Claim alanlarının gönderilmesi zorunludur. ^RFC7519 \na.\t"iss" (Issuer) Claim : Kurumunuza özel bilgidir. \nb.\t"exp" (Expiration Time) Claim: Saniye cinsinden (Unix time) imzanın son geçerli olduğu tarih. \nc.\t"iat" (Issued At) Claim : Saniye cinsinden (Unix time) imzanın oluşturulduğu tarih \nd.\t“body” Claim : istek gövdesi (request body) verisinin SHA256 hash değeri karşılığı. \n Signature alanında da özel anahtar ile imzalanmış olan imza içeriği yer alacaktır. \n \n X-JWS-Signature:   JWS imzasını içeren üstbilgi. Bu başlığın ne zaman belirtilmesi gerektiği hususu ilgili endpoint için belirtilmiştir. \n Örnek X-JWS-Signature Payload Değeri \n { \n"iss": "https://apigw.bkm.com.tr", \n"exp": 1646832405, \n"iat": 1646746005, \n"body": "c543072f97a761a1d891dc81acc380bc1e6f61ca6541bd93ebfdece338457922" \n} \n \n \n \n \n YÖS, isteği gönderir. Sadece mesajın bütünlüğünü ve doğruluğunu teyit amacı ile istek gövdesi (request body) SHA256 hash değeri imzalanarak X-JWS-Signature alanında bu imza iletilir. İsteğin gövde (request body) kısmı açık ve şifresiz olarak gönderilmektedir. \n \n \n HHS, isteği alır, talebi gerçekleştirmeden önce aldığı API isteklerinin imzasını doğrulamalıdır. X-JWS-Signature alanındaki JWT aşağıdaki adımlarla doğrulanmalıdır. \n \n Header kısmındaki algoritmanin RS256 olduğu kontrol edilir. \n Gönderen kurumun açık anahtarı ile JWT verify (doğrulama) işlemi yapılır. \n Yukarıdaki işlemlerin doğruluğunun ardından JWT’nin payload kısmındaki “body” claim alanındaki bilginin, isteğin gövde verisinin SHA256 hash değerlerinin aynı olduğu kontrol edilir. \n \n \n \n Yukarıdaki işlemler ile doğruluğu teyit edilmiş olan isteğin talebi gerçekleştirir. \n \n \n Eğer istek doğrulanamıyor ise gönderen kurumun açık ve özel anahtar çifti yenilenmiş olabilir. \n \n \n BKM HHS API  üzerinden ilgili kurumun bilgilerini (kurum ko
16du vs) kullanarak kurumun detay bilgileri çeker ve kendi ortamında yeniler. \n \n \n Ardından imzayı tekrar açık anahtar ile doğrulayarak kontroller gerçekleştirilir. (Eğer halen doğrulama işlemi başarısız ise bu istek için hata akışı çalıştırılır.  TR.OHVPS.Resource.InvalidSignature  kodu ile hata üretilebilir.) \n \n \n İmza bilgisinin beklendiği (x-jws-signature) servislerde, bu bilginin iletilmediği durumlarda  TR.OHVPS.Resource.MissingSignature  hatası üretilebilir. \n \n \n HHS isteği işledikten sonra cevabı oluştururken de yukarıdaki akışlar ile göndereceği cevabı imzalamalıdır. \n EK-6: HHS/YÖS API Mimarisi \n HHS/YÖS API Uygulama Mimarisinde Test ve Üretim ortamlarında aşağıdaki alanda yer almaktadır. \n \n Şekil 15: HHS/YÖS API Mimarisi \n'},{title:"POST /erisim-belirteci",frontmatter:{},regularPath:"/v1.0.1/contents/erisim-belirteci.html",relativePath:"v1.0.1/contents/erisim-belirteci.md",key:"v-23bd824f",path:"/v1.0.1/contents/erisim-belirteci.html",content:' POST /erisim-belirteci \n İSTEK: \n YÖS erisim-belirteci erişim adresini 2 amaçla kullanır: \n \n \n Bir önceki adımdan aldığı rizaNo, rizaTip (ödeme emri başlatma hizmetinde “O”, hesap bilgisi hizmetinde “H”) ve GKD sonrası dönülen yetKod bilgilerini kullanarak HHS nezdinde ErisimBelirteci nesnesi oluşturmak üzere istekte bulunur. YÖS’ün istekte bulunabilmesi için GKD adımının başarılı bir şekilde tamamlanması rizaDrm bilgisinin ‘yetkilendirildi’ olması gerekir. Erişim Belirteci nesnesi ile rızası nesnesi (Ödeme Emri Rızası veya Hesap Bilgisi Rızası) arasındaki ilişki rıza numarası üzerinden sağlanır. \n \n \n Aldığı erişim belirtecinin Geçerlilik Süresinin dolduğu durumda, yenileme belirteci karşılığında yeni bir erişim belirteci alması gerekmektedir. \n \n \n POST /erisim-belirteci isteğinin (REQUEST) gövdesinde (BODY)  “ErisimBelirteciIstegi” nesnesi (Tablo-23) kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “ErisimBelirteci” nesnesi (Tablo 24) oluşturulur veya (Yenileme Belirteci için) güncellenir. Rıza durumu “Yetki Kullanıldı” olarak güncellenir. \n Tablo 23: “ErisimBelirteciIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format:Veri modeli İsmi \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n RızaNo \n rizaNo \n AN1..128 \n Z \n Rıza nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n Rıza Tipi \n rizaTip \n AN1 \n Z \n O veya H (TR.OHVPS.DataCode.RizaTip) \n \n \n Yetki Tipi \n yetTip \n AN1..50 \n Z \n “yet_kod” yada “yenileme_belirteci” değerini alabilir.  (TR.OHVPS.DataCode.YetTip) \n \n \n Yetki Kodu \n yetKod \n AN1..255 \n K \n GKD işleminden dönen yetkilendirme kodudur. Tek kullanımlık olup, aynı yetKod ile birden fazla token alınamaz. yetKod Parametresinin yaşam ömrü 5 dakika olmalıdır. yetTip = “yet_kod” ise zorunludur. \n \n \n Yenilenme Belirteci \n yenilemeBelirteci \n AN1..4096 \n K \n Erişim belirtecinin yenilenmesi amacıyla kullanılır. yetTip = “yenileme_belirteci” ise kullanımı zorunludur. \n \n \n \n BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “erisimBelirteci” nesnesinde (Tablo-19) bulunan erişim belirteci değeri ödeme emrinin başlatılması esnasında kullanılır. \n Tablo 24: "ErisimBelirteci" nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format:Veri modeli İsmi \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Erişim Belirteci \n erisimBelirteci \n AN1..4096 \n Z \n Yetkilendirme Kodu karşılığında HHS tarafından dönülen ve sonraki hesap bilgisi ve ödeme emri servislerine erişimde kullanılan bilgidir. \n \n \n Geçerlilik Süresi \n gecerlilikSuresi \n N1..9 \n Z \n Erişim Belirtecini saniye cinsinden geçerlilik süresidir.  Erişim belirteci geçerli olduğu son tarih ; Hesap Bilgisi Rızası için 30 gün olmalıdır. Erişimin Geçerli Olduğu Son Tarih 30’dan küçük ise bu süre değeri ile sınırlıdır. Ödeme Başlatma Rızası için 5 dakika olmalıdır. \n \n \n Yenileme Belirteci \n yenilemeBelirteci \n AN1..4096 \n Z \n Erişim belirtecinin yenilenmesi amacıyla kullanılır. \n \n \n Yenileme Belirteci Geçerlik Süresi \n yenilemeBelirteciGecerlilikSuresi \n N1..9 \n Z \n Yenileme belirtecinin saniye cinsinden geçerlilik süresidir. Yenileme belirtecinin geçerli olduğu son tarih ; Hesap Bilgisi için Erişimin Geçerli Olduğu Son Tarih ile sınırlı olmalıdır. Bu tarih geldiği zaman Hesap Bilgisi Rıza Durumunu ”Yetki Sonlandırıldı” statüsüne çekilmesi gerekir. Ödeme Başlatma için Rıza Oluşturma Zamanından 15 gün sonrası olmalıdır. 15 gün süresi sorgulama servislerinin çağrımını destekleyecek şekilde uzun tutulmuştur. İleri vadeli işlemler bu kapsamda değildir.  Ödeme emri 5 dakika içinde gerçekleştirilmelidir. Gerçekleşmediğinde 4.2.8 bölümünde aktarılan rıza statü güncellemesi yapılmalıdır. \n \n \n \n erisim-belirteci erisim noktasından alınan elde edilen erisimBelirteci ilişkilendiriliği nesne veya işlem için gönderilen POST isteği başlığında x-access-token alanında iletilir.\nYenilenme Belirteci (refreshToken) kullanılarak Erişim Belirteci (accessToken) alındığında, döne
16n yanıttaki Yenileme Belirteci ve Yenileme Belirteci Geçerlik Süresi değişmez. \n Erişim Belirteci API çağrımı sırasında rıza durumları kontrol edilmelidir. Bu kontrollerin nasıl yapılması gerektiği 4-Rıza Durumları bölümünde aktarılmıştır. \n'},{title:"7.\tHesap Bilgisi Hizmeti",frontmatter:{},regularPath:"/v1.0.1/contents/hesap-bilgisi-hizmeti.html",relativePath:"v1.0.1/contents/hesap-bilgisi-hizmeti.md",key:"v-5b1695dd",path:"/v1.0.1/contents/hesap-bilgisi-hizmeti.html",headers:[{level:2,title:"Genel Bilgiler",slug:"genel-bilgiler"},{level:2,title:"Hesap Bilgisi Hizmeti İçin Erişim Adresleri",slug:"hesap-bilgisi-hizmeti-icin-erisim-adresleri"},{level:2,title:"ADIM 0: ÖHK'nın hesap bilgilerine erişim için talepte bulunması:",slug:"adim-0-ohk-nın-hesap-bilgilerine-erisim-icin-talepte-bulunması"},{level:2,title:"7.1 ADIM 1: Hesap Bilgisi Rızasının Hazırlanması",slug:"_7-1-adim-1-hesap-bilgisi-rızasının-hazırlanması"},{level:3,title:"POST /hesap-bilgisi-rizasi",slug:"post-hesap-bilgisi-rizasi"},{level:3,title:"Başarılı İstek:",slug:"basarılı-istek"},{level:3,title:"Başarılı Yanıt:",slug:"basarılı-yanıt"},{level:2,title:"İzinler",slug:"izinler"},{level:2,title:"7.2 ADIM 2: Hesap Bilgisi Hizmeti Rızasının Tesisi",slug:"_7-2-adim-2-hesap-bilgisi-hizmeti-rızasının-tesisi"},{level:2,title:"7.3 ADIM 2.1: Hesap Bilgisi Rızasının Sorgulanması (İsteğe Bağlı)",slug:"_7-3-adim-2-1-hesap-bilgisi-rızasının-sorgulanması-istege-baglı"},{level:2,title:"7.4 ADIM 2.2: Hesap Bilgisi Rızasının İptali",slug:"_7-4-adim-2-2-hesap-bilgisi-rızasının-iptali"},{level:2,title:"7.5 ADIM 3: Hesap Bilgilerinin Alınması",slug:"_7-5-adim-3-hesap-bilgilerinin-alınması"},{level:2,title:"7.6 ADIM 3.1 ve 3.2: Hesap Bilgilerinin Sorgulanması",slug:"_7-6-adim-3-1-ve-3-2-hesap-bilgilerinin-sorgulanması"},{level:2,title:"7.7 ADIM 3.3 ve 3.4: Hesap Bakiyesinin Sorgulanması",slug:"_7-7-adim-3-3-ve-3-4-hesap-bakiyesinin-sorgulanması"},{level:2,title:"7.8 ADIM 3.5 ve 3.6: İşlemlerin Sorgulanması",slug:"_7-8-adim-3-5-ve-3-6-islemlerin-sorgulanması"},{level:2,title:"7.9\tHealthcheck API",slug:"_7-9healthcheck-api"},{level:3,title:"Başarılı Yanıt:",slug:"basarılı-yanıt-2"}],content:" 7.\tHesap Bilgisi Hizmeti  \n Genel Bilgiler \n Hesap bilgisi sorgulama için HBHS tarafından müşteri rızası tesisinin HHS tamamlanmış olması gerekir. Müşteri rızası tesisi tamamlandıktan sonra, HBHS sorgulamak istediği hesaba ait verileri ilgili erişim adresi üzerinden sorgular. \n \n \n Şekil 10: Hesap Bilgisi Hizmeti Üst Düzey Akışı \n Şekil-10’da sunulan hesap bilgisi hizmeti 5 temel akıştan oluşur: \n 0.\tMüşterinin hesap bilgilerine erişim için talepte bulunması:  ÖHK ÖBHS mobil uygulama ya da web sitesinden hesap bilgilerine erişim işlemini başlatır. \n 1.\tHesap Bilgisi müşteri rızasının hazırlanması: \n HBHS, “hesap bilgilerine erişim” için müşteri rızası tesisi amacıyla HHS’deki hesap bilgisi rızası erişim adresine bir POST isteğinde bulunur ve bir hesap bilgisi rızası nesnesi oluşturur. HHS hesap bilgisi rızası nesnesi için biricik tanımlayacı döner (RızaNo). Hesap bilgisi rızası, müşterinin HBHS’nin hesap bilgilerine erişim izin verdiği alanları içerir: \n \n İzinler - erişim için izin verilen veri kümelerinin listesi. \n Erişimin Geçerli Olduğu Son Tarih - HBHS'nin müşterinin hesap bilgilerine erişebileceği isteğe bağlı seçilebilen son tarih. \n İşlem Sorgulama Başlangıç Zamanı – Müşteri rızasının tesisinden itibaren geriye dönük olarak HBHS’nin hesap bilgilerine erişebileceği süreyi \n İşlem Sorgulama Bitiş Zamanı - Müşteri rızasının tesisinden itibaren ileriye dönük olarak HBHS’nin hesap bilgilerine erişebileceği süreyi \n \n 2.\tHesap bilgisi hizmeti müşteri rızasının tesisi: \n HHS, Hesap Bilgisi Rızası servisi ile ÖHK özelinde “Yetki bekleniyor” statüsünde bir rıza nesnesi hazırlar. HHS, GKD’nin başarıyla tamamlanması sonrasında hesap bilgisi rızası nesnesinin yetkilendirildiğini belirtmek için Rıza Durumunu “Rıza Yetkilendirildi” olarak günceller. Nesne yetkilendirildikten s
16onra HHS nesne ile bir erişim belirteci (access token) ilişkilendirir, Rıza Durumunu “Yetki Kullanıldı” yapar ve bu belirteci HBHS’ye geri döner.  Böylece müşteri rıza tesisi sağlanmış olur. \n Hesap bilgisi için müşteri rızasına ilişkin temel ilkeler şunlardır: \n \n 1 ÖHK'nın 1 YÖS için 1HHS'de Yetki Bekleniyor, Yetkilendirildi, Yetki Kullanıldı statüsünde 1 rızası olabilir. \n Müşteri rızasının ayrıntıları ÖHK ile HBHS arasında belirlenir. Bu nedenle müşteri rızasının ayrıntıları HHS ekranında değiştirilmemelidir. \n ÖHK, hesap erişim izni ayrıntılarını yalnızca bir bütün olarak yetkilendirebilir veya geri alabilir. \n Müşteri rızası tesisi esnasında, müşteri HHS arayüzünde erişim için yetkilendirecek hesapları seçer. \n \n 2.1\tHesap bilgisi rızasının sorgulanması:  Müşteri rızası  GET/hesap-bilgisi-rizasi/{RizaNo}  çağrısı yapılarak sorgulanır. \n 2.2\tHesap bilgisi müşteri rızasının iptali:  Müşteri rızası  DELETE/hesap-bilgisi-rizasi/{RizaNo}  çağrısı yapılarak iptal edilir. \n 3.\tHesap bilgilerinin alınması:  Hesap bilgileri ilgili kaynağa (hesaplar, bakiye, işlemler) GET isteği yapılarak gerçekleştirilir. HBHS, müşteri rızasının tesisinden sonrasında (geçerli bir erişim belirticine sahip olduğunda) öncelikle  GET/hesaplar  çağrısı yapacaktır. \n Hesap Bilgisi Hizmeti İçin Erişim Adresleri \n Etki Alanı (Scope) =“hesap_bilgisi” \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu / İsteğe Bağlı \n Yetkilendirme Türü \n İmzalama \n Parametre \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n hesap-bilgisi-rizasi \n POST \n /hesap-bilgisi-rizasi \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n HesapBilgisiRizasiIstegi \n HesapBilgisiRizasi \n \n \n 2 \n erisim-belirteci  (GKD için) \n POST \n POST/erisim-belirteci \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n ErisimBelirteciIstegi \n ErisimBelirteci \n \n \n 2.1 \n hesap-bilgisi-rizasi \n GET \n /hesap-bilgisi-rizasi/{RizaNo} \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n \n \n HesapBilgisiRizasi \n \n \n 2.2 \n hesap-bilgisi-rizasi \n DELETE \n /hesap-bilgisi-rizasi/{RizaNo} \n Z \n İstemci Kimlik Bilgileri \n \n \n \n \n \n \n 3.1 \n hesaplar \n GET \n /hesaplar \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama \n \n HesapBilgileri(birden çok hesap) \n \n \n 3.2 \n hesaplar \n GET \n /hesaplar/{hspRef} \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n \n \n HesapBilgileri(tek  hesap) \n \n \n 3.3 \n bakiye \n GET \n /hesaplar/{hspRef}/bakiye \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n \n \n BakiyeBilgileri(tek  hesap) \n \n \n 3.4 \n bakiye \n GET \n /bakiye \n İ \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama \n \n BakiyeBilgileri(birden çok hesap) \n \n \n 3.5 \n islemler \n GET \n /hesaplar/{hspRef}/işlemler \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama Filtreleme \n \n IslemBilgileri (tek hesap) \n \n \n \n Tablo 11: Hesap Bilgisi Hizmeti İçin Erişim Adresleri \n ADIM 0: ÖHK'nın hesap bilgilerine erişim için talepte bulunması: \n ÖHK, HBHS uygulamasında (web arayüzü/mobil uygulama) hesap bilgilerine erişim için talepte bulunur. \n 7.1 ADIM 1: Hesap Bilgisi Rızasının Hazırlanması \n Bu API çağrısı HBHS'nin HHS'de yeni bir “HesapBilgisiRizasi” nesnesi oluşturmasını ve nesneye erişmek için benzersiz bir rıza numarası ({RizaNo}) dönülmesini sağlar. \n API çağrısının başarıyla sonuçlanması için HBHS'nin istemci kimlik bilgileri yetkisi kullanması yeterlidir.\nBaşarıyla oluşturulan hesap bilgisi rıza kaynağının rıza durumu “Yetki Bekleniyor” olarak düzenlenir.\nÖHK daha önce aldığı rızaya ilişkin erişim tarihleri, izin türlerini ve hesap bilgilerini güncellemek isterse, HBHS önce HHS nezdindeki rızayı iptal etmeli ve sonrasında yeni bir rıza talebinde bulunmalıdır.\n \n \n Şekil 11: Hesap Bilgisi Müşteri Rızasının Hazırlanması \n \n POST /hesap-bilgisi-rizasi isteğinin (REQUEST) gövdesinde (BODY)  “HesapBilgisiRizasıIstegi” nesnesi (Tablo-12) kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “HesapBilgisiRizasi” (Tablo-13) nesnesi oluşturulur. \n  POST /hesap-bilgisi-rizasi \n Başarılı İstek: \n İSTEK: \n HBHS, bu API erişim adresinden HHS’ye yeni bir HesapBilgisiRizasi oluşturulması için istekte bulunur: \n \n HBHS, ÖHK’nın hesap bilgilerine yönelik rıza başlatma isteği olduğunu HHS’ye bildirir. \n HBHS, ÖHK’nın, HBHS arayüzünden verdiği rızanın (“Ön Onay”) bir kopyasının HHS nezdinde müşteri tarafından onaylanması için HHS’ye gönderilmesini sağlar. \n HHS; istek mesajında yer alan alanların API dökümanında belirtilen şartları sağlayacak şekilde zorunluluk ve uzunluk kontrollerini y
16apar. (Zorunlu) \n HHS; YÖS API ile alınan HBHS bilgilerinin içerisinde yer alan yönlendirme ve bildirim adresleri ile ödeme emri rızası nesnesi request mesajında paylaşılan adreslerin uyumlu olup olmadığının kontrollerini yapar. (Zorunlu) \n HHS; kimlik bilgileri nesnesinde iletilen kimlik bilgileri ile ÖHK’nın HHS müşterisi olup olmadığının kontrollerini yapar. Bu kontrol hem bireysel hem de kurumsal ÖHK’lar için yapılmalıdır.  (Zorunlu) \n Erişimin Geçerli Olduğu Son Tarih, İşlem Sorgulama Başlangıç Zamanı, İşlem Sorgulama Bitiş Zamanı alanları ile ilgili Tablo 12’de belirtilen kontroller yapılmalıdır. (Zorunlu) \n HHS, benzersiz “RizaNo” ile “HesapBilgisiRizasi” nesnesi oluşturur ve HBHS’ye döner. \n HHS, HesapBilgisiRizasi oluşturduğu anda durumunu “Yetki Bekleniyor” olarak düzenler. \n \n Erişimin Geçerli Olduğu Son Tarih, İşlem Sorgulama Başlangıç Zamanı, İşlem Sorgulama Bitiş Zamanı alanlarında zaman aralıkları müşteri deneyimi penceresinden değerlendirilerek ay cinsinden belirtilmiştir. Bu konuda aşağıdaki gibi oluşabilecek uç örneklere dikkat edilmesi gerekmektedir. \n Bugün : 31.08.2019 \nBugün + 6 Ay : 29.02.2020 \nBugün : 30.08.2020 \nBugün + 6 Ay : 28.02.2021 \n Tablo 12: “HesapBilgisiRizasiIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Hata durumunda TR.OHVPS.Connection.InvalidASPSP hata kodunu döner. \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder.  Hata durumunda TR.OHVPS.Connection.InvalidTPP hata kodunu döner. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n >Yetkilendirme Yöntemi \n yetYntm \n AN1 \n İ \n TR.OHVPS.DataCode.GkdTur sıralı veri türü değerlerinden birini alır.   Yetkilendirme yöntemi, HBHS tarafından belirtilmeyebilir. \n HHS, HBHS’nin belirlediği yöntemi dikkate alarak kendi belirlediği yöntemi kullanır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunludur.  YÖS Yönlendirmeli GKD yöntemi ile akışı destekliyorsa, yetYntm değişkeninden bağımsız olarak yönlendirme adresini iletmelidir. Durum kodu(drmKod), yönlendirme adresine parametre olarak eklenmelidir. \n HHS, müşteri uygulama / tarayıcısını bu alanda belirtilen adrese yönlendirir. \n \n \n > Bildirim Adresi \n bldAdr \n AN1..1024 \n K \n Ayrık güçlü kimlik doğrulama için zorunludur.  YÖS Ayrık GKD yöntemi ile akışı destekliyorsa, yetYntm değişkeninden bağımsız olarak bildirim adresini iletmelidir.  Durum kodu(drmKod), yönlendirme adresine parametre olarak eklenmelidir. \n HHS, ayrık GKD sonrası bu alanda belirtilen adrese otorizasyon kodunu (authentication code) iletir. \n \n \n Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n > Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur sıralı veri türü değerlerinden birini alır.   Kurum adına yapılan(ticari) işlemlerde kurum kullanıcısının bilgisi iletilmelidir. \n \n \n \n > Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır.   TR.OHVPS.DataCode.KimlikTur değerine göre uzunluk ve formatı değişir.   Kurum adına yapılan(ticari) işlemlerde kurum kullanıcısının bilgisi iletilmelidir. \n \n \n \n > Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür.  TR.OHVPS.DataCode.KurumKimlikTur sıralı veri türü değerlerinden birini alır. \n \n \n \n > Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.  TR.OHVPS.DataCode.KurumKimlikTur değerine göre uzunluk ve formatı değişir. \n \n \n \n > Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur sıralı veri türü değerlerinden birini alır (B: Bireysel, K:Kurumsal) \n \n \n \n Hesap Bilgisi \n hspBlg \n Kompleks: HesapBilgisi \n Z \n \n \n \n \n >İzin Bilgisi \n iznBlg \n Kompleks: IzinBilgisi \n Z \n \n \n \n \n >> İzin Türü \n iznTur \n Array[AN2] \n Z \n ÖHK tarafından HHS önyüzünde belirlenen izin tipleridir. Bir istekte birden fazla değer bulunabilir, TR.OHVPS.DataCode.IzinTur sıralı veri türü değerlerinden birini alır. \n \n \n \n >> Erişimin Geçerli Olduğu Son Tarih \n erisimIzniSonTrh \n ISODateTime \n Z \n Hesap bilgisi rızasının geçerli olduğu son tarih.   Müşteri YÖS ekranından bu değeri belirleyebilir.   Varsayılan değer : Rıza verilen tarih + 6 ay   Alabileceği maksimum değer : Rıza tarihi + 6 ay    Alabileceği minimum değer : Rıza tarihi + 1 gün   Örneğin 23/09/202
161’de minimum 24/09/2021 seçilebilir. Bu durumda izin 24/09/2021 23:59:59’da bitecek şekilde olmalıdır. \n Bu alanda bir değer bulunmadığı durumda HHS hata dönmelidir. \n \n \n >> İşlem Sorgulama Başlangıç Zamanı \n hesapIslemBslZmn \n ISODateTime \n K \n Hesap bilgisi rızası verilmesinden geçmişe dönük en fazla 12 ay olabilir, daha eski olmaması gerekir.   Varsayılan değeri rıza verilen tarih (işlem zamanı) – 12 aydır.   ÖHK bu alana bir değer girişi sağlamamış ise ÖBHS varsayılan değerlerle bu alanı doldurarak, HHS’ye iletir.   Minimum tarihi : Rızanın veriliş tarihi  - 12 ay    Maksimum tarih: Rızanın veriliş tarihi +  12 ay    İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur.  İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ise gönderilmemelidir. \n ÖHK tarafından izin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ve  İşlem Sorgulama Başlangıç Zamanı ÖBHS tarafından dolu olarak gönderilmiş ise HHS tarafından işlemin devamına izin verilmez. İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmiş ise; HHS bu alanın alabileceği minimum ve maksimum değerlerin sınırlar içerisinde olduğunu kontrol eder. \n \n \n >> İşlem Sorgulama Bitiş Zamanı \n hesapIslemBtsZmn \n ISODateTime \n K \n Hesap bilgisi rızası verilmesinden geleceğe dönük en fazla 12 ay sonrası olabilir, daha ileri bir tarih olmaması gerekir.   Varsayılan değeri: Rıza verilen tarih + 12 aydır.  ÖHK bu alana bir değer girişi sağlamamış ise ÖBHS varsayılan değerlerle bu alanı doldurarak, HHS’ye iletir.  Minimum tarihi : Rızanın veriliş tarihi  – 12 ay  Maksimum tarihi :  Rızanın veriliş tarihi + 12 ay   İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur.  İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ise gönderilmemelidir. Eğer dolu gönderilirse HHS tarafından uygun hata mesajı iletilmelidir. \n ÖHK tarafından izin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ve İşlem Sorgulama Bitiş Zamanı ÖBHS tarafından dolu olarak gönderilmiş ise HHS tarafından işlemin devamına izin verilmez.   İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmiş ise; HHS bu alanın alabileceği minimum ve maksimum değerlerin sınırlar içerisinde olduğunu kontrol eder. \n Başarılı Yanıt: \n Tablo 13: HesapBilgisiRizasi nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n HesapBilgisiRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n HesapBilgisiRızası nesnesinin oluşturulma zamanı \n \n \n > Güncellenme Zamanı \n gnclZmn \n ISODateTime \n Z \n HesapBilgisiRızası nesnesinin güncellenme zamanı \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu sıralı veri tipini değerlerinden birini alır. Örn; hesap bilgi rızasının tesisine dair ilk istek mesajına dönüşte “B: Yetki Bekleniyor” değerini alması beklenir. \n \n \n > Rıza Iptal Detay Kodu \n rizaIptDtyKod \n AN2 \n K \n Rıza durumunun iptal olduğu durumda zorunludur. \n \n \n Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n > Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur sıralı veri türü değerlerinden birini alır. \n \n \n > Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur değerine göre uzunluk ve formatı değişir. \n \n \n > Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür.  TR.OHVPS.DataCode.KurumKimlikTur sıralı veri türü değerlerinden birini alır. \n \n \n > Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.  TR.OHVPS.DataCode.KurumKimlikTur değerine göre uzunluk ve formatı değişir. \n \n \n > Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur sıralı veri türü değerlerinden birini alır (B: Bireysel, K:Kurumsal) \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n K \n HHS, HBHS’nin belirlediği yöntemi dikkate alarak kendi belirlediği yöntemi kullanır.  TR.OHVPS.DataCode.GkdTur sıralı veri türü değerlerinden birini alır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n HHS, müşteri uygulama / tarayıcısını bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n > Bildirim Adresi \n bldAdr \n AN1..1024 \n K \n HHS, ayrık GKD sonrası bu alanda belirtilen YÖS adresine otorizasyon kodunu (authentication code) iletir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.  HHS tarafından maksimum 5 dk içinde işlem tamamlanacak şekil zaman damgası oluşturulur. Zaman aşımı olduğunda HHS’nin GKD’ye izin vermeyecek şekilde hata mesajı vermesi gerekmektedir. Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Hesap Bilgisi \n hspBlg \n Kompleks: HesapBilgisi \n Z \n \n \n \n > İzin Bilgisi \n iznBlg \n Kompleks: IzinBilgisi \n Z \n \n \n \n >> İzin Türü \n iznTur \n Array[AN2] \n Z \n ÖHK tarafından HBHS önyüzünde belirlenen izin tipleridir. Bir istekte birden fazla değer bulunabilir, TR.OHVPS.DataCode.IzinTur sıralı veri türü değerlerinden birini alır. \n \n \n >> Erişimin Geçerli Olduğu Son Tarih \n erisimIzniSonTrh \n ISODateTime \n Z \n Hesap bilgisi rızasının geçerli olduğu son tarih \n \n \n >> İşlem Sorgulama Başlangıç Zamanı \n hesapIslemBslZmn \n ISODateTime \n K \n Hesap hareketlerinin sorgunabileceği başlangıç zamanı. İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur. \n \n \n >> İşlem Sorgulama Bitiş Zamanı \n hesapIslemBtsZmn \n ISODateTime \n K \n Hesap hareketlerinin sorgunabileceği bitiş zamanı. İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur. \n \n \n > Ayrıntı Bilgi \n ayrBlg \n Kompleks: AyrintiBilgi \n İ \n \n \n \n > ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n İzinler \n Bir hesap bilgisi müşteri rızası kaynağı çağrısına yanıt olarak döndürülen verileri sınırlamak için izin kodları kullanılır: \n \n Temel Hesap Bilgisi \n Ayrıntılı Hesap Bilgisi \n Bakiye Bilgisi \n Temel İşlem (Hesap Hareketleri) Bilgisi \n Ayrıntılı İşlem Bilgisi \n \n ÖHK’ya sunulacak seçimler ve kuralları aşağıdaki gibi olmalıdır. \n \n \n \n Seçim \n Kural \n \n \n \n \n Temel Hesap Bilgisi \n ÖHK seçimine sunulmamalıdır. Değiştirilemez şekilde seçili gösterilmelidir. \n \n \n Ayrıntılı Hesap Bilgisi \n ÖHK seçim yapabilir. \n \n \n Bakiye Bilgisi \n ÖHK seçim yapabilir. \n \n \n Temel İşlem (Hesap Hareketleri)  Bilgisi \n ÖHK seçim yapabilir. \n \n \n Ayrıntılı İşlem Bilgisi \n ÖHK seçim yapabilir. Ayrıntılı İşlem Bilgisi seçimi Temel İşlem Bilgisi seçimini kapsar. (Ayrıntılı İşlem bilgisi seçildiğinde Temel İşlem Bilgisi de seçili olmalıdır.) \n \n \n \n Aşağıdaki durumlarda, izin kombinasyonlarına izin verilmez. HHS, bu hesap erişim onaylarını 400 (Hatalı İstek) yanıt koduyla reddetmelidir: \n \n İzin dizisinin herhangi bir izin türü içermemesi durumu, \n İzin dizisinde HHS tarafından desteklenmeyen bir izin kodunun yer alması durumu \n 7.2 ADIM 2: Hesap Bilgisi Hizmeti Rızasının Tesisi \n \n \n Şekil 12: Hesap Bilgisi ÖHK Rızasının Tesisi \n Rıza tesisinin başarıyla sonuçlanması için HBHS'nin istemci kimlik bilgileri yetkisi kullanması ve ardından müşterinin HHS tarafından yönlendirmeli veya ayrık GKD ile doğrulanması gerekir. HHS'de oluşturulan ve rıza durumu “Yetki Bekleniyor” olan bir hesap bilgisi rızası, G
16KD sonrası “Yetkilendirildi” statüsüne güncellenir. HBHS, erişim sağlayacağı hesapları hesap bilgisi rızasının tesisinden önce seçer. \n \n \n Yönlendirmeli doğrulama akışında, HBHS ÖHK’yı HHS’ye yönlendirir. \n \n \n HBHS tarafından yönlendirme, bir önceki adımdaki RizaNo’yu içerir. \n \n \n HHS, ÖHK için GKD sürecini işletir. \n ÖHK’yı doğrularsa, \n \n \n ÖHK HBHS üzerinden işlem yapılmasına izin vereceği hesap seçimini yapar. HBHS üzerinden ÖHK’nın verdiği izin bilgilerini ve erişim izninin bitiş tarihi bilgilerini, HHS bilgilendirme amaçlı ÖHK’ya gösterir. \n \n \n HHS hesap bilgisiri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n HHS, ÖHK’yı “olumlu yönlendirme akışı” ile HBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=Y&yetKod=xx&rizaNo=yy&rizaTip=H&drmKod=zzz\n \n \n \n ÖHK’yı doğrulayamazsa, \n \n \n HHS, hesap bilgisi rıza kaynağının durumunu “Yetki İptal” olarak günceller. \n \n \n HHS, ÖHK’yı “olumsuz yönlendirme akışı” ile HBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=I &rizaNo=yy&rizaTip=H&rizaIptDtyKod=11&drmKod=zzz\n \n \n \n \n \n \n \n Ayrık doğrulama akışında, HHS, ÖHK’nın hesap bilgisi hizmetini başlattığı uygulamadan farklı olabilecek bir “doğrulama” uygulamasında işlemi doğrulamasını ister. \n \n Ayrık akış HBHS’nin farklı bir kanal kullanarak yetkilendirme isteği göndermesiyle başlatılır. \n Bu yetkilendirme isteği, yetkilendirilecek hesap bilgisi rızasının eşleştirileceği ÖHK’nın bulunması için ilgili veriyi taşır. \n HHS, ödeme hizmeti kullanıcısını doğrular. \n ÖHK verdiği izin tipi dahilinde bilgileri paylaşılacak olan hesapları seçer. \n HHS, hesap bilgisi rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n \n Başarılı GKD sonrasında (rizaDrm=’Y’) ilgili rıza nesnesi için (belirli bir rizaNo) yetkilendirme kodunun (yetKod) alınmasının ardından erişim belirteci erişim adresine POST çağrısı yapılarak yetkilendirme kodu karşılığında erişim belirteci ve yenileme belirteci alınır. POST /erişim-belirteci erişim noktası EK-3’te açıklanmıştır. \n Erişim belirteci alındıktan sonra; HHS,  hesap bilgisi rızasının durumunu “Yetki Kullanıldı” olarak günceller. Rıza tesisi sağlanmış olur. \n 7.3 ADIM 2.1: Hesap Bilgisi Rızasının Sorgulanması (İsteğe Bağlı) \n GET /hesap-bilgisi-rizasi/{RizaNo} \n ÖHK, HHS üzerinden rıza iptali yapmış olabilir veya ÖHK’nın verdiği rıza süresi dolmuş olabilir.  Bu durumlarda HBHS, rıza alma akışına başlamadan önce, daha önce oluşturulmuş bir HesapBilgisiRizasi kaynağının durumunu, isteğe bağlı olarak alabilir. \n Servis başarılı yanıtında Tablo 13’de belirtilen “HesapBilgisiRizasi” nesnesini dönmektedir. \n Durum \nHesapBilgisiRizasi kaynağı için kullanılabilecek durum göstergeleri şu şekildedir: \n \n Yetki Bekleniyor \n Yetkilendirildi \n Yetki Kullanıldı \n Yetki S
16onlandırıldı \n Yetki İptal \n 7.4 ADIM 2.2: Hesap Bilgisi Rızasının İptali \n \n \n \n Şekil 13: Hesap Bilgisi Müşteri Rızasının Geri Alınması \n DELETE /hesap-bilgisi-rizasi/{RizaNo} \n DELETE /hesap-bilgisi-rizasi çağrısı, bir HBHS'nin önceden oluşturulmuş bir hesap erişim rızasını (yetkili olsun veya olmasın) silmesine izin verir. Müşteri, rızasını HHS üzerinden iptal etmek yerine, HBHS üzerinden bu rızasını kaldırmak isteyebilir. \nBu API çağrısı, müşterinin HBHS üzerinden hesap bilgisi rızasını iptal etmesine ve HHS nezdindeki hesap bilgisi rızası nesnesinin silinmesini sağlar. \nMüşterinin HBHS’nin veri erişim iznini iptal etmesi durumunda HBHS, HHS’de mevcut olan HesapBilgisiRizasi kaynağını pratik olarak mümkün olan en kısa sürede silmelidir. Bu ise, ilgili kaynağa \n DELETE /hesap-bilgisi-rizasi/{RizaNo} \nçağrısı aracılığı ile yerine getirilir. HBHS ayrıca, sisteminden Hesap Erişim İzni kaynaklarını da temizlemelidir. \nSöz konusu silme işlemi, kayıtların statüsünün pasife çekilmesi ile gerçekleştirilmelidir. Söz konusu kayıtlar, denetim izlerinin oluşturulması ve saklanmasına ilişkin ikincil düzenleme hükümleri kapsamında güvenli şekilde tutulmalıdır. \nServis istek parametresi olarak sadece path’de iletilen Rıza No bilgisine ihtiyaç duymaktadır. \nÖHK rızası başarı ile silindiğinde HTTP 204 response kodu ile işlem sonucu iletilir. Rıza tipi “I” yani “Yetki İptal” olarak güncellenir ve gnclZmn zaman damgası vurularak güncellenir. \nÖHK ile rıza iptali sırasında kurulacak iletişimde (e-posta, sms gibi) aşağıdaki alanların iletilmesi tavsiye edilmektedir: \nYÖS Adı, HHS adı, Rıza Oluşturma Zamanı, Servis Tipi Bilgisi (HBHS) \n 7.5 ADIM 3: Hesap Bilgilerinin Alınması \n    \n \n   \n Şekil 14: Hesap Bilgilerinin Alınması \n İSTEK: \nMüşteri rızası tesis edilmiş kullanıcı için HBHS API erişim adresinden HHS’ye erişilebilir hesap bilgilerini GET isteği ile sorgular: \n \n RizaDurumu “Yetki Kullanıldı” ise işleme başlanır. RizaDurumu farklı bir değerde ise “TR.OHVPS.Resource.ConsentMismatch” hatasının iletilmesi gerekir. \n GET verisinin modele göre kontrolü yapılır (Örneğin: Alan kontrolleri) \n \n GET verisinin mantıksal kontrolleri yapılır. \n 7.6 ADIM 3.1 ve 3.2: Hesap Bilgilerinin Sorgulanması \n GET /hesaplar ve GET /hesaplar/{hspRef} \n Bu erişim noktalarından tüm hesapların veya belirli bir hesabın bilgilerinin sorgulanır. Hesap bilgisi için daha önce tanımlanmış izin türüne göre (Temel Hesap Bilgisi veya Detaylı Hesap Bilgisi) yanıtında dönülen HesapBilgileri nesnesinin içeriği değişir.  Tablo 15’te HesapBilgileri nesnesinin içeriği verilmiştir. \n Hesap Bilgisi Sorgu Örneği (Tüm Hesaplar) =  /hesaplar \nHesap Bilgisi Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef} \nİşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar?\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= hspRef &\nsrlmYon=A \n Tablo 14: Hesap Bilgileri Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den büyük olamaz. \n Bu veri gönderildiği durumda, HHS listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarası \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek kayıtların sıralama kriterini belirtir. Alabileceği değerler: { “hspRef”} \n Bu veri gönderildiği durumda, HHS listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama kriterini hspRef olarak belirler. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler:  A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 15: “HesapBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Rıza No \n rizaNo \n AN1..128 \n Z \n HesapBilgisiRızası nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n Hesap Temel \n hspTml \n Kompleks: HesapTemel \n Z \n Temel Hesap Bilgileri (Temel Hesap Bilgisi varsayılan izin türü olduğundan Hesap Temel nesnesi zorunlu olarak yanıtta bulunur) \n \n \n > Hesap Referansı \n hspRef \n AN5..40 \n Z \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez. \n \n \n > Hesap Numarası \n hspNo \n AN26 \n K \n Eğer varsa ödeme hesabına ait IBAN bilgisi \n \n \n > Hesap Sahibi Unvanı \n hspShb \n AN3..140 \n Z \n Hesap sahibi ya da hesap sahiplerinin ad-soyadı, ticari unvanı \n \n \n > Şube Adı \n subeAdi \n AN3..50 \n K \n Eğer varsa ödeme hesabının bağlı olduğu şubenin adı \n \n \n > Kısa Ad \n kisaAd \n AN3..50 \n K \n Eğer hesap sahibi hesaba ait bir ad tanımladıysa, tanımlanan hesap adı \n \n \n > Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi. \n \n \n > Hesap Türü \n hspTur \n AN1 \n Z \n Hesabın türü (bireysel veya ticari). TR.OHVPS.DataCode.HspTur sırali veri değerlerinden birini alır. \n \n \n > Hesap Tipi \n hspTip \n AN1..32 \n Z \n Hesabın tipi (VADESİZ, KREDİLİ vb.).TR.OHVPS.DataCode.HspTip sıralı veri değerlerinden birini alır. \n \n \n >
16Hesap Ürün Adı \n hspUrunAdi \n AN1..140 \n İ \n HHS tarafından atanmış olan ürün adı bilgisidir. HBHS tarafından ÖHK’ya gösterilmesi kullanım kolaylığı sağlayacaktır. \n \n \n > Hesap Durumu \n hspDrm \n AN5..50 \n Z \n Hesabın durumunu belirtir. TR.OHVPS.DataCode.HspDrm sıralı veri türlerinden birini alır. \n \n \n Hesap Detay \n hspDty \n Kompleks: HesapDetay \n K \n Detay Hesap Bilgileri (Temel Hesap Bilgisine ek olarak Detay Hesap Bilgisi izin türü de seçilmişse Hesap Detay nesnesi koşullu olarak yanıtta bulunur) \n \n \n > Açılış Tarihi \n hspAclsTrh \n ISODateTime \n Z \n Belirtilen hesabın açılış tarihi. \n 7.7 ADIM 3.3 ve 3.4: Hesap Bakiyesinin Sorgulanması \n GET /bakiye ve GET /hesaplar/{hspRef}/bakiye \nBu erişim noktalarından tüm hesapların veya belirli bir hesabın bakiyesi sorgulanır. \nİstek çağrısına dönülen “BakiyeBilgileri” nesnesi Tablo 17’de verilmiştir. \nİşlem Sorgu Örneği (Belirli Bir Hesap)=  /bakiye?\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= hspRef &\nsrlmYon=A \n Tablo 16: “BakiyeBilgileri” Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den büyük olamaz. \n Bu veri gönderildiği durumda, HHS listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarasi \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek kayıtların sıralama kriterini belirtir. Alabileceği değerler: { “hspRef”} \n Bu veri gönderildiği durumda, HHS listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama kriterini hspRef olarak belirler. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler:  A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 17: “BakiyeBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Hesap Referansı \n hspRef \n AN5..40 \n Z \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez. \n \n \n Bakiye \n bky \n Kompleks:Bakiye \n Z \n \n \n \n > Hesap Bakiye Tutarı \n bkyTtr \n N1..18 \n Z \n Hesabın bakiyesi.  Örneğin 1,20 TRY için tutar alanında “120” değeri iletilir \n \n \n > Blokeli Tutar \n blkTtr \n N1..18 \n K \n Varsa hesapta blokeli tutar bilgisi.  Örneğin 1,20 TRY için tutar alanında “120” değeri iletilir \n \n \n > Para Birimi \n prBrm \n AN3 \n Z \n Para birimi. \n \n \n > Bakiye İletilme Zamanı \n bkyZmn \n ISODateTime \n Z \n Bakiyenin iletildiği zaman bilgisi. \n \n \n > KrediliHesap \n krdHsp \n Kompleks: KrediliHesap \n K \n \n \n \n >> Kredili Mevduat Hesabı Bakiyesi \n kulKrdTtr \n N1..18 \n Z \n Kullanılabilir kredili mevduat tutarı. Kredili bir hesap ise zorunlu. Örneğin 1,20 TRY için tutar alanında “120” değeri iletilir \n \n \n >> Kredi Dahil Göstergesi \n krdDhlGstr \n AN1 \n Z \n Kredili bir hesap ise zorunlu. Bakiye tutarının kullanılabilir kredi tutarı dahil edilerek ya da edilmeden iletildiğini gösterir.  0: Kredi tutarı dahil edilmeden bakiye bilgisi iletilmesi durumu 1: Kredi tutarı dahil edilerek bakiye bilgisi iletilmesi durumu \n 7.8 ADIM 3.5 ve 3.6: İşlemlerin Sorgulanması \n GET /hesaplar/{hspRef}/islemler \n Belirli bir hesaba ilişkin işlem bilgileri Tablo 1’daki istek parametrelerine göre sorgulanır. \nİşlem bilgisi için daha önce tanımlanmış izin türüne göre yanıtta dönen IslemBilgileri nesnesinin (Temel İşlem Bilgisi veya Temel İşlem Bilgisi ve Detaylı İşlem Bilgisi) içeriği değişir. \nİşlemler servisi hem ÖHK’nın talebi ile YÖS uygulaması üzerinden çağrılabileceği gibi, YÖS’ün ÖHK’sız başlatabileceği otomatik çağrıları ile de yanıt dönebilmektedir. \nHHS, işlemin sistemsel yapılıp yapılmadığını, istek parametreleri içerisinde yer alan PSU-Initiated parametresi ile anlar. Bu parametre “E” ise ÖHK’lı, “H” ise sistemsel yapılmış bir sorgu anlamına gelmektedir.\nÖHK’nın başlattığı sorgular için HHS tarafından belirlenen üst rate limitler dahilinde çağrım yapılabilir. \nYÖS, otomatik yapacağı sorgularda; \n \n Bireysel ÖHK’lar için hesap bazında günde en fazla 4 adet sorgulama yapabilir. \n Kurumsal ÖHK’lar için hesap bazında saatte en fazla 12 adet sorgulama yapabilir. \n \n HHS, tutacağı sayaç bilgisi ile bu sayıları kontrol ederek daha fazla sorgulama yapılmasına izin vermeyebilir. \n Aynı istek parametreleri ile yapılan sorgu sonucunda dönecek toplam kayıt sayısı 100’ü aştığında, sayfalama yöntemi ile HHS’nin cevap dönmesi beklenmektedir.  Her bir sayfa için işlemler servisi tekrar çağrılsa da, bu çağrım HHS’nin tuttuğu sayaç değerini arttırmaz. HHS’nin tutacağı sayaçın kontrol parametreleri YÖS kodu, hesap numarası ya da referansı olmalıdır. Sayfa no parametresi varsa ve 1'den büyük ise işlem sayacını arttırmamalıdır. \n ÖHK’nın YÖS uygulaması üzerinden tetiklediği işlemlerde ise;\nbireysel ÖHK’lar  için en fazla 1 aylık,\nkurumsal ÖHK’lar için ise en fazla 1 haftalık bir pencere aralığında sorgulama yapılabilir. \n YÖS, otomatik yapacağı sorgularda hem bireysel hem de kurumsal ÖHK’lar için 24 saatlik bir pencere aralığında sorgulama yapabilir. \n İşlem Sorgu Örneği (Belirli Bir Hesap)=  /hes
16aplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-06-01T00:00:00+03:00&\nhesapIslemBtsTrh=2020-06-02T23:59:59+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A \n Tablo 18: İşlem Listesi Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n İşlem Sorgulama Başlangıç Zamanı \n hesapIslemBslTrh \n ISODateTime \n Z \n Sorgulanacak işlemlerin başlangıç tarihi. \n HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. ÖHK tarafından tetiklenen sorgularda;hesapIslemBslTrh ve hesapIslemBtsTrh arası fark bireysel ÖHK’lar için en fazla 1 ay,kurumsal ÖHK’lar için ise en fazla 1 hafta olabilir. YÖS tarafından sistemsel yapılan sorgulamalarda hem bireysel, hem de kurumsal ÖHK’lar için;son 24 saat sorgulanabilir. Bu yüzden hesapIslemBtsTrh-24 saat’ten daha uzun bir aralık sorgulanamaz olmalıdır. İstek başlığında yer alan PSU-Initiated alanı “E” ise ÖHK’lı, “H” ise sistemsel yapılmış bir sorgu anlamına gelmektedir. \n \n \n İşlem Sorgulama Bitiş Zamanı \n hesapIslemBtsTrh \n ISODateTime \n Z \n Sorgulanacak işlemlerin bitiş tarihi. \n HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. YÖS tarafından sistemsel yapılan sorgulamalarda hem bireysel, hem de kurumsal ÖHK’lar için;İleri vadeli işlem emirleri dahil olmadığı için; İşlem Sorgulama Bitiş Zamanı, her zaman, sorgulama zaman damgasını iletecek şekilde (datetime (now)) iletilmelidir. \n \n \n En Düşük İşlem Tutarı \n minIslTtr \n N1..18 \n İ \n Sorgulanacak işlemlerin alabileceği en düşük işlem tutarı.Örneğin 1,20 TRY için tutar alanında “120” değeri iletilir. \n Bu veri gönderildiği durumda HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. \n \n \n En Yüksek İşlem Tutarı \n mksIslTtr \n N1..18 \n İ \n Sorgulanacak işlemlerin alabileceği en yüksek işlem tutarı.Örneğin 1,20 TRY için tutar alanında “120” değeri iletilir. \n Bu veri gönderildiği durumda HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. \n \n \n Borç Alacak Göstergesi \n brcAlc \n AN1 \n İ \n TR.OHVPS.DataCode.BrcAlc sıralı veri tipi değerlerinden birini alır. Sorgulanacak işlemlerin borç / alacak kriteri B: Hesaba borç yaratan işlem.A: Hesaba alacak yaratan işlem.{“B”,”A”} \n Bu veri gönderildiği durumda HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den büyük olamaz. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarasi \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek işlemlerin sıralama kriterini belirtir. Alabileceği değerler: {“islGrckZaman”} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama kriterini islGrckZaman olarak belirler. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler: A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 19: “IslemBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Hesap Referans Numarası \n hspRef \n AN5..40 \n Z \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez. \n \n \n Islemler \n isller \n Kompleks:Islem[Array] \n K \n Hesaba ilişkin hareketler varsa İşlemler nesnesi dizisi olarak dönülür. İşlemler nesnesi Temel İşlem Bilgileri ve Detay İşlem Bilgileri nesnesinden meydana gelir. İzin türü varsayılan olarak Temel İşlem Bilgilerini içerir. Detay İşlem Bilgileri izin türü de seçildi ise Temel İşlem Bilgilerine ek olarak Detay İşlem Bilgileri de gönderilir. \n \n \n > Temel İşlem Bilgileri \n islTml \n Kompleks:IslemTemel \n Z \n Temel İşlem Bilgileri varsayılan olarak dönülür. \n \n \n >> İşlem Numarası \n islNo \n AN3..50 \n Z \n Hesap hareketinin oluşturulması sırasında atanan ve borç (veya alacak) hareketini tekilleştiren HHS bazında tekil tanımlayıcıdır. Bu değer tek başına tekil olabileceği gibi b
16irden fazla değerin bir araya getirilmesiyle de tekilliği sağlanmış olabilir. Bu değerin en azından hesap numarası (hesNo) bazında tekil olması beklenir. Genellikle kullanılan örnekleri; Instance_Id, Transaction_Id, Transaction_Num, Transaction_TimeStamp,dekont numarası \n \n \n >> İşlem Referans Numarası \n refNo \n AN3..50 \n Z \n İşlemi uçtan uca tanımlayan tekil tanımlayıcıdır. Borç ve alacak hareketinden oluşan bir veya birden fazla işlemler bütünü için atanmış olan ve bu bütünü tekilleştiren (bir biri ile ilişkisini tutan) değerdir.Bu değer hem YÖS’ten gelen değer olabilir (ödeme işlemlerinde kullanılan kkodRef ya da refBlg alanı) hem de HHS içinde takip edilmek için üretilmiş bir değer olabilir. HHS sisteminde 2 değerin de bulunması durumunda;refNo alanını doldurmak için, HHS’nin YÖS’ten gelen değere öncelik vermesi beklenmektedir. YÖS’ten gelen veri örneği: Sipariş Numarası, Fatura Numarası, Karekod Referansı vb. HHS’te üretilen veri örneği: Masraflı havale işleminde hem havale işleminin hem de masraf işleminin aynı referans numarasına sahip olması da örnek olarak gösterilebilir. \n \n \n >> İşlem Tutarı \n islTtr \n N1..18 \n Z \n İşlem tutarı. Örneğin 1,20 TRY için tutar alanında “120” değeri iletilir. \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi. \n \n \n >> İşlem Gerçekleşme Zamanı \n islGrckZaman \n ISODateTime \n Z \n İşlemin gerçekleşme zamanı. \n \n \n >> İşlem Kanalı \n kanal \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeKaynak sıralı veri türü değerlerinden birini alır. \n \n \n >> Borçlandırma Alacaklandırma Göstergesi \n brcAlc \n AN1 \n Z \n TR.OHVPS.DataCode.BrcAlc sıralı veri türü değerlerinden birini alır. İşlemin hesabı borç ya da alacaklandırdığı bilgisidir. \n \n \n >> İşlem Türü \n islTur \n AN3..50 \n Z \n HHS’nin işleme ait ilişkilendirdiği işlem türü değeri. TR.OHVPS.DataCode.IslemTuru sıralı veri türü değerlerinden birini alır. \n \n \n >> İşlem Amacı \n islAmc \n AN2 \n Z \n TR.OHVPS.DataCode.IslemAmaci sırali veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n \n \n >> Ödeme Sistemi No \n odmStmNo \n AN10..50 \n K \n Ödeme başarılı başlatıldıysa, ödemenin başlatıldığı sistemdeki referans numarası. FAST işlemleri için MesRefBlg değeri atanır. Ödeme Hizmeti kullancısına işlemin takibi için gösterilebilir. \n \n \n > Detay İşlem Bilgileri \n islDty \n Kompleks: IslemDetay \n K \n Detay İşlem Bilgileri dizi olarak gönderilmelidir. \n \n \n >> İşlem Açıklaması \n islAcklm \n AN1..150 \n Z \n HHS tarafından atanan işlem açıklaması.HHS kendi işlem hareketlerine yansıttığı açıklamayı buraya yansıtmalıdır. \n \n \n >> Karşı Taraf \n krsTrf \n Kompleks:  KarsiTaraf \n K \n Kullanımı işlem bazında değişmektedir. Örnek: FAST işleminde karşı taraf alıcının bilgileridir. Vergi ödemesinde kurum IBAN bilgisi müşteriye gösterilemeyebileceğinden bu alanın boş gelmesi HHS insiyatifindedir. \n \n \n >>> Karşı Maskeli IBAN \n krsMskIBAN \n AN26 \n K \n İlgili hesap hareketinin karşı tarafının maskeli IBAN bilgisi. \n \n \n >>> Karşı Maskeli Unvan \n krsMskUnvan \n AN3..140 \n K \n İlgili hesap hareketinin karşı tarafının maskeli ad-soyad ya da ticari unvan bilgisi. \n 7.9\tHealthcheck API \n GET /health \n HHS’lerin sunacağı bu servis, düzenli olarak BKM tarafından çağırılarak servislerin ayakta olup olmadıklarının kontrolünün sağlanması planlanmaktadır \n Başarılı yanıtta Http 200 kodu dönülmelidir. \n Başarılı Yanıt: \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n status \n status \n AN2..20 \n Z \n “UP”, “DOWN” değerlerini alabilir \n \n \n \n"},{title:"5.\tGüçlü Kimlik Doğrulama",frontmatter:{},regularPath:"/v1.0.1/contents/gkd.html",relativePath:"v1.0.1/contents/gkd.md",key:"v-822cf8c6",path:"/v1.0.1/contents/gkd.html",headers:[{level:2,title:"5.1.\tYönlendirmeli Güçlü Kimlik Doğrulama",slug:"_5-1-yonlendirmeli-guclu-kimlik-dogrulama"},{level:2,title:"5.2.\tAyrık Güçlü Kimlik Doğrulama",slug:"_5-2-ayrık-guclu-kimlik-dogrulama"},{level:2,title:"5.3.\tYönlendirme/Bildirim Adresleri ve Durum Kodu Parametresi",slug:"_5-3-yonlendirme-bildirim-adresleri-ve-durum-kodu-parametresi"},{level:2,title:"5.4\tHealthcheck API",slug:"_5-4healthcheck-api"},{level:2,title:"5.5  Güçlü Kimlik Doğrulama Kontrolleri",slug:"_5-5-guclu-kimlik-dogrulama-kontrolleri"}],content:" 5.\tGüçlü Kimlik Doğrulama \n Müşteri için güçlü kimlik doğrulama, ÖHK’nın (müşterinin) kimliğinin doğrulamada kullanılan ve bir bileşenin ele geçirilmesinin diğer bileşenin güvenliğini tehlikeye atmayacağı en az iki bileşenden oluşan, bu iki bileşenin de müşterinin “bildiği”, “sahip olduğu” veya “biyometrik bir karakteristiği olan” bileşen sınıflarından farklı ikisine ait olacak şekilde seçildiği yöntemi tanımlar. \n Ödeme ve Elektronik Para Kuruluşlarının Bilgi Sistemleri ile Ödeme Hizmeti Sağlayıcılarının Ödeme Hizmetleri Alanındaki Veri Paylaşım Servislerine İlişkin Tebliğ uyarınca hesap bilgisi hizmetinde müşterinin onayının alınması esnasında ve ödeme emri başlatma hizmetinde her bir ödeme emri başlatma işleminde  HHS tarafından müşteriye güÃ
16§lü kimlik doğrulama (GKD) uygulanması esastır.  Buna göre: \n \n \n Hesap bilgisi hizmetinde ÖHK’nın onayının alınması esnasında  Tebliğin 26 ncı maddesinin 1 inci fıkrası uyarınca  HHS tarafından ÖHK’ya GKD uygulanır. \n \n \n Ödeme emri başlatma hizmetinde,  Tebliğin 26 ncı maddesinin 2 nci fıkrası uyarınca  HHS tarafından ÖHK’ya güçlü kimlik doğrulama uygulanır ve işlem doğrulama kodu ile ÖHK’nın onayı alınır. \n \n \n Ödeme emri başlatma hizmetinde,  Tebliğin 26 ncı maddesinin 3 nci fıkrası uyarınca  HHS tarafından ÖHK’ya güçlü kimlik doğrulama uygulanmasına ilişkin istisna veya ilave güvenlik önlemleri işbu API İlke ve Kuralları belgesinde tanımlanır. \n \n \n HHS, güçlü kimlik doğrulama sürecinde ÖHK’nin sahip olduğu bileşen sınıfı olarak SMS OTP ya da SMS ile işlem doğrulama kodu kullanabilir. \n \n \n HHS, aşağıdaki hallerde veya  Tebliğin 10 uncu maddesinin ikinci fıkrasında  belirtilen risk değerlendirmesi sonucuna göre tek bileşen ile kimlik doğrulama yapabilir. \n \n Ödemenin göndereni ve alıcısının aynı olması, \n Daha önce tanımlanmış güvenli alıcılar listesine ödeme yapılması, \n ÖHK’nin talimatına istinaden gerçekleştirilen düzenli bir ödeme olması. \n \n \n \n Tek bileşen ile kimlik doğrulama yapılan bu işlemlerle ilgili olarak gerçekleştirilen işlemin müşteri tarafından yapıldığını ispat etme yükümlülüğü HHS’ye ait olur. \n \n \n İşlem Doğrulamada  Tebliğin 3 üncü maddesinin birinci fıkrası ğğ bendindeki  işlem bilgisi tanımına uygun olarak aşağıdaki bilgiler ile  Tebliğin 3 üncü maddesinin birinci fıkrası hh bendinde  tanımlanan işleme özel üretilmiş işlem doğrulama kodu birlikte kullanılır. \n \n Alıcı Unvan (Kolas akışında maskeli olarak)  (ödeme emri başlatma hizmeti) \n Tutar (ödeme emri başlatma hizmeti) \n Referans bilgisi (8 karakterden küçük ise alanın tüm değeri, büyük ise ilk 4 ve son 4 hanesi) \n \n İşleme ait yukarıdaki bilgilerden en az biri değiştiği zaman  Tebliğin 3 üncü maddesinin birinci fıkrası hh bendinde  belirtildiği gibi yeni bir işlem doğrulama kodu üretilecek şekilde akış kurgulanmalıdır. \n \n \n İşlem doğrulama kodunun gönderilmesinden HHS sorumludur. HHS,  Tebliğin 10 uncu maddesinin ikinci fıkrasında  belirtilen risk değerlendirmesi sonucuna göre işlem doğrulama kodu kullanmaksızın ÖHK’nın onayını alabilir. İşlem doğrulama kodu kullanılmayan işlemlerle ilgili olarak gerçekleştirilen işlemin ÖHK tarafından yapıldığını ispat etme yükümlülüğü HHS’ye aittir. \n \n \n ÖHVPS API standartı kapsamında iki adet Güçlü Kimlik Doğrulama (GKD) yöntemi kullanılacaktır: \n \n Yönlendirmeli (Redirect) GKD Yöntemi \n Ayrık (Decoupled) GKD Yöntemi \n \n \n \n HHS asgari olarak tarayıcı tabanlı Yönlendirmeli GKD yöntemini desteklemek zorundadır. \n \n \n Çerçeve sözleşme kapsamında olmayan tek seferlik ödeme işlemleri sadece Yönlendirmeli GKD yöntemi ile gerçekleştirilebilir. \n 5.1.\tYönlendirmeli Güçlü Kimlik Doğrulama \n Yönlendirmeli GKD Yönteminde, müşteri kimlik doğrulama için YÖS tarafından HHS arayüzüne yönlendirilir. \n Müşteri HHS’ye (uygulama veya web arayüzü vasıtasıyla) yönlendirildikten sonra müşterinin güçlü kimlik doğrulaması adım adım ve doğrudan HHS ile müşteri arasında yürütülür. GKD’nin tamamlanmasından sonra müşteri tekrar YÖS uygulamasına yönlendirilir. \n Yönlendirmeli GKD Yöntemi için üst düzey örnek iş akışı aşağıdaki adımlardan oluşur: \n \n YÖS, GKD için HHS tarafından tanımlanan arayüze (tarayıcı ya da uygulama) yönlendirme yapar. \n Müşteri, YÖS arayüzünden ayrılır, yönlendirildiği HHS arayüzü üzerinde kimlik doğrulama işlemlerini gerçekleştirir. \n GKD tamamlandıktan sonra müşteri, YÖS arayüzüne tekrar yönlendirilir ve işlem sonucu görüntülenir. \n \n Yönlendirmeli GKD için temel gereklilikler şunlardır: \n \n Ödeme hizmeti (hesap bilgisi veya ödeme emri başlatma hizmeti) tarayıcı ya da uygulama tabanlı bir şekilde sunulabilir. Bu nedenle,  YÖS ve HHS’lerin Yönlendirmeli GKD için asgari olarak tarayıcı tabanlı yönlendirme akışını desteklemeleri gerekmektedir. \n Çerçeve sözleşme (ÇS) kapsamında olmayan tek seferlik ödeme işlemleri sadece Yönlendirmeli GKD yöntemi ile gerçekleştirilebilir. \n \n Tarayıcı Tabanlı Yönlendirme \n HHS’nin web arayüzüne, \n \n HHS’nin mobil uygulamasının olmadığı, \n ÖHK’nın ödeme hizmetini (hesap bilgisi veya ödeme emri başlatma hizmeti) sunduğu mobil cihazda HHS uygulamasının yüklü olmadığı, \ndurumlarda yönlendirme yapılır. \n \n YÖS’ün mobil uygulaması varsa mobil cihazda uygulamadan tarayıcıya, YÖS’ün mobil uygulaması yoksa ödeme hizmetinin sunduğu cihazda (Kişisel Bilgisayar veya Mobil Cihaz) tarayıcı üzerinden yönlendirme yapılır. \n Uygulama Tabanlı Yönlendirme \n ÖHK’nın ödeme hizmetini (hesap bilgisi veya ödeme emri başlatma hizmeti) YÖS’ün mobil uygulaması ile kullanıyorsa, aynı mobil cihazda HHS’nin mobil uygulamasının yüklenmiş olması durumunda, ÖHK doğrulamasının HHS mobil uygulaması tarafından yapılması için uygulama tabanlı yönlendirme yapılır. Böylece ÖHK, ödeme hizmetine erişim için HHS’nin mobil kanalına erişim sırasında kullandığı doğrulama yöntemini ile doğrulanabilir. \n Tablo 5: Yönlendirmeli Güçlü Kimlik Doğrulama Kanalları \n \n \n \n Doğrulama Yöntemi \n YÖS Olası Ortam \n HHS Olası Ortam \n \n \n \n \n Tarayıcı Tabanlı Yönlendirme \n Kişisel Bilgisayar (masaüstü, dizüstü)/Mobil Cihaz \n Kişisel Bilgisayar (masaüstü, dizüstü) / Mobil Cihaz \n \n \n Uygulama Tabanlı Yönlendirme \n Mobil Cihaz \n Mobil Cihaz \n 5.2.\tAyrık Güçlü Kimlik Doğrulama \n Ayrık GKD Yöntemi iş akışı, Yönlendirmeli GKD Yönteminin işlem akışına benzer. Fark, HHS'nin, çevrimiçi arayüzünden bağımsız olan herhangi bir uygulama veya cihaz aracılığıyla ödeme işlemi ayrıntılarını içeren bir anlık bildirim (push notification) göndererek müşteriden kimlik doğrulaması istemesidir. Ayrık GKD Yöntemine dayalı bir işlem için (çok basitleştirilmiş) üst düzey örnek bilgi akışı şu şekildedir: \n \n Müşteri, YÖS arayüzünde işlemini başlatır. \n YÖS, talebini müşteriye ait TCKN, VKN, YKN gibi tekil tanımlayıcı kimlik numarası bilgisi içerecek şekilde HHS’ye iletilir. \n HHS tekil tanımlayıcı bilgisini kullanarak farklı bir cihaz veya uygulama üzerinden müşteriye anlık bildirim gönderir ve doğrulama yapılmasını sağlar. Bu şekilde HHS kendi mobil uygulamasına erişim için kullanılan doğrulama yöntemini aynen kullanabilecektir. \n YÖS, herhangi bir yere yönlendirme yapmadan işlemin sonucunu bekler, müşteri YÖS arayüzünden ayrılmaz (arayüz aynı kalır). \n Kimlik doğrulama sonrası, YÖS arayüzünde işlem sonucu görüntülenir. \n 5.3.\tYönlendirme/Bildirim Adresleri ve Durum Kodu Parametresi \n CSRF Ataklarından korunmak için ve YÖS uygulamasının bir önceki durumunu restore edebilmesi için; YÖS tarafından iletilen yönlendirme ve bildirim adreslerine , Oauth2 standartlarındaki state parametresine eşdeğer,   durum ko
16du (drmKod)  parametresinin eklenmesi gerekmektedir. Durum kodu parametresi YÖS tarafından üretilen, tekil ve kolay tahmin edilemeyen bir değer olmalıdır. Rıza isteği gönderimi aşamasında oluşturulmalıdır. YÖS uygulamasında uygun bir yerde saklanmalıdır (cookie, session, local storage gibi) . \n Durum kodu, rıza isteğindeki yönlendirme adresine parametre olarak eklenir.  GKD süreci sonrasında yetki kodu ile birlikte bu bilgi, HHS tarafından YÖS’e iletilir. YÖS sakladığı değer ile parametre olarak gelen değerin eşitliğini kontrol eder. Aynı ise erişim belirteci almak üzere akışı ilerletir. Farklı ise işlemi keser. \n 5.4\tHealthcheck API \n GET /health \n HHS’lerin sunacağı bu servis, düzenli olarak BKM tarafından çağırılarak servislerin ayakta olup olmadıklarının kontrolünün sağlanması planlanmaktadır. \n Başarılı yanıtta Http 200 kodu dönülmelidir. \nBaşarılı Yanıt: \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Koşullu  / İsteğe Bağlı \n Açıklama \n \n \n \n \n status \n status \n AN2..20 \n Z \n “UP”, “DOWN” değerlerini alabilir. \n 5.5  Güçlü Kimlik Doğrulama Kontrolleri \n ÖHK, GKD için HHS uygulamasına yönlendirildiğinde, HHS’nin çeşitli kontroller yaparak işlemin doğruluğunu teyit etmesi gerekmektedir. Yapılması gereken kontrollere ait temel senaryolar aşağıdaki tabloda belirtilmiştir. Bu senaryolar baz alınarak HHS’ler tarafından zenginleştirilebilir. \n Zorunlu olarak belirtilen hata durumlarının HHS’ler tarafından gerçeklenmesini ve uygun hata kodlarının YÖS’e iletilmesi; ileride oluşabilecek mutabakatlaşma sorunlarını ortadan kaldırabilecek, yapılacak raporlamalar kapsamında sistem ve süreç iyileştirmelerine katkı sağlayacak, son kullanıcı açısından da alınan hataya yönelik bilgilendirici içerik sağlayacaktır. \n Hata açıklamaları; hata koduna uygun ya da uyumlu olmak kaydıyla, HHS ve YÖS tarafından farklı şekillerde sunulabilir. \n GKD Sırasında yapılması gereken kontroller \n \n \n \n Rıza İptal Detay Kodu \n HHS hata açıklaması* \n Yös ekranında listelenecek örnek mesaj metni* \n Örnek Senaryo \n Zorunlu / Opsiyonel \n \n \n \n \n 07 \n Rıza durumunun \"Yetkilendirildi\" , \"Yetki Kullanıldı\" olduğu durum \n Yetki Hatası \n ÖHK,  GKD işlemi tamamlandıktan sonra  YÖS ekranında ileri- geri yaparak ya da ÖHK'nın yönlendirme adresini kopyalayarak tarayıcıya yapıştırması ile tekrar HHS'ye yönlendirir. Bu durumda HHS bu hata mesajını iletir. \n Zorunlu \n \n \n 08 \n Rızano ile kimlik bilgileri uyuşmazlığı. \n İşleminiz gerçekleştirilememiştir. \n YÖS tarafından başlatılan rıza içerisinde yer alan kimlik bilgisi (TCKN) ile HHS'de GKD yapılan ÖHK'nın bilgilerinin uyuşmadığı durumda \n Zorunlu \n \n \n 09 \n ÖHK'nın HHS'de ilgili ürününün olmadığı durum (hesap/kart) \n Gösterilebilecek hesap/kart bulunamamıştır. \n ÖHK'nın uygun statülü hesabının olmadığı durumda \n Zorunlu \n \n \n 10 \n Açık bankacılık kanalınız işleme kapalıdır. \n Açık bankacılık kanalınız işleme kapalıdır. \n Açık bankacılığı ayrı bir kanal olarak tanımlamış HHS'lerde, ÖHK'nın işlemlerini AB kanalına kapatması durumunda \n Opsiyonel \n \n \n 11 \n Kullanıcının HHS'deki hesaplarında yeterli yetkisinin olmama durumu \n Yetkiniz bulunmamaktadır. \n 1- Kurumsal firma kullanıcılarının hesaplar üzerinde işlem yetkisinin olmaması durumunda 2- Bireysel ortak hesaplarda hesap kısıtı bulunuyorsa (para çıkışına izin verilmediği durum) \n Zorunlu \n \n \n 12 \n ÖHK'nın ilgili HHS müşterisi olmadığı durum \n Yetkiniz bulunmamaktadır. \n Tek seferlik ödemelerde rıza isteğinde ÖHK kimlik bilgileri bulunmamaktadır. Diğer akışlarda rıza isteğinde müşteri olma kontrolü yapılabilir. \n Zorunlu \n \n \n 13 \n HHS’nin ÖHK için yaptığı kontrollerin başarısız olduğu durum \n Yetkiniz bulunmamaktadır \n HHS'nin, ÖHK için iç sistemlerinde yaptığı kontrollerin başarısız olması. Örneğin: Müşterinin henüz bankacılık hizmet sözleşmesi gibi Internet şubesi üzerinde işlem yapmasını engelleyen eksikleri olması durumunda veya kurumsal kullanıcıda vekalet süresinin dolması/eksik doküman olması durumunda kanal üzerinde işlem yapamadığı durum \n Zorunlu \n \n \n 14 \n Başarısız GKD \n Yetkiniz bulunmamaktadır \n 1-ÖHK'nın GKD için gerekli 2FA bilgilerini sağlayamaması   2- HHS risk algısına göre 12 nolu hata kodunu dönmek yerine 14 nolu hata kodunu da YÖS’e dönebilir. \n Zorunlu \n \n \n 15 \n ÖHK isteği ile GKD’den vazgeçildiği durum (Ör: HHS ekranında yer alan VAZGEÇ butonuna basmış olabilir. ) \n Müşteri işlemden vazgeçmiştir. \n 1- HHS ekranında yer alan VAZGEÇ butonuna basılması durumu (Hem ÖHK login olmadan önce hem de GKD sonrası (rıza verme öncesi) VAZGEÇ butonu olabilir.)  2-Müşteri Banka login ekranında herhangi bir aksiyon almadan beklemiştir ve HHS GKD zaman aşımı süresi 5 dakikadan kısadır. \n Zorunlu \n \n \n 16 \n Diğer \n İşleminiz gerçekleştirilememiştir. \n - \n Opsiyonel \n \n \n \n GKD sırasında iletilen rıza no eğer HHS’nin sisteminde bulunamazsa durumu güncellenecek bir rıza no da olmayacaktır. HHS kendi önyüzünde bu duruma uygun bir mesaj gösterebilir. YÖS’e de Diğer hata kodu ile bu durumu iletebilir. \n"},{title:"2.Kapsam ve Dayanak",frontmatter:{},regularPath:"/v1.0.1/contents/kapsam-ve-dayanak.html",relativePath:"v1.0.1/contents/kapsam-ve-dayanak.md",key:"v-7e81b77d",path:"/v1.0.1/contents/kapsam-ve-dayanak.html",content:" 2.Kapsam ve Dayanak \n 12 Kasım 2019’da güncellenen “ 6493 sayılı Ödeme ve Menkul Kıymet Mutabakat Sistemleri, Ödeme Hizmetleri ve Elektronik Para Kuruluşları Hakkında Kanun ”un (Kanun) 12’nci maddesine yeni eklenen ve  Ödeme Hizmetleri Direktifi 2 'de (Payment Services Directive 2, PSD2) bulunan iki yeni ödeme hizmeti aşağıdaki gibi tanımlanmıştır (Şekil-1: Ödeme Hizmetleri Veri Paylaşım Servisleri): \n \n Ödeme Emri Başlatma Hizmeti : ÖHK’nın isteği üzerine başka bir ödeme hizmeti sağlayıcısında bulunan  ödeme hesabıyla  ilgili sunulan ödeme emri başlatma hizmeti [Madde 12, birinci fıkra, (f) bendi] \n Hesap Bilgisi Hizmeti : ÖHK’nın onayının alınması koşuluyla, ÖHK’nın ödeme hizmeti sağlayıcıları nezdinde bulunan bir veya daha fazla  ödeme hesabına  ilişkin konsolide edilmiş bilgilerin çevrim içi platformlarda sunulması hizmeti [Madde 12, birinci fıkra, (g) bendi] \n \n   \n Şekil 1: Ödeme Hizmetleri Veri Paylaşım Servisleri (ÖHVPS)- tanıtım \n Kanunun 14/A maddesinin ikinci fıkrasına göre , Kanunun 12’nci maddesinin birinci fıkrasının (f) veya (g) bentlerinde yer alan ödeme hizmetleri ile ilgili işlemlerin yürütülmesine ilişkin usul ve esaslar ile taraflarca uyulması gereken teknik ve operasyonel gereklilikler ikincil düzenlemeler uyarınca Türkiye Cumhuriyet Merkez Bankası (TCMB) tarafından belirlenir. Kanunun 12’nci maddesinin birinci fıkrasının (f) veya (g) bentlerinde yer alan ödeme hizmetlerinde kullanılan veri paylaşım servisleri  ödeme hizmetleri veri paylaşım servisleri (ÖHVPS)  olarak adlandırılmaktadır. \n Ödeme Hizmetleri ve Elektronik Para İhracı ile Ödeme Hizmeti Sağlayıcıları Hakkında Yönetmelik’in (Yönetmelik) 59’uncu maddesinin birinci fıkrası uyarınca hazırlanan bu belgede söz konusu ödeme hizmetlerini sunacak ödeme hizmeti sağlayıcısının, ödeme hesabının bulunduğu ödeme hizmeti sağlayıcısının, varsa ilgili diğer tarafların ve bu hizmetlerin sunulması için taraflar arasında kurulacak bağlantının teknik ve operasyonel gereklilikleri açıklanmaktadır. \n Düzenlemeler kapsamında yetkilendirilen üçüncü taraf hizmet sağlayıcısı  (Yetkili Ödeme Hizmeti Sağlayıcısı, YÖS) , ödeme hizmeti kullanıcılarının  Hesap Hizmeti Sağlayıcıları (HHS)  nezdindeki ödeme hesaplarına ulaşarak ödeme emri başlatma ve hesap bilgisi sağlama hizmetlerinden (ödeme hizmetleri veri paylaşım servislerinden) faydalanmasına aracılık eder. Ödeme hizmetleri veri paylaşım servisleri kapsamında iki tip YÖS bulunmaktadır:  1) Hesap Bilgisi Hizmeti Sağlayıcısı (HBHS) ve 2) Ödeme Emri Başlatma Hizmeti Sağlayıcısı (ÖBHS). \n Hesap Bilgisi Hizmeti Sağlayıcısı (HBHS) ÖHK’nın farklı Hesap Hizmeti Sağlayıcıları (HHS) nezdindeki hesaplarının bilgilerini derleyerek çevrim içi platformlarda  toplu şekilde  sunar. Ödeme Emri Başlatma Hizmeti Sağlayıcısı (ÖBHS) ise talebi üzerine ÖHK’nın HHS’de bulunan ödeme hesabından ödeme işlemi başlatır. \n ÖHVPS’nin üst düzey gösterimi Şekil-2’de verilmiştir. \n   \n Şekil 2: Ödeme Hizmetleri Veri Paylaşım Servisleri (ÖHVPS) -üst düzey gösterim \n Ödeme Hizmetleri Veri Paylaşım Servislerinin HHS’ler tarafından  BKM API Geçidi  vasıtasıyla sunulduğu uygulama mimarisi ise Şekil-3’te sunulmuştur. \n  \n Şekil 3: ÖHVPS'nin BKM API Geçidi vasıtasıyla sunumu \n"},{title:"HHS ve YÖS API",frontmatter:{},regularPath:"/v1.0.1/contents/hhs-yos-api.html",relativePath:"v1.0.1/contents/hhs-yos-api.md",key:"v-4888cd9d",path:"/v1.0.1/contents/hhs-yos-api.html",headers:[{level:2,title:"HHS API",slug:"hhs-api"},{level:2,title:"YOS API",slug:"yos-api"},{level:2,title:"Healthcheck API",slug:"healthcheck-api"}],content:' HHS ve YÖS API \n HHS API, HHS’lerin detay bilgilerini sunan servistir. Bu servis ile aşağıdaki istek/yanıt yapıları ile ihtiyaç duyulabilecek ilgili bilgiler temin edilebilir. HHS API için “hhs_read” scope bilgisi kullanılır. \n Production ortamında HHS / YOS API içerisinde sisteme dahil olmuş, sertifikasyonu başarı ile tamamlamış paydaşlar listelenecektir. HHS tarafından desteklenen API sürümleri listelenecektir. \n YÖS’ler HHS API’sini sorgulayabilir ancak YÖS API’sini sorgulayamazlar. \nBenzer şekilde HHS’ler YÖS API’sini sorgulayabilir, HHS API’sini sorgulayamazlar. \n HHS API \n GET /hhs/{hhsKod} \n İşlem Sorgu Örneği =  /hhs  ⇨  bu sorgu yöntemi ile tüm HHS’lerin dizi şeklinde verileri listelenir. \nİşlem Sorgu Örneği =  /hhs/2001   ⇨ bu sorgu yöntemi ile gönderilmiş olan hhsKodu’na ait bilgiler listelenir. Ya da “404 Not Found” hatası alır. \nHHS ve YÖS API Tablo 20’deki istek parametrelerine göre sorgulanabilir. \nİşlem Sorgu Örneği (Belirli Bir Hesap) =  /hhs?srlmKrtr=kod&srlmYon=A \n Tablo 20: HHS ve YÖS API Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek işlemlerin sıralama kriterini belirtir. Alabileceği değerler: {“kod”, “unvâ€
16} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, sıralama kriteri “unv” olarak belirlenmelidir. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler: A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 21: HHS Bilgileri Sorgulama Yanıtı “Hhs” nesnesi \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n hhs kodu \n kod \n AN4 \n Z \n HHS nin kod bilgisi \n \n \n hhs unvanı \n unv \n AN3..140 \n Z \n HHS nin unvan bilgisi \n \n \n hhs markası \n marka \n AN1..140 \n Z \n ÖHK\'nın kolaylıkla algılayabileceği kısa unvan bilgisi. HHS tarafından belirlenecektir. \n \n \n Açık anahtar \n acikAnahtar \n AN1..1024 \n Z \n HHS’nin mesaj imzalama için paylaştığı açık anahtar \n \n \n HHS Api Bilgileri \n apiBilgileri \n Kompleks: HhsApiBilgi[Array][0..N] \n Z \n Desteklenen Api ve sürüm bilgileri dönülecektir. \n \n \n > api \n api \n AN1..20 \n Z \n Api İsmi Örnek :obh, hbh,gkd \n \n \n > surum \n surum \n AN1..10 \n Z \n Api Sürüm Kodu Örnek: s1.0, s2.0 s1.0 \n \n \n Logo Bilgileri \n logoBilgileri \n Kompleks: LogoBilgisi [Array][1..N] \n Z \n HHS’ye ait logo bilgileri. Logotur = Original  formatındaki logonun minimumda gönderimi zorunludur. \n \n \n >logoTur \n logoTur \n AN3..50 \n Z \n Logonun türünü belirler. TR.OHVPS.DataCode.LogoTur alabileceği değerler  ORIGINAL , WHITE_OVERLAY , BLACK_OVERLAY , GRAY_OVERLAY \n \n \n > logoAdr \n logoAdr \n AN1..255 \n Z \n HHS tarafında tutulan ve YÖS’lerle paylaşılacak olan url adres bilgisidir. \n \n \n \n Hem YOS hem de HHS API için geçerli olacak; logo gönderiminde dikkat edilmesi gerekenler şu şekilde tariflenmiştir: \n \n Logoların ham dosya yerine kurumun yayınlayacağı bir URL üzerinden sunulması gerekmektedir. (Örn: logoURL  =  https://kurumadi.com.tr/logo.png) Logo BKM tarafında host edilmeyecektir.) \n PNG formatında (PNG-24) olmalıdır. \n 72 DPI çözünürlükte olmalıdır. \n 500 x 500 boyutlarında, yatayda veya dikeyde taşma paysız tam oturacak, sınır boyutlarını geçmeyecek ve ortalanmış yerleşime sahip olmalıdır. \n Logo arka planı renkli olmamalı, arka plan transparan olmalıdır. \n YÖS uygulamasında gösterim esnasında logoların hızlı yüklenmesi ve düşük veri tüketmesi açısından; logo boyutu 250 KB’ın altında olmalıdır. \n Dört adet logo türü belirlenmiştir. Bu 4 tür için de logo dönülmesi zorunludur. \n Logo url’in public erişilebilir url olması gereklidir. \n \n YÖS API, YÖS statüsundeki kurumların detay bilgilerini sunan servistir. Bu servis ile aşağıdaki istek/yanıt yapıları ile ihtiyaç duyulabilecek ilgili bilgiler temin edilebilir. YÖS API için “yos_read” scope bilgisi kullanılır. \n YÖS API yanıtında, listelenen yönlendirme ve bildirim adresleri bulunmaktadır. HHS, işlem anında iletilen yonAdr ya da bldrAdr alanlarında gönderilen adreslere yetKod değerini iletmelidir. YÖS API içerisinde yer alan adresleri, rıza isteğinde gönderilen adreslerin doğruluğunu kontrol etme amacıyla kullanılmalıdır. Bu nedenle YÖS API içerisinde listelenen adreslerin hostname seviyesinde yer alması yeterlidir. \n YOS API \n GET /yos/{yosKod} \n İşlem Sorgu Örneği =  /yos    bu sorgu yöntemi ile tüm yos lerin dizi şeklinde verileri listelenir. \n İşlem Sorgu Örneği =  /yos/2501    bu sorgu yöntemi ile gönderilmiş olan yosKodu’na ait bilgiler listelenir ya da “404 Not Found” hatası alır.\nYÖS API Tablo 20’deki istek parametrelerine göre sorgulanabilir.\nİşlem Sorgu Örneği (Belirli Bir Hesap)=  /yos?srlmKrtr=kod&srlmYon=A \n Tablo 22: YOS Bilgileri Sorgulama Yanıtı “Yos” nesnesi \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Yös kodu \n kod \n AN4 \n Z \n YÖS\'ün kod bilgisi \n \n \n Yös unvanı \n unv \n AN3..140 \n Z \n YÖS unvan bilgisi \n \n \n Yös markası \n marka \n AN1..140 \n Z \n ÖHK\'nın kolaylıkla algılayabileceği kısa unvan bilgisi. YÖS tarafından belirlenecektir. \n \n \n YÖS rolleri \n roller \n Array[AN4] \n Z \n YÖS’un rollerini belirten değer. Örnek: [ "obhs", "hbhs" ]  - obhs - Ödeme Bilgisi Hizmet Sağlayıcı Rolü  - hbhs - Hesap Bilgisi Hizmet Sağlayıcı Rolü \n \n \n Adresler \n adresler \n Kompleks:Adres[Array] [1..N] \n Z \n --- \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur sıralı veri türü değerlerlerinden birini alır. Adres detaylarının hangi GKD türüne ait olduğunu belirtir. \n \n \n >Adres Detayları \n adresDetaylari \n adresDetaylari\tKompleks: AdresDetayi[Array] [1..N] \n Z \n \n \n \n >>Temel Adres \n tmlAdr \n AN1..1024 \n Z \n yetYntm değeri “Y” olarak iletildiğinde Yönlendirmeli GKD sürecinde HHS’nin YOS’e authorizasyon kodunu hangi url e göndereceği bilgisini tutar. yetYntm değeri “A” olarak iletildiğinde Ayrık GKD sürecinde HHS’nin YOS’e authorizasyon kodunu hangi url e göndereceği bilgisini tutar. Riza isteklerinde bu değer ile uyumluluğu kontrol edilmelidir. Örnek: https://example.com https://example2.com/path deepLink://example/test deepLink://example2/test \n \n \n >>Açıklama \n aciklama \n AN1..1024 \n İ \n YÖS’ün gönderdiği adrese yönelik vermek istediği açıklama Örnek: WEB bireysel , WEB kurumsal  , APP \n \n \n Açık anahtar \n acikAnahtar \n AN1..1024 \n Z \n YÖS’ün mesaj imzalama için payla
16ştığı açık anahtar \n \n \n Logo Bilgileri \n logoBilgileri \n Kompleks: LogoBilgisi [Array][1..N] \n Z \n YOS’e ait logo bilgileri. Logotur = Original formatındaki logonun minimumda gönderimi zorunludur. \n \n \n >logoTur \n logoTur \n AN3..50 \n Z \n Logonun türünü belirler. TR.OHVPS.DataCode.LogoTur alabileceği değerler  ORIGINAL , WHITE_OVERLAY , BLACK_OVERLAY , GRAY_OVERLAY \n \n \n > logoAdr \n logoAdr \n AN1..255 \n Z \n YÖS tarafında tutulan ve HHS’lerle paylaşılacak olan url adres bilgisidir. Örnek: https://via.placeholder.com/150?text=0001 \n Healthcheck API \n GET /health \n HHS ve YÖS API için health servisleri aşağıdaki servislerle kontrol edilebilir. \n Başarılı yanıtta Http 200 kodu dönülecektir\nBaşarılı Yanıt: \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n status \n status \n AN2..20 \n Z \n “UP”, “DOWN” değerlerini alabilir \n \n \n \n'},{title:"4. Rıza Durumları",frontmatter:{},regularPath:"/v1.0.1/contents/riza-durumlari.html",relativePath:"v1.0.1/contents/riza-durumlari.md",key:"v-7301a6d1",path:"/v1.0.1/contents/riza-durumlari.html",headers:[{level:2,title:"4.1.\tHesap Bilgisi Hizmeti Rıza durum değişiklikleri",slug:"_4-1-hesap-bilgisi-hizmeti-rıza-durum-degisiklikleri"},{level:2,title:"4.2.\tÖdeme Bilgisi Hizmeti Rıza Durum Değişiklikleri",slug:"_4-2-odeme-bilgisi-hizmeti-rıza-durum-degisiklikleri"}],content:" 4. Rıza Durumları \n ÖHK, Ödeme Emri Başlatma Hizmetine ya da Hesap Bilgisi Hizmetine müşteri rızasının tesisi ile başlar. ÖHK’nın YÖS uygulaması üzerinden yaptığı işlemler neticesinde rıza durumları değişebilir.\nRıza’nın alabileceği durum kodları şu şekilde belirlenmiştir. \n B: Yetki Bekleniyor  – İlk rıza talebinde \n Y: Yetkilendirildi  – Başarılı GKD sonrası yetKod üretildiğinde \n K: Yetki Kullanıldı  – Erişim Belirteci alındığında \n E: Yetki ödeme emrine dönüştü  – ÖBHS için \n S: Yetki Sonlandırıldı \n    HBHS için : Erişimin Geçerli Olduğu Son Tarih geldiğinde \n    ÖBHS için : Yenileme belirteci Son Tarihi geldiğinde \n I :Yetki İptal \nRıza iptal durumu ise gerek raporlama gerekse müşteri deneyimi perspektifinden doğru   bilgilendirmeler yapılabilmesi açısından aşağıdaki gibi detay kodları ile zenginleştirilmiştir: \n \n Rıza İptal Detay Kodu: \n \n \n \n ‘01’ :\tYeni Rıza Talebi ile İptal \n ‘02’ :\tKullanıcı İsteği ile HHS üzerinden İptal \n ‘03’ :\tKullanıcı İsteği ile YÖS üzerinden İptal \n ‘04’ :\tSüre Aşımı : Yetki Bekleniyor \n ‘05’ :\tSüre Aşımı : Yetkilendirildi \n ‘06’ :\tSüre Aşımı : Yetki Ödemeye Dönüşmedi \n ‘07’ :\tGKD iptali : Aynı rıza no ile mükerrer çağrımı \n ‘08’ :\tGKD iptali : Rızano ile TCKN uyuşmaması \n ‘09’ :\tGKD iptali : Uygun ürünü bulunmuyor \n ‘10’ :\tGKD iptali : HHS Açık Bankacılık kanalı işleme kapalı \n ’11’ :\tGKD iptali : Hesap Yetki Sorunu \n ‘12’ :\tGKD iptali : ÖHK HHS müşterisi değil \n ‘13’ :\tGKD iptali : ÖHK HHS kontrollerini aşamadı \n ‘14’ :\tGKD iptali : Başarısız GKD \n ‘15’ :\tGKD iptali : ÖHK isteği ile GKD’den vazgeçildi \n ‘16’ :\tGKD iptali : Diğer \n \n \n 4.1 ve 4.2 bölümlerinde detaylandırılan rıza durum değişikliklerinde rıza iptal detay kodları kullanılmıştır. \n Örneğin B⇨ I/01 denildiğinde “Yetki Bekleniyor” rıza durumundan “Yetki İptal” rıza durumuna Rıza İptal Detay Kodu da ‘01’ yani ‘Yeni Rıza Talebi ile İptal’ olarak güncellenmelidir ifade edilmiştir. \n ÖHK verdiği rıza sırasında seçtiği hesaplarından biri kapatılırsa, diğer hesaplara ait bilgileri görmeye devam eder. Ancak ÖHK’nın hesabına ait bilgilerinin YÖS'e iletilmesini istemediği durumda, rızasını tamamen iptal ederek yeni hesap listesi 
16ile yeni rıza vermesi gerekmektedir. Yani hesap kapanması nedeniyle rıza geçerliliğini yitirmez. ÖHK'nın proaktif olarak bu hesabı rızadan çıkarması durumunda rıza iptali olur. \n Rıza iptal edilmediği ve geçerli olduğu sürece kapalı hesaplar için diğer çevrimiçi kanallarda uygulanan yöntem izlenmelidir. Diğer çevrimiçi kanallarda kapalı hesaplara ilişkin bilgi dönülmüyor ise ÖHVPS'den de dönüş yapılmaz. ÖHK’nın rıza onayı verdiği açık hesaplarının tümü HHS tarafında kapatıldığı durumda, yine aynı şekilde HHS çevrimiçi kanallarında koyduğu kurallara göre bu hesaplarının YÖS uygulamasında gösterilmesine karar verir. \n Hesap kapama ve ticari kullanıcıların hesaplar üzerindeki yetki değişiklikleri HHS'nin iç sistemleri tarafından yapılan kontrollerle yönetilir. Buradaki değişiklikler ile HHS sistemsel olarak rıza iptali gerçekleştiremez. ÖHK izni ve onayı dahilinde rıza iptal gerçekleştirilmesi gerekmektedir. \n 4.1.\tHesap Bilgisi Hizmeti Rıza durum değişiklikleri \n Kural : Bir ÖHK'nın, bir YÖS için, bir HHS'de Y, K, B rıza durumlarında tek bir rızası olabilir.\nBir ÖHK hem kişisel olarak hem de bir kurumun kullanıcısı olabilir. Bu durumda kurum ve kişisel rıza aynı anda mevcut olabilmelidir. Rıza nesneleri, HHS tarafından uygun şekilde yönetilmelidir. \n \n \n Hesap Bilgisi Rızası isteği HHS’ye iletilir. \na.\tHHS ÖHK'ya ait içeride rıza var mı kontrol eder. Eğer yoksa  Yetki Bekleniyor - B  rıza durumu ile yeni rıza oluşturur. \nb.\tEğer içeride rıza varsa \n     i. Rıza durumu Yetki Bekleniyor - B ise; \n        HHS, sistemde Yetki Bekleniyor - B rıza durumuna sahip kayıt olduğu için, öncelikle eski kaydı Yetki İptal - I durumuna getirir.  Rıza İptal Detay Kodu “Yeni Rıza Talebi ile iptal” olmalıdır.  B ⇨ I / 01  Sonrasında,  Yetki Bekleniyor - B  rıza durumu ile yeni rıza oluşturur. \n      ii. Rıza durumu Yetkilendirildi - Y veya Yetki Kullanıldı - K ise; \n    ÖHK'nın halihazırda verilmiş bir rızası vardır. HHS, önce mevcut rızanın iptalinin yapılması gerektiğine dair hata döner.  TR.OHVPS.Resource.ConsentMismatch \n      iii.\tRıza durumu Yetki Sonlandırıldı - S  ise Yetki Bekleniyor - B durumunda yeni rıza no oluşturur. \n      iv.\tRıza durumu Yetki İptal - I ise  Yetki Bekleniyor - B  durumunda yeni rıza no oluşturur. \n \n \n GKD başarılı bir şekilde tamamlandığında Rıza durumu Yetki Bekleniyor’dan Yetkilendirildi’ye güncellenir.  B ⇨ Y \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdar olmayabilir. \n ÖHK GKD yapmadan ayrılmış olabilir. (ÖR: Tarayıcıyı kapatmış olabilir) Rıza Yetki Bekleniyor - B rıza durumunda kalır.  5 dakika içerisinde sistem tarafından Yetki Bekleniyor - B rıza durumundaki kayıtlar Yetki İptal  : Yetki Bekleniyor Süre Aşımı olarak güncellenir.   B ⇨ I / 04  Bkz. 9. Madde. \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdardır. HHS yonlendirme adresinin query parametrelerine  rizaIptDtyKod  değerini ekleyerek bu durumu YÖS’e bildirmek zorundadır. \n \n \n Rıza durumunun  “Yetkilendirildi\" , “Yetki Kullanıldı” olduğu durum.  Yetki Bekleniyor ⇨ Yetki İptal   B ⇨  I / 07 \n \n \n Rızano ile kimlik bilgileri uyuşmazlığı.  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 08 \n \n \n ÖHK'nın HHS'de ilgili ürününün olmadığı durum (hesap/kart) Yetki Bekleniyor ⇨ Yetki İptal   B ⇨I / 09 \n \n \n Açık bankacılık kanalınız işleme kapalıdır.Yetki Bekleniyor ⇨ Yetki İptal  B ⇨I / 10 \n \n \n Kullanıcının HHS'deki hesaplarında yeterli yetkisinin olmama durumu  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 11 \n \n \n ÖHK'nın ilgili HHS müşterisi olmadığı durum Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 12 \n \n \n HHS’nin ÖHK için yaptığı kontrollerin başarısız olduğu durum Yetki Bekleniyor ⇨ Yetki İptal   B ⇨ I / 13 \n \n \n ÖHK kendini doğrulayamamış olabilir. Başarısız GKD Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 14 \n \n \n ÖHK isteği ile GKD’den vazgeçildiği durum Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 15 \n \n \n Diğer Yetki Bekleniyor ⇨  Yetki İptal   B ⇨  I / 16 \n \n \n \n \n \n \n ÖHK, hesaplarında/izin türlerinde/Erişimin Geçerli Olduğu Son Tarih bilgilerinden bir ya da birden fazlasında güncelleme yapmak için YÖS ekranına girer. \n \n \n     a.\tYÖS önce Rıza İptal API'sini çağırır. Sonra yeni değerlerle yeni bir rıza isteğinde bulunur. Tekrar GKD gerekir. \n     b.\tYÖS rıza iptal yapmadan yeni rıza alma akışına başlarsa 1.b akışı devreye girer. \n     c.\tRıza güncelleme ilerleyen sürümlerde ele alınacaktır. \n \n \n Erişim Belirteci API \n a. Erişim Belirteci'nin yetkilendirme kodu ile çağrımı yapıldığında;
16 \n      i. Rıza durumu Yetki İptal - I ya da Yetki Sonlandırıldı - S ise   TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     ii. Rıza durumu Yetki Bekleniyor - B ya da Yetki Kullanıldı - K  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iii. Rıza durumu Yetkilendirildi - Y olduğunda erişim belirteci tahsis edilir.\nErişim belirteci alındığında rıza durumu K: Yetki Kullanıldı yapılır.  Y ⇨K \n b. Yenileme belirteci karşılığı erişim belirteci alınması sırasında; yenileme belirteci kontrolü ve sonrasında rıza kontrolü yapılmalıdır. \n      i. Öncelikle Yenileme Belirteci Geçerlik Süresi kontrolü yapılmalıdır. Geçerli bir Yenileme Belirteci olmadığı görülür ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n     ii. Rıza durumu Yetki İptal - I  ya da Yetki Sonlandırıldı - S ise  TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     iii. Rıza durumu Yetki Bekleniyor - B ya da Yetkilendirildi - Y  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iv. Rıza durumu Yetki Kullanıldı - K olduğunda, yenileme belirteci karşılığı erişim belirteci tahsis edilir. \n \n \n Sorgulama: HBHS, rıza alma akışına başlamadan önce, daha önce oluşturulmuş bir hesap bilgisi-rizasi kaynağının durumunu, isteğe bağlı olarak alabilir. Rıza numarası ile sorgulama yapılır. \n \n \n Hesap Bilgisi Rızasının İptali: HBHS üzerinden ya da HHS üzerinden yapılan rıza iptallerinde Rıza durumu  Yetki İptal - I olarak güncellenir. Rıza numarası ile iptal sağlanır. \n a. HHS üzerinden rıza iptali yapmış olabilir.  Rıza durumu sorgulanır. \n Rıza numarası Yetki Bekleniyor - B ve Yetkilendirildi - Y ve Yetki Kullanıldı - K durumlarında ise Yetki İptal durumuna getirilir. Rıza gnclzmn timestamp ile güncellenir.\nHHS, Rıza iptalinde aynı zamanda erişim belirtecini de invalid hale getirmelidir. \n B ⇨ I / 02 \n Y ⇨ I / 02 \n K ⇨ I / 02 \n b.\tYÖS üzerinden yapılacak iptal işleminde yine Y ve B ve K rıza durumlarında ise iptal edilebilir. \n B ⇨ I / 03 \n Y ⇨ I / 03 \n K ⇨ I / 03 \n Rıza durumu Yetki Sonlandırıldı - S  ise iptal gerçekleşmez. “Rıza durumunuz iptal etmeye uygun değildir.” hatası ÖHK'ya yansıtılır.  TR.OHVPS.Resource.ConsentMismatch \n \n \n ÖHK’nın verdiği rıza süresi dolmuş olabilir.\nErişimin Geçerli Olduğu Son Tarih geldiğinde Rıza durumu Yetki Kullanıldı’dan Yetki Sonlandırıldı durumuna çekilmelidir.   K ⇨ S \n \n \n Hesaplar, Bakiye ve İşlemler servislerinde erişim belirteci kontrolü ve sonrasında rıza kontrolü yapılmalıdır.\nGeçerli bir erişim belirteci yok ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n YÖS'ün; Rıza İptal - I ya da Yetki Sonlandırıldı - S rıza durumlarında Hesaplar, Bakiye ve İşlemler servislerini çağırmaması beklenir. HHS'nin bu rıza durumları ile yapılmış çağrılar olduğunda  TR.OHVPS.Resource.ConsentRevoked  hatasını dönmesi gereklidir. \n Rıza durumu Yetki Kullanıldı - K dışında ise  TR.OHVPS.Resource.ConsentMismatch  hatası verilmelidir. \n Rıza durumu Yetki Kullanıldı - K ise servis akışlarına devam edilir. \n Rıza sorgulama API'sinde ilgili rıza kaydı bulunamaz veya sorgulayan kurumun yetkisi yoksa (örn : YÖS’ün farklı bir YÖS’e ait rıza noyu sorgulaması) \n TR.OHVPS.Resource.NotFound hatası  verilmelidir. \n \n \n HHS/YÖS tarafında rıza bilgileri belirli aralıklarla sistem kullanıcısı tarafından taranır:\n5 dakikadan uzun süredir “Yetki Bekleniyor” durumunda kalan kayıtların durumları güncellenir.\nYetki Bekleniyor  ⇨ Rıza İptal  / Süre Aşımı : Yetki Bekleniyor  B ⇨ I / 04 \n 5 dakikadan uzun süredir “Yetkilendirildi” durumunda kalan kayıtlar güncellenir.\nYetkilendirildi     ⇨ Rıza İptal / Süre Aşımı: Yetkilendirildi  B ⇨ I / 05 \nYukarıda bahsedilen, YÖS Süre Aşımı nedeniyle rıza iptal durum güncellemelerini y
16apmadan önce HHS’yi sorgulayarak rıza durumunu öğrenmeli ve süre aşımı dışında bir kodu varsa aynı kodla kendi sistemini güncellemelidir. \nErişimin Geçerli Olduğu Son Tarih geldiğinde rıza durumu Yetki Kullanıldı’dan Yetki Sonlandırıldı’ya güncellenir.  K ⇨ S \n 4.2.\tÖdeme Bilgisi Hizmeti Rıza Durum Değişiklikleri \n Kural : Bir ÖHK'nın bir YÖS için bir HHS'de istediği kadar rızası olabilir. \n Kurum ve kişisel rıza aynı anda mevcut olabilmelidir. Rıza nesneleri, HHS tarafından uygun şekilde yönetilmelidir. \n \n \n Ödeme Emri Rızası isteği HHS’ye iletilir. İçeride rıza olup olmamasına bakılmaksızın  Yetki Bekleniyor - B  rıza durumu ile yeni rıza no oluşturur. \n \n \n GKD başarılı bir şekilde tamamlandığında rıza durumu Yetki Bekleniyor’dan Yetkilendirildi’ye güncellenir.   B ⇨ Y \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdar olmayabilir. \n ÖHK GKD yapmadan ayrılmış olabilir. (ÖR: Browserı kapatmış olabilir)\nRıza durumu Yetki Bekleniyor'dur. 5 dakika içerisinde sistem tarafından Yetki Bekleniyor - B durumundaki kayıtlar Rıza İptal : Yetki Bekleniyor Süre Aşımı olarak güncellenir. Bkz. 8. Madde. \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdardır. HHS yonlendirme adresinin query parametrelerine rizaIptDtyKod değerini ekleyerek bu durumu YÖS’e bildirmek zorundadır. \n \n \n Rıza durumunun  “Yetkilendirildi\" , “Yetki Kullanıldı” olduğu durum.  Yetki Bekleniyor ⇨ Yetki İptal   B ⇨  I / 07 \n \n \n Rızano ile kimlik bilgileri uyuşmazlığı.  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 08 \n \n \n ÖHK'nın HHS'de ilgili ürününün olmadığı durum (hesap/kart) Yetki Bekleniyor ⇨ Yetki İptal   B ⇨I / 09 \n \n \n Açık bankacılık kanalınız işleme kapalıdır.Yetki Bekleniyor ⇨ Yetki İptal  B ⇨I / 10 \n \n \n Kullanıcının HHS'deki hesaplarında yeterli yetkisinin olmama durumu  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 11 \n \n \n ÖHK'nın ilgili HHS müşterisi olmadığı durum Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 12 \n \n \n HHS’nin ÖHK için yaptığı kontrollerin başarısız olduğu durum Yetki Bekleniyor ⇨ Yetki İptal   B ⇨ I / 13 \n \n \n ÖHK, kendini doğrulayamamış olabilir. Başarısız GKD Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 14 \n \n \n ÖHK isteği ile GKD’den vazgeçildiği durum Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 15 \n \n \n Diğer Yetki Bekleniyor ⇨  Yetki İptal   B ⇨  I / 16 \n \n \n \n \n \n \n GKD muafiyeti olduğunda YÖS HHS’den arka planda onay alır. Bu onay sırasında rıza durumu  Yetkilendirildi  yapılır.  B ⇨ Y \n \n \n Erişim Belirteci API \na. Erişim Belirteci'nin yetkilendirme kodu ile çağrımı yapıldığında; \n      i. Rıza durumu Yetki İptal - I  ya da Yetki Sonlandırıldı - S ise   TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     ii. Rıza durumu Yetki Bekleniyor - B , Yetki Kullanıldı - K  ya da Yetki ödeme emrine dönüştü - E  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iii. Rıza durumu Yetkilendirildi - Y olduğunda erişim belirteci tahsis edilir.\nErişim belirteci alındığında rıza durumu K: Yetki Kullanıldı yapılır.  Y ⇨K \n b. Yenileme belirteci karşılığı erişim belirteci alınması sırasında; yenileme belirteci kontrolü ve sonrasında rıza kontrolü yapılmalıdır. \n      i. Öncelikle Yenileme Belirteci Geçerlik Süresi kontrolü yapılmalıdır. Geçerli bir Yenileme Belirteci olmadığı görülür ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n     ii. Rıza durumu Yetki İptal - I  ya da Yetki Sonlandırıldı - S ise  TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     iii. Rıza durumu Yetki Bekleniyor - B ya da Yetkilendirildi - Y  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iv. Rıza durumu Yetki Kullanıldı - K veya Yetki Ödeme Emrine Dönüştü – E olduğunda, yenileme belirteci karşılığı erişim belirteci tahsis edilir. \n \n \n Ödeme Başlatma API önce erişim belirteci ve sonrasında rıza kontolü yapılarak gerçekleştirilmelidir \n \n Öncelikle Erişim Belirteci kontrolü yapılmalıdır. Geçerli bir Erişim Belirteci olmadığı görülür ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n Rıza durumu Yetki İptal - I  ya da Yetki S
16onlandırıldı - S ise  TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n Rıza durumu Yetki Bekleniyor - B , Yetkilendirildi - Y, Yetki Ödeme Emrine Dönüştü - E  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n Rıza durumu Yetki Kullanıldı - K olduğunda ödeme emri gerçekleştirilir.  Rıza durumu Yetki Kullanıldı - K'dan Yetki Ödeme Emrine Dönüştü – E yapılmalıdır.   K ⇨E \n \n \n \n Sorgulama: GKD işleminin başarıyla tamamlanıp Ödeme Emri Rızasının yetkilendirilmesi esnasında, gönderen hesap seçiminin HHS ekranında yapıldığı durumlarda, ödeme emri isteğinde gönderen hesap bilgileri alanının zorunlu olması nedeniyle, ödemeEmriRizasi nesnesi sorgulanarak gönderen hesap bilgileri (hesap numarası ve/veya hesap referansı) alınmalıdır.\nRıza sorgulama, Ödeme Emri Sorgulama API'lerinde ilgili rıza kaydı bulunamaz veya sorgulayan kurumun yetkisi yoksa (örn : YÖS’ün farklı bir YÖS’e ait rıza noyu sorgulaması) \n TR.OHVPS.Resource.NotFound  hatası verilmelidir. \n \n \n Ödeme Emri Rızasının İptali bulunmamaktadır. \n \n \n HHS/YÖS tarafında rıza bilgileri belirli aralıklarla sistem kullanıcısı tarafından taranır:\n5 dakikadan uzun süredir Yetki Bekleniyor'da kalan kayıtların durumları güncellenir.\nYetki Bekleniyor ⇨ Rıza İptal / Süre Aşımı : Yetki Bekleniyor  B ⇨ I / 04 \n 5 dakikadan uzun süredir Yetkilendirildi'de kalan kayıtlar durumları güncellenir.\nYetkilendirildi     ⇨ Rıza İptal / Süre Aşımı : Yetkilendirildi  B ⇨ I / 05 \n 5 dakikadan uzun süredir Yetki kullanıldı'da kalan kayıtlar durumları güncellenir.\nYetki kullanıldı ⇨ Rıza İptal / Süre Aşımı : Yetki Ödemeye Dönüşmedi  B ⇨ I / 06 \n Yenileme belirteci Son Tarih geldiğinde rıza durumu Yetki ödeme emrine dönüştü’den Yetki Sonlandırıldı'ya güncellenir. \n E ⇨ S \n \n \n GKD muafiyeti sadece ödeme başlatma servislerinde bulunmaktadır. \n \n \n"},{frontmatter:{},regularPath:"/v1.0.1/contents/tanim-ve-kisitlamalar.html",relativePath:"v1.0.1/contents/tanim-ve-kisitlamalar.md",key:"v-1178fa5d",path:"/v1.0.1/contents/tanim-ve-kisitlamalar.html",content:"  1.\tTanım ve Kısaltmalar   \n Tablo 1: Tanım ve Kısaltmalar \n \n \n \n Kısaltma \n Tanım \n Açıklama \n İngilizce Açıklama \n İngilizce Kısaltma \n \n \n \n \n ÇS \n Çerçeve Sözleşme \n Ödeme hizmeti sağlayıcısı ile müşteri arasında tekil veya süreklilik arz eden ödeme işlemlerinin yürütülmesine ve mümkün olan durumlarda ödeme hesabının açılmasına ilişkin usul ve esasları belirleyen sözleşme \n \n \n \n \n EPK \n Elektronik Para Kuruluşu \n Kanun kapsamında elektronik para ihraç etme yetkisi verilen tüzel kişi \n Electronic Money Institution \n EMI \n \n \n FAST \n Fonların Anlık ve Sürekli Transferi \n TCMB tarafından işletilen Fonların Anlık ve Sürekli Transferi Sistemi \n \n \n \n \n FAST TR-Karekod \n FAST-TR Karekod Teknik İlke ve Kurallar Rehberi \n TR Karekod’un FAST Sistemi aracılığıyla gerçekleşecek işlemlerde kullanılmasına ilişkin detaylı teknik ilke ve kurallarını içeren doküman \n \n \n \n \n GKD \n Güçlü Kimlik Doğrulama \n Kimlik doğrulamada kullanılan ve bir bileşenin ele geçirilmesinin diğer bileşenin güvenliğini tehlikeye atmayacağı en az iki bileşenden oluşan, bu iki bileşenin de müşterinin bildiği, sahip olduğu veya biyometrik bir karakteristiği olan bileşen sınıflarından farklı ikisine ait olacak şekilde seçildiği yöntem \n Strong Customer Authentication \n SCA \n \n \n İB \n İşlem Bilgisi \n Gerçekleştirilen işleme ilişkin işlem zamanını, işlemin niteliğini ve ödeme işlemi için ödeme emrinin masraf, komisyon ve ücretler de dahil hesabın borçlandırılacağı toplam tutarını ve ödemenin göndereni ile alıcısını veya toplu ödeme emrinin masraf, komisyon ve ücretler de dahil hesabın borçlandırılacağı toplam tutarını ve göndereni ile alıcılarını içeren bilgi \n \n \n \n \n İDK \n İşlem Doğrulama Kodu \n Kimlik doğrulama yöntemlerinden biriyle kendisini sisteme tanıtan bir müşterinin gerçekleştirmek istediği 
16işleme özgü olmak ve belirli bir geçerlilik süresi içinde işlem onayında kullanılmak üzere oluşturulan, finansal sonuç doğrunan işlemlerde kişiye onay anında ilgili işlem bilgisi (İB) ile birlikte gösterilen, alıcı veya tutarın değişmesiyle geçersiz hale gelen bilgi \n Authentication Code \n AC \n \n \n KOLAS \n Kolay Adresleme Servisi \n Fon transferlerinde hesap numarası ile ad soyad yerine kullanılan ve belirli bir hesap ile eşleştirilmiş telefon numarası, e-posta adresi, T.C. Kimlik Numarası (TCKN), Vergi Kimlik Numarası (VKN), Yabancı Kimlik Numarası veya Pasaport Numarası gibi Kolay Adres bilgilerinin kaydedilmesini, güncellenmesini ve sorgulamasını sağlayan katman servis \n \n \n \n \n HBHS \n Hesap Bilgisi Hizmeti Sağlayıcısı \n Kanunun 12 inci maddesinin birinci fıkrasının (g) bendinde tanımlanan ödeme hizmetini (hesap bilgisi hizmetini) sunan tüzel kişi \n Account Information Service Provider \n AISP \n \n \n HHS \n Hesap Hizmeti Sağlayıcısı \n Nezdinde ödeme hesabı bulunan ödeme hizmeti sağlayıcısı \n Account Servicing Payment Service Provider \n ASPSP \n \n \n ÖBHS \n Ödeme Emri Başlatma Hizmeti Sağlayıcısı \n Kanunun 12 inci maddesinin birinci fıkrasının (f) bendinde tanımlanan ödeme hizmetini (ödeme emri başlatma hizmetini) sunan tüzel kişi \n Payment Initiation Service Provider \n PISP \n \n \n ÖDK \n Ödeme Kuruluşu \n Ödeme hizmeti sağlamak ve gerçekleştirmek için Kanun kapsamında yetkilendirilmiş tüzel kişi \n Payment Institution \n PI \n \n \n ÖH \n Ödeme Hesabı \n Ödeme hizmeti kullanıcısı adına açılan ve ödeme işleminin yürütülmesinde kullanılan hesap \n Payment Account \n PA \n \n \n ÖHK \n Ödeme Hizmeti Kullanıcısı (Müşteri) \n Gönderen, alıcı veya her ikisi sıfatıyla belirli bir ödeme hizmetinden faydalanan gerçek veya tüzel kişi \n Payment Service User \n PSU \n \n \n ÖHS \n Ödeme Hizmeti Sağlayıcısı \n 5411 sayılı Kanun kapsamındaki bankalar, EPK, ÖDK ve Posta ve Telgraf Teşkilatı Anonim Şirketi(PTT) \n Payment Service Provider \n PSP \n \n \n ÖHVPS \n Ödeme Hizmetleri Veri Paylaşım Servisleri \n Kanunun 12’nci maddesinin birinci fıkrasının (f) veya (g) bentlerinde yer alan ödeme hizmetlerinde kullanılan veri paylaşım servisleri \n \n \n \n \n PÖS \n Perakende Ödeme Sistemi \n TCMB tarafından işletilen, işlemlerin Türk Lirası üzerinden gerçekleştiği Müşteriler Arası Türk Lirası Aktarım Sistemi \n \n \n \n \n TR-Karekod \n TR-Karekod İlke ve Kuralları \n Ulusal karekod (TR Karekod) ilke ve kurallarının belirlendiği belge \n \n \n \n \n YÖS \n Yetkili Ödeme Hizmeti Sağlayıcısı \n Ödeme emri başlatma hizmeti ve/veya hesap bilgisi hizmeti sunan tüzel kişi \n Third Party Payment Service Providers \n TPP \n \n \n \n"},{title:"6.\tÖdeme Emri Başlatma Hizmeti",frontmatter:{},regularPath:"/v1.0.1/contents/odeme-emri-baslatma-hizmeti.html",relativePath:"v1.0.1/contents/odeme-emri-baslatma-hizmeti.md",key:"v-01c649bd",path:"/v1.0.1/contents/odeme-emri-baslatma-hizmeti.html",headers:[{level:3,title:"Ödeme Emri Başlatma Hizmeti için Erişim Adresleri (Endpoints)",slug:"odeme-emri-baslatma-hizmeti-icin-erisim-adresleri-endpoints"},{level:2,title:"6.1.\tADIM 0 - Ödeme Emri Başlatma Isteği",slug:"_6-1-adim-0-odeme-emri-baslatma-istegi"},{level:2,title:"6.2.\tADIM 1 - Ödeme Emri Rızasının Hazırlanması",slug:"_6-2-adim-1-odeme-emri-rızasının-hazırlanması"},{level:2,title:"6.3.\tADIM 2- Ödeme Emri Rızasının Yetkilendirilmesi",slug:"_6-3-adim-2-odeme-emri-rızasının-yetkilendirilmesi"},{level:2,title:"6.4.\tADIM 2.1 – Ödeme Emri Rızasının Sorgulanması (isteğe bağlı)",slug:"_6-4-adim-2-1-odeme-emri-rızasının-sorgulanması-istege-baglı"},{level:2,title:"6.5.\tADIM 3- Ödeme Emrinin Oluşturulması",slug:"_6-5-adim-3-odeme-emrinin-olusturulması"},{level:2,title:"6.6.\tADIM 3.1- Ödeme Emri Sorgusu (İsteğe bağlı)",slug:"_6-6-adim-3-1-odeme-emri-sorgusu-istege-baglı"},{level:3,title:"GET /odeme-emri/{odemeEmriNo}",slug:"get-odeme-emri-odemeemrino"},{level:2,title:"6.7\tHealthcheck API",slug:"_6-7healthcheck-api"},{level:3,title:"GET /health",slug:"get-health"}],content:" 6.\tÖdeme Emri Başlatma Hizmeti \n Ödeme emri başlatma işlemi havale, FAST ya da PÖS ödemesiyle sonuçlanabilir. Ödeme işleminin amacı kişiden kişiye para transferi, e-ticaret ödemesi gibi farklı ödeme türleri olabilir. Ödemenin amacına göre ÖBHS’nin ileteceği veri setinde farklılaşmalar olabilir. \n Ödeme Emri Başlatma Hizmeti 5 temel akışdan oluşur: \n \n Ödeme Emri Başlatma İsteğinin tetiklenmesi:  ÖHK ÖBHS mobil uygulama ya da websitesinden ödeme emrini başlatır. \n Ödeme Emri Rıza Hazırlanması:  ÖBHS, “Ödeme Emri Başlatma” işlemi için izin oluşturulması isteğini HHS’ye iletir. \n Ödeme Emri Rızasının Yetkilendirilmesi:  HHS, gerekli gördüğü durumlarda ÖHK’yı GKD ile doğrular ve ödeme emri rızasına erişim için erişim belirteci tanımlanmasını temin eder. \n Ödeme Emrinin Başlatılması:  ÖBHS, “ödeme emri”ni HHS’ye iletir. \n Ödeme Emri Rıza Durumu, Ödeme Emri Durumu, Ödeme Emri Detayı Sorguları:  ÖBHS, Ödeme Emri Rıza Durumu, Ödeme Emri Durumu, Ödeme Emri Detayı bilgilerini isteğe bağlı olarak sorgulayabilir. \n \n \n Şekil 4: Ödeme Emri Başlatma Hizmeti Üst Düzey İş Akışı \n Ödeme Emri Başlatma Hizmeti için Erişim Adresleri (Endpoints) \n Ödeme Emri Başlatma Hizmeti İçin Erişim Adreslerinin Etki Alanı (Scope) = “odeme_emri” olarak belirtilmelidir. \n Tablo 6: Ödeme Emri Başlatma Hizmeti İçin Erişim Adresleri \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu / İsteğe Bağlı \n Yetkilendirme Türü \n İmzalama \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n odeme-emri-rizasi \n POST \n POST /odeme-emri-rizasi \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n OdemeEmriRizasiIstegi \n OdemeEmriRizasi \n \n \n 2 \n erisim-belirteci (GKD için) \n POST \n POST/erisim-belirteci /odeme-emri-rizasi \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n ErisimBelirteciIstegi \n ErisimBelirteci \n \n \n 2.1 \n odeme-emri-rizasi \n GET \n GET /odeme-emri-rizasi/{rizaNo} \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n - \n OdemeEmriRizaYaniti \n \n \n 3 \n odeme-emri \n POST \n POST /odeme-emri \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı Yanıt \n OdemeEmriIstegi \n OdemeEmri \n \n \n 3.1 \n odeme-emri \n GET \n GET /odeme-emri
16/{odemeEmriNo} \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı Yanıt \n - \n OdemeEmri \n 6.1.\tADIM 0 - Ödeme Emri Başlatma Isteği \n \n ÖHK, ÖBHS uygulamasında (web arayüzü/mobil uygulama) ödeme emri başlatma işlemine onay verir. \n Gönderen hesap detaylarının bu aşamada belirtilmesi zorunlu değildir. \n 6.2.\tADIM 1 - Ödeme Emri Rızasının Hazırlanması \n   \n Şekil 5: Ödeme Emri Rızasının Hazırlanması \n \n \n ÖBHS, ödeme hizmeti kullanıcı hesabının bulunduğu HHS’ye bağlanarak ödeme emri rıza kaynağının oluşturulmasını (odemeEmriRizasi) sağlar. \n \n \n POST isteği TLS protokolü tesis edilen iletişim katmanı üzerinden gerçekleştirilir. TLS için nitelikli sertifikalar kullanılır. \n \n \n POST isteğinin başlığındaki alanlar ve istemcinin sertifikasındaki özel alanlar kullanılarak istemcinin yetkilendirilmesi sağlanır: \n \n İstekte bulunan ÖBHS yetkilendirilmiş mi? \n İstekte bulunan yetkilendirilmiş ödeme hizmeti sağlayıcısı ÖBHS rolüne sahip mi? \n İstekte bulunulan HHS kodu doğru mu? \n \n \n \n POST başarılı olursa, HHS, ödeme emri için içeride rıza olup olmamasına bakılmaksızın yeni bir rıza tanımlayıcısı RizaNo içeren odemeEmriRizasi  yanıt olarak döner. \n \n \n 1 ÖHK'nın 1 YÖS için 1HHS'de istediği kadar rızası olabilir. \n \n \n HHS tarafında RizaDurumu değişkeninin durumu “Yetki Bekleniyor” olarak güncellenir. \n \n \n YÖS’ün doğrulama ekranı olarak ÖHK’ya açacağı URL adresini de ilgili rıza numarasına göre oluşturur. Burada 2 farklı yöntemle URL oluşturabilir. \n \n Statik URL  : \nHHS’nin base pathi/alt-dizin/{rızaNo} \nÖrnek hhsYonAdr : https://xbank.com.tr/ohvps/cb54834e36f742d09af3d534ece3352a \nBu adres için ilgili doğrulama sayfası önden hazırlanmalı ve ÖHK’nın doğrulama sayfasına erişimi için yayınlanmış olmalıdır (publish edilmelidir). \n Dinamik URL : \nHHS’nin base pathi/alt-dizin/GKD Karşılama Ekranı?rizano={rızano} \nÖrnek: https://xbank.com.tr/ohvps/gkd?rizano=cb54834e36f742d09af3d534ece3352a \n \n \n \n POST /odeme-emri-rizasi \n İSTEK: \n ÖBHS, bu API erişim adresinden HHS’ye yeni bir OdemeEmriRizasi oluşturulması için istekte bulunur: \n \n ÖBHS, ödeme emri başlatma isteği olduğunu HHS’ye bildirir. \n ÖBHS, ÖHK’nın, ÖBHS arayüzünden verdiği rızanın (“Ön Onay”) bir kopyasının HHS nezdinde müşteri tarafından onaylanması için HHS’ye gönderilmesini sağlar. \n HHS; istek mesajında yer alan alanların API dökümanında belirtilen şartları sağlayacak şekilde zorunluluk, uzunluk ve içerik kontrollerini yapar. (Zorunlu) \n HHS; YÖS API ile alınan ÖBHS bilgilerinin içerisinde yer alan yönlendirme ve bildirim adresleri ile ödeme emri rızası nesnesi request mesajında paylaşılan adreslerin uyumlu olup olmadığının kontrollerini yapar. (Zorunlu) \n HHS; kimlik bilgileri nesnesinde eğer kimlik bilgileri iletilmiş ise; bu veri ile ÖHK’nın HHS müşterisi olup olmadığının kontrollerini yapar. Bu kontrol hem bireysel hem de kurumsal ÖHK’lar için yapılmalıdır.  (Koşullu Zorunlu) \n HHS kimlik bilgisi ile gönderen unvanının uyumlu olduğunun kontrol eder. (Zorunlu) \n Gönderen Hesap Numarası ile ilgili Tablo7’de belirtilen kontroller yapılmalıdır. (Zorunlu) \n HHS, ödeme için benzersiz “RizaNo” ile “OdemeEmriRizasi” nesnesi oluşturur ve ÖBHS’ye döner. \n HHS, OdemeEmriRizasi oluşturduğu anda durumunu “Yetki Bekleniyor” olarak düzenler. \nBu aşamada ÖHK’nın HHS tarafından tanımlanmış ve isteğin veri alanında gönderen hesaba (borçlandırılacak hesaba) ilişkin bir bilgisinin olması gerekmez. \nHesap bakiye kontrolünün rıza aşamasında yapılmaması gerekmektedir. Çünkü ÖHK ödeme emri gerçekleşene kadar hesabına para eklemesi yapabilir. \n \n POST /odeme-emri-rizasi  isteğinin (REQUEST) gövdesinde (BODY)  “odemeEmriRizasiIstegi” nesnesi (Tablo-7) kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “odemeEmriRizasi” (Tablo-8) nesnesi oluşturulur. \n  BAŞARILI İSTEK: \n Tablo 7: “OdemeEmriRizasiIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n HHS tarafından ödeme emri rızası oluşturulması sırasında yapılması gereken kontrol ve işlemler \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder.  Hata durumunda  TR.OHVPS.Connection.InvalidASPSP  hata kodunu döner. \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. Hata durumunda  TR.OHVPS.Connection.InvalidTPP  hata kodunu döner. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n İ \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. Yetkilendirme yöntemi, ÖBHS tarafından belirtilmeyebilir. \n HHS, ÖBHS’nin belirlediği yöntemi dikkate alarak kendi belirlediği yöntemi kullanır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu.  YÖS’ün ileteceği adrestir.  YÖS Yönlendirmeli GKD yöntemi ile akışı destekliyorsa, yetYntm değişkeninden bağımsız olarak yönlendirme adresini iletmelidir.  Durum kodu(drmKod), yönlendirme adresine parametre olarak eklenmelidir. \n HHS, müşteri uygulama / tarayıcısını bu alanda belirtilen adrese yönlendirir. \n \n \n > Bildirim Adresi \n bldAdr \n AN1..1024 \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. YÖS’ün ileteceği adrestir.  YÖS Ayrık GKD yöntemi ile akışı destekliyorsa, yetYntm değişkeninden bağımsız olarak bildirim adresini iletmelidir.  Durum kodu(drmKod), yönlendirme adresine parametre olarak eklenmelidir. \n HHS, ayrık GKD sonrası bu alanda belirtilen adrese otorizasyon kodunu (authentication code) iletir. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n K \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS geçerli bir Kimlik Numarası Türü olduğunu kontrol eder. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n K \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS, ÖBHS tarafından iletilmesi durumunda Kimlik Verisi üzeriden çapraz kontroller uygulamalı ve Kimlik Verisini temel alarak GKD gerçekleştirmelidir.  Pasaport numarasına ilişkin kontroller HHS'nin halihazırda kullandığı veri, akış ve tabi olduğu diğer düzenlemelerdeki işleyiş ile aynı şekilde ele alınmalıdır.  Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur.  HHS geçerli bir Kurum Kimlik Numarası Türü olduğunu kontrol eder. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur.  HHS, ÖBHS tarafından iletilmesi durumunda Kurum Kimlik Verisi üzeriden çapraz kontroller uygulamalıdır. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n Kurum adına yapılan ödemelerde K değerini alır. Kurum Kimlik Türü ve Kurum Kimlik Verisi alanlarının girilmiş olduğu çapraz olarak kontrol edilir. \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n \n >>
16 Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n HHS geçerli bir para birimi olduğu kontrol eder. \n \n \n >> Tutar \n ttr \n N1..18 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır. Örneğin 1,20 TRY için tutar alanında “120” değeri iletilir. \n \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n İ \n \n \n \n \n >> Unvan \n unv \n AN3..140 \n İ \n Gönderenin unvanıdır.  HHS, bu bilgiyi ÖBHS sisteminden gelen veri yerine FAST’a iletirken kendi sisteminden alabilir. \n HHS’nin bu veri ile kendi sistemlerindeki verinin farklı olması ve Kimlik Numarası ile eşleşmemesi durumunda ödeme emri başlatma isteği reddedilir.  ÖBHS verisi ile HHS verisinin farklılaşması durumunun ise risk değerlendirme sistemlerine girdi olarak kullanması tavsiye edilir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n İ \n ÖBHS'nin ön yüzünden daha önce kayıt altına alınmış hesaplar arasından seçtirdiği veya müşteriye girdiği IBAN’dır.  ÖBHS tarafından iletilmediği durumda, gönderen hesap bilgisini müşteri tarafından HHS’nin dijital kanalında GKD sonrasında seçilebilir. Bu amaçla ÖBHS arayüzünde HHS seçtirilmelidir.  Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir. Hesap referansı ile ödeme emri rızası başlatılacak ise HHS hesap referansı değeri ile ilişkilendirilmiş mevcut bir hesap bilgisi rızası var mı kontrol etmelidir. Eğer aktif bir rızası yok ise  TR.OHVPS.Business.InvalidContent  hatası verilmelidir. \n ÖBHS tarafından iletildiği durumda; IBAN içerisindeki HHS kodunun istek başlığındaki HHS kodu ile aynı olduğu (hesabın HHS’ye aitliğinin kontrolü), IBAN’ın doğruluğu (kontrol basamağı doğrulaması), Hesap numarasının ÖHK’ya ait olduğu, HHS’ye özel ödeme izni verilmeyen farklı statülerin bulunması durumu kontrol edilir.  Kontrol başarısız olduğunda  TR.OHVPS.Business. InvalidAccount  hatası YÖS’e iletilir. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n İ \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez.  ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir.  Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir. \n HspRef'e bağlı IBAN değiştiğinde yeni IBAN'ın da ilgili HspRef ile ilişkilendirilmesi beklenmektedir. Bu durumda, HBHS, HspRef ile sorguya geldiğinde HHS'nin yeni IBAN ve hesap hareketlerini dönebilmesi mümkün olacaktır. HspRef’in, IBAN değiştiğinde değiştirilmemesi tavsiye edilmektedir. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n \n >> Unvan \n unv \n AN3..140 \n K \n Kolay Adres Sistemi  kullanılmıyorsa zorunludur.  Alıcının unvanıdır. ÖBHS ekranlarından girişi yapılabileceği gibi ÖBHS’nin kayıtlı alıcılarından yapılan seçimle de doldurup gönderebildiği bilgi olabilir.  FAST-TR Karekod Veri Organizasyonunda;  İşyeri tarafından sunulan uzun karekod yapısının  59:  alanında tanımlı İşyeri adı alanıdır, Kişiden Kişiye Ödeme Karekod Yapısının  07:  alanında tanımlı    Ödeme Alıcısının Adı ve Soyadı  alanıdır.  FAST-TR Karekod dışındaki iş yeri ödemelerinde; yine Unvan alanında işyeri adı bilgisi gönderilmelidir. \n \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n Alıcının Hesap Numarası (IBAN)  alanıdır.   Kolay Adres Sistemi  kullanılmıyorsa zorunludur.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  30-01:  alanında tanımlı İş Yeri IBAN verisi kullanılır.  Alıcının birden fazla hesabının kullanılabilir olduğu durumlarda (özellikle işyeri ödemelerinde HHS nezdindeki hesap (on-us havale akışı) tercih edilmelidir. \n HHS (Gönderen Katılımcı) tarafından IBAN doğrulaması (kontrol basamağı doğrulaması) yapılır. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n HHS (Gönderen FAST katılımcısı) tarafından KOLAS Servisine yapılan sorguda girdi olarak kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n HHS (Gönderen FAST katılımcısı) tarafından KOLAS Servisine yapılan sorguda girdi olarak kullanılır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n TR.OHVPS.DataCode.KareKodAksTur  sıralı veri değerlerinden birini alır. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını  gösterir. Okunan karekodda referans değeri varsa kullanılması zorunludur.  Karekod ilke ve kurallar belgesinde tanımlandığı şekilde kullanılması gerekmektedir.  Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden birini alır. \n HHS geçerli bir Ödeme Kaynağı kodu kullanıldığını kontrol eder. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n HHS geçerli bir Ödeme Amacı kodu olduğunu kontrol eder. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK için biricik olarak oluşturan referans bilgisi  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -\tKarekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n HHS bu değeri GKD için kullandığı önyüzünde “işlem doğrulama kodunun” bir unsuru olarak göstermelidir. \n \n \n >> Açıklama \n odmAcklm \n AN1..50 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi. \n \n \n \n > ÖBHS Masraf Tutarı \n obhsMsrfTtr \n Kompleks:Tutar \n İ \n \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi (TRY, USD, EUR vb.). \n \n \n \n >> Tutar \n ttr \n N1..18 \n Z \n ÖBHS’nin işlemle ilgili ÖHK’nın borçlandırılmasını belirttiği masraf tutarı. İşlem Tutarı ile aynı para biriminde olmalıdır.Örneğin 1,20 TRY için tutar alanında “120” değeri iletilir. \n \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n İ \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda istekte yer alır. \n \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n İ \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir.  4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n İ \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). 4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n İ \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n  BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “OdemeEmriRizasi” nesnesi Tablo-8’deki parametrelerden oluşur: \n Tablo 8: “OdemeEmriRizasi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n > Güncellenme Zamanı \n gnclZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin güncellenme zamanı \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n > Rıza Iptal Detay Kodu \n rizaIptDtyKod \n AN2 \n K \n Rıza durumunun iptal olduÄ
16Ÿu durumda zorunludur. Alabileceği değerler 4. Bölümde detaylandırılmıştır. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. \n \n \n > Bildirim Adresi \n bldAdr \n AN1..1024 \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   HHS tarafından maksimum 5 dk içinde işlem tamamlanacak şekil zaman damgası oluşturulur. Zaman aşımı olduğunda HHS’nin GKD’ye izin vermeyecek şekilde hata mesajı vermesi gerekmektedir.  Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n K \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n K \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n >> Tutar \n ttr \n N1..18 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır. \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n İ \n \n \n \n >> Unvan \n unv \n AN3..140 \n İ \n Gönderenin unvanıdır.  HHS, bu bilgiyi ÖBHS sisteminden gelen veri yerine FAST’a iletirken kendi sisteminden alabilir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n İ \n ÖBHS'nin ön yüzünden daha önce kayıt altına alınmış hesaplar arasından seçtirdiği veya müşteriye girdiği IBAN’dır.  ÖBHS tarafından iletilmediği durumda, gönderen hesap bilgisini müşteri tarafından HHS’nin dijital kanalında GKD sonrasında seçilebilir. Bu amaçla ÖBHS arayüzünde HHS seçtirilmelidir.   GKD sonrası HHS ekranında seçilen Hesap Numarası POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir.    Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n İ \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez.  ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir.   GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir.    Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n >> Unvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı 
16sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari unvan bilgisidir. Kolas’tan dönen “account owner” alanı kullanılmalıdır. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen unvan bilgisidir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n ÖBHS tarafından istek mesajında iletilip doğrulanan veya Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen alıcı maskeli IBAN bilgisidir. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n TR.OHVPS.DataCode.KareKodAksTur  sıralı veri değerlerinden birini alır. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını  gösterir. \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR Karekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlattığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden birini alır. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK için biricik olarak oluşturan referans bilgisi  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -\tKarekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n \n >> Açıklama \n odmAcklm \n AN1..50 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi. \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n >> Ödeme Sistemi \n odmStm \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeSistemi  sıralı veri değerlerinden birini alır. \n \n \n >> Beklenen Ödeme Zamanı \n bekOdmZmn \n ISODateTime \n K \n İşlemin yönlendirildiği ödeme sistemi PÖS ise ve PÖS işlem sa
16atleri dışında ise işlemin yapılabileceği ilk zaman bilgisidir. Bu alan ileri vadeli ödemeler için düşünülmüştür. İlk fazda doldurulmasına gerek olmadığı düşünülmektedir. \n \n \n > ÖBHS Masraf Tutarı \n obhsMsrfTtr \n Kompleks:Tutar \n İ \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi (TRY, USD, EUR vb.). \n \n \n >> Tutar \n ttr \n N1..18 \n Z \n ÖBHS’nin işlemle ilgili ÖHK’nın borçlandırılmasını belirttiği masraf tutarı. İşlem Tutarı ile aynı para biriminde olmalıdır.Örneğin 1,20 TRY için tutar alanında “120” değeri iletilir. \n \n \n > HHS Masraf Tutarı \n hhsMsrfTtr \n Kompleks:Tutar \n İ \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi (TRY, USD, EUR vb.). \n \n \n >> Tutar \n ttr \n N1..18 \n Z \n HHS’nin işlemle ilgili ÖHK’nın borçlandırılmasını belirttiği masraf tutarı. İşlem Tutarı ile aynı para biriminde olmalıdır. Örneğin 1,20 TRY için tutar alanında “120” değeri iletilir. \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n İ \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda yanıtta yer alır. \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n İ \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir. \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n İ \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n İ \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n 6.3.\tADIM 2- Ödeme Emri Rızasının Yetkilendirilmesi \n   \n Şekil 6: Ödeme Emri Rızasının Yetkilendirilmesi \n ÖBHS, ÖHK’nın ödeme emrini yetkilendirmesi isteğini iletir. Ödeme emrinin yetkilendirilmesi, HHS tarafından gerçekleştirilen Yönlendirme veya Ayrık GKD yöntemiyle yapılır. \n \n \n Yönlendirmeli doğrulama akışında , ÖBHS ÖHK’yı HHS’ye yönlendirir. \n \n ÖBHS tarafından yönlendirme, bir önceki adımdaki RizaNo’yu içerir. \n Yönlendirmenin RizaNo’yu içermesi sayesinde, HHS hangi ödeme emriyle ilişkili olarak yönlendirme yapıldığını ilişkilendirebilir. \n HHS, ÖHK için GKD sürecini işletir. \n \n ÖHK’yı doğrularsa, \n \n ÖHK -bir önceki adımda seçmediyse- borçlu hesabını seçer. \n HHS, ödeme emri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n HHS, ÖHK’yı “olumlu yönlendirme akışı” ile ÖBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n \n \n \n yonAdr?rizaDrm=Y&yetKod=xx&rizaNo=yy&rizaTip=O&drmKod=zzz\n \n ÖHK’yı doğrulayamazsa, \n1. HHS, ödeme emri rıza kaynağının durumunu “Yetki İptal” olarak günceller. \n2. HHS, ÖHK’yı “olumsuz yönlendirme akışı” ile ÖBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=I&rizaNo=yy&rizaTip=O&drmKod=zzz\n \n HHS tarafında oluşabilecek bir hata durumunun YÖS’e aktarılması gerektiği durumlar olabilir. Bu durumda yonlendirme adresinde hata kodu parametresi zorunlu olarak iletilmelidir. \nHata açıklamalarının neler olabileceği ve YÖS’ün kendi uygulamasında bu hatayı ne şekilde göstereceği aşağıda tariflenmiştir. \n yonAdr?rizaDrm=I&rizaNo=yy&rizaTip=O&rizaIptDtyKod=11&drmKod=zzz\n \n URL’de iletilen “Rıza İptal Detay Kodu” Rıza durumları bölümünde (4. Bölüm) belirtilen hata kodları ile aynı olacak şekilde tasarlanmıştır. GKD sırasında yapılması gereken kontroller 5.3 bölümünde detaylandırılmıştır. \n \n Ayrık doğrulama akışında , HHS, ÖHK’nın ödeme emrini başlattığı uygulamadan farklı olabilecek bir “doğrulama” uygulamasında işlemi doğrulamasını ister.\n \n Ayrık akış ÖBHS’nin farklı bir kanal kullanarak yetkilendirme isteği göndermesiyle başlatılır. \n Bu yetkilendirme isteği, yetkilendirilecek ödeme emri rızasının eşleştirileceği ÖHK’nın bulunması için ilgili veriyi taşır. \n HHS, ÖHK’yı doğrular. \n ÖHK -bir önceki adımda seçmediyse- borçlandırılacak hesabını seçer. \n HHS, ödeme emri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n \n Başarılı GKD sonrasında (rizaDrm=’Y’) ilgili rıza nesnesi için (belirli bir rizaNo) yetkilendirme kodunun (yetKod) alınmasının ardından erişim belirteci erişim adresine POST çağrısı yapılarak yetkilendirme kodu karşılığında erişim belirteci ve yenileme belirteci alınır. POST /erişim-belirteci erişim noktası EK-3’te açıklanmıştır. \n Erişim belirteci alındıktan sonra;
16 HHS, ödeme emri rıza kaynağının durumunu “Yetki Kullanıldı” olarak günceller. \n 6.4.\tADIM 2.1 – Ödeme Emri Rızasının Sorgulanması (isteğe bağlı) \n   \n Şekil 7: “odemeEmriRizasi” nesnesinin sorgulanması (isteğe bağlı) \n GKD işleminin başarıyla tamamlanıp Ödeme Emri Rızasının yetkilendirilmesi esnasında, gönderen hesap seçiminin HHS ekranında yapıldığı durumlar olabilir. Bu durumlarda ödeme emri isteğinde gönderen hesap bilgileri alanının zorunlu olması nedeniyle,  OdemeEmriRizasi  nesnesi sorgulanarak gönderen hesap bilgileri (hesap numarası ve/veya hesap referansı) alınmalıdır. HHS, “ ADIM 2 -Ödeme Emri Rızasının Yetkilendirilmesi ” akışında ÖHK’nın hesapları arasında seçim yapmasını ve seçilen hesap bilgisinin  OdemeEmriRizasi  nesnesine işler. \n GET /odeme-emri-rizasi/{RizaNo} \n ÖBHS, mevcut durumunu kontrol etmek için, oluşturulan bir  OdemeEmriRizasi  kaynağının durumunu isteğe bağlı olarak alabilir. \n Durum \n OdemeEmriRizasi  kaynağı için kullanılabilecek durum göstergeleri şu şekildedir: \n \n Yetki Bekleniyor \n Yetkilendirildi \n Yetki Kullanıldı \n Yetki Ödeme Emrine Dönüştü \n Yetki Sonlandırıldı \n Yetki İptal \n \n Ödeme emri rıza durum değişiklikleri 4.2 bölümünde detaylandırılmıştır. \n BAŞARILI YANIT: \n GET /odeme-emri-rizasi/{RizaNo}  yanıtının (RESPONSE) gövdesinde (BODY)  “OdemeEmriRizasiİstegi” nesnesi kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda Tablo-8’de yer alan parametreleri içeren “OdemeEmriRizasi” oluşturulur. \n Gönderen Hesap Bilgisinin, ADIM 2 (Ödeme Emri Rızasının Yetkilendirilmesi) sonrasında HHS ekranından seçildiği akışta “OdemeEmriRizasi” nesnesi güncellenir ve ÖBHS  GET /odeme-emri-rizasi/{RizaNo}  isteği yaparak güncel gönderen hesap bilgisi bilgisini de içeren “OdemeEmriRizasi” nesnesini çekmelidir. \n Çerçeve sözleşme kapsamında olmayan tek seferlik ödeme işlemlerinde, Kimlik Türü ve Kimlik Verisi bilgilerinin ödeme emri rızası sırasında gönderimi zorunlu değildir. Başarılı GKD sonrası, yani erişim belirteci alındığında, ödeme emri oluşmadan önce, YÖS’ün ödeme emri rızasını sorgulayarak bu bilgileri alması ve ödeme emrini oluştururken Kimlik Türü ve Kimlik Verisi alanlarını dolu olarak göndermesi beklenmektedir.  Ancak rıza durumu “Yetki Bekleniyor - B”, “Yetkilendirildi - Y” ve “Yetki İptal - I” statülerinde ise, ödeme emri rızası sorgulamasında, HHS’nin Kimlik Türü ve Kimlik Verisi bilgisini YÖS ile paylaşmaması gerekmektedir. \n 6.5.\tADIM 3- Ödeme Emrinin Oluşturulması \n   \n Şekil 8: Ödeme Emrinin Oluşturulması \n POST /odeme-emri \n \n ÖHK’nın Güçlü Kimlik Doğrulama ile işlemi yetkilendirmesi sonrasında, ÖBHS OdemeEmri kaynağını oluşturur. \n Ödeme emri (OdemeEmri) uygun ödeme kaynağına POST isteği yapılarak başlatılır.\n \n POST HHS tarafından işlenir: RizaDurumu “Yetki Kullanıldı” ise işleme başlanır. \n POST /odeme-emri-rizasi ile POST /odeme-emri isteklerinde istek alanların aynı olması beklenmektedir. HHS tarafından kontrolü sağlanmalıdır.POST verisindeki Gönderen Hesap Numarası ve Alıcı Hesap Numarasının aynı bankaya aitse HAVALE değilse FAST veya PÖS iş akışına geçilir. \n POST verisinin modele göre kontrolü yapılır (alan kontrolleri) \n POST verisinin mantıksal kontrolleri yapılır (IBAN kontrolü, çapraz alan kontroller) \n OdemeEmriDurumu “Gerçekleşti” / “Gönderildi” / “Gerçekleşmedi” olarak güncellenir. \n \n \n POST başarılı olursa, içerisinde OdemeEmriNo ve OdemeEmriDurumu değişkenleri de bulunan OdemeEmri nesnesi ÖBHS’ye döner ve RizaDurumu değişkenin değeri “Yetki Ödeme Emrine Dönüştü” olarak güncellenir. \n \n BAŞARILI İSTEK: \n Tablo 9: “OdemeEmriIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n HHS tarafından ödeme emri oluşturulması sırasında yapılması gereken kontrol ve işlemler \n FAST A01 PÖS M01 mesaj mapping \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder.  Hata durumunda  TR.OHVPS.Connection.InvalidASPSP  hata kodunu döner. \n Gönderen katılımcı kodu (yani bankanın FAST/PÖS’teki Katılımcı kodu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder.  Hata durumunda  TR.OHVPS.Connection.InvalidTPP  hata kodunu döner. \n YosKod \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. \n \n \n \n \n > Bildirim Adresi \n bldAdr \n AN1..1024 \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi \n \n \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. Ödeme Emri Rizası Nesnesindeki Kimlik Numarası Türü verisi ile aynı olmalıdır. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS, ÖBHS tarafından iletilmesi durumunda Kimlik Verisi üzeriden çapraz kontroller uygulamalı ve Kimlik Verisini temel alarak GKD gerçekleştirmelidir. Ödeme Emri Rizası Nesnesindeki Kimlik Numarası verisi ile aynı olmalıdır. Gerçek kişi tarafından yapılan ödemelerde, 1. HHS, Gönderen Adı ve Gönderen Hesap Numarasını ödeme emri isteğinde (Havale/FAST/PÖS) gönderir. - Gönderen Adı ve diğer tüm müşteri bilgileri, Kimlik Numarası üzerinden elde edillir. Pasaport numarasına ilişkin kontroller HHS'nin halihazırda kullandığı veri, akış ve tabi olduğu diğer düzenlemelerdeki işleyiş ile aynı şekilde ele alınmalıdır. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik verisi bu alanda gönderilebilmesi zorunludur. \n GonKimN / Psp \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur. Ödeme Emri Rizası Nesnesindeki Kurum Kimlik Türü verisi ile aynı olmalıdır. \n \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur. Ödeme Emri Rizası Nesnesindeki Kurum Kimlik Verisi ile aynı olmalıdır. \n GonKimN / VKN \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n Kurum adına yapılan ödemelerde K değerini alır. Kurum Kimlik Türü ve Kurum Kimlik Verisi alanlarının giilmiş olduğu çapraz olarak kontrol edilir.  Ödeme Emri Rizası Nesnesindeki ÖHK Türü ile aynı olmalıdır. \n \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n \n \n >>
16 Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n Ödeme Emri Rizası Nesnesindeki Para Birimi verisi ile aynı olmalıdır. \n \n \n \n >> Tutar \n ttr \n N1..18 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır. Örneğin 1,20 TRY için tutar alanında “120” değeri iletilir. \n Ödeme Emri Rizası Nesnesindeki İşlem Tutarı verisi ile aynı olmalıdır. HHS işlem tutarı ödeme mesajında (Havale/FAST/PÖS) aynen taşınmak durumundadır. \n Ttr \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n \n \n >> Unvan \n unv \n AN3..140 \n Z \n Gönderen kişinin ad soyad ya da ticari unvan bilgisi. \n HHS ve ÖBHS verisi tutarlı olmalıdır.  ÖBHS verisi ile HHS verisinin farklılaşması durumunun ise risk değerlendirme sistemlerine girdi olarak kullanması tavsiye edilir. \n GonAd \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n ÖBHS'nin ön yüzünden seçtirdiği/kullanıcıya girdiği IBAN Hesap numarası ya da Hesap Referansı alanlarından en az birinin dolu olarak gelmesi gerekmektedir. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Gönderen Hesap Numarası verisi ile aynı olmalıdır. \n GonHesN \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n K \n ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başlatılabilir. GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir. Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir. \n \n \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n \n \n >> Unvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari unvan bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen unvan bilgisidir. \n YÖS’ten alıcı ad soyad bilgisi geliyorsa ve HHS'nin kontrolünden başarılı bir şekilde geçti ise HHS'nin tekrar alıcı ad soyad bilgisi için giriş yaptırmasına gerek bulunmamaktadır. \n AlAd \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n Alıcının Hesap Numarası alanıdır (IBAN). Kolay Adres  sorgusunda dönülen adres kaydı yaptırmış olan alıcının maskeli IBAN bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen IBAN bilgisidir. Karekod akışında, FAST Karekod Veri Organizasyonundaki 30-01: alanında tanımlı İş Yeri IBAN verisi kullanılır. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Alıcı Hesap Numarası verisi ile aynı olmalıdır.  Kontroller başarıyla sonuçlanırsa, bilgi FAST/PÖS AlHesN alanına doğrudan aktarır ve FAST/PÖS Alan Katılımcı Kodu (AlKK) olarak Alıcı HHS Kodu kullanılır.  KOLAS sorgusu sonucunda ödeme emrinde iletilen maskeli bilgi ile HHS’nin kendi ödeme emri rızası isteğinde tuttuğu KOLAS sorgusundan dönülen bilgi maskelenerek karşılaştırılır. Eğer aynı değilse uygun hata kodu dönülerek işlem sonlandırılır. \n AlHesN \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n Müşterinin sorgulamak istediği Kolay Adres Tipi değeridir.  TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Kolay Adres Tipi verisi ile aynı olmalıdır. \n \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Kolay Adres Değeri verisi ile aynı olmalıdır. \n FAST (KolasRef) \n \n \n >>>
16 Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Ödemeye özel Referans Bilgisi alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK için biricik olarak oluşturan referans bilgisi -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası -\tKarekod akışında, FAST Karekod Veri Organizasyonundaki -\t62-01: alanında tanımlı Fatura Numarası -\t62-06: alanında tanımlı Müşteri Numarası verilerinden biri kullanılır. \n Ödeme Emri Rizası Nesnesindeki Referans Bilgisi verisi ile aynı olmalıdır. FAST:  KareKod ile başlatılan işlemlerde FAST A01 mesajındaki Karekod Referansı (KrkdRef) alanına karşılık gelir. Bu durumda, FAST A01 mesajı alanları “FAST Mesaj Yapısı ve İşlem Türleri” belgesin uygun şekilde oluşturulur: KareKod (KrKd) bölümündeki Karekod Akış Türü (KrkdAksTur) ve Karekod Referansı (KrkdRef) alanları doldurulmalıdır.  Kişiden kişiye fon aktarımlarında ve e-ticaret işlemelerinde Referans Bilgisi (RefBlg) alanı doldurulur. \n FAST (KrkdRef) ve (RefBlg) \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  Kolay Adresi Sistemi ile birlikte kullanılmaz.  01: FAST katılımcısından dinamik doğrulama hizmeti alınan işyeri ödemesi  02: FAST katılımcısından statik doğrulama hizmeti alınan işyeri ödemesi 03: Kişiden kişiye ödemeler \n Ödeme Emri Rizası Nesnesindeki Kare Kod Akış Türü verisi ile aynı olmalıdır. \n FAST: KrkdAksTur \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını gösterir.  Okunan karekodda referans değeri varsa kullanılması zorunludur. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n Ödeme Emri Rizası Nesnesindeki Karekod Referansı verisi ile aynı olmalıdır.  Çevrimiçi doğrulama hizmeti alınmayan statik karekodlar için Referans numarasının bulunmadığı durumlarda HHS tarafından “NONREF” ifadesi girilir. \n FAST: Karekod Referansı (KrkdRef) \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR Karekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlattığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden birini alır. \n Ödeme Emri Rizası Nesnesindeki Ödeme Kaynağı verisi ile aynı olmalıdır. HHS tarafından ödeme mesajında (FAST/PÖS) aynen taşınmak durumundadır. \n FAST/PÖS: OdmKynk \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. \n Ödeme Emri Rizası Nesnesindeki Ödeme Amacı verisi ile aynı olmalıdır. HHS tarafından ödeme mesajında (FAST/PÖS) aynen taşınmak durumundadır. \n FAST (OdmAmc)/PÖS(OdmAmaci) \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK için biricik olarak oluşturan referans bilgisi  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -\tKarekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n FAST (KrkdRef) ve (RefBlg) \n \n \n >> Açıklama \n odmAcklm \n AN1..50 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi. \n \n FAST/PÖS Acklm \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n \n \n >> Ödeme Sistemi \n odmStm \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeSistemi  sıralı veri değerlerinden birini alır. \n Ödeme Emri Rizası Nesnesindeki Ödeme Sistemi verisi ile aynı olmalıdır. \n \n \n \n >> Beklenen Ödeme Zamanı \n bekOdmZmn \n ISODateTime \n K \n İşlemin yönlendirildiği ödeme sistemi PÖS ise ve PÖS işlem sa
16atleri dışında ise işlemin yapılabileceği ilk zaman bilgisi \n \n \n \n \n > ÖBHS Masraf Tutarı \n obhsMsrfTtr \n Kompleks:Tutar \n İ \n \n \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi (TRY, USD, EUR vb.). \n Ödeme Emri Rizası Nesnesindeki ÖBHS Masraf Para Birimi verisi ile aynı olmalıdır. \n \n \n \n >> Tutar \n ttr \n N1..18 \n Z \n ÖBHS’nin işlemle ilgili ÖHK’nın borçlandırılmasını belirttiği masraf tutarı. İşlem Tutarı ile aynı para biriminde olmalıdır.Örneğin 1,20 TRY için tutar alanında “120” değeri iletilir. \n Ödeme Emri Rizası Nesnesindeki ÖBHS Masraf Tutarı verisi ile aynı olmalıdır. \n \n \n \n > HHS Masraf Tutarı \n hhsMsrfTtr \n Kompleks:Tutar \n İ \n \n \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi (TRY, USD, EUR vb.). \n Ödeme Emri Rizası Nesnesindeki HHS Masraf Para Birimi verisi ile aynı olmalıdır. \n \n \n \n >> Tutar \n ttr \n N1..18 \n Z \n HHS’nin işlemle ilgili ÖHK’nın borçlandırılmasını belirttiği masraf tutarı. İşlem Tutarı ile aynı para biriminde olmalıdır. Örneğin 1,20 TRY için tutar alanında “120” değeri iletilir. \n Ödeme Emri Rizası Nesnesindeki HHS Masraf Tutarı verisi ile aynı olmalıdır. \n \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n İ \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda istekte yer alır. \n \n \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n İ \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir. 4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n İ \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). 4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n İ \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n \n \n \n \n \n BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “OdemeEmri” nesnesi Tablo-10’daki parametrelerden oluşur: \n Tablo 10: “OdemeEmri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. \n \n \n > Bildirim Adresi \n bldAdr \n AN1..1024 \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Emir Bilgileri \n emrBlg \n Kompleks: EmirBilgileri \n Z \n \n \n \n > Ödeme Emri Numarası \n odmEmriNo \n AN1..128 \n Z \n Ödeme Emri nesnesinin UID'sidir. OdemeEmrine İlişkin sorgular bu ID üzerinden yapılır. \n \n \n > Ödeme Emri Zaman \n odmEmriZmn \n ISODateTime \n Z \n Ödeme emrinin FAST, PÖS, havale gibi gerçekleştirileceği ilgili ödeme sistemine iletilme tarihi. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n >>
16 Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n >> Tutar \n ttr \n N1..18 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır. Örneğin 1,20 TRY için tutar alanında “120” değeri iletilir. \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n >> Unvan \n unv \n AN3..140 \n Z \n Gönderen kişinin ad soyad ya da ticari unvan bilgisi. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n ÖBHS tarafından iletilip doğrulanan veya HHS ekranında seçilen Gönderen Hesap Numarası dönülür. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n K \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid)  YÖS bazında farklılaşması gerekmez. ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir. GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir. Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n >> Unvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari unvan bilgisidir. Kolas’tan dönen “account owner” alanı kullanılmalıdır. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen unvan bilgisidir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n Alıcının Hesap Numarası alanıdır (IBAN). Kolay Adres  sorgusunda dönülen adres kaydı yaptırmış olan alıcının maskeli IBAN bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen IBAN bilgisidir. Karekod akışında, FAST Karekod Veri Organizasyonundaki 30-01: alanında tanımlı İş Yeri IBAN verisi kullanılır. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n Müşterinin sorgulamak istediği Kolay Adres Tipi değeridir.  TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  Kolay Adresi Sistemi ile birlikte kullanılmaz.  01: FAST katılımcısından dinamik doğrulama hizmeti alınan işyeri ödemesi  02: FAST katılımcısından statik doğrulama hizmeti alınan işyeri ödemesi 03: Kişiden kişiye ödemeler \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını gösterir.  Okunan karekodda referans değeri varsa kullanılması zorunludur. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden birini alır. \n \n \n >> Ödeme Durumu \n odmDrm \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeDurumu  sıralı veri değerlerinden birini alır. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK için biricik olarak oluşturan referans bilgisi  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -\tKarekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n \n >> Açıklama \n odmAcklm \n AN1..50 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi. \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n >> Ödeme Sistemi \n odmStm \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeSistemi  sıralı veri değerlerinden birini alır. \n \n \n >> Ödeme Sistem Numarası \n odmStmNo \n AN10..50 \n K \n Ödeme başarılı başlatıldıysa, ödemenin başlatıldığı sistemdeki referans numarası. FAST işlemleri için MesRefBlg değeri atanır. Ödeme Hizmeti kullancısına işlemin takibi için gösterilebilir. \n \n \n >> Beklenen Ödeme Zamanı \n bekOdmZmn \n ISODateTime \n K \n İşlemin yönlendirildiği ödeme sistemi PÖS ise ve PÖS işlem saatleri dışında ise işlemin yapılabileceği ilk zaman bilgisi \n \n \n > ÖBHS Masraf Tutarı \n obhsMsrfTtr \n Kompleks:Tutar \n İ \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi (TRY, USD, EUR vb.). \n \n \n >> Tutar \n ttr \n N1..18 \n Z \n ÖBHS’nin işlemle ilgili ÖHK’nın borçlandırılmasını belirttiği masraf tutarı. İşlem Tutarı ile aynı para biriminde olmalıdır.Örneğin 1,20 TRY için tutar alanında “120” değeri iletilir. \n \n \n > HHS Masraf Tutarı \n hhsMsrfTtr \n Kompleks:Tutar \n İ \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi (TRY, USD, EUR vb.). \n \n \n >> Tutar \n ttr \n N1..18 \n Z \n HHS’nin işlemle ilgili ÖHK’nın borçlandırılmasını belirttiği masraf tutarı. İşlem Tutarı ile aynı para biriminde olmalıdır. Örneğin 1,20 TRY için tutar alanında “120” değeri iletilir. \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n İ \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda yanıtta yer alır. \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n İ \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir. \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n İ \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n İ \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n 6.6.\tADIM 3.1- Ödeme Emri Sorgusu (İsteğe bağlı) \n   \n Şekil 9: Ödeme Emri Sorgusu \n GET /odeme-emri
16/{odemeEmriNo} \n ÖBHS, bu erişim adresi aracılığıyla ödeme emrini sorgulayabilir. \n BAŞARILI YANIT: \n GET /odeme-emri/{odemeEmriNo} yanıtının (RESPONSE) gövdesinde (BODY)  “OdemeEmri” nesnesi bulunur. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda Tablo-10’da yer alan parametreleri içeren “OdemeEmri” nesnesi döner. \n 6.7\tHealthcheck API \n GET /health \n HHS’lerin sunacağı bu servis, düzenli olarak BKM tarafından çağırılarak servislerin ayakta olup olmadıklarının kontrolünün sağlanması planlanmaktadır \n Başarılı yanıtta Http 200 kodu dönülmelidir. \n Başarılı Yanıt: \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n status \n status \n AN2..20 \n Z \n “UP”, “DOWN” değerlerini alabilir \n \n \n \n"},{title:"3. Temel Prensipler",frontmatter:{},regularPath:"/v1.0.1/contents/temel-prensipler.html",relativePath:"v1.0.1/contents/temel-prensipler.md",key:"v-432b5bd6",path:"/v1.0.1/contents/temel-prensipler.html",headers:[{level:2,title:"3.1 Genel",slug:"_3-1-genel"},{level:2,title:"3.2.\tİstem (Çağrı) ve Oturum",slug:"_3-2-istem-cagrı-ve-oturum"},{level:2,title:"3.3.\tRESTful API",slug:"_3-3-restful-api"},{level:2,title:"3.4.\tSürüm Yönetimi",slug:"_3-4-surum-yonetimi"},{level:2,title:"3.5.\tKaynak URI Yol Yapısı",slug:"_3-5-kaynak-uri-yol-yapısı"},{level:2,title:"3.6.\tKarakter Kodlama",slug:"_3-6-karakter-kodlama"},{level:2,title:"3.7.\tVeri Formatı",slug:"_3-7-veri-formatı"},{level:2,title:"3.8.\tİstemci Sertifika Yönetimi",slug:"_3-8-istemci-sertifika-yonetimi"},{level:2,title:"3.9.\tYetkilendirme Türleri",slug:"_3-9-yetkilendirme-turleri"},{level:2,title:"3.10. İstek/Cevap Mesajlarında Kullanılan Nesne Yapıları",slug:"_3-10-istek-cevap-mesajlarında-kullanılan-nesne-yapıları"},{level:2,title:"3.11. Sayfalandırma ve Filtreleme",slug:"_3-11-sayfalandırma-ve-filtreleme"},{level:2,title:"3.12. Mesaj İmzalama",slug:"_3-12-mesaj-imzalama"},{level:2,title:"3.13. Durum Kodu",slug:"_3-13-durum-kodu"},{level:2,title:"3.14. Gereksinimlerinin Sınıflandırılması",slug:"_3-14-gereksinimlerinin-sınıflandırılması"},{level:2,title:"3.15. İstek Başlığı",slug:"_3-15-istek-baslıgı"},{level:2,title:"3.16. Yanıt Başlığı",slug:"_3-16-yanıt-baslıgı"},{level:2,title:"3.17. Idempotency Kuralları",slug:"_3-17-idempotency-kuralları"},{level:2,title:"3.18. HTTP Durum Kodları",slug:"_3-18-http-durum-kodları"},{level:2,title:"3.19. Maskeleme Kuralları",slug:"_3-19-maskeleme-kuralları"},{level:2,title:"3.20. Fonksiyonel Olmayan Gereksinimler",slug:"_3-20-fonksiyonel-olmayan-gereksinimler"}],content:' 3. Temel Prensipler  \n Bu bölümde Ödeme Hizmetleri Veri Paylaşım Servisleri (Hesap Bilgisi Hizmeti, Ödeme Emri Başlatma Hizmeti) için tanımlanan temel prensipler açıklanmaktadır. \n 3.1 Genel \n \n \n HHS’ler Yönetmeliğin 59. maddesinin beşinci fıkrası ve Ödeme ve Elektronik Para Kuruluşlarının Bilgi Sistemleri ile Ödeme Hizmeti Sağlayıcılarının Ödeme Hizmetleri Alanındaki Veri Paylaşım Servislerine İlişkin Tebliğin (Tebliğ) 23. maddesinin birinci fıkrası uyarınca, ödeme hizmetleri veri paylaşım servislerini BKM API Geçidi aracılığıyla HBHS ve ÖBHS’ye sunmakla yükümlüdür. \n \n \n Tebliğin 23. maddesinin ikinci fıkrası uyarınca ödeme emri başlatma hizmetinde açık iletişim servisinin tarafları ÖBHS ile HHS’dir. \n \n \n Tebliğin 23. maddesinin üçüncü fıkrası uyarınca hesap bilgisi hizmetinde açık iletişim servisinin tarafları HBHS ile HHS’dir. \n \n \n Yönetmeliğin 60. maddesinin birinci fıkrası uyarınca müşteri, ödeme emri başlatma hizmetini  ödeme hesabının çevrim içi olarak erişilebilir olduğu durumlarda , kullanmayı tercih edebilir. \n \n \n Yönetmeliğin 61. maddesinin birinci fıkrası uyarınca müşteri, hesap bilgisi hizmetini  ödeme hesabının çevrim içi olarak erişilebilir olduğu durumlarda , kullanmayı tercih edebilir. \n \n \n Tebliğin 25. maddesi uyarınca HHS ve YÖS (ÖBHS ve HBHS) arasında bağlantı uçtan uca güvenli bir şekilde sağlanır. Bu amaçla iletim katmanında TLS (asgari 1.2 sürümü) ile şifreli iletişim sağlanır. \n \n \n Tebliğin 23. maddesinin dördüncü fıkrası uyarınca HHS tarafından sunulan ödeme hizmetleri veri paylaşım servislerini kullanan yetkilendirilmiş ödeme hizmeti sağlayıcılarının TCMB tarafından ilgili ödeme hizmeti için yetkilendirilmiş olduğu kontrol edilir. \n \n \n Tebliğin 25. maddesinin beşinci fıkrası uyarınca zaman damgası, 15/1/2004 tarihli 5070 sayılı Elektronik İmza Kanunu kapsamında tanımlanan zaman damgasına dayanır. \n \n \n API alan isimleri Türkçe olarak tanımlanmıştır. Ancak API başlığı (header) alanındaki alan isimleri özelinde, API Geçitleri tarafından otomatik olarak tanınabilmesi gözetilerek, İngilizce isimlendirme tercih edilmiştir. \n 3.2.\tİstem (Çağrı) ve Oturum \n \n \n Her istek biricik istek numarası ve ÖHK’lı işlemler için zaman damgası içerir. Birden fazla istek içeren işlem YÖS tarafından belirlenen çağrıya özgü talep kimliği (istek numarası: x-request-id) ve işlem akışına özgü talep kimliği (işlem grup numarası: x-group-id) değerleri kullanılarak HHS tarafından bir oturum yaklaşımı ile sürdürülür (Bknz. 3.15 İstek Başlığı). \n \n \n Oturum takibi ise işlem grup numarası ile yapılır. İşlem grup numarası da ÖHK’lı işlemler için zaman damgası ile birlikte ilgili tüm işlem verilerini içerecek şekilde k
16ayıt altına alınır. \n \n \n Örneğin, bir ödeme emri başlatma işlemi birden fazla istekten oluşur. Her istek yukarıda belirtildiği gibi biricik istek numarası ve ÖHK’lı işlemler için zaman damgası içerir. Ancak işlemin oturum bütünlüğü işlem grup numarası ile sağlanır. \n \n \n Taraflar açtıkları oturumu işlem bütünlüğünü sağlayacak süre içerisinde açık tutar ve işlem biter bitmez kapatır. \n 3.3.\tRESTful API \n API’ler, dünya ölçeğinde yaygın bir şekilde kullanılan Temsili Durum Transferi (Representational State Transfer, REST) mimari tarzı ve JavaScript Nesne Notasyonu (JavaScript Object Notation, JSON) veri formatlarına uygun olarak geliştirilir. En üst seviye Veri Tanımlama Dili (Data Description Language) ve en iyi uygulama örnekleri için  ^JSON Şeması  temel alınır. \n 3.4.\tSürüm Yönetimi \n API sonraki aşamalarda doğabilecek gereksinimleri ve daha karmaşık kullanım durumlarını karşılamak için sürümler halinde geliştirilir ve bu durum tasarım sırasında göz önünde bulundurulur. \n API v1.0 sürümünde ; \n \n Kapsamdaki ödeme hesapları : Vadesiz TL, yabancı para hesapları (gerçek ve tüzel kişilere ait ödeme hesapları), Kredili Mevduat Hesabı \n Tekil ödeme (Virman/Havale/FAST/Müşterilerarası TL Aktarım Sistemi)\n \n Virman ve havale işlemleri kapsamında yabancı para transferi yapılabilir. \n \n \n Hesap bilgisi hizmetleri\n \n Temel veya ayrıntılı hesap bilgisi \n Bakiye \n Gerçekleşen işlemler için Hesap hareketleri \n \n \n Karekodlu ödemelerdeki 01, 02 ve 03 akış türleri\nyer almaktadır. \n \n Her sürüm değişikliğinde bir önceki sürüm belirli bir süre desteklenecektir. Diğer bir ifadeyle, sadece belirli bir süre için mevcut ve bir önceki sürüm aynı anda erişilebilir olacaktır. \n 3.5.\tKaynak URI Yol Yapısı \n YÖS’lerin başlattığı çağrılarda URI yolu aşağıdaki yapıyı takip eder: \n [hhs-yol-ön-eki]/ohvps/ [kaynak-grubu]/ [sürüm]/ [kaynak]/[kaynak-no]/[alt-kaynak] \n Bu, aşağıdaki unsurlardan oluşur: \n \n [hhs-yol-ön-eki] \nİsteğe bağlı, HHS\'ye özgü yol ön ekini ifade eder. \nBKM API geçidi üzerinden yapılan çağrılarda BKM tarafından belirlenen sistem adı ve yol ön eki kullanılır. \n ohvps \nSabit metin “ohvps” (Ödeme Hizmetleri Veri Paylaşım Servisleri kısaltması) \n [kaynak-grubu] \nKaynak grubu, API’ye erişmek için kullanılan ödeme hizmetine (HBH, ÖBH) göre erişim adresi (end point) grubunu tanımlar (“hbh” veya “obh”). \n [sürüm] \nAPI sürümünü ifade eder (“/s[ana-sürüm].[alt-sürüm]/”). \n [kaynak]/[kaynak-no] \nKaynak detaylarını ifade eder. \n [alt-kaynak] \nAlt kaynak detaylarını ifade eder. \n \n HHS, tüm kaynakları için aynı katılımcı yolu ön ekini ve sistem adını kullanmalıdır. \n BKM API’lerine erişmek isteyen uygulamaların yetkilerine göre aşağıdaki API’lere abone olmaları gerekmektedir: \n OBH: \n https://apigw-prod.bkm.com.tr/api/main/ohvps/obh/s1.0/odeme-emri-rizasi \n https://apigw-prod.bkm.com.tr/api/main/ohvps/obh/s1.0/odeme-emri \nHBH: \n https://apigw-prod.bkm.com.tr/api/main/ohvps/hbh/s1.0/hesap-bilgisi-rizasi \n https://apigw-prod.bkm.com.tr/api/main/ohvps/hbh/s1.0/hesaplar \n https://apigw-prod.bkm.com.tr/api/main/ohvps/hbh/s1.0/hesaplar/1234/islemler \n https://apigw-prod.bkm.com.tr/api/main/ohvps/hbh/s1.0/hesaplar/1234/bakiye \nGKD \n https://apigw-prod.bkm.com.tr/api/main/ohvps/gkd/s1.0/erisim-belirteci \nHHS – YÖS API \n https://apigw-prod.bkm.com.tr/api/main/hhs-api/s1.0/hhs \n https://apigw-prod.bkm.com.tr/api/main/hhs-api/s1.0/hhs/1234 \n https://apigw-prod.bkm.com.tr/api/main/yos-api/s1.0/yos \n https://apigw-prod.bkm.com.tr/api/main/yos-api/s1.0/yos/1234 \n HHS’lerin sağlayacakları API’lerdeki URI çevrimi örnekleri aşağıdaki gibidir. \n \n https://xbank.com.tr/api-portal/ohvps/obh/s1.0/odeme-emri \n https://apigw-prod.bkm.com.tr/api/main/ohvps/obh/s1.0/odeme-emri  (BKM API) \n https://xbank.com.tr/api-portal/ohvps/hbh/s1.0/hesap-bilgisi-rizasi \n https://apigw-prod.bkm.com.tr/api/main/ohvps/hbh/s1.0/hesap-bilgisi-rizasi  (BKM API) \n https://xbank.com.tr/api-portal/ohvps/hbh/s1.1/hesaplar \n https://apigw-prod.bkm.com.tr/api/main/ohvps/hbh/s1.1/hesaplar   (BKM API) \n https://xbank.com.tr/api-portal/ohvps/hbh/s1.1/hesaplar/1234 \n https://apigw-prod.bkm.com.tr/api/main/ohvps/hbh/s1.1/hesaplar/1234  (BKM API) \n \n BKM API Geçidi üzerinden yapılan çağrılarda, istek başlığında bulunan “x-aspsp-code” (isteğin iletildiği Hesap Hizmeti Sağlayıcısının kodu) değerine göre HHS API’de standart olarak tanımlanmış olan “basePath” bilgisine servis uzantısı eklenerek HHS’ye yönlendirme yapılır. \n Örneğin, istek başlığında  xbank ’ın kodu varsa, YÖS tarafından yapılan \n https://apigw-prod.bkm.com.tr/api/main/ohvps/hbh/s1.0/hesap-bilgisi-rizasi \nçağrısı BKM API Geçidi tarafından karşılanarak \n https://xbank.com.tr/api-portal/ohvps/hbh/s1.0/hesap-bilgisi-rizasi \nadresine yönlendirilir. \n Bu örnekte,  https://xbank.com.tr/api-portal  basePath bilgisi HHS tarafından HHS API’ye girilen değerdir. \n 3.6.\tKarakter Kodlama \n API istekleri ve yanıtlarında UTF-8 karakter kodlaması kullanılır. Bu, JSON için varsayılan karakter kodlamasıdır. \n Ancak, bir HHS\'nin kendi uygulamaları ve ödeme başlattığı ödeme sistemi (FAST vb.)  bazı UTF-8 karakterlerini kabul etmeyebilir. HHS, UTF-8 kodlaması içeren bir mesajı işleyemez ve reddederse, HTTP 400 (Hatalı İstek) durum ko
16du ile yanıt vermelidir. \n 3.7.\tVeri Formatı \n \n Açık bankacılık kapsamındaki zaman damgası, ISO 8601 standartına uygun olarak yerel saat bilgisini ve timezone bilgisini de içerecek şekilde " yyyy-MM-dd’T’HH:mm:ssXXX " formattaki haliyle hazırlanmalıdır. \n \n Örnek:  "timestamp": "2021-05-30T20:34:15+03:00" \nyyyy : 4 hane yıl \nMM : Başa ‘0’ eklenmiş, toplam 2 hane ay \ndd    : Başa ‘0’ eklenmiş, toplam 2 hane gün \nHH    : Başa ‘0’ eklenmiş, toplam 2 hane saat (0-23 arası değer alabilir.) \nmm : Başa ‘0’ eklenmiş, toplam 2 hane dakika \nss    : Başa ‘0’ eklenmiş, toplam 2 hane saniye \nXXX : ISO 8601 Time zone \n \n JWT veri paketlerinde kullanılan zaman damgaları, 1 Ocak 1970 Saat 00:00:00 (UTC) anından itibaren geçen saniye sayısı değerini (Unix Time) kullanır. \n Bir HHS, tarihi yanlış biçimlendirilmiş bir istek aldığında, 400 (Hatalı İstek) durum kodu ve ilgili hata kodu ile yanıt verir. \n Tüm tutar alanları tam sayı olarak, para birimleri ise ISO4217’deki 3 harfli kodla iletilir. Tutar alanı, tutara ilişkin para biriminin ISO4217’de tanımlı olan tam sayıdan sonraki uzunluğuna göre formatlanarak okunmalıdır. Örneğin 1,20 TRY için tutar alanında “120” değeri iletilir, para birimi TRY olduğu için son iki basamağın kuruş olduğu sonucuna ulaşılacaktır. 12000 Japon Yeni için, ISO4217’de JPY para biriminin ondalık kısmı olmadığından tutar alanında 12000 değeri iletilir. \n Sıralı veri tipleri büyük küçük harfe duyarlıdır. \n Altın para birimi ISO4217’ye uygun biçimde “XAU” cinsinde ve virgülden sonra 2 basamak olacak şekilde iletilmelidir. Örneğin içerisinde "13,5 gr" altın olan hesap için bakiye 1350 gönderilmelidir. \n 3.8.\tİstemci Sertifika Yönetimi \n ÖHVPS kapsamında YÖS ve HHS’lerin güvenli bir şekilde tanımlanması amacıyla elektronik sertifikalar kullanılır. \n ÖHVPS kapsamında tarafların güvenli bir şekilde tanımlaması, uçtan uca güvenli iletişim, mesaj şifreleme ve mesaj imzalama işlevleri 15/1/2004 tarihli ve 5070 sayılı Elektronik İmza Kanunu’nda açıklanan elektronik sertifikalar kullanılarak sağlanır. Elektronik sertifikada Türkiye Cumhuriyet Merkez Bankası tarafından verilen kuruluş kodu ve kuruluşun türüne dair bilgiler bulunur. \n BKM API Geçidi üzerinden yapılan erişimlerde YÖS ve HHS’lere önceden dağıtılmış olan istemci sertifikaları kullanılarak tarafların (sunucu) kimliklerinin doğrulanması sağlanacaktır. İstemci sertifikaları hem test hem de üretim ortamında kullanılacaktır. Sertifikaların işlevselliği ve geçerliliği sertifikasyon sürecinde de sınanacaktır. Söz konusu sertifikaların dağıtım prosedürleri ve kullanımlara yönelik açıklamalar EK-3’te yer verilmiştir. \n 3.9.\tYetkilendirme Türleri \n BKM API Geçidi üzerinden yapılan çağrılarda iki temel yetkilendirme türü kullanılır: \n 1.\tİstemci Kimlik Bilgileri:  Müşteri onayının gerekmediği, sadece YÖS’ün tanımlanıp doğrulandığı API çağrılarında kullanılır. YÖS’ün yetkilendirilmiş olduğu ve faaliyet izninin yaptığı hizmet çağrısına uygun olduğu kontrol edilir.  Bu amaçla, YÖS’lere clientId ve clientSecret tahsis edilecektir. YÖS’ler ilgili clientId ve clientSecret ile sadece yetkilendirilmiş oldukları servislere erişebileceklerdir. YÖS’ler kendilerine BKM tarafından sunulacak API’yi, kendi clientID ve clientSecret değerleri ile sorgulayarak “İstemci Kimlik Bilgileri” belirtecini (access token) elde edeceklerdir.\nHHS’ler de BKM API geçidi üzerindeki YÖS API’sini sorgulama maksadı ile BKM API Geçidine geldiklerinde, kendilerine atanmış olan clientID ve clientSecret bilgileri ile yetki kontrolleri yapılır.\nHHS’ler kendilerinden alınacak username ve password değerleri kullanılarak oluşturulacak basic authentication metodu ile servislerini sunacaklardır. \n 2.\tYetkilendirme Kodu:  YÖS’ün doğrulanmasının yanısıra müşterinin GKD ile doğrulanması gereken API çağrılarında kullanılır. Müşteri doğrulanarak yetkilendirme kodu oluşturulması HHS’nin yetkilendirme arayüzüne yönlendirilir. GKD’nin başarıyla tamamlanması sonrasında yetkilendirme kodu YÖS’e dönülür. YÖS daha sonra HHS’nin  erişim belirteci  (access token) erişim adresini (EK-3: POST /erisim-belirteci) çağırmak suretiyle yetkilendirme kodunu bir erişim belirteci (access token) ile değiştirerek ilgili kaynakları kullanabilir. \n Ödeme emri başlatma ve hesap bilgisi hizmetlerinde hangi yetkilendirme türlerinin kullanılacağı bilgisi, ilgili başlıklardaki erişim adresleri (endpoints) tablolarında yer almaktadır. \n erisim-belirteci  erisim noktasından elde edilen  erisimBelirteci  ilişkilendirildiği nesne veya işlem için gönderilen POST isteği başlığında  x-access-token  alanında iletilir.\nBelirli bir süre için tanımlanan erişim belirteci (access token) değerinin yenileme belirteci (refresh token) ile yenilenmesi gerekir. \n Erişim adreslerinde kullanılan yetkilendirme türü ilgili erişim adresi tablolarında belirtilmiştir. \n 3.10. İstek/Cevap Mesajlarında Kullanılan Nesne Yapıları \n İstek ve Cevap mesajlarında kullanılacak olan nesneler tüm elemanlarını kapsayacak şekilde Ek-1 de listelenmiştir. Tüm listelenen elemanlar açısından (Uç nokta mesaj yapılarının belirtildiği tablolarda belirtildiği üzere) alanın Zorunlu (z) veya İsteğe Bağlı (İ) olma durumlarına göre bazı alanlar gönderilebilir veya gönderilmeyebilir. \n 3.11. Sayfalandırma ve Filtreleme \n Sayfalandırma \n Çağrıya dönülen kaynak nesnesi içerisindeki kayıtlar bir sayfalandırma yapısı ile ç
16ağrılacak şekilde istek oluşturulur. \n Oluşturulacak isteğin içerisinde parametreler ile filtreleme, sayfa başına gösterilecek kayıt sayısı ve hangi sayfanın önyüzde gösterileceği bilgileri erişim noktasına iletilir ve ilgili kayıtlar cevap olarak alınır. \n Filtreleme \n HHS, birden çok kayıt dönülmesi gereken GET çağrılarında sınırlı filtreleme desteği sağlamalıdır. Filtre parametreleri her zaman kaynak nesnesinin belirli alanlarına özgüdür ve nesne için tanımlanan kurallara uymalıdır. \n 3.12. Mesaj İmzalama \n Elektronik imzalar, ÖHVPS API’de gerçekleştirilen işlemlerin ve taşınan verilerin bütünlük ve inkâr edilemezliğini destekler. İmzaların kaynak bazında hangi istek ve yanıtlara uygulandığı belirlidir. \n API yalnızca TLS\'ye dayanırsa, dijital kayıtları ve inkâr edilemezlik kanıtlarını tutmak zor olur. Bu nedenle, TLS\'ye dayanmayan bir inkâr edilemezlik çözümü olarak API isteğinin HTTP başlığında bir JWS kullanılarak sağlanabilir. \n HTTP isteğinin gövdesinin hash fonksiyonu (SHA256) ile özeti alınacaktır. Elde edilen özet, asimetrik anahtarları destekleyen bir algoritma kullanılarak imzalanacak ve JWS elde edilecektir. \n Bir istek, YÖS\'nin özel anahtarı ile imzalanacak ve bu isteğe karşılık gelen yanıt, HHS\'nin özel anahtarı tarafından imzalanacaktır. \n Tüm API istekleri ve yanıtları imzalanmaz. Mesaj imzalamanın zorunlu olup olmadığı, desteklenip desteklenmediği her API özelinde belirlenir. \n Anahtar Deposu \n HHS\'ler ve YÖS\'ler tarafından güvenilen bir Güven Otoritesi (Trust Anchor), taraflar için bir genel anahtar deposu sağlamaktan sorumludur. \n Güven Otoritesi, taraflardan herhangi birisinin oluşturduğu bir anahtar çiftinin açık bölümünü saklayan merkezi bir dizin (BKM tarafından tutulan merkezi kayıt sistemi vb.) olacaktır. \n Mesajları doğrulamak için tarafların genel anahtarlarının paylaşılması için BKM bir servis sağlayacaktır. HHS API olarak adlandırılımış olan bu servis ile HHS ve YÖS listelerine ulaşılabildiği gibi doğrulama işlemi için ihtiyaç duyulacak olan genel anahtarlara da bu servis üzerinden erişilebilinecektir. \n İlgili Mesaj şifreleme için genel akış, Ek-5 bölümünde detaylarıyla paylaşılmaktadır. \n 3.13. Durum Kodu \n API’ler, iki farklı amaca hizmet eden iki durum kodu kullanır: \n \n HTTP Durum Kodu, API çağrısının (kaynaktaki HTTP işlemi) sonucunu yansıtır. \n Bazı kaynak payload’larındaki Durum alanı, kaynakların durumunu yansıtır. \n 3.14. Gereksinimlerinin Sınıflandırılması \n Erişim adreslerinin ve alanların kullanımı Zorunlu(Z), İsteğe Bağlı(İ) veya Koşullu(K) olabilir. Kullanımlara ilişkin durumlar ve kullanımın (K) koşullu olduğu duruma ilişkin açıklamalar ilgili tablolarda belirtilmiştir. \n İstek ve yanıtta kullanılacak başlık isimleri, ilgili RFC dokümanlarında ve aşağıdaki tabloda yer aldığı şekilde kullanılacaktır.  Uygulamaya özelleşmiş başlıklar "X-" ile başlayacaktır. Başlık isimlerinde yer alacak kısaltmalar (örn. PSU, ASPSP gibi) tamamı büyük harfle yazılacak şekilde tanımlanacaktır. Başlık isimleri büyük – küçük harfe duyarlı olmamalıdır. Örneğin x-request-id ya da X-Request-ID olarak gönderilmiş olan bir istek başlığı değişkeni, sunucu tarafında hata vermeyecek şekilde işlenebilmelidir. \n 3.15. İstek Başlığı \n Tablo 2: İstek Başlığında Yer Alan Veriler \n \n \n \n Başlık İsimleri \n Format \n Notlar \n POST \n GET \n DELETE \n \n \n \n \n X-Request-ID \n AN1..36 \n İsteği başlatan YÖS tarafından belirlenen çağrıya özgü talep kimliği. İstek numarası.   Örnek: Ödeme emri başlatma iş akışının her adımda farklı “x-request-id” değeri kullanılır.   Çağrıların aynı yanıtı dönmesinin beklendiği durumlarda (idempotent işlemlerde) aynı değer ile çağrı yapılır. \n Z \n Z \n Z \n \n \n X-Group-ID \n AN1..36 \n İsteği başlatan YÖS tarafından belirlenen işlem akışına özgü talep kimliği. İşlem grup numarası.  Aynı rıza no’ya ait tüm isteklerde aynı x-group-id bilgisi değeri gönderilmelidir. Örnek: Ödeme emri başlatma/hesap bilgisi iş akışının her adımında aynı “x-group-id” değeri kullanılır. \n Z \n Z \n Z \n \n \n Content-Type \n AN1..20 \n Standart HTTP Başlığı; Talepte sağlanan payload’ın biçimini temsil eder: application/json  (Başka bir değere ayarlanırsa, HHS, 415 Desteklenmeyen Ortam Türü (Unsupported Media Type) ile yanıt vermelidir) \n İ \n - \n 
16- \n \n \n X-ASPSP-Code \n AN4 \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n Z \n Z \n Z \n \n \n X-TPP-Code \n AN4 \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur \n Z \n Z \n Z \n \n \n PSU-Auth-Date \n ISODateTime \n ÖHK’nın YÖS üzerinde en son oturum açtığı saat. [RFC7231] Örneğin:  auth-date: Tue, 11 Sep 2012 19:43:31 GMT \n İ \n İ \n İ \n \n \n PSU-IP-Adress \n AN7..15 \n ÖHK YÖS üzerinde oturum açmışsa, işlemi başlattığı cihazın IP adresi. \n İ \n İ \n İ \n \n \n PSU-IP-Port \n AN1..5 \n ÖHK YÖS üzerinde oturum açmışsa, işlemi başlattığı cihazın Port adresi. \n İ \n İ \n İ \n \n \n PSU-GEO-Location \n AN1..36 \n ÖHK’nın işlemi başlattığı cihazın konum bilgisi. RFC2426 standartına uygun olarak paylaşılmalıdır. Örneğin  GEO:"<enlem >, <boylam>GEO:52.506931,13.144558 \n İ \n İ \n İ \n \n \n PSU-User-Agent \n AN 1.. 255 \n ÖHK’nın işlemi başlattığı cihazın sağladığı user-agent bilgisi. (Tarayıcı, versiyon, işletim sistemi bilgileri) \n İ \n İ \n İ \n \n \n PSU-Timestamp \n ISODateTime \n ÖHK’nın işlemi başlattığı cihazın tarih saat içeren zaman bilgisi. \n İ \n İ \n İ \n \n \n PSU-Device-ID \n AN5..40 \n ÖHK işlemi mobil uygulama aracılığıyla başlattıysa, kullanılan mobil uygulama ilk yüklendiğinde oluşturulan tekil cihaz veya uygulama belirteci. ÖHK cihazının UUID değeri kullanılabilir. \n İ \n İ \n İ \n \n \n PSU-Device-Data \n AN1..1024 \n ÖHK’nın işlemi başlattığı mobil cihaza ait veriler.  Örnek alanlar:   - Platform - (Android, iOS, Windows 10 Mobile)  - Device Model   - OS Name   - OS Version - Locale - Time zone \n İ \n İ \n İ \n \n \n PSU-Initiated \n AN1 \n İşlemin ÖHK tarafından başlatılması durumunda E , sistem tarafından başlatıldığı durumda H değerini alması beklenir.   İşlemler servisinde yapılacak sistemsel sorgulardaki işlem limitlerini kontrol amacıyla kullanılır. \n Z \n Z \n Z \n \n \n Authorization \n AN1..4096 \n YÖS ile BKM API Gateway arasındaki otorizasyon için kullanılan token bilgisidir.  Yekilendirme türlerinden İstemci Kimlik Bilgileri’ni adresler. \n Z \n Z \n Z \n \n \n X-Access-Token \n AN1..4096 \n ÖHK’nın GKD sürecinde doğrulanması sonrasında kullanılan erişim simgesi. Yetkilendirme türlerinden Yetkilendirme Kodu (GKD)’nu adresler. \n İ \n İ \n İ \n \n \n X-JWS-Signature \n AN1..4096 \n Payload gövdesinin ayrılmış bir JWS imzasını içeren üstbilgi.  Bu başlığın ne zaman belirtilmesi gerektiği hususu ilgili endpoint için belirtilmiştir. \n K (Kullanılan API ve methoda göre kullanılır.) \n K \n K \n 3.16. Yanıt Başlığı \n Tablo 3: Yanıt Başlığında Yer Alan Veriler \n \n \n \n Başlık İsimleri \n Format \n Notlar \n Kullanım Durumu \n \n \n \n \n X-Request-ID \n AN1..36 \n İsteği başlatan YÖS tarafından belirlenen çağrıya özgü talep kimliği. İstek numarası    İlgili istek başlığındaki bilgi geri dönülür. \n Z \n \n \n X-Group-ID \n AN1..36 \n İsteği başlatan YÖS tarafından belirlenen işlem akışına özgü talep kimliği. İşlem grup numarası. İlgili istek başlığındaki bu değer geri dönülür. \n Z \n \n \n X-ASPSP-Code \n AN4 \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n Z \n \n \n X-TPP-Code \n AN4 \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur \n Z \n \n \n Content-Type \n AN1..20 \n Standart HTTP Başlığı; Talepte sağlanan payload’ın biçimini temsil eder:  application/json \n İ \n \n \n X-JWS-Signature \n AN1..4096 \n JWS imzasını içeren üstbilgi. Bu başlığın hangi yanıtlar için kullanılması gerektiği ilgili endpoint için belirtilmiştir. \n K \n \n \n Retry-After \n AN 1..255 \n YÖS’ün bir isteği yeniden denemeden önce beklemesi gereken süreyi (saniye cinsinden) gösterir. HHS, 429 HTTP durum ko
16du (Too Many Requests) ile döndüğü yanıtların başlığında bu bilgiyi dönmelidir. \n K \n \n \n x-total-count \n N 1..18 \n Hesaplar, İşlemler ve Bakiye servislerinde sayfalama kullanıldığı durumda, sorgu sonucu dönecek toplam kayıt sayısı bilgisi, bu alanda HHS isteğine bağlı olarak gönderilebilir. \n İ \n \n \n Link \n 1..4096 \n “Link” alanının çoklu sayfa yapısı olması durumunda gönderilmesi zorunludur.  Sayfalama yapısı kullanıldığında gelen yanıtta birden fazla sayfa var ise; önceki, sonraki, ilk, son sayfalara gitmek için gerekli referanslar link headerında aşağıdaki örnekteki gibi doldurulabilir.  x-total-count alanının gönderimi isteğe bağlı olduğu için; Link içerisindeki son sayfa bilgisi  (last) isteğe bağlı hale getirilmiştir. “Önceki”( prev) ve “Sonraki” (next) adımlarının uygun olan her durumda yer alması zorunludur. İlk sayfada “Önceki” seçeneği olmamalı, son sayfada ise “Sonraki” seçeneği olmamalıdır.    </ohvps/hbh/s1.0/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=6&syfKytSayi=100>; rel="next",  </ohvps/hbh/s1.0/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=4&syfKytSayi=100>; rel="prev",  </ohvps/hbh/s1.0/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=14&syfKytSayi=100>; rel="last",  </ohvps/hbh/s1.0/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=0&syfKytSayi=100>; rel="first" \n K \n 3.17. Idempotency Kuralları \n YÖS’ün aşağıdaki durumlarda aynı istek numarası (x-request-id) ve aynı veri gövdesiyle çağrıyı tekrarlaması; HHS’nin de bu durumlarda aynı yanıtı dönmesi gereklidir. \n \n HHS’nin yanıtı kesinti/arıza nedeniyle YÖS’e ulaşmaz ve zaman aşımı söz konusu olması, \n ÖHK, YÖS uygulaması üzerinden çift tıklama ile mükerrer defa HHS API’lerini çağırılması,\n(API kontrollerinden önce YÖS uygulamasının, çift tıklama kontrolü yapması önerilmektedir.) \n YÖS, yanıt almasına rağmen işleyemeden kaybedilmesi, \n \n durumlarında HHS aşağıdaki kuralları işletir: \n \n HHS gelen istek numarasını ve veri gövdesini birleştirerek checksum değeri üretir. \nchesksum değeri x-request-id|request.body ‘nin hash algoritmalarından (CRC32,MD5 vb)  geçirilerek üretilebilir. \n HHS bu checksum değeri ile YÖS’e dönmüş olduğu yanıtı 5 dk boyunca saklar.  Saklama yöntemi olarak veri tabanı veya önbellek araçları kullanılabilir. \n YÖS aynı istek numarası ve aynı veri gövdesi ile yeni bir çağrı yaptığında, aynı checksum değeri üretileceği için 5dk boyunca bu değere karşılık gelen yanıtı döner. \n 5 dk sonrasında istek numarası veya veri gövdesi değişmemiş olsa dahi bu HHS tarafından yeni istek olarak kabul edilir. \n \n Aşağıdaki Public Post işlemleri için bu kural setinin işletilmesi gerekmektedir: \n 1- Ödeme emri rızası oluşturma \n2- Erişim belirteci oluşturma \n3- Ödeme emri \n4- Hesap bilgisi rızası oluşturma \n 3.18. HTTP Durum Kodları \n RFC 2616\'da belirlenmiş olan durum kodları (status code) gönderilen isteğin durumunu YÖS’a standart bir şekilde ifade eder. Eğer bir hata varsa hatayı, gönderilen istek başarılı bir şekilde işlem gördüyse ona ilişkin durumu aktarır. Durum kodları genel olarak 5 kategoridedir. \n \n 1xx Bilgi \n 2xx Başarılı \n 3xx Yönlendirme \n 4xx İstemci Hatası \n 5xx Sunucu Hatası \n \n Sıralı (Enumarated) Hata Tipleri: \n \n TR.OHVPS.Resource \n \n ⇨\tInvalidFormat \n ⇨\tConsentMismatch \n ⇨\tNotFound \n ⇨\tInvalidSignature \n ⇨\tMissingSignature \n ⇨\tMethodNotAllowed \n ⇨\tNotAcceptable \n ⇨\tUnsupportedMediaType \n ⇨\tConsentRevoked \n \n \n \n TR.OHVPS.Business \n \n ⇨\tInvalidContent \n ⇨\tInvalidAccount \n \n \n \n TR.OHVPS.Connection \n \n ⇨\tInvalidCertificate \n ⇨\tExceededRate \n ⇨\tInvalidTPP \n ⇨\tInvalidASPSP \n ⇨\tInvalidToken \n ⇨\tInvalidTPPRole \n \n \n \n TR.OHVPS.Server \n \n ⇨\tInternalError \n ⇨\tServiceUnavailable \n \n \n TR.OHVPS.Resource.InvalidFormat hatası alındığı durumda; fieldErrors nesnesi içerisinde verilecek hata kodları : \n \n TR.OHVPS.Field \n \n ⇨\tMissing \n ⇨\tInvalid \n \n \n Veri Tipi Örneği: \n { \n   "id" :   "2b5f0fb2-730b-11e8-adc0-fa7ae01bbebc" , \n   "path" :   "/ohvps/s1.1/obh/odeme-emri-rizasi" , \n   "timestamp" :   "2020-06-13T18:24
16:38" , \n   "httpCode" :   400 , \n   "httpMessage" :   "Bad Request" , \n   "moreInformation" :   "Resource Schema validation error" , \n   "moreInformationTr" :   "Şema kontrolleri başarısız" , \n    "errorCode" :   "TR.OHVPS.Resource.InvalidFormat" , \n   \n   "fieldErrors" :   [ \n            { \n                  "objectName" :   "odemeEmriRizasi" , \n                  "field" :   "kmlkNo" , \n                  "messageTr" :   "boyut \'6\' ile \'30\' arasında olmalı" , \n                  "message" :   "size must be between \'6\' and \'30\'" , \n                  "code" :   "TR.OHVPS.Field.Invalid" \n               } , \n               { \n                  "objectName" :   "odemeEmriRizasi" , \n                   "field" :   "prBrm" , \n                   "messageTr" :   "boş değer olamaz" , \n                   "message" :   "must not be null" , \n                   "code" :   "TR.OHVPS.Field.Missing" \n               } ] \n } \n \n Veri Tipi Örneği: \n Zorunlu header alanlarından biri ya da birkaçı eksik olarak gönderilirse aşağıdaki gibi bir hata dönüşü gerçekleşebilir. \n \n { \n     "httpCode" :   "400" , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "One or more required API parameters are missing in the API request." \n } \n\n \n Tablo 4: HTTP Durum Kodları \n \n \n \n HTTP Durum \n İstek Sonucu ve Açıklamalar \n POST \n GET \n DELETE \n \n \n \n \n 200 OK \n İstek Başarıyla Tamamlandı. Kaynak güncellemek için yapılan (örneğin, PUT) ve başarıyla tamamlanan isteklerinde kullanılır. \n H \n H \n H \n \n \n 201 Created \n İstek Başarılı Oldu. Kaynak yaratma isteği (örneğin, POST /ödeme-emri-rizasi) başarıyla sonuçlandı. \n E \n H \n H \n \n \n 204 No Content \n Silme işlemi başarıyla tamamlandı. Kaynak silme isteği (örneğin,  DELETE /hesap-rizasi/{RizaNo} ) başarıyla sonuçlandı. \n H \n H \n E \n \n \n 400 Bad Request \n İstekte bozuk, eksik veya uyumlu olmayan JSON gövdesi, URL parametreleri veya başlık alanları var.  İstekle başlatılan işlem yapısal bozukluk, eksik veya tutarsız veri veya HHS tarafındaki kontrollerin hatalı sonuçlanması nedeniyle hata ile sonuçlanır ve hataya ilişkin veriler hata nesnesi içerisinde dönülür. \n E \n E \n E \n \n \n 401 Unauthorized \n Yetkilendirme başlığı eksik, hatalı veya geçersiz olduğundan istek yetkilendirilmediğinde ve erişim reddedildiğinde http 401 kodu dönülmelidir. \n E \n E \n E \n \n \n 403 Forbidden \n Erişim belirtecinin veya rızanın kapsamı uyuşmuyor. YÖS bir hesaba/işlem kaynağına erişmeye çalışır ve YÖS, istenen kaynağa erişmek için geçerli izinlere sahip bir rızası yoktur.  Örneğin; hesap bilgisi rızası bakiye izni almamıştır ancak /bakiyeler adresinden istekte bulunmuştur. \n \n \n \n \n \n 404 Not Found \n **HHS geçerli bir API erişim adresini sağlamıyorsa, o URL\'ye gelen istekler için 404 (Bulunamadı) ile yanıt vermelidir.**YÖS, uygulama esaslarında tanımlanmayan bir 
16kaynak için bir URL\'ye erişmeye çalışırsa (örneğin, GET /yurtdisi-odeme), HHS, 404 (Bulunamadı) ile yanıt vermeyi seçebilir. \n E \n E \n E \n \n \n 405 Method Not Allowed \n YÖS, desteklenmeyen bir yöntemle kaynağa erişmeye çalıştı. \n E \n E \n E \n \n \n 406 Not Acceptable \n İstek, geçersiz bir karakter kümesi içeriyor. \n E \n E \n E \n \n \n 415 Unsupported Media Type \n İstek gövdesi hedef kaynakta bu yöntem tarafından desteklenmeyen bir biçimde oluşturulduğu için işlem reddedildi \n E \n H \n H \n \n \n 429 Too Many Requests \n Belirli bir süre içinde çok fazla talepte bulunulduğu için işlem reddedildi.  HHS’ler adil kullanım politikalarını aşan talepleri kısıtlayabilir. \n E \n E \n E \n \n \n 500 Internal Server Error \n API sunucu / servis katmanında sorun oluştu. İşlem başarısız. \n E \n E \n E \n \n \n 503 Service Unavailable \n Hizmet sürümü kullanımdan kaldırıldı.  Bir API\'nin kullanımdan kaldırıldığı ve artık bir HHS tarafından operasyonel olarak desteklenmediği durumlarda, URI yolu hala etkin olabilir ve API isteklerini kabul edebilir.  Bu durumda, YÖS\'ün API sürümünün çevrimdışı olduğunun farkında olması için 503 Hizmet Kullanılamıyor dönmesi önerilir. \n E \n E \n E \n \n \n \n Hata Örnekleri: \n 400 Bad Request \n TR.OHVPS.Business.InvalidContent  hatası HHS tarafından yapılacak iş kuralı kontrollerinin başarısız olduğu durumda verilmelidir. \n TR.OHVPS.Resource.InvalidFormat  hatası şema validasyonu, alan uzunluk ve varlık kontrollerinin başarısız olduğu durumda verilmelidir. \n httpCode :   400 \nhttpMessage :  “Bad Request”\nmoreInformation :  “Resource Schema validation error”\nmoreInformationTr :  “Şema Kontrolleri Başarısız” \nerrorCode :   "TR.OHVPS.Resource.InvalidFormat" \n\nfieldErrors :   \n         code :   { "TR.OHVPS.Field.Invalid" , \n                     "TR.OHVPS.Field.Missing" } \n\n \n Örn; GET /odeme-emri/22289 çağrısı durumunda 22289 geçerli bir ödeme kaynağı değilse, HHS, 400 koduyla cevap vermelidir. \n { \n   "id" :   "2b5f0fb2-730b-11e8-adc0-fa7ae01bbebc" , \n   "path" :   "/ohvps/s1.1/obh/odeme-emri-rizasi" , \n   "timestamp" :   "2020-06-13T18:24:38" , \n   "httpCode" :   400 , \n   "httpMessage" :   "Bad Request" , \n   "moreInformation" :   "Resource Schema validation error" , \n   "moreInformationTr" :   "Şema kontrolleri başarısız" , \n    "errorCode" :   "TR.OHVPS.Resource.InvalidFormat" , \n   \n   "fieldErrors" :   [ \n { \n "objectName" :   "odemeEmriRizasi" , \n "field" :   "kmlkNo" , \n "messageTr" :   "boyut \'6\' ile \'30\' arasında olmalı" , \n "message" :   "size must be between \'6\' and \'30\'" , \n "code" :   "TR.OHVPS.Field.Invalid" \n } , \n { \n "objectName" :   "odemeEmriRizasi" , \n  "field" :   "prBrm" , \n  "messageTr" :   "boş değer olamaz" , \n  "message" :   "must not be null" , \n  "code" :   "TR.OHVPS.Field.Missing" \n } \n ] \n } \n\n\nerrorCode :   "TR.OHVPS.Connection.InvalidTPP" \nmoreInformation :  “Invalid TPP Code”\nmoreInformationTr :  “Geçersiz Yös Kodu” \n\nerrorCode :   "TR.OHVPS.Connection.InvalidASPSP" \nmoreInformation :  “Invalid ASPSP Code”\nmoreInformationTr :  “Geçersiz HHS Kodu” \n\nerrorCode :   "TR.OHVPS.Connection. InvalidTPPRole" \nmoreInformation :  “Invalid TPP Role” \nmoreInformationTr :  “Hatalı Yös Rolü” \n \n 401 Unauthorized \n YÖS, süresi dolmuş bir erişim belirteci kullandığında, HHS 401 (Yetkisiz) http kodu ile aşağıdaki hata kodunu dönmelidir.  Aşağıdaki nedenlerden herhangi biri nedeniyle bir Erişim Belirtecinin süresi dolduğunda bu durum ortaya çıkabilir: \n \n Rızanın süresi doldu (Son Kullanma Tarihi geçti) \n Erişim Belirtecinin şüpheli kullanımı veya sahtekarlık şüphesi \n Rızada belirlenen gün sayısının aşımı\nBu hata, müşteriden doğru izinlerle yeniden kimlik doğrulaması isteyerek çözülebilir. \n \n errorCode :   " TR.OHVPS.Connection.InvalidToken " \nmoreInformation :  “Invalid Token”\nmoreInformationTr :  “Geçersiz Token” \n \n 403 Forbidden \n httpCode :   403 \nhttpMessage :  “Forbidden”\n\nerrorCode :   "TR.OHVPS.Resource.Forbidden" \nmoreInformation :  “Insufficient rights”\nmoreInformationTr :  “İzin verilmedi.”\n \n 404 Not Found \n httpCode :   404 \nhttpMessage :  “Not Found”\n\nerrorCode :   "TR.OHVPS.Resource.NotFound" \nmoreInformation :  “Resource not found”\nmoreInformationTr :  “Kayıt bulunamadı”\n \n 405 Method Not Allowed \n httpCode :   405 \nhttpMessage :  “Method  Not Found”\n\nerrorCode :   "TR.OHVPS.Resource.MethodNotAllowed" \nmoreInformation :  “Method Not Allowed”\nmoreInformationTr :  “İstek yapılan URL için izin verilmeyen metot” \n \n 406 Not Acceptable \n httpCode :   406 \nhttpMessage :  “Not Acceptable”\n\nerrorCode :   " TR.OHVPS.Resource.NotAcceptable" \nmoreInformation :  “Accept Headers not supported”\nmoreInformationTr :  “Desteklenmeyen kabul başlıkları” \n \n 415 Unsupported Media Type \n httpCode :   415 \nhttpMessage :  “Unsupported Media Type”\n\nerrorCode :   " TR.OHVPS.Resource.UnsupportedMediaType" \nmoreInformation :  “Content type not supported”\nmoreInformationTr :  “Desteklenmeyen içerik tipi” \n \n 429 Too Many Requests \n httpCode :   429 \nhttpMessage :  “Too Many Requests”\n\nerrorCode :   " TR.OHVPS.Connection.ExceededRate" \nmoreInformation :  “The rate limit has been exceeded for the plan or operation being used”\nmoreInformationTr :  “Planda tanımlanmış olan çağrı limiti aşıldı”\n \n 500 Internal Server Error \n httpCode :   500 \nhttpMessage :  “Internal Server Error”\n\nerrorCode :   "TR.OHVPS.Server.InternalError" \nmoreInformation :  “Unexpected condition was encountered”\nmoreInformationTr :  “Beklenmedik bir durumla karşılaşıldı.” \n \n 503 Service Unavailable \n httpCode :   503 \nhttpMessage :  “Service Unavailable”\n\nerrorCode :   "TR.OHVPS.Server.ServiceUnavailable " \nmoreInformation :  “API is currently unable to handle the request”\nmoreInformationTr :  “API şu anda isteği işleyemiyor” \n 3.19. Maskeleme Kuralları \n Maskeli olarak iletilmesi gereken verilerin maskeleme kuralları şu şekildedir: \n \n IBAN verileri Hesap Numarası : İlk 4 ve son 4 karakteri açık, diğer karakterler maskeli olmalıdır. Örnek: TR54******************4812 \n Ad-Soyadı / Ticari Unvan : Her kelimenin ilk 2 karakteri açık, sonraki karakterler yerine 4 adet ‘ ’ karakteri konumlandırılmalıdır.\nÖrneğin: “FATİH SERKAN EREN” ifadesi “FA *** SE**** ER****” şeklinde gösterilmelidir. \n Tabela Unvanı : Her kelimenin ilk 2 karakteri açık, sonraki karakterler yerine 4 adet ‘ ’ karakteri konumlandırılmalıdır. Örneğin “BANKALARARASI KART MERKEZİ ANONİM ŞİRKETİ” ifadesi “BA *** KA**
16** ME**** AN**** Şİ****” şeklinde gösterilmelidir. \n YÖS’ten girilen unvan ve iban bilgileri ödeme emri rızası ve ödeme emri yanıtında açık dönülür, Kolas akışında ödeme emri rızası yanıtı ve ödeme emri istek ve yanıtında maskeli taşınır. \n 3.20. Fonksiyonel Olmayan Gereksinimler \n \n \n HHS’lerin sunuyor oldukları servisleri en fazla 3000 ms içinde yanıt dönecek şekilde tasarlamalıdır. \n \n \n YÖS tarafından kullanıcının başlatmadığı otomatize sorgular için aşağıdaki limitler belirlenmiştir. \n \n YÖS, Bireysel ÖHK’lar için hesap bazında günde en fazla 4 adet sorgulama yapabilir. \n YÖS, Kurumsal ÖHK’lar için hesap bazında saatte en fazla 12 adet sorgulama yapabilir \nDiğer taraftan kullanıcının başlattığı Hesap Bilgisi Hizmeti kapsamındaki sorgular HHS tarafından belirlenen üst rate limitler dahilinde tanımlanabilir. \n \n \n \n HHS’lerin sunuyor oldukları servislere sistemin güvenlik ve sürekliliğini sağlamak adına rate limit koyma ihtiyaçları olur ise, standartlar ve ihtiyaçlara uygun şekilde bir konfigürasyon yapabilirler. Ör: YÖS - Kullanıcı bazında günde X sorgu v.b.\nİsteğin kullanıcı tarafından başlatıldığı Request Header içerisinde yer alan Payment Service User (PSU) alanlarından anlaşılabilir. \n \n \n HHS’ler aynı zamanda servislerin ayakta olup olmadığına yönelik olarak bir healthcheck servisi kurmalıdır.  HHS’lerin bu servis ile tüm network ve veritabanı ya da servislerinin ihtiyaç duydukları altyapısal erişimleri modellemeli ve bu servisi BKM ile paylaşmaları beklenmektedir. Bu servis düzenli olarak BKM tarafından çağırılarak servislerin ayakta olup olmadıklarının kontrolünün sağlanması planlanmaktadır. \n \n \n Sunulan her API için /health endpointi ile aşağıdaki bilgileri vermeleri beklenmektedir. \n GET /{api ismi}/{versiyon}/health \n Örnek: \n GET /obh/s1.0/health \n GET /hbh/s1.0/health \n GET /gkd/s1.0/health \n HHS ve YÖS API için health servisleri aşağıdaki servislerle kontrol edilebilir. \n GET /hhs-api/s1.0/health \n GET /yos-api/s1.0/health \n Başarılı yanıtta Http 200 kodu dönülmelidir. \nBaşarılı Yanıt: \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Koşullu  / İsteğe Bağlı \n Açıklama \n \n \n \n \n status \n status \n AN2..20 \n Z \n “UP”, “DOWN” değerlerini alabilir. \n \n \n \n Health servisinden yanıt alınamaması, hata alması ya da status DOWN gelmesi durumunda API Gatewayden istek HHS tarafına iletilmeyecektir. \n \n \n ÖHVPS servisleri ile ilgili olarak HHS’ler, BKM tarafından düzenli olarak sorgulanacaktır, erişilebilirlik ve kullanım oranları takip edilecektir. \n \n \n HHS’lerin servislerini erişim yüzdeleri açısından yıl bazında %99.75 oranında ayakta olmalarını sağlayacak şekilde kurgulamaları gerekmektedir. \n \n \n'},{title:"EK-1: İstek/Cevap Mesajlarında Kullanılacak Nesne Yapıları",frontmatter:{},regularPath:"/v1.0.2/contents/ekler.html",relativePath:"v1.0.2/contents/ekler.md",key:"v-bc107546",path:"/v1.0.2/contents/ekler.html",headers:[{level:2,title:"EK-1: İstek/Cevap Mesajlarında Kullanılacak Nesne Yapıları",slug:"ek-1-istek-cevap-mesajlarında-kullanılacak-nesne-yapıları"},{level:2,title:"EK-2: Sıralı Veri Türleri",slug:"ek-2-sıralı-veri-turleri"},{level:2,title:"EK-3: İstemci Sertifikalarının Tanım ve Yönetimi",slug:"ek-3-istemci-sertifikalarının-tanım-ve-yonetimi"},{level:2,title:"EK-4: Sunucu Sertifikaları",slug:"ek-4-sunucu-sertifikaları"},{level:2,title:"EK-5: Mesaj İmzalama Akışı",slug:"ek-5-mesaj-imzalama-akısı"},{level:3,title:"İmzalama Kuralları (YÖS)",slug:"imzalama-kuralları-yos"},{level:2,title:"EK-6: HHS/YÖS API Mimarisi",slug:"ek-6-hhs-yos-api-mimarisi"}],content:' EK-1: İstek/Cevap Mesajlarında Kullanılacak Nesne Yapıları \n Açık Bankacılık simülatör uygulaması üzerinde swagger dökümanlarının güncel sürümlerine erişim sağlanabilir. \n EK-2: Sıralı Veri Türleri \n \n \n \n Kod \n Açıklama \n \n \n \n \n TR.OHVPS.DataCode.KimlikTur \n Kod, Tip, Format K , TCKN , N11 M , MNO , AN1..30 (HHS’ye özel bireysel veya kurum müşteri numarası) Y , YKN , N11 P , PNO , AN7..9 \n \n \n TR.OHVPS.DataCode.KurumKimlikTur \n Kod, Tip, Format K , TCKN , N11 M , MNO , AN1..30 (HHS’ye özel bireysel veya kurum müşteri numarası) V , VKN , AN10 \n \n \n TR.OHVPS.DataCode.OhkTur \n Kod: B: Bireysel  K: Kurumsal \n \n \n TR.OHVPS.DataCode.KolasTur \n Müşterinin sorgulama istediği Kolay Adres Tipi değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır: T: Telefon Numarası E: E-Posta K: TCKN V: VKN Y: YKN P: Pasaport Numarası \n \n \n TR.OHVPS.DataCode.KareKodAksTur \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  01: FAST katılımcısından dinamik doğrulamalı hizmet alınan işyeri ödemesi 02: FAST katılımcısından statik doğrulamalı işyeri ödemesi 03: Kişiden kişiye ödemeler \n \n \n TR.OHVPS.DataCode.OdemeKaynak \n I: İnternet bankacılığından gönderilen ödemelerde kullanılır. A: Otomatik para makineleri (ATM) ile gönderilen ödemelerde kullanılır. T: Telefon bankacılığı ile gönderilen ödemelerde kullanılır. K: Kiosklar aracılığıyla gönderilen ödemelerde kullanılır. S: Şubeden girilen ödemelerde kullanılır. M: Mobil uygulamadan gönderilen ödemelerde kullanılır. D: Yukarıdakiler dışındaki ödeme kaynaklarından gönderilen ödemelerde kullanılır.  O: Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır. \n \n \n TR.OHVPS.DataCode.OdemeAmaci \n Ödemenin Amacına yönelik olarak aşağıdaki değerlerden birini alır: 01: Konut Kirası Ödemesi 02: İş yeri Kirası Ödemesi 03: Diğer Kira Ödemesi 04: E-Ticaret Ödemesi: Elektronik ticaret işlem amaçlı aktarımlar 05: Çalışan Ödemesi: Maaş, harcırah, prim gibi çalışan ödemeleri 06: Ticari ödeme: Ticari işletmelerin birbirlerine, kendi hesaplarına veya müşterilerine ödemeleri, borç, ithalat, ihracat, şirket satın alma, vb. kapsamında ödemeler 07: Bireysel Ödeme: Özel amaçlı (aile bireylerine, hediye, bağış, borç, alışveriş vs.) ödemeler 08: Yatırım: Mevduat, menkul kıymet, döviz, gayrı menkul, taşıt, varlık alımı, temettü ödeme, tahsilat vb. gibi yatırım amaçlı ödemeler 09: Finansal: Kredi, depo, repo, türev, finansal varlık alım/satımı vb. ödemeler 10: Eğitim ödemesi 11: Aid
16at ödemesi \n \n \n TR.OHVPS.DataCode.OdemeDurumu \n Ödemenin durumunu gösterir. Alabileceği değerler: 01: Gerçekleşti (Ödeme ilgili ödeme sistemine iletildi ve alıcı hesabına ulaştı.)  02: Gönderildi (Ödeme ilgili ödeme sistemine iletildi ancak alıcı hesabına ulaştığına dair teyit alınmadı.)İşlemin son durumunun teyidi için YÖS sorgulama yapmalıdır. 03- Gerçekleşmedi (Ödemenin ilgili ödeme sistemine işletiminde veya işlenmesi sırasında hata, zaman aşımı, sistemin gün sonu işlemlerine başlaması vb. durum oluştu ve ödeme gereçeklemedi veya iade edildi.) 04- Onayda bekliyor (Ödeme emri alındı. Çoklu onay akışının tamamlanması bekleniyor.) 05- İşleme Alındı ( Ödeme emri alındı. ) YÖS tarafından müşteriye gösterilmeyen bir koddur. Bu kod dönüldüğünde YÖS uygulamasında ÖHK’ya ödeme durumu 02-Gönderildi  olarak gösterilir. İşlemin son durumunun teyidi için YÖS sorgulama yapmalıdır. \n \n \n TR.OHVPS.DataCode.IslemAmaci \n Ödemenin Amacına yönelik olarak aşağıdaki değerlerden birini alır: 01: Konut Kirası Ödemesi 02: İş yeri Kirası Ödemesi 03: Diğer Kira Ödemesi 04: E-Ticaret Ödemesi: Elektronik ticaret işlem amaçlı aktarımlar 05: Çalışan Ödemesi: Maaş, harcırah, prim gibi çalışan ödemeleri 06: Ticari ödeme: Ticari işletmelerin birbirlerine, kendi hesaplarına veya müşterilerine ödemeleri, borç, ithalat, ihracat, şirket satın alma, vb. kapsamında ödemeler 07: Bireysel Ödeme: Özel amaçlı (aile bireylerine, hediye, bağış, borç, alışveriş vs.) ödemeler 08: Yatırım: Mevduat, menkul kıymet, döviz, gayrı menkul, taşıt, varlık alımı, temettü ödeme, tahsilat vb. gibi yatırım amaçlı ödemeler 09: Finansal: Kredi, depo, repo, türev, finansal varlık alım/satımı vb. ödemeler 10: Eğitim ödemesi 11: Aidat ödemesi 12: Diğer \n \n \n TR.OHVPS.DataCode.RizaDurumu \n B: Yetki Bekleniyor Y: Yetkilendirildi K: Yetki Kullanıldı E: Yetki Ödeme Emrine Dönüştü S: Yetki Sonlandırıldı I :Yetki Iptal \n \n \n TR.OHVPS.DataCode.GkdTur \n GKD yapılmasını gerekli bulduğu durumda HHS, YÖS’ün belirlediği yöntemi dikkate alarak kendi belirlediği GKD yöntemini bildirir: Y: Yönlendirmeli GKD A: Ayrık GKD \n \n \n TR.OHVPS.DataCode.RizaTip \n H: Hesap Bilgisi Rızası O: Ödeme Emri Rızası \n \n \n TR.OHVPS.DataCode.IzinTur \n 01: Temel Hesap Bilgisi 02: Ayrıntılı Hesap Bilgisi 03: Bakiye Bilgisi 04: Temel İşlem (Hesap Hareketleri) Bilgisi 05: Ayrıntılı İşlem Bilgisi \n \n \n TR.OHVPS.DataCode.OdemeSistemi \n İşlemin yönlendirildiği Ödeme Sistemine göre aşağıdaki değerlerden birini alabilir: H: Havale F: FAST E: EFT (PÖS) değerlerinden birini alabilir. \n \n \n TR.OHVPS.DataCode.IslemTuru \n Hesap hareketleri (işlemler) sorgusunda dönülen İşlem Türü (islTur) parametresi aşağıdaki değerlerden birini alabilir: HAVALE EFT FAST PARA_YATIRMA PARA_CEKME YABANCI_PARA_HAVALE YATIRIM_HESABINA_AKTARIM YATIRIM_HESABINDAN_AKTARIM KURUM_FATURA_ODEMESI CEK SENET SIGORTA_ODEMESI UCRET_KOMISYON_FAIZ SGK_ODEMESI VERGI_ODEMESI DOVIZ_ALIM DOVIZ_SATIM KREDI_ODEMESI KREDI_KULLANIM KK_ODEMESI KK_NAKIT_AVANS SANS_OYUNU UYE_ISYERI_ISLEMLERI HGS_OGS_ISLEMLERI DOGRUDAN_BORCLANDIRMA_SISTEMI DIGER \n \n \n TR.OHVPS.DataCode.HspTur \n Hesabın bireysel veya ticari nitelikte olduğunu belirtir: B: Bireysel T: Ticari \n \n \n TR.OHVPS.DataCode.KolasHspTur \n Hesabın bireysel veya ticari nitelikte olduğunu belirtir: B: Bireysel T: Ticari \n \n \n TR.OHVPS.DataCode.HspTip \n Hesap çeşidini belirtir: VADESIZ VADELI KREDILI_MEVDUAT_HESABI POS CEK YATIRIM \n \n \n TR.OHVPS.DataCode.HspDrm \n Hesabın durumunu belirtir: AKTIF PASIF KAPALI \n \n \n TR.OHVPS.DataCode.YetTip \n Alabileceği değerlere göre hangi belirtecin döneceğine karar verilir. yet_kod yenileme_belirteci \n \n \n TR.OHVPS.DataCode.BrcAlc \n İşlemin hesabı borçlandırdığı ya da alacaklandırdığı bilgisidir. B : Borç A : Alacak \n \n \n TR.OHVPS.DataCode.RizaIptDtyKod \n ‘01’ :Yeni Rıza Talebi ile İptal ‘02’ :Kullanıcı İsteği ile HHS üzerinden İptal ‘03’ :Kullanıcı İsteği ile YÖS üzerinden İptal ‘04’ :Süre Aşımı : Yetki Bekleniyor ‘05’ :Süre Aşımı : Yetkilendirildi ‘06’ :Süre Aşımı : Yetki Ödemeye Dönüşmedi ‘07’ :GKD iptali : Aynı rıza no ile mükerrer çağrımı ‘08’ :GKD iptali : Rızano ile TCKN uyuşmaması ‘09’ :GKD iptali : Uygun ürünü bulunmuyor ‘10’ :GKD iptali : HHS Açık Bankacılık kanalı işleme kapalı ’11’ :GKD iptali : Hesap Yetki S
16orunu ‘12’ :GKD iptali : ÖHK HHS kontrollerini aşamadı ‘13’ :GKD iptali : ÖHK isteği ile GKD’den vazgeçildi ‘14’ :GKD iptali : Fraud Şüphesi ‘99’ :GKD iptali : Diğer \n \n \n TR.OHVPS.DataCode.PSUInitiated \n ‘E’ : Evet ‘H’ : Hayır \n \n \n TR.OHVPS.DataCode.HHSYOSSrlmKrtr \n ‘kod’ : Kod,‘unv’ : Unvan \n \n \n TR.OHVPS.DataCode.SrlmYon \n ‘A’: Azalan değerle sıralama ‘Y’: Artan değerle sıralama \n \n \n TR.OHVPS.DataCode.ZmnAralik \n 0 : Kayıt Yok  1 : 0-2 saat 2 : 2-24 saat  3 : 1-3 gün   4 : 3-15 gün\t  5 : 15 gün ve üstü \n \n \n TR.OHVPS.DataCode.VarYok \n 0 : Kayıt Yok   1 : Kayıt Var \n \n \n TR.OHVPS.DataCode.HHSDurumu \n A : Açık. Üretim Ortamında HHS’nin aktif bir şekilde hizmet vermesi durumu.  Y : Yaygınlaştırma. Üretim Ortamında HHS’nin kendisi tarafından tanımlanmış kısıtlı ÖHK’ya hizmet vermesi durumu.    G : Geçici Hizmet Veremiyor. HHS servislerinde teknik bir sorun olması nedeniyle HHS’nin hizmet verememesi durumu.  K: Kapalı. HHS’nin hizmet vermeme durumu. \n EK-3: İstemci Sertifikalarının Tanım ve Yönetimi \n Tüm katılımcıların BKM API Geçidine erişebilmesi için, BKM tarafından yapılan istemci sertifika doğrulamasından geçmesi gerekmektedir. İstemci sertifikası üretilmeden önce katılımcıların CSR üretme akışını tamamlaması gerekmektedir. \n OpenSSL ile CSR (Certificate Signing Request) Oluşturma \nAşağıdaki komut ile 2048-bit RSA private key ve CSR oluşturulur. \nopenssl req -new -newkey rsa:2048 -nodes -keyout PRIVATEKEY.key -out CSR.csr \n CSR ile ilgili detay bilgilerin girişinde; \nCommon Name (CN) olarak 4 karakterli hhsKod ya da yosKod değeri ile, \ndiğer alanlar için de kurum bilgileriniz ile giriş yapılır. \n Tüm bilgilerin girilmesinden sonra oluşan private key dosyası kurumunuzda saklanır.\nCSR dosyası ise istemci sertifika üretmek üzere kullanılır. Bu aşamada takip edilmesi gereken adımlar şu şekildedir: \n Katılımcıların, TRIP ortamı üzerinden, BKM Tarafından yetki verilmiş kullanıcılarının görebileceği "İstemci Sertifika Talebi" menü adımına giriş yapmaları beklenir. Açılan ekranda,"CSR Dosyası Yükleme" alanı içerisine, katılımcının üretmiş olduğu csr dosyası yüklenir. Yaklaşık 1 dakika içerisinde kuruma özel olarak üretilmiş olan client sertifikası indirilmeye hazır hale gelecektir. "İndir" butonu ile client sertifika indirilir. İstemci tarafında web isteğinin ilgili sertifika ile ilişkilendirilerek oluşturulması gerekmektedir. \n Uzun dönemli olarak hazırlanacak olan sertifikalar sertifikasyon ve üretim ortamlarında kullanılacaktır. Sertifikaların işlevselliği ve geçerliliği bu aşamalarda sınanacaktır. \n BKM API Geçidi çözümünün test ve üretim ortamları ayrımında istemci sertifikaları, HHS Listeleme API erişimleri ve Sertifikasyon bağlantıları Şekil 15-HHS/YÖS API Mimarisi Diagramında resmedilmiştir. \n EK-4: Sunucu Sertifikaları \n Sunucu sertifikalarının endpoint bilgisini (Fqdn) içerecek ve global bir Certification Authority tarafından imzalanmış olarak sunulması gerekmektedir.\nÖrneğin; entegrasyon formu içerinde yer alan URL bilgisinin (test.xbank.com.tr) sertifika içerisinde tanımlı olması ve bu sertifikanın global bir CA örneğin Verisign tarafından imzalanmış olarak sunulması gerekmektedir. \n Hizmet sağlayıcı olan HHS\'ler tarafından sunucu sertifikaları uygulanmalıdır. \n EK-5: Mesaj İmzalama Akışı \n Dijital imzalama yapısı, ÖHVPS API’de gerçekleştirilen işlemlerin ve taşınan verilerin bütünlük ve inkâr edilemezliğini sağlamak amacıyla kurgulanmıştır.\nBu kapsamda imzalama akışı aşağıdaki gibi olmalıdır: \n \n HHS ya da YÖS öncelikle özel ve açık anahtarlarını oluşturmalıdır. Bu anahtarları oluşturmak için aşağıda “openssl” kullanılarak oluşturma örneği paylaşılmıştır.  Bu anahtarlardan özel olan anahtar mesajı imzalamak için kullanılacak olup, açık anahtar ise mesajı doğrulamak amacıyla mesajın alıcısı tarafından kullanılacaktır. \n \n private_key.pem ve public_key.pem dosyasinin içerikleri kod tarafında kullanılacaktır. \n --private.pem => Özel anahtarın ismi\nopenssl genrsa -out private.pem 2048 \n --public_key.pem => Açık anahtarın ismi\nopenssl rsa -in private.pem -pubout -outform PEM -out public_key.pem \n --private_key.pem => Özel anahtarın PCKS8 formatına çevrilmesi (Java açısından PCKS8 formatında olma ihtiyacı nedeniyle) openssl pkcs8 -topk8 -inform PEM -in private.pem -out private_key.pem -nocrypt \n \n \n Açık ve Özel anahtarlar oluşturulduktan sonra Açık Anahtar BKM ile paylaşılır. BKM bu açık anahtarı diğer katılımcıların ulaşabilmesi ve alabilmesi için bir Anahtar Deposu yaklaşımı ile bünyesinde tutar. İlgili anahtarı iletebilmek ve alabilmek için kullanılacak HHS/YOS API ye erişim detayları EK-6 bölümünde detaylı olarak paylaşılmıştır.  Eğer kurumun ilgili anahtar çiftinin yenilenme durumu söz konusu ise yenilemenin hemen ardından açık anahtar yeni bir imzalama yapılmadan önce mutlaka BKM ile paylaşılmalıdır. \n \n \n İmzalı mesajı açacak olan kurum mesajı imzalayan kurumun açık anahtarını her sorguda yeniden almak durumunda değildir. Belirli periyodlarda kendi ortamındaki anahtarı yenileyerek sistemi işletebilir. Ancak imzalayan kurum anahtar çifti yenilemesi yaptığında BKM ile açık anahtarını paylaşsa dahi 
16imzalı mesajı doğrulayacak taraf eski açık anahtar ile doğrulama yapmaya çalıştığı için hata alacaktır. Bu ilk hata durumunda hızlıca BKM üzerinden yeni anahtarı alıp mesajı tekrar doğrulamayı denemelidir. Eğer yine hata alıyor ise doğrulama işlemini hata statüsüne almalıdır. Bu sebeple anahtar yenileyen kurum yeni açık anahtarını yeni bir mesaj imzalama yapmadan önce mutlaka BKM ile paylaşmalıdır. \n \n \n PSU-Fraud-Check alanı için de JWT formatında çıktı hazırlanması beklenmektedir. Örnek bir PSU-Fraud-Check payload değeri aşağıdaki gibidir; \n {"AnomalyFlag": "0", \n"LastPasswordChangeFlag": "1", \n"FirstLoginFlag": "1", \n"DeviceFirstLoginFlag": "1", \n"BlacklistFlag": "0", \n"MalwareFlag": "0", \n"UnsafeAccountFlag": "0", \n"exp": 1663424479, \n"iat": 1663338079, \n"iss": "[https://apigw.bkm.com.tr|https://apigw.bkm.com.tr/]" } \n İmzalama Kuralları (YÖS) \n Bir YÖS üzerinden başlayan akış örnek olarak paylaşılmıştır. \n \n \n YÖS, mesaj imzalama gerektiren her API isteğinin HTTP gövdesini (request body) kendi özel anahtarı ile şifreleyerek imza bilgisini oluşturur. \n \n \n Ardından bu imza verisini, göndereceği mesajın istek başlığında yer alan X-JWS-Signature alanında göndermelidir. \n \n \n X-JWS-Signature alanında gönderilecek olan bilgi aşağıdaki yöntem ile oluşturulmalıdır. \n \n \n Bu alana yazılacak olan bilgi JWT formatında oluşturulmalıdır. \n \n \n Bir JWT, header-payload-signature alanlarından oluşmaktadır. \n \n Header alanında JWT’yi imzalamak için kullanılacak algoritma belirtilmelidir.  Standartlar kapsamında RS256 kullanılacaktır. \n Payload kısmında özel olarak oluşturulacak olan “body” claim alanına istek gövdesi (request body) verisinin SHA256 hash değeri karşılığı yazılmalıdır. \n JSON payload oluşturulurken RFC 7519 baz alınmalıdır. "iss" (Issuer) Claim, "exp" (Expiration Time) Claim, "iat" (Issued At) Claim, “body” Claim alanlarının gönderilmesi zorunludur. ^RFC7519 \na.\t"iss" (Issuer) Claim : Kurumunuza özel bilgidir. \nb.\t"exp" (Expiration Time) Claim: Saniye cinsinden (Unix time) imzanın son geçerli olduğu tarih. Bu tarih  mevcut sunucu saatinizden 60 dakika sonra olacak şekilde kullanılmalıdır. \nc.\t"iat" (Issued At) Claim : Saniye cinsinden (Unix time) imzanın oluşturulduğu tarih. Bu tarih  mevcut sunucu saatinizden 5 dakika önce olacak şekilde kullanılmalıdır. \nd.\t“body” Claim : istek gövdesi (request body) verisinin SHA256 hash değeri karşılığı. \n Signature alanında da özel anahtar ile imzalanmış olan imza içeriği yer alacaktır. \n \n X-JWS-Signature:   JWS imzasını içeren üstbilgi. Bu başlığın ne zaman belirtilmesi gerektiği hususu ilgili endpoint için belirtilmiştir. \n Örnek X-JWS-Signature Payload Değeri \n { \n"iss": "https://apigw.bkm.com.tr", \n"exp": 1646832405, \n"iat": 1646746005, \n"body": "c543072f97a761a1d891dc81acc380bc1e6f61ca6541bd93ebfdece338457922" \n} \n \n \n \n \n YÖS, isteği gönderir. Sadece mesajın bütünlüğünü ve doğruluğunu teyit amacı ile istek gövdesi (request body) SHA256 hash değeri imzalanarak X-JWS-Signature alanında bu imza iletilir. İsteğin gövde (request body) kısmı açık ve şifresiz olarak gönderilmektedir. \n \n \n HHS, isteği alır, talebi gerçekleştirmeden önce aldığı API isteklerinin imzasını doğrulamalıdır. X-JWS-Signature alanındaki JWT aşağıdaki adımlarla doğrulanmalıdır. \n \n Header kısmındaki algoritmanin RS256 olduğu kontrol edilir. \n Gönderen kurumun açık anahtarı ile JWT verify (doğrulama) işlemi yapılır. \n Yukarıdaki işlemlerin doğruluğunun ardından JWT’nin payload kısmındaki “body” claim alanındaki bilginin, isteğin gövde verisinin SHA256 hash değerlerinin aynı olduğu kontrol edilir. \n Örnek checksum değeri   "a64b19f95eeb1fb0a0a3e2dbbc6e3d8472c52184d4543417ddc6d156fc5c5571" veya   "A64B19F95EEB1FB0A0A3E2DBBC6E3D8472C52184D4543417DDC6D156FC5C5571" şeklinde olabilir. İki hali de aynı değere sahiptir. Kontrollerde buna dikkat edilmesi gerekmektedir. \n \n \n \n Yukarıdaki işlemler ile doğruluğu teyit edilmiş olan isteğin talebi gerçekleştirir. \n \n \n Eğer istek doğrulanamıyor ise gönderen kurumun açık ve özel anahtar çifti yenilenmiş olabilir. \n \n \n BKM HHS API  üzerinden ilgili kurumun bilgilerini (kurum ko
16du vs) kullanarak kurumun detay bilgileri çeker ve kendi ortamında yeniler. \n \n \n Ardından imzayı tekrar açık anahtar ile doğrulayarak kontroller gerçekleştirilir. (Eğer halen doğrulama işlemi başarısız ise bu istek için hata akışı çalıştırılır.  TR.OHVPS.Resource.InvalidSignature  kodu ile hata üretilebilir.) \n \n \n İmza bilgisinin beklendiği (x-jws-signature) servislerde, bu bilginin iletilmediği durumlarda  TR.OHVPS.Resource.MissingSignature  hatası üretilebilir. \n \n \n HHS isteği işledikten sonra cevabı oluştururken de yukarıdaki akışlar ile göndereceği cevabı imzalamalıdır. \n \n \n İstek yanıt gövdesinin SHA256 checksum değeri için hexadecimal çıktı kullanılacaktır. Oluşacak çıktının 64 karakter olması beklenmektedir. Kontrol için "^[A-Fa-f0-9]{64}$" RegEx tarifini kullanabilirsiniz. \n \n \n Örnek bir gövde: \n {"katilimciBlg":{"hhsKod":"8000","yosKod":"8000"},"gkd":{"yetYntm":"Y","yonAdr":"https://boss-test.bkm.com.tr/boss/ab/yosSimulator/8000?drmKod=6021de9f-55e7-454a-94be-2044866b22e1"},"kmlk":{"kmlkTur":"M","kmlkVrs":"123456","ohkTur":"B"},"hspBlg":{"iznBlg":{"iznTur":["01","02","03","04","05"],"erisimIzniSonTrh":"2022-10-12T23:59:59+03:00","hesapIslemBslZmn":"2021-10-10T00:00:00+03:00","hesapIslemBtsZmn":"2023-10-10T23:59:59+03:00"}}}\n \n Bu gövdenin checksum\'ı: \n a64b19f95eeb1fb0a0a3e2dbbc6e3d8472c52184d4543417ddc6d156fc5c5571\n \n Bu checksum\'ın iletildiği x-jws-signature başlık değeri: \n eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FwaWd3LmJrbS5jb20udHIiLCJleHAiOjE2NjU0NzU1NjIsImlhdCI6MTY2NTM4OTE2MiwiYm9keSI6ImE2NGIxOWY5NWVlYjFmYjBhMGEzZTJkYmJjNmUzZDg0NzJjNTIxODRkNDU0MzQxN2RkYzZkMTU2ZmM1YzU1NzEifQ.Q65PI_1fTEzzBMirvmJvXgVX3orhhZ4_UqujtGdHkU7me-1ymIjvPrzy3kfyER1pedFb7HDCBuPvYoqjX8eUnpiiZsxfzCiEa0McIhoFeUOggq-O8VihItp8bLr2DWwQ9JHN1-WXB2mL31KAKFAL1VY9-DXuAdT-RfE_SLYsl2ycmNy4ti4XvfDvvlE56ZsieFZ727VuwR8wi7F0kKDc6UhjaMF9xcUeAM1fxX-bmcOaOo1NZGC0vvgjNZKz_OJrN-q8VhWYnQPiJ7wY7S9IG8bHIkBImKSVf8LuOEvl8u0BZzADLH1iOBd9x2l1plyI_NLPTrnOqhWhKlljkkJBCg\n \n Eğer PSU-Fraud-Check için başlık gönderilecekse, yine JWT formatında imza üretilmelidir. Örnek bir psu-fraud-check başlık değeri: \n eyJhbGciOiJSUzI1NiJ9.eyJBbm9tYWx5RmxhZyI6IjAiLCJMYXN0UGFzc3dvcmRDaGFuZ2VGbGFnIjoiMSIsIkZpcnN0TG9naW5GbGFnIjoiMSIsIkRldmljZUZpcnN0TG9naW5GbGFnIjoiMSIsIkJsYWNrbGlzdEZsYWciOiIwIiwiTWFsd2FyZUZsYWciOiIwIiwiVW5zYWZlQWNjb3VudEZsYWciOiIwIiwiZXhwIjoxNjY1NDc1NTU2LCJpYXQiOjE2NjUzODkxNTYsImlzcyI6Imh0dHBzOi8vYXBpZ3cuYmttLmNvbS50ciJ9.DhUh_nsXDuNIrvsQ3KOhOXdVcJg6fTDVW8K1oea8kLtmb7n-_hJHY3mWX5zzobu-Vh2VvFzIxPhHtol6gLHFktmIMiQ9TDHb_mRZFXgJB4ToNfqc3Fy9mi5bS8By2IYi1HxDaCStstaZDaunzXfHCtqybfZXyk6teDrf-iIf6lqX9Keo7GZO-Y7mP7C13-c_QwyNKrZK4TZwUQbecRqXYn1DcEHM7kukQHTar_hKBWkXPmNpScY0J2rKksr4ejR1uLhdQm-Pdwoe9y6qrNEB79vMLBkRNtbuV0vc1GYHp_YKkzBKBI_58uuB2GD9877CsrcRnHMQb88xpxiPKh6-ew\n EK-6: HHS/YÖS API Mimarisi \n HHS/YÖS API Uygulama Mimarisinde Test ve Üretim ortamlarında aşağıdaki alanda yer almaktadır. \n \n Şekil 15: HHS/YÖS API Mimarisi \n'},{title:"5.\tGüçlü Kimlik Doğrulama",frontmatter:{},regularPath:"/v1.0.2/contents/gkd.html",relativePath:"v1.0.2/contents/gkd.md",key:"v-d80dcb06",path:"/v1.0.2/contents/gkd.html",headers:[{level:2,title:"5.1.\tYönlendirmeli Güçlü Kimlik Doğrulama",slug:"_5-1-yonlendirmeli-guclu-kimlik-dogrulama"},{level:2,title:"5.2.\tAyrık Güçlü Kimlik Doğrulama",slug:"_5-2-ayrık-guclu-kimlik-dogrulama"},{level:2,title:"5.3.\tYönlendirme/Bildirim Adresleri ve Durum Kodu Parametresi",slug:"_5-3-yonlendirme-bildirim-adresleri-ve-durum-kodu-parametresi"},{level:2,title:"5.4\tHealthcheck API",slug:"_5-4healthcheck-api"},{level:2,title:"5.5  Güçlü Kimlik Doğrulama Kontrolleri",slug:"_5-5-guclu-kimlik-dogrulama-kontrolleri"}],content:" 5.\tGüçlü Kimlik Doğrulama \n Müşteri için güçlü kimlik doğrulama, ÖHK’nın (müşterinin) kimliğinin doğrulamada kullanılan ve bir bileşenin ele geçirilmesinin diğer bileşenin güvenliğini tehlikeye atmayacağı en az iki bileşenden oluşan, bu iki bileşenin de müşterinin “bildiği”, “sahip olduğu” veya “biyometrik bir karakteristiği olan” bileşen sınıflarından farklı ikisine ait olacak şekilde seçildiği yöntemi tanımlar. \n Ödeme ve Elektronik Para Kuruluşlarının Bilgi Sistemleri ile Ödeme Hizmeti Sağlayıcılarının Ödeme Hizmetleri Alanındaki Veri Paylaşım Servislerine İlişkin Tebliğ uyarınca hesap bilgisi hizmetinde müşterinin onayının alınması esnasında ve ödeme emri başlatma hizmetinde her bir ödeme emri başlatma işleminde  HHS tarafından müşteriye güÃ
16§lü kimlik doğrulama (GKD) uygulanması esastır.  Buna göre: \n \n \n Hesap bilgisi hizmetinde ÖHK’nın onayının alınması esnasında  Tebliğin 26 ncı maddesinin 1 inci fıkrası uyarınca  HHS tarafından ÖHK’ya GKD uygulanır. \n \n \n Ödeme emri başlatma hizmetinde,  Tebliğin 26 ncı maddesinin 2 nci fıkrası uyarınca  HHS tarafından ÖHK’ya güçlü kimlik doğrulama uygulanır ve işlem doğrulama kodu ile ÖHK’nın onayı alınır. \n \n \n Ödeme emri başlatma hizmetinde,  Tebliğin 26 ncı maddesinin 3 nci fıkrası uyarınca  HHS tarafından ÖHK’ya güçlü kimlik doğrulama uygulanmasına ilişkin istisna veya ilave güvenlik önlemleri işbu API İlke ve Kuralları belgesinde tanımlanır. \n \n \n HHS, güçlü kimlik doğrulama sürecinde ÖHK’nin sahip olduğu bileşen sınıfı olarak SMS OTP ya da SMS ile işlem doğrulama kodu kullanabilir. \n \n \n HHS, aşağıdaki hallerde veya  Tebliğin 10 uncu maddesinin ikinci fıkrasında  belirtilen risk değerlendirmesi sonucuna göre tek bileşen ile kimlik doğrulama yapabilir. \n \n Ödemenin göndereni ve alıcısının aynı olması, \n Daha önce tanımlanmış güvenli alıcılar listesine ödeme yapılması, \n ÖHK’nin talimatına istinaden gerçekleştirilen düzenli bir ödeme olması. \n \n \n \n Tek bileşen ile kimlik doğrulama yapılan bu işlemlerle ilgili olarak gerçekleştirilen işlemin müşteri tarafından yapıldığını ispat etme yükümlülüğü HHS’ye ait olur. \n \n \n İşlem Doğrulamada  Tebliğin 3 üncü maddesinin birinci fıkrası ğğ bendindeki  işlem bilgisi tanımına uygun olarak aşağıdaki bilgiler ile  Tebliğin 3 üncü maddesinin birinci fıkrası hh bendinde  tanımlanan işleme özel üretilmiş işlem doğrulama kodu birlikte kullanılır. \n \n Alıcı Unvan (Kolas akışında maskeli olarak)  (ödeme emri başlatma hizmeti) \n Tutar (ödeme emri başlatma hizmeti) \n Referans bilgisi (8 karakterden küçük ise alanın tüm değeri, büyük ise ilk 4 ve son 4 hanesi) \n \n İşleme ait yukarıdaki bilgilerden en az biri değiştiği zaman  Tebliğin 3 üncü maddesinin birinci fıkrası hh bendinde  belirtildiği gibi yeni bir işlem doğrulama kodu üretilecek şekilde akış kurgulanmalıdır. \n \n \n İşlem doğrulama kodunun gönderilmesinden HHS sorumludur. HHS,  Tebliğin 10 uncu maddesinin ikinci fıkrasında  belirtilen risk değerlendirmesi sonucuna göre işlem doğrulama kodu kullanmaksızın ÖHK’nın onayını alabilir. İşlem doğrulama kodu kullanılmayan işlemlerle ilgili olarak gerçekleştirilen işlemin ÖHK tarafından yapıldığını ispat etme yükümlülüğü HHS’ye aittir. \n \n \n ÖHVPS API standartı kapsamında iki adet Güçlü Kimlik Doğrulama (GKD) yöntemi kullanılacaktır: \n \n Yönlendirmeli (Redirect) GKD Yöntemi \n Ayrık (Decoupled) GKD Yöntemi \n \n \n \n HHS asgari olarak tarayıcı tabanlı Yönlendirmeli GKD yöntemini desteklemek zorundadır. \n \n \n Çerçeve sözleşme kapsamında olmayan tek seferlik ödeme işlemleri sadece Yönlendirmeli GKD yöntemi ile gerçekleştirilebilir. \n 5.1.\tYönlendirmeli Güçlü Kimlik Doğrulama \n Yönlendirmeli GKD Yönteminde, müşteri kimlik doğrulama için YÖS tarafından HHS arayüzüne yönlendirilir. \n Müşteri HHS’ye (uygulama veya web arayüzü vasıtasıyla) yönlendirildikten sonra müşterinin güçlü kimlik doğrulaması adım adım ve doğrudan HHS ile müşteri arasında yürütülür. GKD’nin tamamlanmasından sonra müşteri tekrar YÖS uygulamasına yönlendirilir.Yönlendirmenin aynı sayfada HTTP 302 yanıt koduyla yapılması gerekmektedir. \n Yönlendirmeli GKD Yöntemi için üst düzey örnek iş akışı aşağıdaki adımlardan oluşur: \n \n YÖS, GKD için HHS tarafından tanımlanan arayüze (tarayıcı ya da uygulama) yönlendirme yapar. \n Müşteri, YÖS arayüzünden ayrılır, yönlendirildiği HHS arayüzü üzerinde kimlik doğrulama işlemlerini gerçekleştirir. \n GKD tamamlandıktan sonra müşteri, YÖS arayüzüne tekrar yönlendirilir ve işlem sonucu görüntülenir. \n \n Yönlendirmeli GKD için temel gereklilikler şunlardır: \n \n Ödeme hizmeti (hesap bilgisi veya ödeme emri başlatma hizmeti) tarayıcı ya da uygulama tabanlı bir şekilde sunulabilir. Bu nedenle,  YÖS ve HHS’lerin Yönlendirmeli GKD için asgari olarak tarayıcı tabanlı yönlendirme akışını desteklemeleri gerekmektedir. \n Çerçeve sözleşme (ÇS) kapsamında olmayan tek seferlik ödeme işlemleri sadece Yönlendirmeli GKD yöntemi ile gerçekleştirilebilir. \n \n Tarayıcı Tabanlı Yönlendirme \n HHS’nin web arayüzüne, \n \n HHS’nin mobil uygulamasının olmadığı, \n ÖHK’nın ödeme hizmetini (hesap bilgisi veya ödeme emri başlatma hizmeti) sunduğu mobil cihazda HHS uygulamasının yüklü olmadığı, \ndurumlarda yönlendirme yapılır. \n \n YÖS’ün mobil uygulaması varsa mobil cihazda uygulamadan tarayıcıya, YÖS’ün mobil uygulaması yoksa ödeme hizmetinin sunduğu cihazda (Kişisel Bilgisayar veya Mobil Cihaz) tarayıcı üzerinden yönlendirme yapılır. \n Uygulama Tabanlı Yönlendirme \n ÖHK’nın ödeme hizmetini (hesap bilgisi veya ödeme emri başlatma hizmeti) YÖS’ün mobil uygulaması ile kullanıyorsa, aynı mobil cihazda HHS’nin mobil uygulamasının yüklenmiş olması durumunda, ÖHK doğrulamasının HHS mobil uygulaması tarafından yapılması için uygulama tabanlı yönlendirme yapılır. Böylece ÖHK, ödeme hizmetine erişim için HHS’nin mobil kanalına erişim sırasında kullandığı doğrulama yöntemini ile doğrulanabilir. \n Tablo 5: Yönlendirmeli Güçlü Kimlik Doğrulama Kanalları \n \n \n \n Doğrulama Yöntemi \n YÖS Olası Ortam \n HHS Olası Ortam \n \n \n \n \n Tarayıcı Tabanlı Yönlendirme \n Kişisel Bilgisayar (masaüstü, dizüstü)/Mobil Cihaz \n Kişisel Bilgisayar (masaüstü, dizüstü) / Mobil Cihaz \n \n \n Uygulama Tabanlı Yönlendirme \n Mobil Cihaz \n Mobil Cihaz \n 5.2.\tAyrık Güçlü Kimlik Doğrulama \n Ayrık GKD Yöntemi iş akışı, Yönlendirmeli GKD Yönteminin işlem akışına benzer. Fark, HHS'nin, çevrimiçi arayüzünden bağımsız olan herhangi bir uygulama veya cihaz aracılığıyla ödeme işlemi ayrıntılarını içeren bir anlık bildirim (push notification) göndererek müşteriden kimlik doğrulaması istemesidir. Ayrık GKD Yöntemine dayalı bir işlem için (çok basitleştirilmiş) üst düzey örnek bilgi akışı şu şekildedir: \n \n Müşteri, YÖS arayüzünde işlemini başlatır. \n YÖS, talebini müşteriye ait TCKN, VKN, YKN gibi tekil tanımlayıcı kimlik numarası bilgisi içerecek şekilde HHS’ye iletilir. \n HHS tekil tanımlayıcı bilgisini kullanarak farklı bir cihaz veya uygulama üzerinden müşteriye anlık bildirim gönderir ve doğrulama yapılmasını sağlar. Bu şekilde HHS kendi mobil uygulamasına erişim için kullanılan doğrulama yöntemini aynen kullanabilecektir. \n YÖS, herhangi bir yere yönlendirme yapmadan işlemin sonucunu bekler, müşteri YÖS arayüzünden ayrılmaz (arayüz aynı kalır). \n Kimlik doğrulama sonrası, YÖS arayüzünde işlem sonucu görüntülenir. \n 5.3.\tYönlendirme/Bildirim Adresleri ve Durum Kodu Parametresi \n CSRF Ataklarından korunmak için ve YÖS uygulamasının bir önceki durumunu restore edebilmesi için; YÖS tarafından iletilen yönlendirme ve bildirim adreslerine , Oauth2 standartlarındaki state parametresine eşdeğer,   durum ko
16du (drmKod)  parametresinin eklenmesi gerekmektedir. Durum kodu parametresi YÖS tarafından üretilen, tekil ve kolay tahmin edilemeyen bir değer olmalıdır. Rıza isteği gönderimi aşamasında oluşturulmalıdır. YÖS uygulamasında uygun bir yerde saklanmalıdır (cookie, session, local storage gibi) . \n Durum kodu, rıza isteğindeki yönlendirme adresine parametre olarak eklenir.  GKD süreci sonrasında yetki kodu ile birlikte bu bilgi, HHS tarafından YÖS’e iletilir. YÖS sakladığı değer ile parametre olarak gelen değerin eşitliğini kontrol eder. Aynı ise erişim belirteci almak üzere akışı ilerletir. Farklı ise işlemi keser. \n 5.4\tHealthcheck API \n GET /health \n HHS’lerin sunacağı bu servis, düzenli olarak BKM tarafından çağırılarak servislerin ayakta olup olmadıklarının kontrolünün sağlanması planlanmaktadır. \n Başarılı yanıtta Http 200 kodu dönülmelidir. \nBaşarılı Yanıt: \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Koşullu  / İsteğe Bağlı \n Açıklama \n \n \n \n \n status \n status \n AN2..20 \n Z \n “UP”, “DOWN” değerlerini alabilir. \n 5.5  Güçlü Kimlik Doğrulama Kontrolleri \n ÖHK, GKD için HHS uygulamasına yönlendirildiğinde, HHS’nin çeşitli kontroller yaparak işlemin doğruluğunu teyit etmesi gerekmektedir.\nYapılması gereken kontrollere ait temel senaryolar aşağıdaki tabloda belirtilmiştir. Bu senaryolar baz alınarak HHS’ler tarafından zenginleştirilebilir. \n Aşağıdaki tabloda yer alan 07-13 arası Rıza İptal Detay Kodlarının oluştuğu senaryolar, HHS uygulamasında yapılan kullanıcı doğrulama öncesi ve sonrası olarak iki adımda incelenmelidir. \n HHS tarafında, kullanıcı doğrulama öncesinde yapılan kontroller neticesinde verilemeyen rızalar için ‘04’ : Süre Aşımı : Yetki Bekleniyor iptal kodu atanır. HHS'nin YÖS uygulamasına 04 kodunu iletmesi beklenmez. YÖS zaman aşımı neticesinde rıza statüsünü sorgulayarak öğrenir. \nKullanıcı doğrulandıktan sonra rıza verilemiyorsa ilgili hata kodunun YÖS'e iletilmesi beklenmektedir. Kullanıcı doğrulama sonrası YÖS'e iletilen rıza iptal detay kodu ile HHS veri modelinde tutulan rıza ile ilişkili rıza iptal detay kodu, aynı değeri alacak şekilde güncellenmelidir. YÖS, HHS tarafından kendine iletilen rıza iptal detay kodunu kendi veri modelinde güncellemelidir. \n Zorunlu olarak belirtilen hata durumlarının HHS’ler tarafından gerçeklenmesi ve uygun hata kodlarının YÖS’e iletilmesi; ileride oluşabilecek mutabakatlaşma sorunlarını ortadan kaldırabilecek, yapılacak raporlamalar kapsamında sistem ve süreç iyileştirmelerine katkı sağlayacak, son kullanıcı açısından da alınan hataya yönelik bilgilendirici içerik sağlayacaktır. \n Hata açıklamaları; hata koduna uygun ya da uyumlu olmak kaydıyla, HHS ve YÖS tarafından farklı şekillerde sunulabilir. \n GKD Sırasında yapılması gereken kontroller \n \n \n \n Rıza İptal Detay Kodu \n HHS hata açıklaması* \n Yös ekranında listelenecek örnek mesaj metni* \n Örnek Senaryo \n Zorunlu / Opsiyonel \n \n \n \n \n 07 \n Rıza mevcut ve durumu \"Yetkilendirildi\" veya \"Yetki Kullanıldı\" \n Yetki Hatası \n ÖHK,  kullanıcı doğrulama işlemi tamamlandıktan sonra  YÖS ekranında ileri - geri yaparak ya da ÖHK'nın yönlendirme adresini kopyalayarak tarayıcıya yapıştırması ile tekrar HHS'ye yönlendirir. Bu durumda HHS bu rıza iptal detay kodunu iletir. HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Zorunlu \n \n \n 08 \n Rızano ile kimlik bilgileri uyuşmazlığı. \n İşlem gerçekleştirilememiştir. \n YÖS tarafından başlatılan rıza içerisinde yer alan kimlik bilgisi (örn:TCKN) ile HHS'de başarılı kimlik doğrulama yapılan ÖHK'nın bilgilerinin uyuşmadığı durumda  HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Zorunlu \n \n \n 09 \n ÖHK'nın HHS'de ilgili ürününün olmadığı durum (hesap/kart) \n Gösterilebilecek hesap/kart bulunamamıştır. \n HHS, kullanıcı doğrulama yaptıktan sonra, ÖHK'nın uygun statülü hesabının olmadığı durumda  HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Zorunlu \n \n \n 10 \n ÖHK'nın Açık Bankacılık kanalı işleme kapalı \n ÖHK'nın Açık Bankacılık kanalı işleme kapalı \n Açık bankacılığı ayrı bir kanal olarak tanımlamış HHS'lerde,  
16ÖHK kullanıcı doğrulama yaptıktan sonra yapılan kontrollerde, ÖHK'nın işlemlerini AB kanalına kapatmış olması durumunda   HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Opsiyonel \n \n \n 11 \n ÖHK'nın HHS'deki hesaplarında yeterli yetkisinin olmaması \n Yetki hatası \n 1- Kurumsal firma kullanıcılarının hesaplar üzerinde işlem yetkisinin olmaması durumunda   2- Bireysel ortak hesaplarda hesap kısıtı bulunuyorsa (para çıkışına izin verilmediği durum)  HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Zorunlu \n \n \n 12 \n HHS’nin,  ÖHK özelinde yaptığı kontrollerin başarısız olması \n Yetki hatası \n HHS'nin, kullanıcı doğrulama sonrası ÖHK için iç sistemlerinde yaptığı kontrollerin başarısız olması. Örneğin: Müşterinin henüz bankacılık hizmet sözleşmesi gibi Internet şubesi üzerinde işlem yapmasını engelleyen eksikleri olması durumunda veya kurumsal kullanıcıda vekalet süresinin dolması/eksik doküman olması durumunda kanal üzerinde işlem yapamadığı durum  HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Opsiyonel \n \n \n 13 \n ÖHK isteği ile GKD’den vazgeçilmesi \n Müşteri işlemden vazgeçmiştir. \n HHS ekranında yer alan VAZGEÇ butonuna basılması durumu (ÖHK,HHS uygulamasında kullanıcı doğrulama yaptıktan sonra VAZGEÇ butonu olabilir.) \n Zorunlu \n \n \n 14 \n GKD İptali: Fraud Şüphesi \n İşlem gerçekleştirilememiştir. \n HHS Fraud şüphesi nedeniyle işlemin devamına izin vermez. HHS'nin, fraud kontrollerinin ödeme başlatma hizmeti için yapması ve “14- GKD İptali: Fraud Şüphesi” ile rıza iptalini gerçekleştirmelidir. HBH servislerinde HHS'nin rıza iptal kodu 14 ile işlemi kesmesi HHS'nin kendi insiyatifindedir yani opsiyoneldir. \n Koşullu \n \n \n 99 \n Diğer \n İşlem gerçekleştirilememiştir. \n Oluşabilecek diğer senaryolar. \n Zorunlu \n \n \n \n GKD sırasında iletilen rıza no eğer HHS’nin sisteminde bulunamazsa durumu güncellenecek bir rıza no da olmayacaktır. HHS kendi önyüzünde bu duruma uygun bir mesaj gösterebilir. YÖS’e de Diğer hata kodu ile bu durumu iletebilir. \n"},{title:"POST /erisim-belirteci",frontmatter:{},regularPath:"/v1.0.2/contents/erisim-belirteci.html",relativePath:"v1.0.2/contents/erisim-belirteci.md",key:"v-485bbe8d",path:"/v1.0.2/contents/erisim-belirteci.html",content:" POST /erisim-belirteci \n İSTEK: \n YÖS erisim-belirteci erişim adresini 2 amaçla kullanır: \n \n \n Bir önceki adımdan aldığı rizaNo, rizaTip (ödeme emri başlatma hizmetinde “O”, hesap bilgisi hizmetinde “H”) ve GKD sonrası dönülen yetKod bilgilerini kullanarak HHS nezdinde ErisimBelirteci nesnesi oluşturmak üzere istekte bulunur. YÖS’ün istekte bulunabilmesi için GKD adımının başarılı bir şekilde tamamlanması rizaDrm bilgisinin ‘yetkilendirildi’ olması gerekir. Erişim Belirteci nesnesi ile rızası nesnesi (Ödeme Emri Rızası veya Hesap Bilgisi Rızası) arasındaki ilişki rıza numarası üzerinden sağlanır. \n \n \n Aldığı erişim belirtecinin Geçerlilik Süresinin dolduğu durumda, yenileme belirteci karşılığında yeni bir erişim belirteci alması gerekmektedir. \n \n \n POST /erisim-belirteci isteğinin (REQUEST) gövdesinde (BODY)  “ErisimBelirteciIstegi” nesnesi (Tablo-23) kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “ErisimBelirteci” nesnesi (Tablo 24) oluşturulur veya (Yenileme Belirteci için) güncellenir. Rıza durumu “Yetki Kullanıldı” olarak güncellenir. \n Erişim Belirteci POST işlemi sonucunda HTTP 200 dönülmesi gerekmektedir. \n Tablo 23: “ErisimBelirteciIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format:Veri modeli İsmi \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n RızaNo \n rizaNo \n AN1..128 \n Z \n Rıza nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n Rıza Tipi \n rizaTip \n AN1 \n Z \n O veya H (TR.OHVPS.DataCode.RizaTip) \n \n \n Yetki Tipi \n yetTip \n AN1..50 \n Z \n “yet_kod” yada “yenileme_belirteci” değerini alabilir.  (TR.OHVPS.DataCode.YetTip) \n \n \n Yetki Kodu \n yetKod \n AN1..255 \n K \n GKD işleminden dönen yetkilendirme kodudur. Tek kullanımlık olup, aynı yetKod ile birden fazla token alınamaz. yetKod Parametresinin yaşam ömrü 5 dakika olmalıdır. yetTip = “yet_kod” ise zorunludur. \n \n \n Yenilenme Belirteci \n yenilemeBelirteci \n AN1..4096 \n K \n Erişim belirtecinin yenilenmesi amacıyla kullanılır. yetTip = “yenileme_belirteci” ise kullanımı zorunludur. \n \n \n \n BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “erisimBelirteci” nesnesinde (Tablo-19) bulunan erişim belirteci değeri ödeme emrinin başlatılması esnasında kullanılır. \n Tablo 24: \"ErisimBelirteci\" nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format:Veri modeli İsmi \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Erişim Belirteci \n erisimBelirteci \n AN1..4096 \n Z \n Yetkilendirme Kodu karşılığında HHS tarafından dönülen ve sonraki hesap bilgisi ve ödeme emri servislerine erişimde kullanılan bilgidir. \n \n \n Geçerlilik Süresi \n gecerlilikSuresi \n N1..9 \n Z \n Erişim Belirtecini saniye cinsinden geçerlilik süresidir.  Erişim belirteci geçerli olduğu son tarih ; Hesap Bilgisi Rızası için en fazla 30 gün olmalıdır. Erişimin Geçerli Olduğu Son Tarih(erisimIzniSonTrh); Erişim Belirteci Geçerlilik Süresi'nden küçük ise Erişimin Geçerli Olduğu Son Tarih değeri ile sınırlıdır. Ödeme Başlatma Rızası için 5 dakika olmalıdır. \n \n \n Yenileme Belirteci \n yenilemeBelirteci \n AN1..4096 \n Z \n Erişim belirtecinin yenilenmesi amacıyla kullanılır. \n \n \n Yenileme Belirteci Geçerlik Süresi \n yenilemeBelirteciGecerlilikSuresi \n N1..9 \n Z \n Yenileme belirtecinin saniye cinsinden geçerlilik süresidir. Yenileme belirtecinin geçerli olduğu son tarih ; Hesap Bilgisi için Erişimin Geçerli Olduğu Son Tarih ile sınırlı olmalıdır. Bu tarih geldiği zaman Hesap Bilgisi Rıza Durumunu ”Yetki Sonlandırıldı” statüsüne çekilmesi gerekir. Ödeme Başlatma için Rıza Oluşturma Zamanından 15 gün sonrası olmalıdır. 15 gün süresi sorgulama servislerinin çağrımını destekleyecek şekilde uzun tutulmuştur. İleri vadeli işlemler bu kapsamda değildir.  Ödeme emri 5 dakika içinde gerçekleştirilmelidir. Gerçekleşmediğinde 4.2.8 bölümünde aktarılan rıza statü güncellemesi yapılmalıdır. \n \n \n \n erisim-belirteci erisim noktasından elde edilen erisimBelirteci, ilişkilendirildiği nesne veya işlem için gönderilen POST isteği başlığında x-access-token alanında iletilir. \n Yenilenme Belirteci (refreshToken) kullanılarak Erişim Belirteci (accessToken) alındığında, döne
16n yanıttaki Yenileme Belirteci Geçerlik Süresi (yenilemeBelirteciGecerlilikSuresi) geçen süre eksiltilerek, kalan zamanın saniye cinsinden hesaplanmasıyla iletilmelidir. \n Yenileme Belirteci ile Erişim Belirteci güncellendiğinde, HHS'den dönen yenilemeBelirteci değeri değişebilir, YÖS bu güncel anahtarı saklamalı ve sonraki erisimBelirteci isteğini yenilenmiş olan yenilemeBelirteci ile yapmalıdır. \n Erişim Belirteci API çağrımı sırasında rıza durumları kontrol edilmelidir. Bu kontrollerin nasıl yapılması gerektiği 4-Rıza Durumları bölümünde aktarılmıştır. \n Yenileme belirteci karşılığında yeni bir erişim belirteci alınması sırasında hata alınması durumunda, HHS'nin döndüğü hata yanıtında httpCode = 401 ve errorCode = \"TR.OHVPS.Connection.InvalidToken\" geldiği durumda, YÖS tarafından HHS'ye ilgili rıza için sistemsel olarak iptal isteği gönderilmelidir. \n"},{title:"2.Kapsam ve Dayanak",frontmatter:{},regularPath:"/v1.0.2/contents/kapsam-ve-dayanak.html",relativePath:"v1.0.2/contents/kapsam-ve-dayanak.md",key:"v-3539d41d",path:"/v1.0.2/contents/kapsam-ve-dayanak.html",content:" 2.Kapsam ve Dayanak \n 12 Kasım 2019’da güncellenen “ 6493 sayılı Ödeme ve Menkul Kıymet Mutabakat Sistemleri, Ödeme Hizmetleri ve Elektronik Para Kuruluşları Hakkında Kanun ”un (Kanun) 12’nci maddesine yeni eklenen ve  Ödeme Hizmetleri Direktifi 2 'de (Payment Services Directive 2, PSD2) bulunan iki yeni ödeme hizmeti aşağıdaki gibi tanımlanmıştır (Şekil-1: Ödeme Hizmetleri Veri Paylaşım Servisleri): \n \n Ödeme Emri Başlatma Hizmeti : ÖHK’nın isteği üzerine başka bir ödeme hizmeti sağlayıcısında bulunan  ödeme hesabıyla  ilgili sunulan ödeme emri başlatma hizmeti [Madde 12, birinci fıkra, (f) bendi] \n Hesap Bilgisi Hizmeti : ÖHK’nın onayının alınması koşuluyla, ÖHK’nın ödeme hizmeti sağlayıcıları nezdinde bulunan bir veya daha fazla  ödeme hesabına  ilişkin konsolide edilmiş bilgilerin çevrim içi platformlarda sunulması hizmeti [Madde 12, birinci fıkra, (g) bendi] \n \n   \n Şekil 1: Ödeme Hizmetleri Veri Paylaşım Servisleri (ÖHVPS)- tanıtım \n Kanunun 14/A maddesinin ikinci fıkrasına göre , Kanunun 12’nci maddesinin birinci fıkrasının (f) veya (g) bentlerinde yer alan ödeme hizmetleri ile ilgili işlemlerin yürütülmesine ilişkin usul ve esaslar ile taraflarca uyulması gereken teknik ve operasyonel gereklilikler ikincil düzenlemeler uyarınca Türkiye Cumhuriyet Merkez Bankası (TCMB) tarafından belirlenir. Kanunun 12’nci maddesinin birinci fıkrasının (f) veya (g) bentlerinde yer alan ödeme hizmetlerinde kullanılan veri paylaşım servisleri  ödeme hizmetleri veri paylaşım servisleri (ÖHVPS)  olarak adlandırılmaktadır. \n Ödeme Hizmetleri ve Elektronik Para İhracı ile Ödeme Hizmeti Sağlayıcıları Hakkında Yönetmelik’in (Yönetmelik) 59’uncu maddesinin birinci fıkrası uyarınca hazırlanan bu belgede söz konusu ödeme hizmetlerini sunacak ödeme hizmeti sağlayıcısının, ödeme hesabının bulunduğu ödeme hizmeti sağlayıcısının, varsa ilgili diğer tarafların ve bu hizmetlerin sunulması için taraflar arasında kurulacak bağlantının teknik ve operasyonel gereklilikleri açıklanmaktadır. \n Düzenlemeler kapsamında yetkilendirilen üçüncü taraf hizmet sağlayıcısı  (Yetkili Ödeme Hizmeti Sağlayıcısı, YÖS) , ödeme hizmeti kullanıcılarının  Hesap Hizmeti Sağlayıcıları (HHS)  nezdindeki ödeme hesaplarına ulaşarak ödeme emri başlatma ve hesap bilgisi sağlama hizmetlerinden (ödeme hizmetleri veri paylaşım servislerinden) faydalanmasına aracılık eder. Ödeme hizmetleri veri paylaşım servisleri kapsamında iki tip YÖS bulunmaktadır:  1) Hesap Bilgisi Hizmeti Sağlayıcısı (HBHS) ve 2) Ödeme Emri Başlatma Hizmeti Sağlayıcısı (ÖBHS). \n Hesap Bilgisi Hizmeti Sağlayıcısı (HBHS) ÖHK’nın farklı Hesap Hizmeti Sağlayıcıları (HHS) nezdindeki hesaplarının bilgilerini derleyerek çevrim içi platformlarda  toplu şekilde  sunar. Ödeme Emri Başlatma Hizmeti Sağlayıcısı (ÖBHS) ise talebi üzerine ÖHK’nın HHS’de bulunan ödeme hesabından ödeme işlemi başlatır. \n ÖHVPS’nin üst düzey gösterimi Şekil-2’de verilmiştir. \n   \n Şekil 2: Ödeme Hizmetleri Veri Paylaşım Servisleri (ÖHVPS) -üst düzey gösterim \n Ödeme Hizmetleri Veri Paylaşım Servislerinin HHS’ler tarafından  BKM API Geçidi  vasıtasıyla sunulduğu uygulama mimarisi ise Şekil-3’te sunulmuştur. \n  \n Şekil 3: ÖHVPS'nin BKM API Geçidi vasıtasıyla sunumu \n"},{title:"7.\tHesap Bilgisi Hizmeti",frontmatter:{},regularPath:"/v1.0.2/contents/hesap-bilgisi-hizmeti.html",relativePath:"v1.0.2/contents/hesap-bilgisi-hizmeti.md",key:"v-f0808a06",path:"/v1.0.2/contents/hesap-bilgisi-hizmeti.html",headers:[{level:2,title:"Genel Bilgiler",slug:"genel-bilgiler"},{level:2,title:"Hesap Bilgisi Hizmeti İçin Erişim Adresleri",slug:"hesap-bilgisi-hizmeti-icin-erisim-adresleri"}
16,{level:2,title:"ADIM 0: ÖHK'nın hesap bilgilerine erişim için talepte bulunması:",slug:"adim-0-ohk-nın-hesap-bilgilerine-erisim-icin-talepte-bulunması"},{level:2,title:"7.1 ADIM 1: Hesap Bilgisi Rızasının Hazırlanması",slug:"_7-1-adim-1-hesap-bilgisi-rızasının-hazırlanması"},{level:3,title:"POST /hesap-bilgisi-rizasi",slug:"post-hesap-bilgisi-rizasi"},{level:3,title:"Başarılı İstek:",slug:"basarılı-istek"},{level:3,title:"Başarılı Yanıt:",slug:"basarılı-yanıt"},{level:2,title:"İzinler",slug:"izinler"},{level:2,title:"7.2 ADIM 2: Hesap Bilgisi Hizmeti Rızasının Tesisi",slug:"_7-2-adim-2-hesap-bilgisi-hizmeti-rızasının-tesisi"},{level:2,title:"7.3 ADIM 2.1: Hesap Bilgisi Rızasının Sorgulanması",slug:"_7-3-adim-2-1-hesap-bilgisi-rızasının-sorgulanması"},{level:2,title:"7.4 ADIM 2.2: Hesap Bilgisi Rızasının İptali",slug:"_7-4-adim-2-2-hesap-bilgisi-rızasının-iptali"},{level:2,title:"7.5 ADIM 3: Hesap Bilgilerinin Alınması",slug:"_7-5-adim-3-hesap-bilgilerinin-alınması"},{level:2,title:"7.6 ADIM 3.1 ve 3.2: Hesap Bilgilerinin Sorgulanması",slug:"_7-6-adim-3-1-ve-3-2-hesap-bilgilerinin-sorgulanması"},{level:2,title:"7.7 ADIM 3.3 ve 3.4: Hesap Bakiyesinin Sorgulanması",slug:"_7-7-adim-3-3-ve-3-4-hesap-bakiyesinin-sorgulanması"},{level:2,title:"7.8 ADIM 3.5 ve 3.6: İşlemlerin Sorgulanması",slug:"_7-8-adim-3-5-ve-3-6-islemlerin-sorgulanması"},{level:2,title:"7.9\tHealthcheck API",slug:"_7-9healthcheck-api"},{level:3,title:"Başarılı Yanıt:",slug:"basarılı-yanıt-2"}],content:" 7.\tHesap Bilgisi Hizmeti  \n Genel Bilgiler \n Hesap bilgisi sorgulama için HBHS tarafından müşteri rızası tesisinin HHS tamamlanmış olması gerekir. Müşteri rızası tesisi tamamlandıktan sonra, HBHS sorgulamak istediği hesaba ait verileri ilgili erişim adresi üzerinden sorgular. \n \n \n Şekil 10: Hesap Bilgisi Hizmeti Üst Düzey Akışı \n Şekil-10’da sunulan hesap bilgisi hizmeti 5 temel akıştan oluşur: \n 0.\tMüşterinin hesap bilgilerine erişim için talepte bulunması:  ÖHK ÖBHS mobil uygulama ya da web sitesinden hesap bilgilerine erişim işlemini başlatır. \n 1.\tHesap Bilgisi müşteri rızasının hazırlanması: \n HBHS, “hesap bilgilerine erişim” için müşteri rızası tesisi amacıyla HHS’deki hesap bilgisi rızası erişim adresine bir POST isteğinde bulunur ve bir hesap bilgisi rızası nesnesi oluşturur. HHS hesap bilgisi rızası nesnesi için biricik tanımlayacı döner (RızaNo). Hesap bilgisi rızası, müşterinin HBHS’nin hesap bilgilerine erişim izin verdiği alanları içerir: \n \n İzinler - erişim için izin verilen veri kümelerinin listesi. \n Erişimin Geçerli Olduğu Son Tarih - HBHS'nin müşterinin hesap bilgilerine erişebileceği isteğe bağlı seçilebilen son tarih. \n İşlem Sorgulama Başlangıç Zamanı – Müşteri rızasının tesisinden itibaren geriye dönük olarak HBHS’nin hesap bilgilerine erişebileceği süreyi \n İşlem Sorgulama Bitiş Zamanı - Müşteri rızasının tesisinden itibaren ileriye dönük olarak HBHS’nin hesap bilgilerine erişebileceği süreyi \n \n 2.\tHesap bilgisi hizmeti müşteri rızasının tesisi: \n HHS, Hesap Bilgisi Rızası servisi ile ÖHK özelinde “Yetki bekleniyor” statüsünde bir rıza nesnesi hazırlar. HHS, GKD’nin başarıyla tamamlanması sonrasında hesap bilgisi rızası nesnesinin yetkilendirildiğini belirtmek için Rıza Durumunu “Rıza Yetkilendirildi” olarak günceller. Nesne yetkilendirildikten sonra HHS nesne ile bir erişim belirteci (access token) ilişkilendirir, Rıza Durumunu “Yetki Kullanıldı” yapar ve bu belirteci HBHS’ye geri döner.  Böylece müşteri rıza tesisi sağlanmış olur. \n Hesap bilgisi için müşteri rızasına ilişkin temel ilkeler şunlardır: \n \n 1 ÖHK'nın 1 YÖS için 1HHS'de Yetki Bekleniyor, Yetkilendirildi, Yetki Kullanıldı statüsünde 1 rızası olabilir. \n Müşteri rızasının ayrıntıları ÖHK ile HBHS arasında belirlenir. Bu nedenle müşteri rızasının ayrıntıları HHS ekranında değiştirilmemelidir. \n ÖHK, hesap erişim izni ayrıntılarını yalnızca bir bütün olarak yetkilendirebilir veya geri alabilir. \n Müşteri rızası tesisi esnasında, müşteri HHS arayüzünde erişim için yetkilendirecek hesapları seçer. \n \n 2.1\tHesap bilgisi rızasının sorgulanması:  Müşteri rızası  GET/hesap-bilgisi-rizasi/{RizaNo}  çağrısı yapılarak sorgulanır. \n 2.2\tHesap bilgisi müşteri rızasının iptali:  Müşteri rızası  DELETE/hesap-bilgisi-rizasi/{RizaNo}
16  çağrısı yapılarak iptal edilir. \n 3.\tHesap bilgilerinin alınması:  Hesap bilgileri ilgili kaynağa (hesaplar, bakiye, işlemler) GET isteği yapılarak gerçekleştirilir. HBHS, müşteri rızasının tesisinden sonrasında (geçerli bir erişim belirticine sahip olduğunda) öncelikle  GET/hesaplar  çağrısı yapacaktır. \n Hesap Bilgisi Hizmeti İçin Erişim Adresleri \n Etki Alanı (Scope) =“hesap_bilgisi” \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu / İsteğe Bağlı \n Yetkilendirme Türü \n İmzalama \n Parametre \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n hesap-bilgisi-rizasi \n POST \n /hesap-bilgisi-rizasi \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n HesapBilgisiRizasiIstegi \n HesapBilgisiRizasi \n \n \n 2 \n erisim-belirteci  (GKD için) \n POST \n /erisim-belirteci \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n ErisimBelirteciIstegi \n ErisimBelirteci \n \n \n 2.1 \n hesap-bilgisi-rizasi \n GET \n /hesap-bilgisi-rizasi/{RizaNo} \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n \n \n HesapBilgisiRizasi \n \n \n 2.2 \n hesap-bilgisi-rizasi \n DELETE \n /hesap-bilgisi-rizasi/{RizaNo} \n Z \n İstemci Kimlik Bilgileri \n \n \n \n \n \n \n 3.1 \n hesaplar \n GET \n /hesaplar \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama \n \n HesapBilgileri(birden çok hesap) \n \n \n 3.2 \n hesaplar \n GET \n /hesaplar/{hspRef} \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n \n \n HesapBilgileri(tek  hesap) \n \n \n 3.3 \n bakiye \n GET \n /hesaplar/{hspRef}/bakiye \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n \n \n BakiyeBilgileri(tek  hesap) \n \n \n 3.4 \n bakiye \n GET \n /bakiye \n İ \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama \n \n BakiyeBilgileri(birden çok hesap) \n \n \n 3.5 \n islemler \n GET \n /hesaplar/{hspRef}/işlemler \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama Filtreleme \n \n IslemBilgileri (tek hesap) \n \n \n \n Tablo 11: Hesap Bilgisi Hizmeti İçin Erişim Adresleri \n ADIM 0: ÖHK'nın hesap bilgilerine erişim için talepte bulunması: \n ÖHK, HBHS uygulamasında (web arayüzü/mobil uygulama) hesap bilgilerine erişim için talepte bulunur. \n 7.1 ADIM 1: Hesap Bilgisi Rızasının Hazırlanması \n Bu API çağrısı HBHS'nin HHS'de yeni bir “HesapBilgisiRizasi” nesnesi oluşturmasını ve nesneye erişmek için benzersiz bir rıza numarası ({RizaNo}) dönülmesini sağlar. \n API çağrısının başarıyla sonuçlanması için HBHS'nin istemci kimlik bilgileri yetkisi kullanması yeterlidir.\nBaşarıyla oluşturulan hesap bilgisi rıza kaynağının rıza durumu “Yetki Bekleniyor” olarak düzenlenir.\nÖHK daha önce aldığı rızaya ilişkin erişim tarihleri, izin türlerini ve hesap bilgilerini güncellemek isterse, HBHS önce HHS nezdindeki rızayı iptal etmeli ve sonrasında yeni bir rıza talebinde bulunmalıdır.\n \n \n Şekil 11: Hesap Bilgisi Müşteri Rızasının Hazırlanması \n \n POST /hesap-bilgisi-rizasi isteğinin (REQUEST) gövdesinde (BODY)  “HesapBilgisiRizasıIstegi” nesnesi (Tablo-12) kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “HesapBilgisiRizasi” (Tablo-13) nesnesi oluşturulur. \n  POST /hesap-bilgisi-rizasi \n Başarılı İstek: \n İSTEK: \n HBHS, bu API erişim adresinden HHS’ye yeni bir HesapBilgisiRizasi oluşturulması için istekte bulunur: \n \n HBHS, ÖHK’nın hesap bilgilerine yönelik rıza başlatma isteği olduğunu HHS’ye bildirir. \n HBHS, ÖHK’nın, HBHS arayüzünden verdiği rızanın (“Ön Onay”) bir kopyasının HHS nezdinde müşteri tarafından onaylanması için HHS’ye gönderilmesini sağlar. \n HHS; istek mesajında yer alan alanların API dökümanında belirtilen şartları sağlayacak şekilde zorunluluk ve uzunluk kontrollerini yapar. (Zorunlu) \n HHS; YÖS API ile alınan HBHS bilgilerinin içerisinde yer alan yönlendirme ve bildirim adresleri ile ödeme emri rızası nesnesi request mesajında paylaşılan adreslerin uyumlu olup olmadığının kontrollerini y
16apar. (Zorunlu) \n HHS; kimlik bilgileri nesnesinde iletilen kimlik bilgileri ile ÖHK’nın HHS müşterisi olup olmadığının kontrollerini yapar. Bu kontrol hem bireysel hem de kurumsal ÖHK’lar için yapılmalıdır.  (Zorunlu) \n Erişimin Geçerli Olduğu Son Tarih, İşlem Sorgulama Başlangıç Zamanı, İşlem Sorgulama Bitiş Zamanı alanları ile ilgili Tablo 12’de belirtilen kontroller yapılmalıdır. (Zorunlu) \n HHS, benzersiz “RizaNo” ile “HesapBilgisiRizasi” nesnesi oluşturur ve HBHS’ye döner. \n HHS, HesapBilgisiRizasi oluşturduğu anda durumunu “Yetki Bekleniyor” olarak düzenler. \n \n Erişimin Geçerli Olduğu Son Tarih, İşlem Sorgulama Başlangıç Zamanı, İşlem Sorgulama Bitiş Zamanı alanlarında zaman aralıkları müşteri deneyimi penceresinden değerlendirilerek ay cinsinden belirtilmiştir. Bu konuda aşağıdaki gibi oluşabilecek uç örneklere dikkat edilmesi gerekmektedir. \n Bugün : 31.08.2019 \nBugün + 6 Ay : 29.02.2020 \nBugün : 30.08.2020 \nBugün + 6 Ay : 28.02.2021\nBugün : 30.09.2022 \nBugün + 3 Ay : 30.12.2022\nBugün : 14.07.2022 \nBugün + 3 Ay : 14.10.2022 \n Tablo 12: “HesapBilgisiRizasiIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Hata durumunda TR.OHVPS.Connection.InvalidASPSP hata kodunu döner. \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder.  Hata durumunda TR.OHVPS.Connection.InvalidTPP hata kodunu döner. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n >Yetkilendirme Yöntemi \n yetYntm \n AN1 \n İ \n TR.OHVPS.DataCode.GkdTur sıralı veri türü değerlerinden birini alır.   Yetkilendirme yöntemi, HBHS tarafından belirtilmeyebilir. \n HHS, HBHS’nin belirlediği yöntemi dikkate alarak kendi belirlediği yöntemi kullanır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunludur.  YÖS Yönlendirmeli GKD yöntemi ile akışı destekliyorsa, yetYntm değişkeninden bağımsız olarak yönlendirme adresini iletmelidir. Durum kodu(drmKod), yönlendirme adresine parametre olarak eklenmelidir. \n HHS, müşteri uygulama / tarayıcısını bu alanda belirtilen adrese yönlendirir. \n \n \n > Bildirim Adresi \n bldAdr \n AN1..1024 \n K \n Ayrık güçlü kimlik doğrulama için zorunludur.  YÖS Ayrık GKD yöntemi ile akışı destekliyorsa, yetYntm değişkeninden bağımsız olarak bildirim adresini iletmelidir.  Durum kodu(drmKod), yönlendirme adresine parametre olarak eklenmelidir. \n HHS, ayrık GKD sonrası bu alanda belirtilen adrese otorizasyon kodunu (authentication code) iletir. \n \n \n Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n > Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur sıralı veri türü değerlerinden birini alır.   Kurum adına yapılan(ticari) işlemlerde kurum kullanıcısının bilgisi iletilmelidir. \n \n \n \n > Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır.   TR.OHVPS.DataCode.KimlikTur değerine göre uzunluk ve formatı değişir.   Kurum adına yapılan(ticari) işlemlerde kurum kullanıcısının bilgisi iletilmelidir. \n \n \n \n > Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür.  TR.OHVPS.DataCode.KurumKimlikTur sıralı veri türü değerlerinden birini alır. \n \n \n \n > Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.  TR.OHVPS.DataCode.KurumKimlikTur değerine göre uzunluk ve formatı değişir. \n \n \n \n > Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur sıralı veri türü değerlerinden birini alır (B: Bireysel, K:Kurumsal) \n \n \n \n Hesap Bilgisi \n hspBlg \n Kompleks: HesapBilgisi \n Z \n \n \n \n \n >İzin Bilgisi \n iznBlg \n Kompleks: IzinBilgisi \n Z \n \n \n \n \n >> İzin Türü \n iznTur \n Array[AN2] \n Z \n ÖHK tarafından HHS önyüzünde belirlenen izin tipleridir. Bir istekte birden fazla değer bulunabilir, TR.OHVPS.DataCode.IzinTur sıralı veri türü değerlerinden birini alır. \n \n \n \n >> Erişimin Geçerli Olduğu Son Tarih \n erisimIzniSonTrh \n ISODateTime \n Z \n Hesap bilgisi rızasının geçerli olduğu son tarih.   Müşteri YÖS ekranından bu değeri belirleyebilir.   Varsayılan değer : Rıza verilen tarih + 6 ay   Alabileceği maksimum değer : Rıza tarihi + 6 ay    Alabileceği minimum değer : Rıza tarihi + 1 gün   Örneğin 23/09/202
161’de minimum 24/09/2021 seçilebilir. Bu durumda izin 24/09/2021 23:59:59’da bitecek şekilde olmalıdır. \n Bu alanda bir değer bulunmadığı durumda HHS hata dönmelidir. \n \n \n >> İşlem Sorgulama Başlangıç Zamanı \n hesapIslemBslZmn \n ISODateTime \n K \n Hesap bilgisi rızası verilmesinden geçmişe dönük en fazla 12 ay olabilir, daha eski olmaması gerekir.   Varsayılan değeri rıza verilen tarih (işlem zamanı) – 12 aydır.   ÖHK bu alana bir değer girişi sağlamamış ise ÖBHS varsayılan değerlerle bu alanı doldurarak, HHS’ye iletir.   Minimum tarihi : Rızanın veriliş tarihi  - 12 ay    Maksimum tarih: Rızanın veriliş tarihi +  12 ay    İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur.  İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ise gönderilmemelidir. \n ÖHK tarafından izin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ve  İşlem Sorgulama Başlangıç Zamanı ÖBHS tarafından dolu olarak gönderilmiş ise HHS tarafından işlemin devamına izin verilmez. İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmiş ise; HHS bu alanın alabileceği minimum ve maksimum değerlerin sınırlar içerisinde olduğunu kontrol eder. \n \n \n >> İşlem Sorgulama Bitiş Zamanı \n hesapIslemBtsZmn \n ISODateTime \n K \n Hesap bilgisi rızası verilmesinden geleceğe dönük en fazla 12 ay sonrası olabilir, daha ileri bir tarih olmaması gerekir.   Varsayılan değeri: Rıza verilen tarih + 12 aydır.  ÖHK bu alana bir değer girişi sağlamamış ise ÖBHS varsayılan değerlerle bu alanı doldurarak, HHS’ye iletir.  Minimum tarihi : Rızanın veriliş tarihi  – 12 ay  Maksimum tarihi :  Rızanın veriliş tarihi + 12 ay   İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur.  İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ise gönderilmemelidir. Eğer dolu gönderilirse HHS tarafından uygun hata mesajı iletilmelidir. \n ÖHK tarafından izin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ve İşlem Sorgulama Bitiş Zamanı ÖBHS tarafından dolu olarak gönderilmiş ise HHS tarafından işlemin devamına izin verilmez.   İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmiş ise; HHS bu alanın alabileceği minimum ve maksimum değerlerin sınırlar içerisinde olduğunu kontrol eder. \n Başarılı Yanıt: \n Tablo 13: HesapBilgisiRizasi nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n HesapBilgisiRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n HesapBilgisiRızası nesnesinin oluşturulma zamanı \n \n \n > Güncellenme Zamanı \n gnclZmn \n ISODateTime \n Z \n HesapBilgisiRızası nesnesinin güncellenme zamanı \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu sıralı veri tipini değerlerinden birini alır. Örn; hesap bilgi rızasının tesisine dair ilk istek mesajına dönüşte “B: Yetki Bekleniyor” değerini alması beklenir. \n \n \n > Rıza Iptal Detay Kodu \n rizaIptDtyKod \n AN2 \n K \n Rıza durumunun iptal olduğu durumda zorunludur. \n \n \n Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n > Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur sıralı veri türü değerlerinden birini alır. \n \n \n > Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur değerine göre uzunluk ve formatı değişir. \n \n \n > Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür.  TR.OHVPS.DataCode.KurumKimlikTur sıralı veri türü değerlerinden birini alır. \n \n \n > Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.  TR.OHVPS.DataCode.KurumKimlikTur değerine göre uzunluk ve formatı değişir. \n \n \n > Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur sıralı veri türü değerlerinden birini alır (B: Bireysel, K:Kurumsal) \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n K \n HHS, HBHS’nin belirlediği yöntemi dikkate alarak kendi belirlediği yöntemi kullanır.  TR.OHVPS.DataCode.GkdTur sıralı veri türü değerlerinden birini alır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n HHS, müşteri uygulama / tarayıcısını bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n > Bildirim Adresi \n bldAdr \n AN1..1024 \n K \n HHS, ayrık GKD sonrası bu alanda belirtilen YÖS adresine otorizasyon kodunu (authentication code) iletir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.  HHS tarafından maksimum 5 dk içinde işlem tamamlanacak şekil zaman damgası oluşturulur. Zaman aşımı olduğunda HHS’nin GKD’ye izin vermeyecek şekilde hata mesajı vermesi gerekmektedir. Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Hesap Bilgisi \n hspBlg \n Kompleks: HesapBilgisi \n Z \n \n \n \n > İzin Bilgisi \n iznBlg \n Kompleks: IzinBilgisi \n Z \n \n \n \n >> İzin Türü \n iznTur \n Array[AN2] \n Z \n ÖHK tarafından HBHS önyüzünde belirlenen izin tipleridir. Bir istekte birden fazla değer bulunabilir, TR.OHVPS.DataCode.IzinTur sıralı veri türü değerlerinden birini alır. \n \n \n >> Erişimin Geçerli Olduğu Son Tarih \n erisimIzniSonTrh \n ISODateTime \n Z \n Hesap bilgisi rızasının geçerli olduğu son tarih \n \n \n >> İşlem Sorgulama Başlangıç Zamanı \n hesapIslemBslZmn \n ISODateTime \n K \n Hesap hareketlerinin sorgunabileceği başlangıç zamanı. İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur. \n \n \n >> İşlem Sorgulama Bitiş Zamanı \n hesapIslemBtsZmn \n ISODateTime \n K \n Hesap hareketlerinin sorgunabileceği bitiş zamanı. İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur. \n \n \n > Ayrıntı Bilgi \n ayrBlg \n Kompleks: AyrintiBilgi \n İ \n \n \n \n > ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n İzinler \n Bir hesap bilgisi müşteri rızası kaynağı çağrısına yanıt olarak döndürülen verileri sınırlamak için izin kodları kullanılır: \n \n Temel Hesap Bilgisi \n Ayrıntılı Hesap Bilgisi \n Bakiye Bilgisi \n Temel İşlem (Hesap Hareketleri) Bilgisi \n Ayrıntılı İşlem Bilgisi \n \n ÖHK’ya sunulacak seçimler ve kuralları aşağıdaki gibi olmalıdır. \n \n \n \n Seçim \n Kural \n \n \n \n \n Temel Hesap Bilgisi \n ÖHK seçimine sunulmamalıdır. Değiştirilemez şekilde seçili gösterilmelidir. \n \n \n Ayrıntılı Hesap Bilgisi \n ÖHK seçim yapabilir. \n \n \n Bakiye Bilgisi \n ÖHK seçim yapabilir. \n \n \n Temel İşlem (Hesap Hareketleri)  Bilgisi \n ÖHK seçim yapabilir. \n \n \n Ayrıntılı İşlem Bilgisi \n ÖHK seçim yapabilir. Ayrıntılı İşlem Bilgisi seçimi Temel İşlem Bilgisi seçimini kapsar. (Ayrıntılı İşlem bilgisi seçildiğinde Temel İşlem Bilgisi de seçili olmalıdır.) \n \n \n \n Aşağıdaki durumlarda, izin kombinasyonlarına izin verilmez. HHS, bu hesap erişim onaylarını 400 (Hatalı İstek) yanıt koduyla reddetmelidir: \n \n İzin dizisinin herhangi bir izin türü içermemesi durumu, \n İzin dizisinde HHS tarafından desteklenmeyen bir izin kodunun yer alması durumu \n 7.2 ADIM 2: Hesap Bilgisi Hizmeti Rızasının Tesisi \n \n \n Şekil 12: Hesap Bilgisi ÖHK Rızasının Tesisi \n Rıza tesisinin başarıyla sonuçlanması için HBHS'nin istemci kimlik bilgileri yetkisi kullanması ve ardından müşterinin HHS tarafından yönlendirmeli veya ayrık GKD ile doğrulanması gerekir. HHS'de oluşturulan ve rıza durumu “Yetki Bekleniyor” olan bir hesap bilgisi rızası, G
16KD sonrası “Yetkilendirildi” statüsüne güncellenir. HBHS, erişim sağlayacağı hesapları hesap bilgisi rızasının tesisinden önce seçer. \n \n \n Yönlendirmeli doğrulama akışında, HBHS ÖHK’yı HHS’ye yönlendirir. \n \n \n HBHS tarafından yönlendirme, bir önceki adımdaki RizaNo’yu içerir. \n \n \n HHS, ÖHK için GKD sürecini işletir. \n ÖHK’yı doğrularsa, \n \n \n ÖHK HBHS üzerinden işlem yapılmasına izin vereceği hesap seçimini yapar. HBHS üzerinden ÖHK’nın verdiği izin bilgilerini ve erişim izninin bitiş tarihi bilgilerini, HHS bilgilendirme amaçlı ÖHK’ya gösterir. \n \n \n HHS hesap bilgisiri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n HHS, ÖHK’yı “olumlu yönlendirme akışı” ile HBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=Y&yetKod=xx&rizaNo=yy&rizaTip=H&drmKod=zzz\n \n \n \n ÖHK’yı doğrulayamazsa, \n \n \n HHS, hesap bilgisi rıza kaynağının durumunu “Yetki İptal” olarak günceller. \n \n \n HHS, ÖHK’yı “olumsuz yönlendirme akışı” ile HBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=I &rizaNo=yy&rizaTip=H&rizaIptDtyKod=11&drmKod=zzz\n \n \n \n \n \n \n \n Ayrık doğrulama akışında, HHS, ÖHK’nın hesap bilgisi hizmetini başlattığı uygulamadan farklı olabilecek bir “doğrulama” uygulamasında işlemi doğrulamasını ister. \n \n Ayrık akış HBHS’nin farklı bir kanal kullanarak yetkilendirme isteği göndermesiyle başlatılır. \n Bu yetkilendirme isteği, yetkilendirilecek hesap bilgisi rızasının eşleştirileceği ÖHK’nın bulunması için ilgili veriyi taşır. \n HHS, ödeme hizmeti kullanıcısını doğrular. \n ÖHK verdiği izin tipi dahilinde bilgileri paylaşılacak olan hesapları seçer. \n HHS, hesap bilgisi rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n \n Başarılı GKD sonrasında (rizaDrm=’Y’) ilgili rıza nesnesi için (belirli bir rizaNo) yetkilendirme kodunun (yetKod) alınmasının ardından erişim belirteci erişim adresine POST çağrısı yapılarak yetkilendirme kodu karşılığında erişim belirteci ve yenileme belirteci alınır. POST /erişim-belirteci erişim noktası EK-3’te açıklanmıştır. \n Erişim belirteci alındıktan sonra; HHS,  hesap bilgisi rızasının durumunu “Yetki Kullanıldı” olarak günceller. Rıza tesisi sağlanmış olur. \n 7.3 ADIM 2.1: Hesap Bilgisi Rızasının Sorgulanması \n GET /hesap-bilgisi-rizasi/{RizaNo} \n ÖHK, HHS üzerinden rıza iptali yapmış olabilir veya ÖHK’nın verdiği rıza süresi dolmuş olabilir.  Bu durumlarda HBHS, rıza alma akışına başlamadan önce, daha önce oluşturulmuş bir HesapBilgisiRizasi kaynağının durumunu, isteğe bağlı olarak alabilir. \n Servis başarılı yanıtında Tablo 13’de belirtilen “HesapBilgisiRizasi” nesnesini dönmektedir. \n Durum \nHesapBilgisiRizasi kaynağı için kullanılabilecek durum göstergeleri şu şekildedir: \n \n Yetki Bekleniyor \n Yetkilendirildi \n Yetki Kullanıldı \n Yetki S
16onlandırıldı \n Yetki İptal \n 7.4 ADIM 2.2: Hesap Bilgisi Rızasının İptali \n \n \n \n Şekil 13: Hesap Bilgisi Müşteri Rızasının Geri Alınması \n DELETE /hesap-bilgisi-rizasi/{RizaNo} \n DELETE /hesap-bilgisi-rizasi çağrısı, bir HBHS'nin önceden oluşturulmuş bir hesap erişim rızasını (yetkili olsun veya olmasın) silmesine izin verir. Müşteri, rızasını HHS üzerinden iptal etmek yerine, HBHS üzerinden bu rızasını kaldırmak isteyebilir. \nBu API çağrısı, müşterinin HBHS üzerinden hesap bilgisi rızasını iptal etmesine ve HHS nezdindeki hesap bilgisi rızası nesnesinin silinmesini sağlar. \nMüşterinin HBHS’nin veri erişim iznini iptal etmesi durumunda HBHS, HHS’de mevcut olan HesapBilgisiRizasi kaynağını pratik olarak mümkün olan en kısa sürede silmelidir. Bu ise, ilgili kaynağa \n DELETE /hesap-bilgisi-rizasi/{RizaNo} \nçağrısı aracılığı ile yerine getirilir. HBHS ayrıca, sisteminden Hesap Erişim İzni kaynaklarını da temizlemelidir. \nSöz konusu silme işlemi, kayıtların statüsünün pasife çekilmesi ile gerçekleştirilmelidir. Söz konusu kayıtlar, denetim izlerinin oluşturulması ve saklanmasına ilişkin ikincil düzenleme hükümleri kapsamında güvenli şekilde tutulmalıdır. \nServis istek parametresi olarak sadece path’de iletilen Rıza No bilgisine ihtiyaç duymaktadır. \nÖHK rızası başarı ile silindiğinde HTTP 204 response kodu ile işlem sonucu iletilir. Rıza tipi “I” yani “Yetki İptal” olarak güncellenir ve gnclZmn zaman damgası vurularak güncellenir. \nÖHK ile rıza iptali sırasında kurulacak iletişimde (e-posta, sms gibi) aşağıdaki alanların iletilmesi tavsiye edilmektedir: \nYÖS Adı, HHS adı, Rıza Oluşturma Zamanı, Servis Tipi Bilgisi (HBHS) \n 7.5 ADIM 3: Hesap Bilgilerinin Alınması \n    \n \n   \n Şekil 14: Hesap Bilgilerinin Alınması \n İSTEK: \nMüşteri rızası tesis edilmiş kullanıcı için HBHS API erişim adresinden HHS’ye erişilebilir hesap bilgilerini GET isteği ile sorgular: \n \n RizaDurumu “Yetki Kullanıldı” ise işleme başlanır. RizaDurumu farklı bir değerde ise “TR.OHVPS.Resource.ConsentMismatch” hatasının iletilmesi gerekir. \n GET verisinin modele göre kontrolü yapılır (Örneğin: Alan kontrolleri) \n \n GET verisinin mantıksal kontrolleri yapılır. \n 7.6 ADIM 3.1 ve 3.2: Hesap Bilgilerinin Sorgulanması \n GET /hesaplar ve GET /hesaplar/{hspRef} \n Bu erişim noktalarından tüm hesapların veya belirli bir hesabın bilgilerinin sorgulanır. Hesap bilgisi için daha önce tanımlanmış izin türüne göre (Temel Hesap Bilgisi veya Detaylı Hesap Bilgisi) yanıtında dönülen HesapBilgileri nesnesinin içeriği değişir.  Tablo 15’te HesapBilgileri nesnesinin içeriği verilmiştir. \n Hesap Bilgisi Sorgu Örneği (Tüm Hesaplar) =  /hesaplar \nHesap Bilgisi Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef} \nİşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar?\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= hspRef &\nsrlmYon=A \n Tablo 14: Hesap Bilgileri Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den büyük olamaz. \n Bu veri gönderildiği durumda, HHS listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarası \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek kayıtların sıralama kriterini belirtir. Alabileceği değerler: { “hspRef”} \n Bu veri gönderildiği durumda, HHS listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama kriterini hspRef olarak belirler. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler:  A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 15: “HesapBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Rıza No \n rizaNo \n AN1..128 \n Z \n HesapBilgisiRızası nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n Hesap Temel \n hspTml \n Kompleks: HesapTemel \n Z \n Temel Hesap Bilgileri (Temel Hesap Bilgisi varsayılan izin türü olduğundan Hesap Temel nesnesi zorunlu olarak yanıtta bulunur) \n \n \n > Hesap Referansı \n hspRef \n AN5..40 \n Z \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez. \n \n \n > Hesap Numarası \n hspNo \n AN26 \n K \n Eğer varsa ödeme hesabına ait IBAN bilgisi \n \n \n > Hesap Sahibi Unvanı \n hspShb \n AN3..140 \n Z \n Hesap sahibi ya da hesap sahiplerinin ad-soyadı, ticari unvanı \n \n \n > Şube Adı \n subeAdi \n AN3..50 \n K \n Eğer varsa ödeme hesabının bağlı olduğu şubenin adı \n \n \n > Kısa Ad \n kisaAd \n AN3..50 \n K \n Eğer hesap sahibi hesaba ait bir ad tanımladıysa, tanımlanan hesap adı \n \n \n > Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi. \n \n \n > Hesap Türü \n hspTur \n AN1 \n Z \n Hesabın türü (bireysel veya ticari). TR.OHVPS.DataCode.HspTur sırali veri değerlerinden birini alır. \n \n \n > Hesap Tipi \n hspTip \n AN1..32 \n Z \n Hesabın tipi (VADESİZ, KREDİLİ vb.).TR.OHVPS.DataCode.HspTip sıralı veri değerlerinden birini alır. \n \n \n >
16Hesap Ürün Adı \n hspUrunAdi \n AN1..140 \n İ \n HHS tarafından atanmış olan ürün adı bilgisidir. HBHS tarafından ÖHK’ya gösterilmesi kullanım kolaylığı sağlayacaktır. \n \n \n > Hesap Durumu \n hspDrm \n AN5..50 \n Z \n Hesabın durumunu belirtir. TR.OHVPS.DataCode.HspDrm sıralı veri türlerinden birini alır. \n \n \n Hesap Detay \n hspDty \n Kompleks: HesapDetay \n K \n Detay Hesap Bilgileri (Temel Hesap Bilgisine ek olarak Detay Hesap Bilgisi izin türü de seçilmişse Hesap Detay nesnesi koşullu olarak yanıtta bulunur) \n \n \n > Açılış Tarihi \n hspAclsTrh \n ISODateTime \n Z \n Belirtilen hesabın açılış tarihi. \n 7.7 ADIM 3.3 ve 3.4: Hesap Bakiyesinin Sorgulanması \n GET /bakiye ve GET /hesaplar/{hspRef}/bakiye \nBu erişim noktalarından tüm hesapların veya belirli bir hesabın bakiyesi sorgulanır. \nİstek çağrısına dönülen “BakiyeBilgileri” nesnesi Tablo 17’de verilmiştir. \n Hesap bakiyelerinin gösterilmesi sırasında aşağıda verilen örnekler gözönünde bulundurulmalıdır. \n Örnek 1 : ÖHK  Hesap Bakiye Tutarı  0 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL. ÖHK 1000 TL para çıkışı gerçekleştirdi. Bakiye API'si yanıtı içerisinde iletilen  Kredi Dahil Göstergesi  0 değerini içeriyorsa,  Hesap Bakiye Tutarı  -1000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL olmalıdır. \n Örnek 2 : ÖHK  Hesap Bakiye Tutarı  0 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL. ÖHK 1000 TL para çıkışı gerçekleştirdi. Bakiye API'si yanıtı içerisinde iletilen  Kredi Dahil Göstergesi  1 değerini içeriyorsa,  Hesap Bakiye Tutarı  2000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL olmalıdır. \n Örnek 3 : ÖHK  Hesap Bakiye Tutarı  1000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL. ÖHK 1000 TL para çıkışı gerçekleştirdi. Bakiye API'si yanıtı içerisinde iletilen  Kredi Dahil Göstergesi  0 değerini içeriyorsa,  Hesap Bakiye Tutarı  0 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL olmalıdır. \n Örnek 4 : ÖHK  Hesap Bakiye Tutarı  1000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL. ÖHK 1000 TL para çıkışı gerçekleştirdi. Bakiye API'si yanıtı içerisinde iletilen  Kredi Dahil Göstergesi  1 değerini içeriyorsa,  Hesap Bakiye Tutarı  3000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL olmalıdır. \n İşlem Sorgu Örneği (Belirli Bir Hesap)=  /bakiye?\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= hspRef &\nsrlmYon=A \n Tablo 16: “BakiyeBilgileri” Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den büyük olamaz. \n Bu veri gönderildiği durumda, HHS listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarasi \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek kayıtların sıralama kriterini belirtir. Alabileceği değerler: { “hspRef”} \n Bu veri gönderildiği durumda, HHS listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama kriterini hspRef olarak belirler. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler:  A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 17: “BakiyeBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Hesap Referansı \n hspRef \n AN5..40 \n Z \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez. \n \n \n Bakiye \n bky \n Kompleks:Bakiye \n Z \n \n \n \n > Hesap Bakiye Tutarı \n bkyTtr \n AN1..25 \n Z \n Hesabın bakiyesi. Bloke tutar düşülmeden iletilmelidir.   Tutar alanı regex patterni şu şekildedir:  '^-?\\d{1,18}$|^-?\\d{1,18}\\.\\d{1,5}$' \n \n \n > Blokeli Tutar \n blkTtr \n AN1..24 \n K \n Varsa hesapta blokeli tutar bilgisi.     Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Para Birimi \n prBrm \n AN3 \n Z \n Para birimi. \n \n \n > Bakiye İletilme Zamanı \n bkyZmn \n ISODateTime \n Z \n Bakiyenin iletildiği zaman bilgisi. \n \n \n > KrediliHesap \n krdHsp \n Kompleks: KrediliHesap \n K \n \n \n \n >> Kredili Mevduat Hesabı Bakiyesi \n kulKrdTtr \n AN1..24 \n Z \n Kredili mevduat tutarı. Kredili bir hesap ise zorunlu.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n >> Kredi Dahil Göstergesi \n krdDhlGstr \n AN1 \n Z \n Kredili bir hesap ise zorunlu. Bakiye tutarının kredi tutarı dahil edilerek ya da edilmeden iletildiğini gösterir.   0: Kredi tutarı dahil edilmeden bakiye bilgisi iletilmesi durumu   1: Kredi tutarı dahil edilerek bakiye bilgisi iletilmesi durumu \n 7.8 ADIM 3.5 ve 3.6: İşlemlerin Sorgulanması \n GET /hesaplar/{hspRef}/islemler \n Belirli bir hesaba ilişkin işlem bilgileri Tablo 1’daki istek parametrelerine göre sorgulanır. \nİşlem bilgisi için daha önce tanımlanmış izin türüne göre yanıtta dönen IslemBilgileri nesnesinin (Temel İşlem Bilgisi veya Temel İşlem Bilgisi ve Detaylı İşlem Bilgisi) içeriği değişir. \nİşlemler servisi hem ÖHK’nın talebi ile YÖS uygulaması üzerinden çağrılabileceği gibi, YÖS’ün ÖHK’sız başlatabileceği otomatik çağrıları ile de yanıt dönebilmektedir. \nHHS, işlemin sistemsel yapılıp yapılmadığını, istek parametreleri içerisinde yer alan PSU-Initiated parametresi ile anlar. Bu parametre “E” ise ÖHK’lı, “H” ise sistemsel yapılmış bir sorgu anlamına gelmektedir.\nÖHK’nın başlattığı sorgular için HHS tarafından belirlenen üst rate limitler dahilinde çağrım yapılabilir. \nYÖS, otomatik yapacağı sorgularda; \n \n Bireysel ÖHK’lar için hesap bazında günde en fazla 4 adet başarı ile sonuçlanan sorgulama yapabilir. \n Kurumsal ÖHK’lar için hesap bazında saatte en fazla 12 adet başarı ile sonuçlanan sorgulama yapabilir. \n \n HHS, tutacağı sayaç bilgisi ile bu sayıları kontrol ederek daha fazla sorgulama yapılmasına izin vermeyebilir. \n Aynı istek parametreleri ile yapılan sorgu sonucunda dönecek toplam kayıt sayısı 100’ü aştığında, sayfalama yöntemi ile HHS’nin cevap dönmesi beklenmektedir.  Her bir sayfa için işlemler servisi tekrar çağrılsa da, bu çağrım HHS’nin tuttuğu sayaç değerini arttırmaz. HHS’nin tutacağı sayaçın kontrol parametreleri YÖS kodu, hesap numarası ya da referansı olmalıdır. Sayfa no parametresi varsa ve 1'den büyük ise işlem sayacını arttırmamalıdır. \n ÖHK’nın YÖS uygulaması üzerinden tetiklediği işlemlerde ise;\nbireysel ÖHK’lar  için en fazla 1 aylık,\nkurumsal ÖHK’lar için ise en fazla 1 haftalık bir pencere aralığında sorgulama yapılabilir. \n YÖS, otomatik yapacağı sorgularda hem bireysel hem de kurumsal ÖHK’lar için 24 saatlik bir pencere aralığında sorgulama yapabilir. \n Hesap kapalı olduğu durumda hesap hareketlerini iletmek istemeyen HHS'lerin  TR.OHVPS.Business.InvalidAccount  hatası vermeleri beklenir. \n İşlem Sorgu Örneği (Belirli Bir Hesap)=  /hes
16aplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-06-01T00:00:00+03:00&\nhesapIslemBtsTrh=2020-06-02T23:59:59+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A \n Tablo 18: İşlem Listesi Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n İşlem Sorgulama Başlangıç Zamanı \n hesapIslemBslTrh \n ISODateTime \n Z \n Sorgulanacak işlemlerin başlangıç tarihi. \n HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. ÖHK tarafından tetiklenen sorgularda;hesapIslemBslTrh ve hesapIslemBtsTrh arası fark bireysel ÖHK’lar için en fazla 1 ay,kurumsal ÖHK’lar için ise en fazla 1 hafta olabilir. YÖS tarafından sistemsel yapılan sorgulamalarda hem bireysel, hem de kurumsal ÖHK’lar için;son 24 saat sorgulanabilir. Bu yüzden hesapIslemBtsTrh-24 saat’ten daha uzun bir aralık sorgulanamaz olmalıdır. İstek başlığında yer alan PSU-Initiated alanı “E” ise ÖHK’lı, “H” ise sistemsel yapılmış bir sorgu anlamına gelmektedir. \n \n \n İşlem Sorgulama Bitiş Zamanı \n hesapIslemBtsTrh \n ISODateTime \n Z \n Sorgulanacak işlemlerin bitiş tarihi. \n HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. YÖS tarafından sistemsel yapılan sorgulamalarda hem bireysel, hem de kurumsal ÖHK’lar için;İleri vadeli işlem emirleri dahil olmadığı için; İşlem Sorgulama Bitiş Zamanı, her zaman, sorgulama zaman damgasını iletecek şekilde (datetime (now)) iletilmelidir. \n \n \n En Düşük İşlem Tutarı \n minIslTtr \n AN1..24 \n İ \n Sorgulanacak işlemlerin alabileceği en düşük işlem tutarı.      Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n Bu veri gönderildiği durumda HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. \n \n \n En Yüksek İşlem Tutarı \n mksIslTtr \n AN1..24 \n İ \n Sorgulanacak işlemlerin alabileceği en yüksek işlem tutarı.    Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n Bu veri gönderildiği durumda HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. \n \n \n Borç Alacak Göstergesi \n brcAlc \n AN1 \n İ \n TR.OHVPS.DataCode.BrcAlc sıralı veri tipi değerlerinden birini alır. Sorgulanacak işlemlerin borç / alacak kriteri B: Hesaba borç yaratan işlem.A: Hesaba alacak yaratan işlem.{“B”,”A”} \n Bu veri gönderildiği durumda HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den büyük olamaz. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarasi \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek işlemlerin sıralama kriterini belirtir. Alabileceği değerler: {“islGrckZaman”} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama kriterini islGrckZaman olarak belirler. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler: A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 19: “IslemBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Hesap Referans Numarası \n hspRef \n AN5..40 \n Z \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez. \n \n \n Islemler \n isller \n Kompleks:Islem[Array] \n K \n Hesaba ilişkin hareketler varsa İşlemler nesnesi dizisi olarak dönülür. İşlemler nesnesi Temel İşlem Bilgileri ve Detay İşlem Bilgileri nesnesinden meydana gelir. İzin türü varsayılan olarak Temel İşlem Bilgilerini içerir. Detay İşlem Bilgileri izin türü de seçildi ise Temel İşlem Bilgilerine ek olarak Detay İşlem Bilgileri de gönderilir. \n \n \n > Temel İşlem Bilgileri \n islTml \n Kompleks:IslemTemel \n Z \n Temel İşlem Bilgileri varsayılan olarak dönülür. \n \n \n >> İşlem Numarası \n islNo \n AN3..50 \n Z \n Hesap hareketinin oluşturulması sırasında atanan ve borç (veya alacak) hareketini tekilleştiren HHS bazında tekil tanımlayıcıdır. Bu değer tek başına tekil olabileceği gibi b
16irden fazla değerin bir araya getirilmesiyle de tekilliği sağlanmış olabilir. Bu değerin en azından hesap numarası (hesNo) bazında tekil olması beklenir. Genellikle kullanılan örnekleri; Instance_Id, Transaction_Id, Transaction_Num, Transaction_TimeStamp,dekont numarası \n \n \n >> İşlem Referans Numarası \n refNo \n AN3..50 \n Z \n İşlemi uçtan uca tanımlayan tekil tanımlayıcıdır. Borç ve alacak hareketinden oluşan bir veya birden fazla işlemler bütünü için atanmış olan ve bu bütünü tekilleştiren (bir biri ile ilişkisini tutan) değerdir.Bu değer hem YÖS’ten gelen değer olabilir (ödeme işlemlerinde kullanılan kkodRef ya da refBlg alanı) hem de HHS içinde takip edilmek için üretilmiş bir değer olabilir. HHS sisteminde 2 değerin de bulunması durumunda;refNo alanını doldurmak için, HHS’nin YÖS’ten gelen değere öncelik vermesi beklenmektedir. YÖS’ten gelen veri örneği: Sipariş Numarası, Fatura Numarası, Karekod Referansı vb. HHS’te üretilen veri örneği: Masraflı havale işleminde hem havale işleminin hem de masraf işleminin aynı referans numarasına sahip olması da örnek olarak gösterilebilir. \n \n \n >> İşlem Tutarı \n islTtr \n AN1..24 \n Z \n İşlem tutarı.    Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi. \n \n \n >> İşlem Gerçekleşme Zamanı \n islGrckZaman \n ISODateTime \n Z \n İşlemin gerçekleşme zamanı. \n \n \n >> İşlem Kanalı \n kanal \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeKaynak sıralı veri türü değerlerinden birini alır. \n \n \n >> Borçlandırma Alacaklandırma Göstergesi \n brcAlc \n AN1 \n Z \n TR.OHVPS.DataCode.BrcAlc sıralı veri türü değerlerinden birini alır. İşlemin hesabı borç ya da alacaklandırdığı bilgisidir. \n \n \n >> İşlem Türü \n islTur \n AN3..50 \n Z \n HHS’nin işleme ait ilişkilendirdiği işlem türü değeri. TR.OHVPS.DataCode.IslemTuru sıralı veri türü değerlerinden birini alır. \n \n \n >> İşlem Amacı \n islAmc \n AN2 \n Z \n TR.OHVPS.DataCode.IslemAmaci sırali veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n \n \n >> Ödeme Sistemi No \n odmStmNo \n AN10..50 \n K \n Ödeme başarılı başlatıldıysa, ödemenin başlatıldığı sistemdeki referans numarası. Gerektiğinde ilgili ödeme sisteminde/HHS’de söz konusu ödemeye karşılık gelen mesajla bağlantı kurmada kullanılır.   Ödeme Hizmeti kullanıcısına işlemin takibi için gösterilebilir.  İşlemin yönlendirildiği ödeme sistemi FAST ya da PÖS ise sistemdeki ilgili mesajın Tarih, GönderenKatilimKodu ve SorguNumarasi değerlerinin birleşiminden oluşur. Bu 3 alan mevcutta kullanıldığı formatta aralarına dikey çizgi (Unicode U+2223) işareti koyularak, birleştirmeli ve iletilmelidir. Örn : Tarih|GönderenKatilimKodu|SorguNumarasi   Ödeme Havale/Virman işlemi ise HHS’nin üretmiş olduğu havale/virman numarasını içerir. Buradaki format da Tarih|GönderenKatilimKodu|Havale-virman numarası şeklinde olmalıdır. \n \n \n > Detay İşlem Bilgileri \n islDty \n Kompleks: IslemDetay \n K \n Detay İşlem Bilgileri dizi olarak gönderilmelidir. \n \n \n >> İşlem Açıklaması \n islAcklm \n AN1..150 \n Z \n HHS tarafından atanan işlem açıklaması.HHS kendi işlem hareketlerine yansıttığı açıklamayı buraya yansıtmalıdır. \n \n \n >> Karşı Taraf \n krsTrf \n Kompleks:  KarsiTaraf \n K \n Kullanımı işlem bazında değişmektedir. Örnek: FAST işleminde karşı taraf alıcının bilgileridir. Vergi ödemesinde kurum IBAN bilgisi müşteriye gösterilemeyebileceğinden bu alanın boş gelmesi HHS insiyatifindedir. \n \n \n >>> Karşı Maskeli IBAN \n krsMskIBAN \n AN26 \n K \n İlgili hesap hareketinin karşı tarafının maskeli IBAN bilgisi. \n \n \n >>> Karşı Maskeli Unvan \n krsMskUnvan \n AN3..140 \n K \n İlgili hesap hareketinin karşı tarafının maskeli ad-soyad ya da ticari unvan bilgisi. \n 7.9\tHealthcheck API \n GET /health \n HHS’lerin sunacağı bu servis, düzenli olarak BKM tarafından çağırılarak servislerin ayakta olup olmadıklarının kontrolünün sağlanması planlanmaktadır \n Başarılı yanıtta Http 200 kodu dönülmelidir. \n Başarılı Yanıt: \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n status \n status \n AN2..20 \n Z \n “UP”, “DOWN” değerlerini alabilir \n \n \n \n"},{title:"4. Rıza Durumları",frontmatter:{},regularPath:"/v1.0.2/contents/riza-durumlari.html",relativePath:"v1.0.2/contents/riza-durumlari.md",key:"v-1be15362",path:"/v1.0.2/contents/riza-durumlari.html",headers:[{level:2,title:"4.1.\tHesap Bilgisi Hizmeti Rıza durum değişiklikleri",slug:"_4-1-hesap-bilgisi-hizmeti-rıza-durum-degisiklikleri"},{level:2,title:"4.2.\tÖdeme Bilgisi Hizmeti Rıza Durum Değişiklikleri",slug:"_4-2-odeme-bilgisi-hizmeti-rıza-durum-degisiklikleri"}],content:" 4. Rıza Durumları \n ÖHK, Ödeme Emri Başlatma Hizmetine ya da Hesap Bilgisi Hizmetine müşteri rızasının tesisi ile başlar. ÖHK’nın YÖS uygulaması üzerinden yaptığı işlemler neticesinde rıza durumları değişebilir.\nRıza’nın alabileceği durum ko
16dları şu şekilde belirlenmiştir. \n B: Yetki Bekleniyor  – İlk rıza talebinde \n Y: Yetkilendirildi  – Başarılı GKD sonrası yetKod üretildiğinde \n K: Yetki Kullanıldı  – Erişim Belirteci alındığında \n E: Yetki ödeme emrine dönüştü  – ÖBHS için \n S: Yetki Sonlandırıldı \n    HBHS için : Erişimin Geçerli Olduğu Son Tarih geldiğinde \n    ÖBHS için : Yenileme belirteci Son Tarihi geldiğinde \n I :Yetki İptal \nRıza iptal durumu ise gerek raporlama gerekse müşteri deneyimi perspektifinden doğru   bilgilendirmeler yapılabilmesi açısından aşağıdaki gibi detay kodları ile zenginleştirilmiştir: \n \n Rıza İptal Detay Kodu: \n \n \n \n ‘01’ :\tYeni Rıza Talebi ile İptal \n ‘02’ :\tKullanıcı İsteği ile HHS üzerinden İptal \n ‘03’ :\tKullanıcı İsteği ile YÖS üzerinden İptal \n ‘04’ :\tSüre Aşımı : Yetki Bekleniyor \n ‘05’ :\tSüre Aşımı : Yetkilendirildi \n ‘06’ :\tSüre Aşımı : Yetki Ödemeye Dönüşmedi \n ‘07’ :\tGKD iptali : Aynı rıza no ile mükerrer çağrımı \n ‘08’ :\tGKD iptali : Rızano ile TCKN uyuşmaması \n ‘09’ :\tGKD iptali : Uygun ürünü bulunmuyor \n ‘10’ :\tGKD iptali : HHS Açık Bankacılık kanalı işleme kapalı \n ’11’ :\tGKD iptali : Hesap Yetki Sorunu \n ‘12’ :\tGKD iptali : ÖHK HHS kontrollerini aşamadı \n ‘13’ :\tGKD iptali : ÖHK isteği ile GKD’den vazgeçildi \n ‘14’ :\tGKD iptali : Fraud Şüphesi \n ‘99’ :\tGKD iptali : Diğer \n \n \n 4.1 ve 4.2 bölümlerinde detaylandırılan rıza durum değişikliklerinde rıza iptal detay kodları kullanılmıştır. \n Örneğin B⇨ I/01 denildiğinde “Yetki Bekleniyor” rıza durumundan “Yetki İptal” rıza durumuna Rıza İptal Detay Kodu da ‘01’ yani ‘Yeni Rıza Talebi ile İptal’ olarak güncellenmelidir ifade edilmiştir. \n ÖHK verdiği rıza sırasında seçtiği hesaplarından biri kapatılırsa, diğer hesaplara ait bilgileri görmeye devam eder. Ancak ÖHK’nın hesabına ait bilgilerinin YÖS'e iletilmesini istemediği durumda, rızasını tamamen iptal ederek yeni hesap listesi 
16ile yeni rıza vermesi gerekmektedir. Yani hesap kapanması nedeniyle rıza geçerliliğini yitirmez. ÖHK'nın proaktif olarak bu hesabı rızadan çıkarması durumunda rıza iptali olur. \n Rıza iptal edilmediği ve geçerli olduğu sürece kapalı hesaplar için diğer çevrimiçi kanallarda uygulanan yöntem izlenmelidir. Diğer çevrimiçi kanallarda kapalı hesaplara ilişkin bilgi dönülmüyor ise ÖHVPS'den de dönüş yapılmaz. ÖHK’nın rıza onayı verdiği açık hesaplarının tümü HHS tarafında kapatıldığı durumda, yine aynı şekilde HHS çevrimiçi kanallarında koyduğu kurallara göre bu hesaplarının YÖS uygulamasında gösterilmesine karar verir. \n Hesap kapama ve ticari kullanıcıların hesaplar üzerindeki yetki değişiklikleri HHS'nin iç sistemleri tarafından yapılan kontrollerle yönetilir. Buradaki değişiklikler ile HHS sistemsel olarak rıza iptali gerçekleştiremez. ÖHK izni ve onayı dahilinde rıza iptal gerçekleştirilmesi gerekmektedir. \n HHS'ler sunmuş oldukları Rıza İptal ekranını (sadece Hesap Bilgisi Rızası için), hangi ortamlardan GKD yapılmasına izin veriliyorsa (web/mobil) aynı ortamdan ÖHK'ya sunmalıdır.  Örneğin bir HHS bireysel müşterileri için web ve mobil, kurumsal müşteriler için web üzerinden GKD imkanı sunuyor ise, minimumda bireysel müşteriler için web ve mobil ortamlarından, kurumsal müşteriler için web ortamından Rıza İptal ekranı aracılığı ile rıza iptaline izin vermelidir. Bunun dışında çağrı merkezi ya da şube gibi ortamlardan sunacağı Rıza İptal imkanı HHS inisiyatifindedir. Bahsi geçen zorunluluk Ödeme Emri Rıza İptal ekranı için geçerli değildir. \n Benzer şekilde YÖS'ler hangi ortamlardan (web/mobil) hizmet veriyorsa, aynı ortam üzerinden Rıza İptal ekranını sunmalıdır. \n 4.1.\tHesap Bilgisi Hizmeti Rıza durum değişiklikleri \n Kural : Bir ÖHK'nın, bir YÖS için, bir HHS'de Y, K, B rıza durumlarında tek bir rızası olabilir.\nBir ÖHK hem kişisel olarak hem de bir kurumun kullanıcısı olabilir. Bu durumda kurum ve kişisel rıza aynı anda mevcut olabilmelidir. Rıza nesneleri, HHS tarafından uygun şekilde yönetilmelidir. \n \n \n Hesap Bilgisi Rızası isteği HHS’ye iletilir. \na.\tHHS ÖHK'ya ait içeride rıza var mı kontrol eder. Eğer yoksa  Yetki Bekleniyor - B  rıza durumu ile yeni rıza oluşturur. \nb.\tEğer içeride rıza varsa \n     i. Rıza durumu Yetki Bekleniyor - B ise; \n        HHS, sistemde Yetki Bekleniyor - B rıza durumuna sahip kayıt olduğu için, öncelikle eski kaydı Yetki İptal - I durumuna getirir.  Rıza İptal Detay Kodu “Yeni Rıza Talebi ile iptal” olmalıdır.  B ⇨ I / 01  Sonrasında,  Yetki Bekleniyor - B  rıza durumu ile yeni rıza oluşturur. \n      ii. Rıza durumu Yetkilendirildi - Y veya Yetki Kullanıldı - K ise; \n    ÖHK'nın halihazırda verilmiş bir rızası vardır. HHS, önce mevcut rızanın iptalinin yapılması gerektiğine dair   TR.OHVPS.Resource.ConsentMismatch  hatasını döner. YÖS, HHS ya da YÖS uygulaması üzerinden bu rızanın iptal edilmesi gerektiğine dair ÖHK'ya bilgilendirme yapar. \n      iii.\tRıza durumu Yetki Sonlandırıldı - S  ise Yetki Bekleniyor - B durumunda yeni rıza no oluşturur. \n      iv.\tRıza durumu Yetki İptal - I ise  Yetki Bekleniyor - B  durumunda yeni rıza no oluşturur. \n \n \n GKD başarılı bir şekilde tamamlandığında Rıza durumu Yetki Bekleniyor’dan Yetkilendirildi’ye güncellenir.  B ⇨ Y \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdar olmayabilir. \n ÖHK GKD yapmadan ayrılmış olabilir. (ÖR: Tarayıcıyı kapatmış olabilir) Rıza Yetki Bekleniyor - B rıza durumunda kalır.  5 dakika içerisinde sistem tarafından Yetki Bekleniyor - B rıza durumundaki kayıtlar Yetki İptal  : Yetki Bekleniyor Süre Aşımı olarak güncellenir.   B ⇨ I / 04  Bkz. 9. Madde. \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdardır. HHS yonlendirme adresinin query parametrelerine  rizaIptDtyKod  değerini ekleyerek bu durumu YÖS’e bildirmek zorundadır. \n \n \n Rıza durumunun  “Yetkilendirildi\" , “Yetki Kullanıldı” olduğu durum.  Yetki Bekleniyor ⇨ Yetki İptal   B ⇨  I / 07 \n \n \n Rızano ile kimlik bilgileri uyuşmazlığı.  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 08 \n \n \n ÖHK'nın HHS'de ilgili ürününün olmadığı durum (hesap/kart) Yetki Bekleniyor ⇨ Yetki İptal   B ⇨ I / 09 \n \n \n Açık bankacılık kanalınız işleme kapalıdır.Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 10 \n \n \n Kullanıcının HHS'deki hesaplarında yeterli yetkisinin olmama durumu  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 11 \n \n \n HHS’nin ÖHK için yaptığı kontrollerin başarısız olduğu durum Yetki Bekleniyor ⇨ Yetki İptal   B ⇨ I / 12 \n \n \n ÖHK isteği ile GKD’den vazgeçildiği durum Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 13 \n \n \n Fraud Şüphesi Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 14 \n \n \n Diğer Yetki Bekleniyor ⇨  Yetki İptal   B ⇨  I / 99 \n \n \n \n \n \n \n ÖHK, hesaplarında/izin türlerinde/Erişimin Geçerli Olduğu Son Tarih bilgilerinden bir ya da birden fazlasında güncelleme yapmak için YÖS ekranına girer. \n \n \n     a.\tYÖS önce Rıza İptal API'sini çağırır. Sonra yeni değerlerle yeni bir rıza isteğinde bulunur. Tekrar GKD gerekir. \n     b.\tYÖS rıza iptal yapmadan yeni rıza alma akışına başlarsa 1.b akışı devreye girer. \n     c.\tRıza güncelleme ilerleyen sürümlerde ele alınacaktır. \n \n \n Erişim Belirteci API \n a. Erişim Belirteci'nin yetkilendirme kodu ile çağrımı yapıldığında;
16 \n      i. Rıza durumu Yetki İptal - I ya da Yetki Sonlandırıldı - S ise   TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     ii. Rıza durumu Yetki Bekleniyor - B ya da Yetki Kullanıldı - K  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iii. Rıza durumu Yetkilendirildi - Y olduğunda erişim belirteci tahsis edilir.\nErişim belirteci alındığında rıza durumu K: Yetki Kullanıldı yapılır.  Y ⇨K \n b. Yenileme belirteci karşılığı erişim belirteci alınması sırasında; yenileme belirteci kontrolü ve sonrasında rıza kontrolü yapılmalıdır. \n      i. Öncelikle Yenileme Belirteci Geçerlik Süresi kontrolü yapılmalıdır. Geçerli bir Yenileme Belirteci olmadığı görülür ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n     ii. Rıza durumu Yetki İptal - I  ya da Yetki Sonlandırıldı - S ise  TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     iii. Rıza durumu Yetki Bekleniyor - B ya da Yetkilendirildi - Y  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iv. Rıza durumu Yetki Kullanıldı - K olduğunda, yenileme belirteci karşılığı erişim belirteci tahsis edilir. \n \n \n Sorgulama: HBHS, rıza alma akışına başlamadan önce, daha önce oluşturulmuş bir hesap bilgisi-rizasi kaynağının durumunu, isteğe bağlı olarak alabilir. Rıza numarası ile sorgulama yapılır. \n \n \n Hesap Bilgisi Rızasının İptali: HBHS üzerinden ya da HHS üzerinden yapılan rıza iptallerinde Rıza durumu  Yetki İptal - I olarak güncellenir. Rıza numarası ile iptal sağlanır. \n a. HHS üzerinden rıza iptali yapmış olabilir.  Rıza durumu sorgulanır. \n Rıza numarası Yetki Bekleniyor - B ve Yetkilendirildi - Y ve Yetki Kullanıldı - K durumlarında ise Yetki İptal durumuna getirilir. Rıza gnclzmn timestamp ile güncellenir.\nHHS, Rıza iptalinde aynı zamanda erişim belirtecini de invalid hale getirmelidir. \n B ⇨ I / 02 \n Y ⇨ I / 02 \n K ⇨ I / 02 \n b.\tYÖS üzerinden yapılacak iptal işleminde yine Y ve B ve K rıza durumlarında ise iptal edilebilir. \n B ⇨ I / 03 \n Y ⇨ I / 03 \n K ⇨ I / 03 \n Rıza durumu Yetki Sonlandırıldı - S  ise iptal gerçekleşmez. “Rıza durumunuz iptal etmeye uygun değildir.” hatası ÖHK'ya yansıtılır.  TR.OHVPS.Resource.ConsentRevoked \n \n \n ÖHK’nın verdiği rıza süresi dolmuş olabilir.\nErişimin Geçerli Olduğu Son Tarih geldiğinde Rıza durumu Yetki Kullanıldı’dan Yetki Sonlandırıldı durumuna çekilmelidir.   K ⇨ S \n \n \n Hesaplar, Bakiye ve İşlemler servislerinde erişim belirteci kontrolü ve sonrasında rıza kontrolü yapılmalıdır.\nGeçerli bir erişim belirteci yok ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n YÖS'ün; Rıza İptal - I ya da Yetki Sonlandırıldı - S rıza durumlarında Hesaplar, Bakiye ve İşlemler servislerini çağırmaması beklenir. HHS'nin bu rıza durumları ile yapılmış çağrılar olduğunda  TR.OHVPS.Resource.ConsentRevoked  hatasını dönmesi gereklidir. \n Rıza durumu Yetki Kullanıldı - K dışında ise  TR.OHVPS.Resource.ConsentMismatch  hatası verilmelidir. \n Rıza durumu Yetki Kullanıldı - K ise servis akışlarına devam edilir. \n Rıza sorgulama API'sinde ilgili rıza kaydı bulunamaz veya sorgulayan kurumun yetkisi yoksa (örn : YÖS’ün farklı bir YÖS’e ait rıza noyu sorgulaması) \n TR.OHVPS.Resource.NotFound hatası  verilmelidir. \n \n \n HHS/YÖS tarafında rıza bilgileri belirli aralıklarla sistem kullanıcısı tarafından taranır:\n5 dakikadan uzun süredir “Yetki Bekleniyor” durumunda kalan kayıtların durumları güncellenir.\nYetki Bekleniyor  ⇨ Rıza İptal  / Süre Aşımı : Yetki Bekleniyor  B ⇨ I / 04 \n 5 dakikadan uzun süredir “Yetkilendirildi” durumunda kalan kayıtlar güncellenir.\nYetkilendirildi     ⇨ Rıza İptal / Süre Aşımı: Yetkilendirildi  B ⇨ I / 05 \nYukarıda bahsedilen, YÖS Süre Aşımı nedeniyle rıza iptal durum güncellemelerini y
16apmadan önce HHS’yi sorgulayarak rıza durumunu öğrenmeli ve süre aşımı dışında bir kodu varsa aynı kodla kendi sistemini güncellemelidir. \nErişimin Geçerli Olduğu Son Tarih geldiğinde rıza durumu Yetki Kullanıldı’dan Yetki Sonlandırıldı’ya güncellenir.  K ⇨ S \n 4.2.\tÖdeme Bilgisi Hizmeti Rıza Durum Değişiklikleri \n Kural : Bir ÖHK'nın bir YÖS için bir HHS'de istediği kadar rızası olabilir. \n Kurum ve kişisel rıza aynı anda mevcut olabilmelidir. Rıza nesneleri, HHS tarafından uygun şekilde yönetilmelidir. \n \n \n Ödeme Emri Rızası isteği HHS’ye iletilir. İçeride rıza olup olmamasına bakılmaksızın  Yetki Bekleniyor - B  rıza durumu ile yeni rıza no oluşturur. \n \n \n GKD başarılı bir şekilde tamamlandığında rıza durumu Yetki Bekleniyor’dan Yetkilendirildi’ye güncellenir.   B ⇨ Y \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdar olmayabilir. \n ÖHK GKD yapmadan ayrılmış olabilir. (ÖR: Browserı kapatmış olabilir)\nRıza durumu Yetki Bekleniyor'dur. 5 dakika içerisinde sistem tarafından Yetki Bekleniyor - B durumundaki kayıtlar Rıza İptal : Yetki Bekleniyor Süre Aşımı olarak güncellenir. Bkz. 8. Madde. \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdardır. HHS yonlendirme adresinin query parametrelerine rizaIptDtyKod değerini ekleyerek bu durumu YÖS’e bildirmek zorundadır. \n \n \n Rıza durumunun  “Yetkilendirildi\" , “Yetki Kullanıldı” olduğu durum.  Yetki Bekleniyor ⇨ Yetki İptal   B ⇨  I / 07 \n \n \n Rızano ile kimlik bilgileri uyuşmazlığı.  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 08 \n \n \n ÖHK'nın HHS'de ilgili ürününün olmadığı durum (hesap/kart) Yetki Bekleniyor ⇨ Yetki İptal   B ⇨ I / 09 \n \n \n Açık bankacılık kanalınız işleme kapalıdır.Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 10 \n \n \n Kullanıcının HHS'deki hesaplarında yeterli yetkisinin olmama durumu  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 11 \n \n \n HHS’nin ÖHK için yaptığı kontrollerin başarısız olduğu durum Yetki Bekleniyor ⇨ Yetki İptal   B ⇨ I / 12 \n \n \n ÖHK isteği ile GKD’den vazgeçildiği durum Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 13 \n \n \n Fraud Şüphesi Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 14 \n \n \n Diğer Yetki Bekleniyor ⇨  Yetki İptal   B ⇨  I / 99 \n \n \n \n \n \n \n GKD muafiyeti olduğunda YÖS HHS’den arka planda onay alır. Bu onay sırasında rıza durumu  Yetkilendirildi  yapılır.  B ⇨ Y \n \n \n Erişim Belirteci API \na. Erişim Belirteci'nin yetkilendirme kodu ile çağrımı yapıldığında; \n      i. Rıza durumu Yetki İptal - I  ya da Yetki Sonlandırıldı - S ise   TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     ii. Rıza durumu Yetki Bekleniyor - B , Yetki Kullanıldı - K  ya da Yetki ödeme emrine dönüştü - E  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iii. Rıza durumu Yetkilendirildi - Y olduğunda erişim belirteci tahsis edilir.\nErişim belirteci alındığında rıza durumu K: Yetki Kullanıldı yapılır.  Y ⇨K \n b. Yenileme belirteci karşılığı erişim belirteci alınması sırasında; yenileme belirteci kontrolü ve sonrasında rıza kontrolü yapılmalıdır. \n      i. Öncelikle Yenileme Belirteci Geçerlik Süresi kontrolü yapılmalıdır. Geçerli bir Yenileme Belirteci olmadığı görülür ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n     ii. Rıza durumu Yetki İptal - I  ya da Yetki Sonlandırıldı - S ise  TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     iii. Rıza durumu Yetki Bekleniyor - B ya da Yetkilendirildi - Y  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iv. Rıza durumu Yetki Kullanıldı - K veya Yetki Ödeme Emrine Dönüştü – E olduğunda, yenileme belirteci karşılığı erişim belirteci tahsis edilir. \n \n \n Ödeme Başlatma API önce erişim belirteci ve sonrasında rıza kontolü yapılarak gerçekleştirilmelidir \n \n Öncelikle Erişim Belirteci kontrolü yapılmalıdır. Geçerli bir Erişim Belirteci olmadığı görülür ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n Rıza durumu Yetki İptal - I  ya da Yetki S
16onlandırıldı - S ise  TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n Rıza durumu Yetki Bekleniyor - B , Yetkilendirildi - Y, Yetki Ödeme Emrine Dönüştü - E  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n Rıza durumu Yetki Kullanıldı - K olduğunda ödeme emri gerçekleştirilir.  Rıza durumu Yetki Kullanıldı - K'dan Yetki Ödeme Emrine Dönüştü – E yapılmalıdır.   K ⇨E \n \n \n \n Sorgulama: GKD işleminin başarıyla tamamlanıp Ödeme Emri Rızasının yetkilendirilmesi esnasında, gönderen hesap seçiminin HHS ekranında yapıldığı durumlarda, ödeme emri isteğinde gönderen hesap bilgileri alanının zorunlu olması nedeniyle, ödemeEmriRizasi nesnesi sorgulanarak gönderen hesap bilgileri (hesap numarası ve/veya hesap referansı) alınmalıdır.\nRıza sorgulama, Ödeme Emri Sorgulama API'lerinde ilgili rıza kaydı bulunamaz veya sorgulayan kurumun yetkisi yoksa (örn : YÖS’ün farklı bir YÖS’e ait rıza noyu sorgulaması) \n TR.OHVPS.Resource.NotFound  hatası verilmelidir. \n \n \n Ödeme Emri Rızasının İptali bulunmamaktadır. \n \n \n HHS/YÖS tarafında rıza bilgileri belirli aralıklarla sistem kullanıcısı tarafından taranır:\n5 dakikadan uzun süredir Yetki Bekleniyor'da kalan kayıtların durumları güncellenir.\nYetki Bekleniyor ⇨ Rıza İptal / Süre Aşımı : Yetki Bekleniyor  B ⇨ I / 04 \n 5 dakikadan uzun süredir Yetkilendirildi'de kalan kayıtlar durumları güncellenir.\nYetkilendirildi     ⇨ Rıza İptal / Süre Aşımı : Yetkilendirildi  B ⇨ I / 05 \n 5 dakikadan uzun süredir Yetki kullanıldı'da kalan kayıtlar durumları güncellenir.\nYetki kullanıldı ⇨ Rıza İptal / Süre Aşımı : Yetki Ödemeye Dönüşmedi  B ⇨ I / 06 \n Yenileme belirteci Son Tarih geldiğinde rıza durumu Yetki ödeme emrine dönüştü’den Yetki Sonlandırıldı'ya güncellenir. \n E ⇨ S \n \n \n GKD muafiyeti sadece ödeme başlatma servislerinde bulunmaktadır. \n \n \n"},{frontmatter:{},regularPath:"/v1.0.2/contents/tanim-ve-kisitlamalar.html",relativePath:"v1.0.2/contents/tanim-ve-kisitlamalar.md",key:"v-3e221f7d",path:"/v1.0.2/contents/tanim-ve-kisitlamalar.html",content:"  1.\tTanım ve Kısaltmalar   \n Tablo 1: Tanım ve Kısaltmalar \n \n \n \n Kısaltma \n Tanım \n Açıklama \n İngilizce Açıklama \n İngilizce Kısaltma \n \n \n \n \n ÇS \n Çerçeve Sözleşme \n Ödeme hizmeti sağlayıcısı ile müşteri arasında tekil veya süreklilik arz eden ödeme işlemlerinin yürütülmesine ve mümkün olan durumlarda ödeme hesabının açılmasına ilişkin usul ve esasları belirleyen sözleşme \n \n \n \n \n EPK \n Elektronik Para Kuruluşu \n Kanun kapsamında elektronik para ihraç etme yetkisi verilen tüzel kişi \n Electronic Money Institution \n EMI \n \n \n FAST \n Fonların Anlık ve Sürekli Transferi \n TCMB tarafından işletilen Fonların Anlık ve Sürekli Transferi Sistemi \n \n \n \n \n FAST TR-Karekod \n FAST-TR Karekod Teknik İlke ve Kurallar Rehberi \n TR Karekod’un FAST Sistemi aracılığıyla gerçekleşecek işlemlerde kullanılmasına ilişkin detaylı teknik ilke ve kurallarını içeren doküman \n \n \n \n \n GKD \n Güçlü Kimlik Doğrulama \n Kimlik doğrulamada kullanılan ve bir bileşenin ele geçirilmesinin diğer bileşenin güvenliğini tehlikeye atmayacağı en az iki bileşenden oluşan, bu iki bileşenin de müşterinin bildiği, sahip olduğu veya biyometrik bir karakteristiği olan bileşen sınıflarından farklı ikisine ait olacak şekilde seçildiği yöntem \n Strong Customer Authentication \n SCA \n \n \n İB \n İşlem Bilgisi \n Gerçekleştirilen işleme ilişkin işlem zamanını, işlemin niteliğini ve ödeme işlemi için ödeme emrinin masraf, komisyon ve ücretler de dahil hesabın borçlandırılacağı toplam tutarını ve ödemenin göndereni ile alıcısını veya toplu ödeme emrinin masraf, komisyon ve ücretler de dahil hesabın borçlandırılacağı toplam tutarını ve göndereni ile alıcılarını içeren bilgi \n \n \n \n \n İDK \n İşlem Doğrulama Kodu \n Kimlik doğrulama yöntemlerinden biriyle kendisini sisteme tanıtan bir müşterinin gerçekleştirmek istediği 
16işleme özgü olmak ve belirli bir geçerlilik süresi içinde işlem onayında kullanılmak üzere oluşturulan, finansal sonuç doğrunan işlemlerde kişiye onay anında ilgili işlem bilgisi (İB) ile birlikte gösterilen, alıcı veya tutarın değişmesiyle geçersiz hale gelen bilgi \n Authentication Code \n AC \n \n \n KOLAS \n Kolay Adresleme Servisi \n Fon transferlerinde hesap numarası ile ad soyad yerine kullanılan ve belirli bir hesap ile eşleştirilmiş telefon numarası, e-posta adresi, T.C. Kimlik Numarası (TCKN), Vergi Kimlik Numarası (VKN), Yabancı Kimlik Numarası veya Pasaport Numarası gibi Kolay Adres bilgilerinin kaydedilmesini, güncellenmesini ve sorgulamasını sağlayan katman servis \n \n \n \n \n HBHS \n Hesap Bilgisi Hizmeti Sağlayıcısı \n Kanunun 12 inci maddesinin birinci fıkrasının (g) bendinde tanımlanan ödeme hizmetini (hesap bilgisi hizmetini) sunan tüzel kişi \n Account Information Service Provider \n AISP \n \n \n HHS \n Hesap Hizmeti Sağlayıcısı \n Nezdinde ödeme hesabı bulunan ödeme hizmeti sağlayıcısı \n Account Servicing Payment Service Provider \n ASPSP \n \n \n ÖBHS \n Ödeme Emri Başlatma Hizmeti Sağlayıcısı \n Kanunun 12 inci maddesinin birinci fıkrasının (f) bendinde tanımlanan ödeme hizmetini (ödeme emri başlatma hizmetini) sunan tüzel kişi \n Payment Initiation Service Provider \n PISP \n \n \n ÖDK \n Ödeme Kuruluşu \n Ödeme hizmeti sağlamak ve gerçekleştirmek için Kanun kapsamında yetkilendirilmiş tüzel kişi \n Payment Institution \n PI \n \n \n ÖH \n Ödeme Hesabı \n Ödeme hizmeti kullanıcısı adına açılan ve ödeme işleminin yürütülmesinde kullanılan hesap \n Payment Account \n PA \n \n \n ÖHK \n Ödeme Hizmeti Kullanıcısı (Müşteri) \n Gönderen, alıcı veya her ikisi sıfatıyla belirli bir ödeme hizmetinden faydalanan gerçek veya tüzel kişi \n Payment Service User \n PSU \n \n \n ÖHS \n Ödeme Hizmeti Sağlayıcısı \n 5411 sayılı Kanun kapsamındaki bankalar, EPK, ÖDK ve Posta ve Telgraf Teşkilatı Anonim Şirketi(PTT) \n Payment Service Provider \n PSP \n \n \n ÖHVPS \n Ödeme Hizmetleri Veri Paylaşım Servisleri \n Kanunun 12’nci maddesinin birinci fıkrasının (f) veya (g) bentlerinde yer alan ödeme hizmetlerinde kullanılan veri paylaşım servisleri \n \n \n \n \n PÖS \n Perakende Ödeme Sistemi \n TCMB tarafından işletilen, işlemlerin Türk Lirası üzerinden gerçekleştiği Müşteriler Arası Türk Lirası Aktarım Sistemi \n \n \n \n \n TR-Karekod \n TR-Karekod İlke ve Kuralları \n Ulusal karekod (TR Karekod) ilke ve kurallarının belirlendiği belge \n \n \n \n \n YÖS \n Yetkili Ödeme Hizmeti Sağlayıcısı \n Ödeme emri başlatma hizmeti ve/veya hesap bilgisi hizmeti sunan tüzel kişi \n Third Party Payment Service Providers \n TPP \n \n \n \n"},{title:"6.\tÖdeme Emri Başlatma Hizmeti",frontmatter:{},regularPath:"/v1.0.2/contents/odeme-emri-baslatma-hizmeti.html",relativePath:"v1.0.2/contents/odeme-emri-baslatma-hizmeti.md",key:"v-1ef8939d",path:"/v1.0.2/contents/odeme-emri-baslatma-hizmeti.html",headers:[{level:3,title:"Ödeme Emri Başlatma Hizmeti için Erişim Adresleri (Endpoints)",slug:"odeme-emri-baslatma-hizmeti-icin-erisim-adresleri-endpoints"},{level:2,title:"6.1.\tADIM 0 - Ödeme Emri Başlatma Isteği",slug:"_6-1-adim-0-odeme-emri-baslatma-istegi"},{level:2,title:"6.2.\tADIM 1 - Ödeme Emri Rızasının Hazırlanması",slug:"_6-2-adim-1-odeme-emri-rızasının-hazırlanması"},{level:2,title:"6.3.\tADIM 2- Ödeme Emri Rızasının Yetkilendirilmesi",slug:"_6-3-adim-2-odeme-emri-rızasının-yetkilendirilmesi"},{level:2,title:"6.4.\tADIM 2.1 – Ödeme Emri Rızasının Sorgulanması (isteğe bağlı)",slug:"_6-4-adim-2-1-odeme-emri-rızasının-sorgulanması-istege-baglı"},{level:2,title:"6.5.\tADIM 3- Ödeme Emrinin Oluşturulması",slug:"_6-5-adim-3-odeme-emrinin-olusturulması"},{level:2,title:"6.6.\tADIM 3.1- Ödeme Emri Sorgusu (İsteğe bağlı)",slug:"_6-6-adim-3-1-odeme-emri-sorgusu-istege-baglı"},{level:3,title:"GET /odeme-emri/{odemeEmriNo}",slug:"get-odeme-emri-odemeemrino"},{level:2,title:"6.7\tHealthcheck API",slug:"_6-7healthcheck-api"},{level:3,title:"GET /health",slug:"get-health"}],content:" 6.\tÖdeme Emri Başlatma Hizmeti \n Ödeme emri başlatma işlemi havale, FAST ya da PÖS ödemesiyle sonuçlanabilir. Ödeme işleminin amacı kişiden kişiye para transferi, e-ticaret ödemesi gibi farklı ödeme türleri olabilir. Ödemenin amacına göre ÖBHS’nin ileteceği veri setinde farklılaşmalar olabilir. \n Ödeme Emri Başlatma Hizmeti 5 temel akışdan oluşur: \n \n Ödeme Emri Başlatma İsteğinin tetiklenmesi:  ÖHK ÖBHS mobil uygulama ya da websitesinden ödeme emrini başlatır. \n Ödeme Emri Rıza Hazırlanması:  ÖBHS, “Ödeme Emri Başlatma” işlemi için izin oluşturulması isteğini HHS’ye iletir. \n Ödeme Emri Rızasının Yetkilendirilmesi:  HHS, gerekli gördüğü durumlarda ÖHK’yı GKD ile doğrular ve ödeme emri rızasına erişim için erişim belirteci tanımlanmasını temin eder. \n Ödeme Emrinin Başlatılması:  ÖBHS, “ödeme emri”ni HHS’ye iletir. \n Ödeme Emri Rıza Durumu, Ödeme Emri Durumu, Ödeme Emri Detayı Sorguları:  ÖBHS, Ödeme Emri Rıza Durumu, Ödeme Emri Durumu, Ödeme Emri Detayı bilgilerini isteğe bağlı olarak sorgulayabilir. \n \n \n Şekil 4: Ödeme Emri Başlatma Hizmeti Üst Düzey İş Akışı \n Ödeme Emri Başlatma Hizmeti için Erişim Adresleri (Endpoints) \n Ödeme Emri Başlatma Hizmeti İçin Erişim Adreslerinin Etki Alanı (Scope) = “odeme_emri” olarak belirtilmelidir. \n Tablo 6: Ödeme Emri Başlatma Hizmeti İçin Erişim Adresleri \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu / İsteğe Bağlı \n Yetkilendirme Türü \n İmzalama \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n odeme-emri-rizasi \n POST \n /odeme-emri-rizasi \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n OdemeEmriRizasiIstegi \n OdemeEmriRizasi \n \n \n 2 \n erisim-belirteci (GKD için) \n POST \n /erisim-belirteci \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n ErisimBelirteciIstegi \n ErisimBelirteci \n \n \n 2.1 \n odeme-emri-rizasi \n GET \n /odeme-emri-rizasi/{rizaNo} \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n - \n OdemeEmriRizaYaniti \n \n \n 3 \n odeme-emri \n POST \n /odeme-emri \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı İstek ve Yanıt \n OdemeEmriIstegi \n OdemeEmri \n \n \n 3.1 \n odeme-emri \n GET \n /odeme-emri
16/{odemeEmriNo} \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı Yanıt \n - \n OdemeEmri \n 6.1.\tADIM 0 - Ödeme Emri Başlatma Isteği \n \n ÖHK, ÖBHS uygulamasında (web arayüzü/mobil uygulama) ödeme emri başlatma işlemine onay verir. \n Gönderen hesap detaylarının bu aşamada belirtilmesi zorunlu değildir. \n 6.2.\tADIM 1 - Ödeme Emri Rızasının Hazırlanması \n   \n Şekil 5: Ödeme Emri Rızasının Hazırlanması \n \n \n ÖBHS, ödeme hizmeti kullanıcı hesabının bulunduğu HHS’ye bağlanarak ödeme emri rıza kaynağının oluşturulmasını (odemeEmriRizasi) sağlar. \n \n \n POST isteği TLS protokolü tesis edilen iletişim katmanı üzerinden gerçekleştirilir. TLS için nitelikli sertifikalar kullanılır. \n \n \n POST isteğinin başlığındaki alanlar ve istemcinin sertifikasındaki özel alanlar kullanılarak istemcinin yetkilendirilmesi sağlanır: \n \n İstekte bulunan ÖBHS yetkilendirilmiş mi? \n İstekte bulunan yetkilendirilmiş ödeme hizmeti sağlayıcısı ÖBHS rolüne sahip mi? \n İstekte bulunulan HHS kodu doğru mu? \n \n \n \n POST başarılı olursa, HHS, ödeme emri için içeride rıza olup olmamasına bakılmaksızın yeni bir rıza tanımlayıcısı RizaNo içeren odemeEmriRizasi  yanıt olarak döner. \n \n \n 1 ÖHK'nın 1 YÖS için 1HHS'de istediği kadar rızası olabilir. \n \n \n HHS tarafında RizaDurumu değişkeninin durumu “Yetki Bekleniyor” olarak güncellenir. \n \n \n YÖS’ün doğrulama ekranı olarak ÖHK’ya açacağı URL adresini de ilgili rıza numarasına göre oluşturur. Burada 2 farklı yöntemle URL oluşturabilir. \n \n Statik URL  : \nHHS’nin base pathi/alt-dizin/{rızaNo} \nÖrnek hhsYonAdr : https://xbank.com.tr/ohvps/cb54834e36f742d09af3d534ece3352a \nBu adres için ilgili doğrulama sayfası önden hazırlanmalı ve ÖHK’nın doğrulama sayfasına erişimi için yayınlanmış olmalıdır (publish edilmelidir). \n Dinamik URL : \nHHS’nin base pathi/alt-dizin/GKD Karşılama Ekranı?rizano={rızano} \nÖrnek: https://xbank.com.tr/ohvps/gkd?rizano=cb54834e36f742d09af3d534ece3352a \n \n \n \n POST /odeme-emri-rizasi \n İSTEK: \n ÖBHS, bu API erişim adresinden HHS’ye yeni bir OdemeEmriRizasi oluşturulması için istekte bulunur: \n \n ÖBHS, ödeme emri başlatma isteği olduğunu HHS’ye bildirir. \n ÖBHS, ÖHK’nın, ÖBHS arayüzünden verdiği rızanın (“Ön Onay”) bir kopyasının HHS nezdinde müşteri tarafından onaylanması için HHS’ye gönderilmesini sağlar. \n HHS; istek mesajında yer alan alanların API dökümanında belirtilen şartları sağlayacak şekilde zorunluluk, uzunluk ve içerik kontrollerini yapar. (Zorunlu) \n HHS; YÖS API ile alınan ÖBHS bilgilerinin içerisinde yer alan yönlendirme ve bildirim adresleri ile ödeme emri rızası nesnesi request mesajında paylaşılan adreslerin uyumlu olup olmadığının kontrollerini yapar. (Zorunlu) \n HHS; kimlik bilgileri nesnesinde eğer kimlik bilgileri iletilmiş ise; bu veri ile ÖHK’nın HHS müşterisi olup olmadığının kontrollerini yapar. Bu kontrol hem bireysel hem de kurumsal ÖHK’lar için yapılmalıdır.  (Koşullu Zorunlu) \n HHS kimlik bilgisi ile gönderen unvanının uyumlu olduğunun kontrol eder. HHS'ler EFT/FAST işlemlerinde kabul ettikleri kontrol kriterleri ile işleme izin verebilirler. (Zorunlu) \n Gönderen Hesap Numarası ile ilgili Tablo7’de belirtilen kontroller yapılmalıdır. (Zorunlu) \n HHS, ödeme için benzersiz “RizaNo” ile “OdemeEmriRizasi” nesnesi oluşturur ve ÖBHS’ye döner. \n HHS, OdemeEmriRizasi oluşturduğu anda durumunu “Yetki Bekleniyor” olarak düzenler. \nBu aşamada ÖHK’nın HHS tarafından tanımlanmış ve isteğin veri alanında gönderen hesaba (borçlandırılacak hesaba) ilişkin bir bilgisinin olması gerekmez. \nHesap bakiye kontrolünün rıza aşamasında yapılmaması gerekmektedir. Çünkü ÖHK ödeme emri gerçekleşene kadar hesabına para eklemesi yapabilir. \n \n POST /odeme-emri-rizasi  isteğinin (REQUEST) gövdesinde (BODY)  “odemeEmriRizasiIstegi” nesnesi (Tablo-7) kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “odemeEmriRizasi” (Tablo-8) nesnesi oluşturulur. \n Tek Seferlik Ödeme \nTek seferlik ödeme akışı YÖS'ten HHS'ye giden istekte, gönderen kimlik bilgilerinin olmadığı durumda gerçekleşir. Gönderen kimlik bilgisi olmadığında, KOLAS sorgusu yapılamayacağından ötürü, HHS tarafından TR.OHVPS.Business.InvalidContent hatası dönülmelidir. \nTek seferlik ödeme akışı hem işyeri ödemelerinde hem de kişiden kişiye para transferlerinde kullanılabilen bir akıştır.\nAşağıdaki senaryolar tek seferlik ödemeye örnek olarak gösterilebilir. \nİşyeri Ödemesi akışı örneği: Bir e-ticaret sitesinde, üye olmadan alışveriş yapılması ve ödemenin YÖS tarafından kimlik bilgisi olmadan başlatılması \nKişiden kişiye para transferi akışı örneği: QR veya diğer yöntemler ile alıcı bilgilerinin gönderici ile paylaşılması ve YÖS üzerinden gönderici bilgileri olmadan alıcıya para transferi yapılması için rıza verilmesi \n  BAŞARILI İSTEK: \n Tablo 7: “OdemeEmriRizasiIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n HHS tarafından ödeme emri rızası oluşturulması sırasında yapılması gereken kontrol ve işlemler \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder.  Hata durumunda  TR.OHVPS.Connection.InvalidASPSP  hata kodunu döner. \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. Hata durumunda  TR.OHVPS.Connection.InvalidTPP  hata kodunu döner. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n İ \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. Yetkilendirme yöntemi, ÖBHS tarafından belirtilmeyebilir. \n HHS, ÖBHS’nin belirlediği yöntemi dikkate alarak kendi belirlediği yöntemi kullanır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu.  YÖS’ün ileteceği adrestir.  YÖS Yönlendirmeli GKD yöntemi ile akışı destekliyorsa, yetYntm değişkeninden bağımsız olarak yönlendirme adresini iletmelidir.  Durum kodu(drmKod), yönlendirme adresine parametre olarak eklenmelidir. \n HHS, müşteri uygulama / tarayıcısını bu alanda belirtilen adrese yönlendirir. \n \n \n > Bildirim Adresi \n bldAdr \n AN1..1024 \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. YÖS’ün ileteceği adrestir.  YÖS Ayrık GKD yöntemi ile akışı destekliyorsa, yetYntm değişkeninden bağımsız olarak bildirim adresini iletmelidir.  Durum kodu(drmKod), yönlendirme adresine parametre olarak eklenmelidir. \n HHS, ayrık GKD sonrası bu alanda belirtilen adrese otorizasyon kodunu (authentication code) iletir. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n K \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS geçerli bir Kimlik Numarası Türü olduğunu kontrol eder. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n K \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS, ÖBHS tarafından iletilmesi durumunda Kimlik Verisi üzeriden çapraz kontroller uygulamalı ve Kimlik Verisini temel alarak GKD gerçekleştirmelidir.  Pasaport numarasına ilişkin kontroller HHS'nin halihazırda kullandığı veri, akış ve tabi olduğu diğer düzenlemelerdeki işleyiş ile aynı şekilde ele alınmalıdır.  Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur.  HHS geçerli bir Kurum Kimlik Numarası Türü olduğunu kontrol eder. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur.  HHS, ÖBHS tarafından iletilmesi durumunda Kurum Kimlik Verisi üzeriden çapraz kontroller uygulamalıdır. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n Kurum adına yapılan ödemelerde K değerini alır. Kurum Kimlik Türü ve Kurum Kimlik Verisi alanlarının girilmiş olduğu çapraz olarak kontrol edilir. \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n \n >>
16 Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n HHS geçerli bir para birimi olduğu kontrol eder. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n İ \n \n \n \n \n >> Unvan \n unv \n AN3..140 \n İ \n Gönderenin unvanıdır.  HHS, bu bilgiyi ÖBHS sisteminden gelen veri yerine FAST’a iletirken kendi sisteminden alabilir. \n HHS’nin bu veri ile kendi sistemlerindeki verinin farklı olması ve Kimlik Numarası ile eşleşmemesi durumunda ödeme emri başlatma isteği reddedilir.  ÖBHS verisi ile HHS verisinin farklılaşması durumunun ise risk değerlendirme sistemlerine girdi olarak kullanması tavsiye edilir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n İ \n ÖBHS'nin ön yüzünden daha önce kayıt altına alınmış hesaplar arasından seçtirdiği veya müşteriye girdiği IBAN’dır.  ÖBHS tarafından iletilmediği durumda, gönderen hesap bilgisini müşteri tarafından HHS’nin dijital kanalında GKD sonrasında seçilebilir. Bu amaçla ÖBHS arayüzünde HHS seçtirilmelidir.  Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir. Hesap referansı ile ödeme emri rızası başlatılacak ise HHS hesap referansı değeri ile ilişkilendirilmiş mevcut bir hesap bilgisi rızası var mı kontrol etmelidir. Eğer aktif bir rızası yok ise  TR.OHVPS.Business.InvalidContent  hatası verilmelidir. \n ÖBHS tarafından iletildiği durumda; IBAN içerisindeki HHS kodunun istek başlığındaki HHS kodu ile aynı olduğu (hesabın HHS’ye aitliğinin kontrolü), IBAN’ın doğruluğu (kontrol basamağı doğrulaması), Hesap numarasının ÖHK’ya ait olduğu, HHS’ye özel ödeme izni verilmeyen farklı statülerin bulunması durumu kontrol edilir.  Kontrol başarısız olduğunda  TR.OHVPS.Business. InvalidAccount  hatası YÖS’e iletilir. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n İ \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez.  ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir.  Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir. \n HspRef'e bağlı IBAN değiştiğinde yeni IBAN'ın da ilgili HspRef ile ilişkilendirilmesi beklenmektedir. Bu durumda, HBHS, HspRef ile sorguya geldiğinde HHS'nin yeni IBAN ve hesap hareketlerini dönebilmesi mümkün olacaktır. HspRef’in, IBAN değiştiğinde değiştirilmemesi tavsiye edilmektedir. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n \n >> Unvan \n unv \n AN3..140 \n K \n Kolay Adres Sistemi  kullanılmıyorsa zorunludur.  Alıcının unvanıdır. ÖBHS ekranlarından girişi yapılabileceği gibi ÖBHS’nin kayıtlı alıcılarından yapılan seçimle de doldurup gönderebildiği bilgi olabilir.  FAST-TR Karekod Veri Organizasyonunda;  İşyeri tarafından sunulan uzun karekod yapısının  59:  alanında tanımlı İşyeri adı alanıdır, Kişiden Kişiye Ödeme Karekod Yapısının  07:  alanında tanımlı    Ödeme Alıcısının Adı ve Soyadı  alanıdır.  FAST-TR Karekod dışındaki iş yeri ödemelerinde; yine Unvan alanında işyeri adı bilgisi gönderilmelidir. \n \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n Alıcının Hesap Numarası (IBAN)  alanıdır.   Kolay Adres Sistemi  kullanılmıyorsa zorunludur.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  30-01:  alanında tanımlı İş Yeri IBAN verisi kullanılır.  Alıcının birden fazla hesabının kullanılabilir olduğu durumlarda (özellikle işyeri ödemelerinde HHS nezdindeki hesap (on-us havale akışı) tercih edilmelidir. \n HHS (Gönderen Katılımcı) tarafından IBAN doğrulaması (kontrol basamağı doğrulaması) yapılır. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n Tek seferlik ödemelerde ( kimlik bilgileri boş iletildiğinde) KOLAS nesnesi dolu iletiliyorsa; HHS tarafından TR.OHVPS.Business.InvalidContent hatası dönülmelidir \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n HHS (Gönderen FAST katılımcısı) tarafından KOLAS Servisine yapılan sorguda girdi olarak kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n HHS (Gönderen FAST katılımcısı) tarafından KOLAS Servisine yapılan sorguda girdi olarak kullanılır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n TR.OHVPS.DataCode.KareKodAksTur  sıralı veri değerlerinden birini alır. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını  gösterir. Okunan karekodda referans değeri varsa kullanılması zorunludur.  Karekod ilke ve kurallar belgesinde tanımlandığı şekilde kullanılması gerekmektedir.  Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri veri değerlerinden “O” değeri atanarak iletilmelidir. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n HHS, YÖS'ün API deseninde \"O\" kodunu ilettiğini kontrol eder. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n HHS geçerli bir Ödeme Amacı kodu olduğunu kontrol eder. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarında: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.   -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -\tİşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n YÖS bu değeri ÖHK’yı HHS’ye yönlendirmeden önceki ekranda göstermeli, ve HHS bu değeri GKD için kullandığı önyüzünde “işlem doğrulama kodunun” bir unsuru olarak yine ÖHK’ya göstermelidir. \n \n \n >> Açıklama \n odmAcklm \n AN1..50 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi. \n \n \n \n > ÖBHS Masraf Tutarı \n obhsMsrfTtr \n Kompleks:Tutar \n İ \n API İlke ve Kuralları 1.0 sürümünde bu nesnenin API deseninde gönderilmemesi gerekmektedir. \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi (TRY, USD, EUR vb.). \n \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS’nin işlemle ilgili ÖHK’nın borçlandırılmasını belirttiği masraf tutarı. İşlem Tutarı ile aynı para biriminde olmalıdır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n İ \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda istekte yer alır.  İşyeri Ödeme Bilgileri, YÖS uygulama önyüzünde ÖHK’nın bildiği ve girişi yapılması beklenen bir bilgi olmamalıdır. YÖS tarafından sistemsel olarak doldurulması gereklidir. \n \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n İ \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir.  4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n İ \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). 4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n İ \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n  BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “OdemeEmriRizasi” nesnesi Tablo-8’deki parametrelerden oluşur: \n Tablo 8: “OdemeEmriRizasi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n > Güncellenme Zamanı \n gnclZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin güncellenme zamanı \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n > Rıza Iptal Detay Kodu \n rizaIptDtyKod \n AN2 \n K \n Rıza durumunun iptal olduÄ
16Ÿu durumda zorunludur. Alabileceği değerler 4. Bölümde detaylandırılmıştır. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. \n \n \n > Bildirim Adresi \n bldAdr \n AN1..1024 \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   HHS tarafından maksimum 5 dk içinde işlem tamamlanacak şekil zaman damgası oluşturulur. Zaman aşımı olduğunda HHS’nin GKD’ye izin vermeyecek şekilde hata mesajı vermesi gerekmektedir.  Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n K \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n K \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n İ \n \n \n \n >> Unvan \n unv \n AN3..140 \n İ \n Gönderenin unvanıdır.  HHS, bu bilgiyi ÖBHS sisteminden gelen veri yerine FAST’a iletirken kendi sisteminden alabilir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n İ \n ÖBHS'nin ön yüzünden daha önce kayıt altına alınmış hesaplar arasından seçtirdiği veya müşteriye girdiği IBAN’dır.  ÖBHS tarafından iletilmediği durumda, gönderen hesap bilgisini müşteri tarafından HHS’nin dijital kanalında GKD sonrasında seçilebilir. Bu amaçla ÖBHS arayüzünde HHS seçtirilmelidir.   GKD sonrası HHS ekranında seçilen Hesap Numarası POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir.    Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n İ \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez.  ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir.   GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir.    Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n >> Unvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı 
16sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari unvan bilgisidir. Kolas’tan dönen “account owner” alanı kullanılmalıdır. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen unvan bilgisidir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n ÖBHS tarafından istek mesajında iletilip doğrulanan veya Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen alıcı maskeli IBAN bilgisidir. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n TR.OHVPS.DataCode.KareKodAksTur  sıralı veri değerlerinden birini alır. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını  gösterir. \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR Karekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O” değerini alır. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  - İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n \n >> Açıklama \n odmAcklm \n AN1..50 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi. \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n >> Ödeme Sistemi \n odmStm \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeSistemi  sıralı veri değerlerinden birini alır. \n \n \n >> Beklenen Ödeme Zamanı \n bekOdmZmn \n ISODateTime \n K \n İşlemin yönlendirildiği ödeme sistemi PÖS ise ve PÖS işlem sa
16atleri dışında ise işlemin yapılabileceği ilk zaman bilgisidir. Bu alan ileri vadeli ödemeler için düşünülmüştür. İlk fazda doldurulmasına gerek olmadığı düşünülmektedir. \n \n \n > ÖBHS Masraf Tutarı \n obhsMsrfTtr \n Kompleks:Tutar \n İ \n API İlke ve Kuralları 1.0 sürümünde bu nesnenin API deseninde gönderilmemesi gerekmektedir. \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi (TRY, USD, EUR vb.). \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS’nin işlemle ilgili ÖHK’nın borçlandırılmasını belirttiği masraf tutarı. İşlem Tutarı ile aynı para biriminde olmalıdır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > HHS Masraf Tutarı \n hhsMsrfTtr \n Kompleks:Tutar \n İ \n API İlke ve Kuralları 1.0 sürümünde bu nesnenin API deseninde gönderilmemesi gerekmektedir. \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi (TRY, USD, EUR vb.). \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n HHS’nin işlemle ilgili ÖHK’nın borçlandırılmasını belirttiği masraf tutarı. İşlem Tutarı ile aynı para biriminde olmalıdır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n İ \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda yanıtta yer alır. \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n İ \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir. \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n İ \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n İ \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n 6.3.\tADIM 2- Ödeme Emri Rızasının Yetkilendirilmesi \n   \n Şekil 6: Ödeme Emri Rızasının Yetkilendirilmesi \n ÖBHS, ÖHK’nın ödeme emrini yetkilendirmesi isteğini iletir. Ödeme emrinin yetkilendirilmesi, HHS tarafından gerçekleştirilen Yönlendirme veya Ayrık GKD yöntemiyle yapılır. \n \n \n Yönlendirmeli doğrulama akışında , ÖBHS ÖHK’yı HHS’ye yönlendirir. \n \n ÖBHS tarafından yönlendirme, bir önceki adımdaki RizaNo’yu içerir. \n Yönlendirmenin RizaNo’yu içermesi sayesinde, HHS hangi ödeme emriyle ilişkili olarak yönlendirme yapıldığını ilişkilendirebilir. \n HHS, ÖHK için GKD sürecini işletir. \n \n ÖHK’yı doğrularsa, \n \n ÖHK -bir önceki adımda seçmediyse- borçlu hesabını seçer. \n HHS, ödeme emri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n HHS, ÖHK’yı “olumlu yönlendirme akışı” ile ÖBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n \n \n \n yonAdr?rizaDrm=Y&yetKod=xx&rizaNo=yy&rizaTip=O&drmKod=zzz\n \n ÖHK’yı doğrulayamazsa, \n1. HHS, ödeme emri rıza kaynağının durumunu “Yetki İptal” olarak günceller. \n2. HHS, ÖHK’yı “olumsuz yönlendirme akışı” ile ÖBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=I&rizaNo=yy&rizaTip=O&drmKod=zzz\n \n HHS tarafında oluşabilecek bir hata durumunun YÖS’e aktarılması gerektiği durumlar olabilir. Bu durumda yonlendirme adresinde hata kodu parametresi zorunlu olarak iletilmelidir. \nHata açıklamalarının neler olabileceği ve YÖS’ün kendi uygulamasında bu hatayı ne şekilde göstereceği aşağıda tariflenmiştir. \n yonAdr?rizaDrm=I&rizaNo=yy&rizaTip=O&rizaIptDtyKod=11&drmKod=zzz\n \n URL’de iletilen “Rıza İptal Detay Kodu” Rıza durumları bölümünde (4. Bölüm) belirtilen hata kodları ile aynı olacak şekilde tasarlanmıştır. GKD sırasında yapılması gereken kontroller 5.3 bölümünde detaylandırılmıştır. \n \n Ayrık doğrulama akışında , HHS, ÖHK’nın ödeme emrini başlattığı uygulamadan farklı olabilecek bir “doğrulama” uygulamasında işlemi doğrulamasını ister.\n \n Ayrık akış ÖBHS’nin farklı bir kanal kullanarak yetkilendirme isteği göndermesiyle başlatılır. \n Bu yetkilendirme isteği, yetkilendirilecek ödeme emri rızasının eşleştirileceği ÖHK’nın bulunması için ilgili veriyi taşır. \n HHS, ÖHK’yı doğrular. \n ÖHK -bir önceki adımda seçmediyse- borçlandırılacak hesabını seçer. \n HHS, ödeme emri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n \n Başarılı GKD sonrasında (rizaDrm=’Y’) ilgili rıza nesnesi için (belirli bir rizaNo) yetkilendirme kodunun (yetKod) alınmasının ardından erişim belirteci erişim adresine POST çağrısı yapılarak yetkilendirme kodu karşılığında erişim belirteci ve yenileme belirteci alınır. POST /erişim-belirteci erişim noktası EK-3’te açıklanmıştır. \n Erişim belirteci alındıktan sonra;
16 HHS, ödeme emri rıza kaynağının durumunu “Yetki Kullanıldı” olarak günceller. \n 6.4.\tADIM 2.1 – Ödeme Emri Rızasının Sorgulanması (isteğe bağlı) \n   \n Şekil 7: “odemeEmriRizasi” nesnesinin sorgulanması (isteğe bağlı) \n GKD işleminin başarıyla tamamlanıp Ödeme Emri Rızasının yetkilendirilmesi esnasında, gönderen hesap seçiminin HHS ekranında yapıldığı durumlar olabilir. Bu durumlarda ödeme emri isteğinde gönderen hesap bilgileri alanının zorunlu olması nedeniyle,  OdemeEmriRizasi  nesnesi sorgulanarak gönderen hesap bilgileri (hesap numarası ve/veya hesap referansı) alınmalıdır. HHS, “ ADIM 2 -Ödeme Emri Rızasının Yetkilendirilmesi ” akışında ÖHK’nın hesapları arasında seçim yapmasını ve seçilen hesap bilgisinin  OdemeEmriRizasi  nesnesine işler. \n GET /odeme-emri-rizasi/{RizaNo} \n ÖBHS, mevcut durumunu kontrol etmek için, oluşturulan bir  OdemeEmriRizasi  kaynağının durumunu isteğe bağlı olarak alabilir. \n Durum \n OdemeEmriRizasi  kaynağı için kullanılabilecek durum göstergeleri şu şekildedir: \n \n Yetki Bekleniyor \n Yetkilendirildi \n Yetki Kullanıldı \n Yetki Ödeme Emrine Dönüştü \n Yetki Sonlandırıldı \n Yetki İptal \n \n Ödeme emri rıza durum değişiklikleri 4.2 bölümünde detaylandırılmıştır. \n BAŞARILI YANIT: \n GET /odeme-emri-rizasi/{RizaNo}  yanıtının (RESPONSE) gövdesinde (BODY)  “OdemeEmriRizasiİstegi” nesnesi kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda Tablo-8’de yer alan parametreleri içeren “OdemeEmriRizasi” oluşturulur. \n Gönderen Hesap Bilgisinin, ADIM 2 (Ödeme Emri Rızasının Yetkilendirilmesi) sonrasında HHS ekranından seçildiği akışta “OdemeEmriRizasi” nesnesi güncellenir ve ÖBHS  GET /odeme-emri-rizasi/{RizaNo}  isteği yaparak güncel gönderen hesap bilgisi bilgisini de içeren “OdemeEmriRizasi” nesnesini çekmelidir. \n Çerçeve sözleşme kapsamında olmayan tek seferlik ödeme işlemlerinde, Kimlik Türü ve Kimlik Verisi bilgilerinin ödeme emri rızası sırasında gönderimi zorunlu değildir. Başarılı GKD sonrası, yani erişim belirteci alındığında, ödeme emri oluşmadan önce, YÖS’ün ödeme emri rızasını sorgulayarak bu bilgileri alması ve ödeme emrini oluştururken Kimlik Türü ve Kimlik Verisi alanlarını dolu olarak göndermesi beklenmektedir.  Ancak rıza durumu “Yetki Bekleniyor - B”, “Yetkilendirildi - Y” ve “Yetki İptal - I” statülerinde ise, ödeme emri rızası sorgulamasında, HHS’nin Kimlik Türü ve Kimlik Verisi bilgisini YÖS ile paylaşmaması gerekmektedir. \n 6.5.\tADIM 3- Ödeme Emrinin Oluşturulması \n   \n Şekil 8: Ödeme Emrinin Oluşturulması \n POST /odeme-emri \n \n ÖHK’nın Güçlü Kimlik Doğrulama ile işlemi yetkilendirmesi sonrasında, ÖBHS OdemeEmri kaynağını oluşturur. \n Ödeme emri (OdemeEmri) uygun ödeme kaynağına POST isteği yapılarak başlatılır.\n \n POST HHS tarafından işlenir: RizaDurumu “Yetki Kullanıldı” ise işleme başlanır. \n POST /odeme-emri-rizasi ile POST /odeme-emri isteklerinde istek alanların aynı olması beklenmektedir. HHS tarafından kontrolü sağlanmalıdır.POST verisindeki Gönderen Hesap Numarası ve Alıcı Hesap Numarasının aynı bankaya aitse HAVALE değilse FAST veya PÖS iş akışına geçilir. \n POST verisinin modele göre kontrolü yapılır (alan kontrolleri) \n POST verisinin mantıksal kontrolleri yapılır (IBAN kontrolü, çapraz alan kontroller) \n OdemeEmriDurumu “Gerçekleşti” / “Gönderildi” / “Gerçekleşmedi” olarak güncellenir. \n \n \n POST başarılı olursa, içerisinde OdemeEmriNo ve OdemeEmriDurumu değişkenleri de bulunan OdemeEmri nesnesi ÖBHS’ye döner ve RizaDurumu değişkenin değeri “Yetki Ödeme Emrine Dönüştü” olarak güncellenir. \n \n BAŞARILI İSTEK: \n Tablo 9: “OdemeEmriIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n HHS tarafından ödeme emri oluşturulması sırasında yapılması gereken kontrol ve işlemler \n FAST A01 PÖS M01 mesaj mapping \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder.  Hata durumunda  TR.OHVPS.Connection.InvalidASPSP  hata kodunu döner. \n Gönderen katılımcı kodu (yani bankanın FAST/PÖS’teki Katılımcı kodu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder.  Hata durumunda  TR.OHVPS.Connection.InvalidTPP  hata kodunu döner. \n YosKod \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. \n \n \n \n \n > Bildirim Adresi \n bldAdr \n AN1..1024 \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi \n \n \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. Ödeme Emri Rizası Nesnesindeki Kimlik Numarası Türü verisi ile aynı olmalıdır. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS, ÖBHS tarafından iletilmesi durumunda Kimlik Verisi üzeriden çapraz kontroller uygulamalı ve Kimlik Verisini temel alarak GKD gerçekleştirmelidir. Ödeme Emri Rizası Nesnesindeki Kimlik Numarası verisi ile aynı olmalıdır. Gerçek kişi tarafından yapılan ödemelerde, 1. HHS, Gönderen Adı ve Gönderen Hesap Numarasını ödeme emri isteğinde (Havale/FAST/PÖS) gönderir. - Gönderen Adı ve diğer tüm müşteri bilgileri, Kimlik Numarası üzerinden elde edillir. Pasaport numarasına ilişkin kontroller HHS'nin halihazırda kullandığı veri, akış ve tabi olduğu diğer düzenlemelerdeki işleyiş ile aynı şekilde ele alınmalıdır. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik verisi bu alanda gönderilebilmesi zorunludur. \n GonKimN / Psp \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur. Ödeme Emri Rizası Nesnesindeki Kurum Kimlik Türü verisi ile aynı olmalıdır. \n \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur. Ödeme Emri Rizası Nesnesindeki Kurum Kimlik Verisi ile aynı olmalıdır. \n GonKimN / VKN \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n Kurum adına yapılan ödemelerde K değerini alır. Kurum Kimlik Türü ve Kurum Kimlik Verisi alanlarının giilmiş olduğu çapraz olarak kontrol edilir.  Ödeme Emri Rizası Nesnesindeki ÖHK Türü ile aynı olmalıdır. \n \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n \n \n >>
16 Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n Ödeme Emri Rizası Nesnesindeki Para Birimi verisi ile aynı olmalıdır. \n \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n Ödeme Emri Rizası Nesnesindeki İşlem Tutarı verisi ile aynı olmalıdır. HHS işlem tutarı ödeme mesajında (Havale/FAST/PÖS) aynen taşınmak durumundadır. \n Ttr \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n \n \n >> Unvan \n unv \n AN3..140 \n Z \n Gönderen kişinin ad soyad ya da ticari unvan bilgisi. \n HHS ve ÖBHS verisi tutarlı olmalıdır.  ÖBHS verisi ile HHS verisinin farklılaşması durumunun ise risk değerlendirme sistemlerine girdi olarak kullanması tavsiye edilir. \n GonAd \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n ÖBHS'nin ön yüzünden seçtirdiği/kullanıcıya girdiği IBAN Hesap numarası ya da Hesap Referansı alanlarından en az birinin dolu olarak gelmesi gerekmektedir. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Gönderen Hesap Numarası verisi ile aynı olmalıdır. \n GonHesN \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n K \n ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başlatılabilir. GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir. Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir. \n \n \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n \n \n >> Unvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari unvan bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen unvan bilgisidir. \n YÖS’ten alıcı ad soyad bilgisi geliyorsa ve HHS'nin kontrolünden başarılı bir şekilde geçti ise HHS'nin tekrar alıcı ad soyad bilgisi için giriş yaptırmasına gerek bulunmamaktadır. \n AlAd \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n Alıcının Hesap Numarası alanıdır (IBAN). Kolay Adres  sorgusunda dönülen adres kaydı yaptırmış olan alıcının maskeli IBAN bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen IBAN bilgisidir. Karekod akışında, FAST Karekod Veri Organizasyonundaki 30-01: alanında tanımlı İş Yeri IBAN verisi kullanılır. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Alıcı Hesap Numarası verisi ile aynı olmalıdır.  Kontroller başarıyla sonuçlanırsa, bilgi FAST/PÖS AlHesN alanına doğrudan aktarır ve FAST/PÖS Alan Katılımcı Kodu (AlKK) olarak Alıcı HHS Kodu kullanılır.  KOLAS sorgusu sonucunda ödeme emrinde iletilen maskeli bilgi ile HHS’nin kendi ödeme emri rızası isteğinde tuttuğu KOLAS sorgusundan dönülen bilgi maskelenerek karşılaştırılır. Eğer aynı değilse uygun hata kodu dönülerek işlem sonlandırılır. \n AlHesN \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n Müşterinin sorgulamak istediği Kolay Adres Tipi değeridir.  TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Kolay Adres Tipi verisi ile aynı olmalıdır. \n \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Kolay Adres Değeri verisi ile aynı olmalıdır. \n FAST (KolasRef) \n \n \n >>>
16 Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n KolasRef ( hem FAST hem de PÖS için aynı) \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  Kolay Adresi Sistemi ile birlikte kullanılmaz.  01: FAST katılımcısından dinamik doğrulama hizmeti alınan işyeri ödemesi  02: FAST katılımcısından statik doğrulama hizmeti alınan işyeri ödemesi 03: Kişiden kişiye ödemeler \n Ödeme Emri Rizası Nesnesindeki Kare Kod Akış Türü verisi ile aynı olmalıdır. \n FAST: KrkdAksTur \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını gösterir.  Okunan karekodda referans değeri varsa kullanılması zorunludur. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n Ödeme Emri Rizası Nesnesindeki Karekod Referansı verisi ile aynı olmalıdır.  Çevrimiçi doğrulama hizmeti alınmayan statik karekodlar için Referans numarasının bulunmadığı durumlarda HHS tarafından “NONREF” ifadesi girilir. \n FAST: Karekod Referansı (KrkdRef) \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR Karekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O” değeri atanarak iletilmelidir. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n Ödeme Emri Rizası Nesnesindeki Ödeme Kaynağı verisi ile aynı olmalıdır. HHS tarafından ödeme mesajında (FAST/PÖS) aynen taşınmak durumundadır. \n FAST/PÖS: OdmKynk \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. \n Ödeme Emri Rizası Nesnesindeki Ödeme Amacı verisi ile aynı olmalıdır. HHS tarafından ödeme mesajında (FAST/PÖS) aynen taşınmak durumundadır. \n FAST (OdmAmc)/PÖS(OdmAmaci) \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n Ödeme Emri Rizası Nesnesindeki Referans Bilgisi verisi ile aynı olmalıdır. \n RefBlg (Hem FAST hem de PÖS için aynı) \n \n \n >> Açıklama \n odmAcklm \n AN1..50 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi. \n \n FAST/PÖS Acklm \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n \n \n >> Ödeme Sistemi \n odmStm \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeSistemi  sıralı veri değerlerinden birini alır. \n Ödeme Emri Rizası Nesnesindeki Ödeme Sistemi verisi ile aynı olmalıdır. \n \n \n \n >> Beklenen Ödeme Zamanı \n bekOdmZmn \n ISODateTime \n K \n İşlemin yönlendirildiği ödeme sistemi PÖS ise ve PÖS işlem sa
16atleri dışında ise işlemin yapılabileceği ilk zaman bilgisi \n \n \n \n \n > ÖBHS Masraf Tutarı \n obhsMsrfTtr \n Kompleks:Tutar \n İ \n API İlke ve Kuralları 1.0 sürümünde bu nesnenin API deseninde gönderilmemesi gerekmektedir. \n \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi (TRY, USD, EUR vb.). \n Ödeme Emri Rizası Nesnesindeki ÖBHS Masraf Para Birimi verisi ile aynı olmalıdır. \n \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS’nin işlemle ilgili ÖHK’nın borçlandırılmasını belirttiği masraf tutarı. İşlem Tutarı ile aynı para biriminde olmalıdır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n Ödeme Emri Rizası Nesnesindeki ÖBHS Masraf Tutarı verisi ile aynı olmalıdır. \n \n \n \n > HHS Masraf Tutarı \n hhsMsrfTtr \n Kompleks:Tutar \n İ \n API İlke ve Kuralları 1.0 sürümünde bu nesnenin API deseninde gönderilmemesi gerekmektedir. \n \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi (TRY, USD, EUR vb.). \n Ödeme Emri Rizası Nesnesindeki HHS Masraf Para Birimi verisi ile aynı olmalıdır. \n \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n HHS’nin işlemle ilgili ÖHK’nın borçlandırılmasını belirttiği masraf tutarı. İşlem Tutarı ile aynı para biriminde olmalıdır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n Ödeme Emri Rizası Nesnesindeki HHS Masraf Tutarı verisi ile aynı olmalıdır. \n \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n İ \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda istekte yer alır.  İşyeri Ödeme Bilgileri, YÖS uygulama önyüzünde ÖHK’nın bildiği ve girişi yapılması beklenen bir bilgi olmamalıdır. YÖS tarafından sistemsel olarak doldurulması gereklidir. \n \n \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n İ \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir. 4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n İ \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). 4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n İ \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n \n \n \n \n \n BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “OdemeEmri” nesnesi Tablo-10’daki parametrelerden oluşur: \n Tablo 10: “OdemeEmri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanıdır. \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. \n \n \n > Bildirim Adresi \n bldAdr \n AN1..1024 \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Emir Bilgileri \n emrBlg \n Kompleks: EmirBilgileri \n Z \n \n \n \n > Ödeme Emri Numarası \n odmEmriNo \n AN1..128 \n Z \n odemeEmri nesnesinin UID'sidir. OdemeEmrine İlişkin sorgular bu ID üzerinden yapılır. \n \n \n > Ödeme Emri Zaman \n odmEmriZmn \n ISODateTime \n Z \n odemeEmri nesnesinin oluşturulma zamanıdır. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n >>
16 Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.    Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n >> Unvan \n unv \n AN3..140 \n Z \n Gönderen kişinin ad soyad ya da ticari unvan bilgisi. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n ÖBHS tarafından iletilip doğrulanan veya HHS ekranında seçilen Gönderen Hesap Numarası dönülür. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n K \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid)  YÖS bazında farklılaşması gerekmez. ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir. GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir. Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n >> Unvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari unvan bilgisidir. Kolas’tan dönen “account owner” alanı kullanılmalıdır. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen unvan bilgisidir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n Alıcının Hesap Numarası alanıdır (IBAN). Kolay Adres  sorgusunda dönülen adres kaydı yaptırmış olan alıcının maskeli IBAN bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen IBAN bilgisidir. Karekod akışında, FAST Karekod Veri Organizasyonundaki 30-01: alanında tanımlı İş Yeri IBAN verisi kullanılır. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n Müşterinin sorgulamak istediği Kolay Adres Tipi değeridir.  TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  Kolay Adresi Sistemi ile birlikte kullanılmaz.  01: FAST katılımcısından dinamik doğrulama hizmeti alınan işyeri ödemesi  02: FAST katılımcısından statik doğrulama hizmeti alınan işyeri ödemesi 03: Kişiden kişiye ödemeler \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını gösterir.  Okunan karekodda referans değeri varsa kullanılması zorunludur. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O”  değerini alır. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n \n \n >> Ödeme Durumu \n odmDrm \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeDurumu  sıralı veri değerlerinden birini alır.      Ödeme Durumu alanı ile ilgili olarak HHS’ler tarafından YÖS’lere  OdemeEmri servisi yanıtında 02:Gönderildi, 04:Onayda Bekliyor,05:İşleme Alındı yanıtları gönderilebilir.   05:İşleme Alındı  durumu YÖS tarafından müşteriye gösterilmeyen bir koddur. Bu kod dönüldüğünde YÖS uygulamasında ÖHK’ya ödeme durumu  02:Gönderildi  olarak gösterilir. İşlemin son durumunun teyidi için YÖS ödeme emri sorgulaması yapmalıdır.   02:Gönderildi  durumu oluştuktan sonra YÖS tarafından ödeme emri sorgulaması yapılarak ödeme durumunun güncel değeri öğrenilir. Güncel değerler  01:Gerçekleşti,03:Gerçekleşmedi  durumları olabilir. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  - İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n \n >> Açıklama \n odmAcklm \n AN1..50 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi. \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n >> Ödeme Sistemi \n odmStm \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeSistemi  sıralı veri değerlerinden birini alır. \n \n \n >> Ödeme Sistem Numarası \n odmStmNo \n AN10..50 \n K \n Ödeme başarılı başlatıldıysa, ödemenin başlatıldığı sistemdeki referans numarası. Gerektiğinde ilgili ödeme sisteminde/HHS’de söz konusu ödemeye karşılık gelen mesajla bağlantı kurmada kullanılır.   Ödeme Hizmeti kullanıcısına işlemin takibi için gösterilebilir.  İşlemin yönlendirildiği ödeme sistemi FAST ya da PÖS ise sistemdeki ilgili mesajın Tarih, GönderenKatilimKodu ve SorguNumarasi değerlerinin birleşiminden oluşur. Bu 3 alan mevcutta kullanıldığı formatta aralarına dikey çizgi (Unicode U+2223) işareti koyularak, birleştirmeli ve iletilmelidir. Örn : Tarih|GönderenKatilimKodu|SorguNumarasi   Ödeme Havale/Virman işlemi ise HHS’nin üretmiş olduğu havale/virman numarasını içerir. Buradaki format da Tarih|GönderenKatilimKodu|Havale-virman numarası şeklinde olmalıdır. \n \n \n >> Beklenen Ödeme Zamanı \n bekOdmZmn \n ISODateTime \n K \n İşlemin yönlendirildiği ödeme sistemi PÖS ise ve PÖS işlem saatleri dışında ise işlemin yapılabileceği ilk zaman bilgisi \n \n \n > ÖBHS Masraf Tutarı \n obhsMsrfTtr \n Kompleks:Tutar \n İ \n API İlke ve Kuralları 1.0 sürümünde bu nesnenin API deseninde gönderilmemesi gerekmektedir. \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi (TRY, USD, EUR vb.). \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS’nin işlemle ilgili ÖHK’nın borçlandırılmasını belirttiği masraf tutarı. İşlem Tutarı ile aynı para biriminde olmalıdır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > HHS Masraf Tutarı \n hhsMsrfTtr \n Kompleks:Tutar \n İ \n API İlke ve Kuralları 1.0 sürümünde bu nesnenin API deseninde gönderilmemesi gerekmektedir. \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi (TRY, USD, EUR vb.). \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n HHS’nin işlemle ilgili ÖHK’nın borçlandırılmasını belirttiği masraf tutarı. İşlem Tutarı ile aynı para biriminde olmalıdır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n İ \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği 
16için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda yanıtta yer alır. \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n İ \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir. \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n İ \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n İ \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n 6.6.\tADIM 3.1- Ödeme Emri Sorgusu (İsteğe bağlı) \n   \n Şekil 9: Ödeme Emri Sorgusu \n GET /odeme-emri/{odemeEmriNo} \n ÖBHS, bu erişim adresi aracılığıyla ödeme emrini sorgulayabilir. \n BAŞARILI YANIT: \n GET /odeme-emri/{odemeEmriNo} yanıtının (RESPONSE) gövdesinde (BODY)  “OdemeEmri” nesnesi bulunur. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda Tablo-10’da yer alan parametreleri içeren “OdemeEmri” nesnesi döner. \n 6.7\tHealthcheck API \n GET /health \n HHS’lerin sunacağı bu servis, düzenli olarak BKM tarafından çağırılarak servislerin ayakta olup olmadıklarının kontrolünün sağlanması planlanmaktadır \n Başarılı yanıtta Http 200 kodu dönülmelidir. \n Başarılı Yanıt: \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n status \n status \n AN2..20 \n Z \n “UP”, “DOWN” değerlerini alabilir \n \n \n \n"},{title:"3. Temel Prensipler",frontmatter:{},regularPath:"/v1.0.2/contents/temel-prensipler.html",relativePath:"v1.0.2/contents/temel-prensipler.md",key:"v-03088e53",path:"/v1.0.2/contents/temel-prensipler.html",headers:[{level:2,title:"3.1 Genel",slug:"_3-1-genel"},{level:2,title:"3.2.\tİstem (Çağrı) ve Oturum",slug:"_3-2-istem-cagrı-ve-oturum"},{level:2,title:"3.3.\tRESTful API",slug:"_3-3-restful-api"},{level:2,title:"3.4.\tSürüm Yönetimi",slug:"_3-4-surum-yonetimi"},{level:2,title:"3.5.\tKaynak URI Yol Yapısı",slug:"_3-5-kaynak-uri-yol-yapısı"},{level:2,title:"3.6.\tKarakter Kodlama",slug:"_3-6-karakter-kodlama"},{level:2,title:"3.7.\tVeri Formatı",slug:"_3-7-veri-formatı"},{level:2,title:"3.8.\tİstemci Sertifika Yönetimi",slug:"_3-8-istemci-sertifika-yonetimi"},{level:2,title:"3.9.\tYetkilendirme Türleri",slug:"_3-9-yetkilendirme-turleri"},{level:2,title:"3.10. İstek/Cevap Mesajlarında Kullanılan Nesne Yapıları",slug:"_3-10-istek-cevap-mesajlarında-kullanılan-nesne-yapıları"},{level:2,title:"3.11. Sayfalandırma ve Filtreleme",slug:"_3-11-sayfalandırma-ve-filtreleme"},{level:2,title:"3.12. Mesaj İmzalama",slug:"_3-12-mesaj-imzalama"},{level:2,title:"3.13. Durum Kodu",slug:"_3-13-durum-kodu"},{level:2,title:"3.14. Gereksinimlerinin Sınıflandırılması",slug:"_3-14-gereksinimlerinin-sınıflandırılması"},{level:2,title:"3.15. İstek Başlığı",slug:"_3-15-istek-baslıgı"},{level:2,title:"3.16. Yanıt Başlığı",slug:"_3-16-yanıt-baslıgı"},{level:2,title:"3.17. Idempotency Kuralları",slug:"_3-17-idempotency-kuralları"},{level:2,title:"3.18. HTTP Durum Kodları",slug:"_3-18-http-durum-kodları"},{level:2,title:"3.19. Maskeleme Kuralları",slug:"_3-19-maskeleme-kuralları"},{level:2,title:"3.20. Fonksiyonel Olmayan Gereksinimler",slug:"_3-20-fonksiyonel-olmayan-gereksinimler"},{level:2,title:"3.21. Otomatik Sorgular",slug:"_3-21-otomatik-sorgular"}],content:' 3. Temel Prensipler  \n Bu bölümde Ödeme Hizmetleri Veri Paylaşım Servisleri (Hesap Bilgisi Hizmeti, Ödeme Emri Başlatma Hizmeti) için tanımlanan temel prensipler açıklanmaktadır. \n 3.1 Genel \n \n \n HHS’ler Yönetmeliğin 59. maddesinin beşinci fıkrası ve Ödeme ve Elektronik Para Kuruluşlarının Bilgi Sistemleri ile Ödeme Hizmeti Sağlayıcılarının Ödeme Hizmetleri Alanındaki Veri Paylaşım Servislerine İlişkin Tebliğin (Tebliğ) 23. maddesinin birinci fıkrası uyarınca, ödeme hizmetleri veri paylaşım servislerini BKM API Geçidi aracılığıyla HBHS ve ÖBHS’ye sunmakla yükümlüdür. \n \n \n Tebliğin 23. maddesinin ikinci fıkrası uyarınca ödeme emri başlatma hizmetinde açık iletişim servisinin tarafları ÖBHS ile HHS’dir. \n \n \n Tebliğin 23. maddesinin üçüncü fıkrası uyarınca hesap bilgisi hizmetinde açık iletişim servisinin tarafları HBHS ile HHS’dir. \n \n \n Yönetmeliğin 60. maddesinin birinci fıkrası uyarınca müşteri, ödeme emri başlatma hizmetini  ödeme hesabının çevrim içi olarak erişilebilir olduğu durumlarda , kullanmayı tercih edebilir. \n \n \n Yönetmeliğin 61. maddesinin birinci fıkrası uyarınca müşteri, hesap bilgisi hizmetini  ödeme hesabının çevrim içi olarak erişilebilir olduğu durumlarda , kullanmayı tercih edebilir. \n \n \n Tebliğin 25. maddesi uyarınca HHS ve YÖS (ÖBHS ve HBHS) arasında bağlantı uçtan uca güvenli bir şekilde sağlanır. Bu amaçla iletim katmanında TLS (asgari 1.2 sürümü) ile şifreli iletişim sağlanır. \n \n \n Tebliğin 23. maddesinin dördüncü fıkrası uyarınca HHS tarafından sunulan ödeme hizmetleri veri paylaşım servislerini kullanan yetkilendirilmiş ödeme hizmeti sağlayıcılarının TCMB tarafından ilgili ödeme hizmeti için yetkilendirilmiş olduğu kontrol edilir. \n \n \n Tebliğin 25. maddesinin beşinci fıkrası uyarınca zaman damgası, 15/1/2004 tarihli 5070 sayılı Elektronik İmza Kanunu kapsamında tanımlanan zaman damgasına dayanır. \n \n \n API alan isimleri Türkçe olarak tanımlanmıştır. Ancak API başlığı (header) alanındaki alan isimleri özelinde, API Geçitleri tarafından otomatik olarak tanınabilmesi gözetilerek, İngilizce isimlendirme tercih edilmiştir. \n \n \n ÖHK halihazırda ödeme hesaplarına, çevrim içi (mobil bankacılık, internet bankacılığı vb.) erişebilir durumda ise, HHS\'nin varsa Açık Bankacılık kanal veya yetki tanımını varsayılan değeri AÇIK olacak şekilde sunması gerekmektedir. HHS’nin, Bireysel/Kurumsal/Ticari müşteri ayrımı yapmaksızın tüm müşterileri için, çevrim içi kanallarda hesap hareketlerine erişim ve ödeme yapabilme yetkisi bulunması durumunda, yine aynı şekilde Açık Bankacılık kanal veya yetki tanımını da varsayılan değeri AÇIK olacak şekilde sunması gerekmektedir. \n 3.2.\tİstem (Çağrı) ve Oturum \n \n \n Her istek tekil istek numarası ve ÖHK’lı işlemler için zaman damgası (PSU-Timestamp) içerir. Birden fazla istek içeren işlem YÖS tarafından belirlenen çağrıya özgü talep kimliği (istek numarası: X-Request-ID) ve rıza sürecine özgü talep kimliği (işlem grup numarası: X-Group-ID) değerleri kullanılmalıdır. Aynı rıza no’ya ait tüm isteklerde aynı X-Group-ID bilgisi değeri gönderilmelidir. \n \n \n Oturum takibi ise PSU-Session-ID ile yapılır. Oturum numarası (PSU-Session-ID) ÖHK’lı işlemler için zaman damgası (PSU-Timestamp) ile birlikte ilgili tüm işlem verilerini içerecek şekilde k
16ayıt altına alınır. \n \n \n Örneğin, bir ödeme emri başlatma işlemi birden fazla istekten oluşur. Her istek yukarıda belirtildiği gibi biricik istek numarası ve ÖHK’lı işlemler için zaman damgası (PSU-Timestamp) içerir. Ancak işlemin oturum bütünlüğü PSU-Session-ID ile sağlanır. \n \n \n Taraflar açtıkları oturumu işlem bütünlüğünü sağlayacak süre içerisinde açık tutar ve işlem biter bitmez kapatır. \n 3.3.\tRESTful API \n API’ler, dünya ölçeğinde yaygın bir şekilde kullanılan Temsili Durum Transferi (Representational State Transfer, REST) mimari tarzı ve JavaScript Nesne Notasyonu (JavaScript Object Notation, JSON) veri formatlarına uygun olarak geliştirilir. En üst seviye Veri Tanımlama Dili (Data Description Language) ve en iyi uygulama örnekleri için  ^JSON Şeması  temel alınır. \n İstek ve yanıt mesajlarında, isteğe bağlı veya koşullu bir alan, değer içermiyorsa, bu alan JSON payloadunda yer almamalıdır. \n Örnek kod bloğu. \n "rzBlg":{\n         "rizaNo":"aa9bd7e7-0ccd-4edc-9639-5a358dbf2335",\n         "olusZmn":"2022-11-28T12:00:21+03:00",\n         "gnclZmn":null,    --\x3e hatalı\n         "rizaDrm":"K",\n         "rizaIptDtyKod":"" --\x3e hatalı \n      },\n \n Örnek kod bloğu: \n \n         "alc":{\n            "hspNo": "TR800800004162387689546019",\n            "unv": "AHMET YILMAZ", \n            "kolas":{}  --\x3e nesne gönderimi hatalı\n         },\n 3.4.\tSürüm Yönetimi \n API sonraki aşamalarda doğabilecek gereksinimleri ve daha karmaşık kullanım durumlarını karşılamak için sürümler halinde geliştirilir ve bu durum tasarım sırasında göz önünde bulundurulur. \n API v1.0 sürümünde ; \n \n Kapsamdaki ödeme hesapları : Vadesiz TL, yabancı para hesapları (gerçek ve tüzel kişilere ait ödeme hesapları), Kredili Mevduat Hesabı \n Tekil ödeme (Virman/Havale/FAST/Müşterilerarası TL Aktarım Sistemi)\n \n Virman ve havale işlemleri kapsamında yabancı para transferi yapılabilir. \n \n \n Hesap bilgisi hizmetleri\n \n Temel veya ayrıntılı hesap bilgisi \n Bakiye \n Gerçekleşen işlemler için Hesap hareketleri \n \n \n Karekodlu ödemelerdeki 01, 02 ve 03 akış türleri\nyer almaktadır. \n \n Her sürüm değişikliğinde bir önceki sürüm belirli bir süre desteklenecektir. Diğer bir ifadeyle, sadece belirli bir süre için mevcut ve bir önceki sürüm aynı anda erişilebilir olacaktır. \n 3.5.\tKaynak URI Yol Yapısı \n YÖS’lerin başlattığı çağrılarda URI yolu aşağıdaki yapıyı takip eder: \n [hhs-yol-ön-eki]/ohvps/ [kaynak-grubu]/ [sürüm]/ [kaynak]/[kaynak-no]/[alt-kaynak] \n Bu, aşağıdaki unsurlardan oluşur: \n \n [hhs-yol-ön-eki] \nİsteğe bağlı, HHS\'ye özgü yol ön ekini ifade eder. \nBKM API geçidi üzerinden yapılan çağrılarda BKM tarafından belirlenen sistem adı ve yol ön eki kullanılır. \n ohvps \nSabit metin “ohvps” (Ödeme Hizmetleri Veri Paylaşım Servisleri kısaltması) \n [kaynak-grubu] \nKaynak grubu, API’ye erişmek için kullanılan ödeme hizmetine (HBH, ÖBH) göre erişim adresi (end point) grubunu tanımlar (“hbh” veya “obh”). \n [sürüm] \nAPI sürümünü ifade eder (“/s[ana-sürüm].[alt-sürüm]/”). \n [kaynak]/[kaynak-no] \nKaynak detaylarını ifade eder. \n [alt-kaynak] \nAlt kaynak detaylarını ifade eder. \n \n HHS, tüm kaynakları için aynı katılımcı yolu ön ekini ve sistem adını kullanmalıdır. \n BKM API’lerine erişmek isteyen uygulamaların yetkilerine göre aşağıdaki API’lere abone olmaları gerekmektedir: \n OBH: \n https://secure.api-preprod.bkm.com.tr/ohvps/obh/s1.0/odeme-emri-rizasi \n https://secure.api-preprod.bkm.com.tr/ohvps/obh/s1.0/odeme-emri \nHBH: \n https://secure.api-preprod.bkm.com.tr/ohvps/hbh/s1.0/hesap-bilgisi-rizasi \n https://secure.api-preprod.bkm.com.tr/ohvps/hbh/s1.0/hesaplar \n https://secure.api-preprod.bkm.com.tr/ohvps/hbh/s1.0/hesaplar/1234/islemler \n https://secure.api-preprod.bkm.com.tr/ohvps/hbh/s1.0/hesaplar/1234/bakiye \nGKD \n https://secure.api-preprod.bkm.com.tr/ohvps/gkd/s1.0/erisim-belirteci \nHHS – YÖS API \n https://secure.api-preprod.bkm.com.tr/hhs-api/s1.0/hhs \n https://secure.api-preprod.bkm.com.tr/hhs-api/s1.0/hhs/1234 \n https://secure.api-preprod.bkm.com.tr/yos-api/s1.0/yos \n https://secure.api-preprod.bkm.com.tr/yos-api/s1.0/yos/1234 \n HHS’lerin sağlayacakları API’lerdeki URI çevrimi örnekleri aşağıdaki gibidir. \n \n https://xbank.com.tr/api-portal/ohvps/obh/s1.0/o
16deme-emri \n https://secure.api-preprod.bkm.com.tr/ohvps/obh/s1.0/odeme-emri  (BKM API) \n https://xbank.com.tr/api-portal/ohvps/hbh/s1.0/hesap-bilgisi-rizasi \n https://secure.api-preprod.bkm.com.tr/ohvps/hbh/s1.0/hesap-bilgisi-rizasi  (BKM API) \n https://xbank.com.tr/api-portal/ohvps/hbh/s1.1/hesaplar \n https://secure.api-preprod.bkm.com.tr/ohvps/hbh/s1.1/hesaplar   (BKM API) \n https://xbank.com.tr/api-portal/ohvps/hbh/s1.1/hesaplar/1234 \n https://secure.api-preprod.bkm.com.tr/ohvps/hbh/s1.1/hesaplar/1234  (BKM API) \n \n BKM API Geçidi üzerinden yapılan çağrılarda, istek başlığında bulunan “x-aspsp-code” (isteğin iletildiği Hesap Hizmeti Sağlayıcısının kodu) değerine göre HHS API’de standart olarak tanımlanmış olan “basePath” bilgisine servis uzantısı eklenerek HHS’ye yönlendirme yapılır. \n Örneğin, istek başlığında  xbank ’ın kodu varsa, YÖS tarafından yapılan \n https://secure.api-preprod.bkm.com.tr/ohvps/hbh/s1.0/hesap-bilgisi-rizasi \nçağrısı BKM API Geçidi tarafından karşılanarak \n https://xbank.com.tr/api-portal/ohvps/hbh/s1.0/hesap-bilgisi-rizasi \nadresine yönlendirilir. \n Bu örnekte,  https://xbank.com.tr/api-portal  basePath bilgisi HHS tarafından HHS API’ye girilen değerdir. \n 3.6.\tKarakter Kodlama \n API istekleri ve yanıtlarında UTF-8 karakter kodlaması kullanılır. Bu, JSON için varsayılan karakter kodlamasıdır. \n Ancak, bir HHS\'nin kendi uygulamaları ve ödeme başlattığı ödeme sistemi (FAST vb.)  bazı UTF-8 karakterlerini kabul etmeyebilir. HHS, UTF-8 kodlaması içeren bir mesajı işleyemez ve reddederse, HTTP 400 (Hatalı İstek) durum kodu ile yanıt vermelidir. \n 3.7.\tVeri Formatı \n \n Açık bankacılık kapsamındaki zaman damgası, ISO 8601 standartına uygun olarak yerel saat bilgisini ve timezone bilgisini de içerecek şekilde " yyyy-MM-dd’T’HH:mm:ssXXX " formattaki haliyle hazırlanmalıdır. \n \n Örnek:  "timestamp": "2021-05-30T20:34:15+03:00" \nyyyy : 4 hane yıl \nMM : Başa ‘0’ eklenmiş, toplam 2 hane ay \ndd    : Başa ‘0’ eklenmiş, toplam 2 hane gün \nHH    : Başa ‘0’ eklenmiş, toplam 2 hane saat (0-23 arası değer alabilir.) \nmm : Başa ‘0’ eklenmiş, toplam 2 hane dakika \nss    : Başa ‘0’ eklenmiş, toplam 2 hane saniye \nXXX : ISO 8601 Time zone \n \n \n JWT veri paketlerinde kullanılan zaman damgaları, 1 Ocak 1970 Saat 00:00:00 (UTC) anından itibaren geçen saniye sayısı değerini (Unix Time) kullanmalıdır. \n \n \n Bir HHS, tarihi yanlış biçimlendirilmiş bir istek aldığında, 400 (Hatalı İstek) durum kodu ve ilgili hata kodu ile yanıt vermelidir. \n \n \n ISO 4217 Standartında para birimleri ve kaç basamak ondalık değer içerebilecekleri belirlenmiştir. \n https://www.iso.org/iso-4217-currency-codes.html   adresinden ücretsiz olarak listeye erişilebilir.  \nAPI Standartlarında da para birimleri  ISO 4217’de tanımlanmış olan 3 harfli kodlarla iletilir.   Tüm tutar alanları ISO 4217\'de tanımlanmış para birimlerinin ondalık basamak değerleri de göz önünde bulundurularak iletilmelidir. Tutar alanları artı ya da eksi değer alabileceği için API deseninde tanımlanmış regular expressionlar dikkate alınmalıdır. \nÖrneğin; Bakiye API\'sindeki "Kredili Mevduat Hesabı Bakiyesi" alanı "-100.25" ve "Para Birimi" alanı "TRY" olarak iletildiğinde 25 değerinin kuruş olduğu anlaşılmalıdır. \nÖdeme Emri Rızası API\'sinde yer alan "İşlem Tutarı" alanı "104.75" TRY olarak iletildiğinde "75" değerinin kuruş olduğu anlaşılmalıdır. \n"12000" Japon Yeni için, ISO 4217’de JPY para biriminin ondalık kısmı olmadığından "İşlem Tutarı" alanında "12000" ve "Para Birimi" alanında "JPY" değeri  iletilmelidir. \n \n \n Altın para birimi özelinde ISO 4217’ye uygun olarak "XAU" cinsinde ve 2 basamak ondalık rakam içerecek şekilde iletilmelidir. Örneğin içerisinde "13,50 gr" altın olan hesap için bakiye "13.50", para birimi "XAU" olarak gönderilmelidir. \n \n \n Diğer madenlerde ondalık basamak ISO 4217 standartında tanımlandığı gibi olmalıdır. \n \n \n Sıralı veri tipleri büyük küçük harfe duyarlı olmalıdır. \n 3.8.\tİstemci Sertifika Yönetimi \n ÖHVPS kapsamında YÖS ve HHS’lerin güvenli bir şekilde tanımlanması amacıyla elektronik sertifikalar kullanılır. \n ÖHVPS kapsamında tarafların güvenli bir şekilde tanımlaması, uçtan uca güvenli iletişim, mesaj şifreleme ve mesaj imzalama işlevleri 15/1/2004 tarihli ve 5070 sayılı Elektronik İmza Kanunu’nda açıklanan elektronik sertifikalar kullanılarak sağlanır. Elektronik sertifikada Türkiye Cumhuriyet Merkez Bankası tarafından verilen kuruluş kodu ve kuruluşun türüne dair bilgiler bulunur. \n BKM API Geçidi üzerinden yapılan erişimlerde YÖS ve HHS’lere önceden dağıtılmış olan istemci sertifikaları kullanılarak tarafların (sunucu) kimlikler
16inin doğrulanması sağlanacaktır. İstemci sertifikaları hem test hem de üretim ortamında kullanılacaktır. Sertifikaların işlevselliği ve geçerliliği sertifikasyon sürecinde de sınanacaktır. Söz konusu sertifikaların dağıtım prosedürleri ve kullanımlara yönelik açıklamalar EK-3’te yer verilmiştir. \n 3.9.\tYetkilendirme Türleri \n BKM API Geçidi üzerinden yapılan çağrılarda iki temel yetkilendirme türü kullanılır: \n 1.\tİstemci Kimlik Bilgileri:  Müşteri onayının gerekmediği, sadece YÖS’ün tanımlanıp doğrulandığı API çağrılarında kullanılır. YÖS’ün yetkilendirilmiş olduğu ve faaliyet izninin yaptığı hizmet çağrısına uygun olduğu kontrol edilir.  Bu amaçla, YÖS’lere clientId ve clientSecret tahsis edilecektir. YÖS’ler ilgili clientId ve clientSecret ile sadece yetkilendirilmiş oldukları servislere erişebileceklerdir. YÖS’ler kendilerine BKM tarafından sunulacak API’yi, kendi clientID ve clientSecret değerleri ile sorgulayarak “İstemci Kimlik Bilgileri” belirtecini (access token) elde edeceklerdir.\nHHS’ler de BKM API geçidi üzerindeki YÖS API’sini sorgulama maksadı ile BKM API Geçidine geldiklerinde, kendilerine atanmış olan clientID ve clientSecret bilgileri ile yetki kontrolleri yapılır.\nHHS’ler kendilerinden alınacak username ve password değerleri kullanılarak oluşturulacak basic authentication metodu ile servislerini sunacaklardır. \n 2.\tYetkilendirme Kodu:  YÖS’ün doğrulanmasının yanısıra müşterinin GKD ile doğrulanması gereken API çağrılarında kullanılır. Müşteri doğrulanarak yetkilendirme kodu oluşturulması HHS’nin yetkilendirme arayüzüne yönlendirilir. GKD’nin başarıyla tamamlanması sonrasında yetkilendirme kodu YÖS’e dönülür. YÖS daha sonra HHS’nin  erişim belirteci  (access token) erişim adresini (EK-3: POST /erisim-belirteci) çağırmak suretiyle yetkilendirme kodunu bir erişim belirteci (access token) ile değiştirerek ilgili kaynakları kullanabilir. \n Ödeme emri başlatma ve hesap bilgisi hizmetlerinde hangi yetkilendirme türlerinin kullanılacağı bilgisi, ilgili başlıklardaki erişim adresleri (endpoints) tablolarında yer almaktadır. \n erisim-belirteci  erisim noktasından elde edilen  erisimBelirteci  ilişkilendirildiği nesne veya işlem için gönderilen POST isteği başlığında  x-access-token  alanında iletilir.\nBelirli bir süre için tanımlanan erişim belirteci (access token) değerinin yenileme belirteci (refresh token) ile yenilenmesi gerekir. \n Erişim adreslerinde kullanılan yetkilendirme türü ilgili erişim adresi tablolarında belirtilmiştir. \n 3.10. İstek/Cevap Mesajlarında Kullanılan Nesne Yapıları \n İstek ve Cevap mesajlarında kullanılacak olan nesneler tüm elemanlarını kapsayacak şekilde Ek-1 de listelenmiştir. Tüm listelenen elemanlar açısından (Uç nokta mesaj yapılarının belirtildiği tablolarda belirtildiği üzere) alanın Zorunlu (z) veya İsteğe Bağlı (İ) olma durumlarına göre bazı alanlar gönderilebilir veya gönderilmeyebilir. \n 3.11. Sayfalandırma ve Filtreleme \n Sayfalandırma \n Çağrıya dönülen kaynak nesnesi içerisindeki kayıtlar bir sayfalandırma yapısı ile çağrılacak şekilde istek oluşturulur. \n Oluşturulacak isteğin içerisinde parametreler ile filtreleme, sayfa başına gösterilecek kayıt sayısı ve hangi sayfanın önyüzde gösterileceği bilgileri erişim noktasına iletilir ve ilgili kayıtlar cevap olarak alınır. \n Filtreleme \n HHS, birden çok kayıt dönülmesi gereken GET çağrılarında sınırlı filtreleme desteği sağlamalıdır. Filtre parametreleri her zaman kaynak nesnesinin belirli alanlarına özgüdür ve nesne için tanımlanan kurallara uymalıdır. \n 3.12. Mesaj İmzalama \n Elektronik imzalar, ÖHVPS API’de gerçekleştirilen işlemlerin ve taşınan verilerin bütünlük ve inkâr edilemezliğini destekler. İmzaların kaynak bazında hangi istek ve yanıtlara uygulandığı belirlidir. \n API yalnızca TLS\'ye dayanırsa, dijital kayıtları ve inkâr edilemezlik kanıtlarını tutmak zor olur. Bu nedenle, TLS\'ye dayanmayan bir inkâr edilemezlik çözümü olarak API isteğinin HTTP başlığında bir JWS kullanılarak sağlanabilir. \n HTTP isteğinin gövdesinin hash fonksiyonu (SHA256) ile özeti alınacaktır. Elde edilen özet, asimetrik anahtarları de
16stekleyen bir algoritma kullanılarak imzalanacak ve JWS elde edilecektir. \n Bir istek, YÖS\'nin özel anahtarı ile imzalanacak ve bu isteğe karşılık gelen yanıt, HHS\'nin özel anahtarı tarafından imzalanacaktır. \n Tüm API istekleri ve yanıtları imzalanmaz. Mesaj imzalamanın zorunlu olup olmadığı, desteklenip desteklenmediği her API özelinde belirlenir. \n Anahtar Deposu \n HHS\'ler ve YÖS\'ler tarafından güvenilen bir Güven Otoritesi (Trust Anchor), taraflar için bir genel anahtar deposu sağlamaktan sorumludur. \n Güven Otoritesi, taraflardan herhangi birisinin oluşturduğu bir anahtar çiftinin açık bölümünü saklayan merkezi bir dizin (BKM tarafından tutulan merkezi kayıt sistemi vb.) olacaktır. \n Mesajları doğrulamak için tarafların genel anahtarlarının paylaşılması için BKM bir servis sağlayacaktır. HHS API olarak adlandırılımış olan bu servis ile HHS ve YÖS listelerine ulaşılabildiği gibi doğrulama işlemi için ihtiyaç duyulacak olan genel anahtarlara da bu servis üzerinden erişilebilinecektir. \n İlgili Mesaj şifreleme için genel akış, Ek-5 bölümünde detaylarıyla paylaşılmaktadır. \n 3.13. Durum Kodu \n API’ler, iki farklı amaca hizmet eden iki durum kodu kullanır: \n \n HTTP Durum Kodu, API çağrısının (kaynaktaki HTTP işlemi) sonucunu yansıtır. \n Bazı kaynak payload’larındaki Durum alanı, kaynakların durumunu yansıtır. \n 3.14. Gereksinimlerinin Sınıflandırılması \n Erişim adreslerinin ve alanların kullanımı Zorunlu(Z), İsteğe Bağlı(İ) veya Koşullu(K) olabilir. Kullanımlara ilişkin durumlar ve kullanımın (K) koşullu olduğu duruma ilişkin açıklamalar ilgili tablolarda belirtilmiştir. \n ÖHVPS API\'lerinin (HBH,ÖBH,GKD) istek ve yanıtta kullanılacak başlık isimleri, ilgili RFC dokümanlarında ve aşağıdaki tabloda yer aldığı şekilde kullanılacaktır.  Uygulamaya özelleşmiş başlıklar "X-" ile başlayacaktır. Başlık isimlerinde yer alacak kısaltmalar (örn. PSU, ASPSP gibi) tamamı büyük harfle yazılacak şekilde tanımlanacaktır. Başlık isimleri büyük – küçük harfe duyarlı olmamalıdır. Örneğin x-request-id ya da X-Request-ID olarak gönderilmiş olan bir istek başlığı değişkeni, sunucu tarafında hata vermeyecek şekilde işlenebilmelidir. \n 3.15. İstek Başlığı \n \n "Başlık isimleri" yorumlanırken küçük büyük harfe duyarlı olmamalıdır. Örneğin "x-ReQuEsT-Id" geçerli bir başlık ismidir. \n "Başlık değerleri" yorumlanırken ise küçük büyük harf duyarlılığı olmalıdır. Örneğin "xyz123" ile "XYZ123" değerleri farklıdır. \n Başlık değerlerinde ISO-8859-1 standartında yer alan karakter kümesi kullanılmalıdır. Örneğin "PSU-Device-Data" değerinde "İOS12" yazmak, büyük "İ" harfinin ISO-8859-1 içerisinde yer almamasından dolayı, hataya yol açacaktır. \n \n Tablo 2: İstek Başlığında Yer Alan Veriler \n \n \n \n Başlık İsimleri \n Format \n Notlar \n POST \n GET \n DELETE \n \n \n \n \n X-Request-ID \n AN1..36 \n İsteği başlatan YÖS tarafından belirlenen çağrıya özgü talep kimliği. İstek numarası.   Örnek: Ödeme emri başlatma iş akışının her adımda farklı “x-request-id” değeri kullanılır.   Çağrıların aynı yanıtı dönmesinin beklendiği durumlarda (idempotent işlemlerde) aynı değer ile çağrı yapılır. \n Z \n Z \n Z \n \n \n X-Group-ID \n AN1..36 \n İsteği başlatan YÖS tarafından belirlenen işlem akışına özgü talep kimliği. İşlem grup numarası.  Aynı rıza no’ya ait tüm isteklerde aynı x-group-id bilgisi değeri gönderilmelidir. Örnek: Ödeme emri başlatma/hesap bilgisi iş akışının her adımında aynı “x-group-id” değeri kullanılır. \n Z \n Z \n Z \n \n \n Content-Type \n AN1..20 \n Standart HTTP Başlığı; Talepte sağlanan payload’ın biçimini temsil eder. Bu değerin application/json olarak gönderilmesi gerekmektedir.  (Başka bir değere ayarlanırsa, HHS, 415 Desteklenmeyen Ortam Türü (Unsupported Media Type) ile yanıt vermelidir) \n Z \n - \n 
16- \n \n \n X-ASPSP-Code \n AN4 \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n Z \n Z \n Z \n \n \n X-TPP-Code \n AN4 \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur \n Z \n Z \n Z \n \n \n PSU-Auth-Date \n ISODateTime \n ÖHK’nın YÖS üzerinde en son oturum açtığı saat. [RFC7231] Örneğin:  auth-date: Tue, 11 Sep 2012 19:43:31 GMT \n İ \n İ \n İ \n \n \n PSU-IP-Adress \n AN7..15 \n ÖHK YÖS üzerinde oturum açmışsa, işlemi başlattığı cihazın IP adresi. \n İ \n İ \n İ \n \n \n PSU-IP-Port \n AN1..5 \n ÖHK YÖS üzerinde oturum açmışsa, işlemi başlattığı cihazın Port adresi. \n İ \n İ \n İ \n \n \n PSU-GEO-Location \n AN1..36 \n ÖHK’nın işlemi başlattığı cihazın konum bilgisi. RFC2426 standartına uygun olarak paylaşılmalıdır. Örneğin  GEO:"<enlem >, <boylam>GEO:52.506931,13.144558 \n İ \n İ \n İ \n \n \n PSU-User-Agent \n AN 1.. 255 \n ÖHK’nın işlemi başlattığı cihazın sağladığı user-agent bilgisi. (Tarayıcı, versiyon, işletim sistemi bilgileri) \n İ \n İ \n İ \n \n \n PSU-Timestamp \n ISODateTime \n ÖHK’nın işlemi başlattığı cihazın tarih saat içeren zaman bilgisi. \n İ \n İ \n İ \n \n \n PSU-Device-ID \n AN5..40 \n ÖHK işlemi mobil uygulama aracılığıyla başlattıysa, kullanılan mobil uygulama ilk yüklendiğinde oluşturulan tekil cihaz veya uygulama belirteci. ÖHK cihazının UUID değeri kullanılabilir. \n İ \n İ \n İ \n \n \n PSU-Device-Data \n AN1..1024 \n ÖHK’nın işlemi başlattığı mobil cihaza ait veriler.  Örnek alanlar:   - Platform - (Android, iOS, Windows 10 Mobile)  - Device Model   - OS Name   - OS Version - Locale - Time zone \n İ \n İ \n İ \n \n \n PSU-Fraud-Check \n AN1..4096 \n YÖS\'lerin çeşitli güvenlik kontrollerini gerçekleştirerek, önemli görülen aşağıdaki bilgileri HHS\'ler ile paylaşmaları gerekmektedir. Bu bilgiler ışığında müşterinin profili oluşturulmasına katkı sağlanacaktır.   ÖHK’lı işlemlerde (PSU-Initiated = E gönderildiği durumlarda) gönderilmesi zorunludur.  Sistemsel yapılan API çağrımlarımda ve HHS-YÖS API çağrımlarında gönderilmesine gerek bulunmamaktadır.  Paylaşılacak bilgiler şu şekildedir.   FirstLoginFlag  : ÖHK\'nın, müşterilik ömründe ilgili YÖS sistemine (mobil ya da web uygulaması) ilk login olma süresini ifade eden değer. ÖHK\'nın ilk yaptığı HBH ya da ÖBH işlemi değil, YÖS sisteminde kendini aktifleştirme tarih aralığı bilgisidir.   YÖS, kullanıcının ilk login bilgisini tutarak sonraki işlemlerinde bu bilgiyi belirlenen format ile HHS\'ye aktaracaktır. Örneğin; YÖS\'ün 7 aydır müşterisi olan bir kullanıcı için bu alan "5" olarak YÖS tarafından beslenecektir. Burada amaç; ilgili kullanıcının YÖS\'ün eski bir müşterisi mi, yoksa yeni bir müşterisi mi olup olmadığını anlamaktır.   Gönderilmesi Zorunlu alandır. TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.   DeviceFirstLoginFlag  : ÖHK\'nın, müşterilik ömründe işlem anında kullandığı cihazla YÖS uygulamasına (web ya da uygulama tabanlı) ilk login olma süresini ifade eden değer. ÖHK cihaz değişikliği yaparsa FirstLoginFlag değeri sabit kalmalı  ancak DeviceFirstLoginFlag değeri değişmelidir.  FirstloginFlag değeri ile ÖHK’nın YÖS uygulamasına ilk login tarih bilgisi ile ilgili bilgi verilirken, DeviceFirstLoginFlag ile de ÖHK’nın YÖS uygulamasına farklı bir cihaz aracılığı ile ilk login tarihinin bilgisi verilmektedir.  Örneğin; ÖHK 7 aydır YÖS\'ün müşterisi olabilir, böyle bir durumda FirstLoginFlag değeri "5" olacaktır. Ancak son işlemini daha önce hiç kullanmadığı bir cihazdan yapmıştır. Yeni cihazdaki login süre aralığı 0-2 saat aralığında  olduğu için DeviceFirstLoginFlag değeri "1" olacaktır.FirstLoginFlag değeri yine "5" olarak kalmaya devam edecektir.Bu bilgi ile YÖS, ilgili HHS\'ye ilk kez geliyor olsa bile;
16 HHS, müşterinin YÖS\'ü uzun süredir kullandığını ama yeni bir cihazla işlemlerine devam ettiğini anlayabilecektir. Bir ÖHK, farklı cihazlar veya platformlar üzerinden YÖS ile etkileşime girebilir.  Kullanıcı ve YÖS arasında bir oturum başlatılmış ise YÖS’ün tutarlı ve kalıcı bir kimlik (device id) ataması beklenmektedir.  Device ID: Web sitesi veya mobil uygulama kullanıcıları için üretilen, tarayıcı ya da mobil uygulama tabanlı benzersiz (tekil) tanımlayıcı değer. Mobil uygulamalar için ÖHK’nın ilk defa ilgili cihaza aktivasyon yaptığı tarih bilgisi alınmalıdır.   Device ID bilgileri YÖS uygulama ortamı (web ya da uygulama tabanlı) ve ÖHK cihazı bazında tutulmalıdır. YÖS’ten başlatılan işlem hangi uygulama ortamına ait ise ilgili ortamala ilişkili tutulan Device ID’nin ilk login tarihine bakılarak güncel flag değeri hesaplanmalıdır.  Gönderilmesi Zorunlu alandır. TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.   LastPasswordChangeFlag  : ÖHK\'nın, YÖS (cihaz bağımsız)  uygulamasına login olduğu şifre bilgisinin en son değiştirildiği süreyi ifade eden değer. Müşterinin en son ne zaman şifre değişikliği yaptığını anlamak için kullanılan alandır. Yeni müşteri ve hiç şifre değişikliği yapmamış olabilir, böyle bir durumda ilgili alan "0" olarak beslenecektir.   Gönderilmesi Zorunlu alandır. TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.   BlacklistFlag  : ÖHK\'nın herhangi bir sebeple YÖS\'ün sakıncalı müşteriler listesinde bulunup bulunmadığını ifade eden değer.   Burada amaç herhangi bir sebeple YÖS tarafında yasaklı olarak kayıtlı olan ÖHK bilgisinin, dolandırıcılığı önceden tespit etmek amaçlı HHS\'ye aktarılması olarak açıklanabilir. Örneğin, YÖS tarafından tespit edilen dolandırıcı kullancılara ait device id bilgisi, bu kara listede tutulur daha sonra aynı cihazla başka bir ÖHK işlem yapacak olsa bile bu alanda ilgili bilgi "1" değeri ile HHS\'ye aktarılır. HHS\'de olmayıp YÖS tarafında olan bu örnekteki sakıncalı müşteri/cihaz bilgisinin, dolaylı yoldan HHS\'ye aktarılması amaçlanmaktadır.  Gönderilmesi Opsiyonel alandır. TR.OHVPS.DataCode.VarYok sıralı veri tipinin alabileceği değerleri alabilir.   MalwareFlag  : YÖS uygulamasının çalıştığı cihaz üzerindeki son 21 güne ait zararlı yazılım tespit bilgisini ifade eden değer. Örneğin ÖHK\'nın cihazında zararlı yazılım olduğu ayın 1\'inde YÖS tarafından tespit edildi. Zararlı yazılım tespitinden 2 saat sonra YÖS üzerinden login olan ÖHK\'nın durumu,  "1" olarak iletilecektir. Bir gün sonra ayın 2\'sinde, yeni bir zararlı yazılım tespiti yok ancak mevcut zararlı yazılım aktifse alan "2" değeri ile iletilecektir. Süreler artarak 21 güne kadar TR.OHVPS.DataCode.ZmnAralik değerlerine göre iletilecektir.Son 21 gün içinde yeni bir tespit yoksa ayın 22\'sinden itibaren ilgili alan  "0" değeri ile beslenecektir. Not: Zararlı yazılım, bankacılık işlemlerinin yapıldığı uygulamalara girişte kullanılan bilgilerin (şifre, kullanıcı kodu gibi) ele geçirilmesi amacıyla kullanılan bir uygulama ya da kod parçacığı olabilir. Bu amaçlar dışında kullanılan (bankacılığa yönelik bir zararlı yazılım olmayan) yazılım tespitleri iletilmemelidir. YÖS kanallarına her bir loginde, kullanılan cihazda bir zararlı yazılım var mı yok mu kontrolü yapılmalıdır.   Gönderilmesi Opsiyonel alandır. TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.   AnomallyFlag  : Diğer şüpheli durumların varlığını ifade eden değer. Gönderilmesi Opsiyonel alandır. TR.OHVPS.DataCode.VarYok sıralı veri tipinin alabileceği değerleri alabilir.   UnsafeAccountFlag : HHS tarafından aktarılan bilgi ile son 21 gün içinde ÖHK\'nın dolandırıcılık mağduru olması durumunu ifade eden değer. Örneğin; HHS 1, ayın 1\'inde süphe veya sahtekarlık nedeniyle bir ödeme işlemine izin vermediği durumda, bu bilgiyi rıza iptal detay kodu ile YÖS\'e aktarmış olur. Bu bilgiyi tutan YÖS, ilgili müşterinin 15 dakika sonra HHS 2\'de yaptığı işlem için ilgili alanı "1" değeri ile besler. Böylece HHS 2, ÖHK\'nın farklı bir HHS\'de son 15 dakika içinde şüpheli veya sahte bir işlemi olduğunu anlayabilecektir. Ayın 22\'sinde yeni bir tespit/kayıt yoksa bu alan YÖS tarafından "0" olarak beslenecektir. Gönderilmesi Opsiyonel alandır.TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.     Flaglar JWT claims içine key value şeklinde eklenerek gönderilecektir. EK-5: Mesaj İmzalama Akışı\'nda belirtilen yöntemle imzalanarak oluşturulan JWT PSU-Fraud-Check alanına konularak YÖS\'ler tarafından HHS\'ye iletilmelidir. \n K \n K \n Z \n \n \n PSU-Initiated \n AN1 \n İşlemin ÖHK tarafından başlatılması durumunda E , sistem tarafından başlatıldığı durumda H değerini alması beklenir.   İşlemler servisinde yapılacak sistemsel sorgulardaki işlem limitlerini kontrol amacıyla kullanılır. \n Z \n Z \n Z \n \n \n PSU-Session-ID \n AN1..100 \n İsteği başlatan YÖS tarafından belirlenen oturuma özgü talep kimliği. ÖHK\'nın YÖS uygulaması üzerinden kimlik doğrulama mekanizması ile bilgi sistemlerine dâhil olmalarından işlemlerini tamamlayıp sistemden ayrılmalarına kadar geçecek tüm süre
16ci kapsayacak şekilde aynı değeri almalıdır. Tek seferlik ödeme gibi ÖHK’nın tanınmadan başlatıldığı işlemlerde bu değer boş olarak iletilmelidir. \n İ \n İ \n İ \n \n \n Authorization \n AN1..4096 \n YÖS ile BKM API Gateway arasındaki otorizasyon için kullanılan token bilgisidir.  Yekilendirme türlerinden İstemci Kimlik Bilgileri’ni adresler. \n Z \n Z \n Z \n \n \n X-Access-Token \n AN1..4096 \n ÖHK’nın GKD sürecinde doğrulanması sonrasında kullanılan erişim simgesi. Yetkilendirme türlerinden Yetkilendirme Kodu (GKD)’nu adresler. \n İ \n İ \n İ \n \n \n X-JWS-Signature \n AN1..4096 \n Payload gövdesinin ayrılmış bir JWS imzasını içeren üstbilgi.  Bu başlığın ne zaman belirtilmesi gerektiği hususu ilgili endpoint için belirtilmiştir. \n K (Kullanılan API ve methoda göre kullanılır.) \n K \n K \n 3.16. Yanıt Başlığı \n \n "Başlık isimleri" yorumlanırken küçük büyük harfe duyarlı olmamalıdır. Örneğin "x-ReQuEsT-Id" geçerli bir başlık ismidir. \n "Başlık değerleri" yorumlanırken ise küçük büyük harf duyarlılığı olmalıdır. Örneğin "xyz123" ile "XYZ123" değerleri farklıdır. \n Başlık değerlerinde ISO-8859-1 standartında yer alan karakter kümesi kullanılmalıdır. Örneğin "Link" değerinde "İOS12" yazmak, büyük "İ" harfinin ISO-8859-1 içerisinde yer almamasından dolayı, hataya yol açacaktır. \n \n Tablo 3: Yanıt Başlığında Yer Alan Veriler \n \n \n \n Başlık İsimleri \n Format \n Notlar \n Kullanım Durumu \n \n \n \n \n X-Request-ID \n AN1..36 \n İsteği başlatan YÖS tarafından belirlenen çağrıya özgü talep kimliği. İstek numarası    İlgili istek başlığındaki bilgi geri dönülür. \n Z \n \n \n X-Group-ID \n AN1..36 \n İsteği başlatan YÖS tarafından belirlenen işlem akışına özgü talep kimliği. İşlem grup numarası. İlgili istek başlığındaki bu değer geri dönülür. \n Z \n \n \n X-ASPSP-Code \n AN4 \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n Z \n \n \n X-TPP-Code \n AN4 \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur \n Z \n \n \n Content-Type \n AN1..20 \n Standart HTTP Başlığı; Talepte sağlanan payload’ın biçimini temsil eder:  application/json \n Z \n \n \n X-JWS-Signature \n AN1..4096 \n JWS imzasını içeren üstbilgi. Bu başlığın hangi yanıtlar için kullanılması gerektiği ilgili endpoint için belirtilmiştir.  Hata durumlarında, yanıt gövdesi değeri dönülüyor ise imzalanmalı ve imza bilgisi x-jws-signature alanında iletilmelidir.  Ancak uygulama katmanı tarafından yakalanamayan dolayısı ile imzalanamayan hata durumlarında x-jws-signature alanı HHS\'ler tarafından boş gönderilebilir. \n K \n \n \n X-RateLimit-Limit \n N 1..18 \n İstek kısıtı uygulanan servislerde en fazla kaç adet istek yapılabileceğini gösterir. Kısıt uygulanan servislerde bu başlığın dönmesi zorunludur. \n K \n \n \n X-RateLimit-Remaining \n N 1..18 \n İstek kısıtı uygulanan servislerde k
16aç adet istek hakkı kaldığını gösterir. Kısıt uygulanan servislerde bu başlığın dönmesi zorunludur. \n K \n \n \n X-RateLimit-Reset \n AN 1..255 \n İstek kısıtı uygulanan servislerde çağrım hakkı bittikten sonra yeniden denemeden önce beklemesi gereken süreyi (saniye cinsinden) gösterir. HTTP 429 durum kodu (Too Many Requests) ile dönülen yanıtların başlığında dönülmesi zorunludur.  YÖS olarak yaptığınız sistemsel sorgularda; HTTP 429 durum kodu (Too Many Requests) ile dönülen yanıt aldığınızda tekrar sorgu yapmadan önce “X-RateLimit-Reset” yanıt başlığını kontrol ederek, bu başlıktaki süre kadar bekledikten sonra yeniden sorgulama yapılması gerekmektedir. \n K \n \n \n x-total-count \n N 1..18 \n Hesaplar, İşlemler ve Bakiye servislerinde sayfalama kullanıldığı durumda, sorgu sonucu dönecek toplam kayıt sayısı bilgisi, bu alanda HHS isteğine bağlı olarak gönderilebilir. \n İ \n \n \n Link \n 1..4096 \n “Link” alanının çoklu sayfa yapısı olması durumunda gönderilmesi zorunludur.  Sayfalama yapısı kullanıldığında gelen yanıtta birden fazla sayfa var ise; önceki, sonraki, ilk, son sayfalara gitmek için gerekli referanslar link headerında aşağıdaki örnekteki gibi doldurulabilir.  x-total-count alanının gönderimi isteğe bağlı olduğu için; Link içerisindeki son sayfa bilgisi  (last) isteğe bağlı hale getirilmiştir. “Önceki”( prev) ve “Sonraki” (next) adımlarının uygun olan her durumda yer alması zorunludur. İlk sayfada “Önceki” seçeneği olmamalı, son sayfada ise “Sonraki” seçeneği olmamalıdır.    </ohvps/hbh/s1.0/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=6&syfKytSayi=100>; rel="next",  </ohvps/hbh/s1.0/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=4&syfKytSayi=100>; rel="prev",  </ohvps/hbh/s1.0/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=14&syfKytSayi=100>; rel="last",  </ohvps/hbh/s1.0/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=0&syfKytSayi=100>; rel="first" \n K \n 3.17. Idempotency Kuralları \n YÖS’ün aşağıdaki durumlarda aynı istek numarası (x-request-id) ve aynı veri gövdesiyle çağrıyı tekrarlaması; HHS’nin de bu durumlarda aynı yanıtı dönmesi gereklidir. \n \n HHS’nin yanıtı kesinti/arıza nedeniyle YÖS’e ulaşmaz ve zaman aşımı söz konusu olması, \n ÖHK, YÖS uygulaması üzerinden çift tıklama ile mükerrer defa HHS API’lerini çağırılması,\n(API kontrollerinden önce YÖS uygulamasının, çift tıklama kontrolü yapması önerilmektedir.) \n YÖS, yanıt almasına rağmen işleyemeden kaybedilmesi, \n \n durumlarında HHS aşağıdaki kuralları işletir: \n \n HHS gelen istek numarasını ve veri gövdesini birleştirerek checksum değeri üretir. \nchesksum değeri x-request-id|request.body ‘nin hash algoritmalarından (CRC32,MD5 vb)  geçirilerek üretilebilir. \n HHS bu checksum değeri ile YÖS’e dönmüş olduğu yanıtı 5 dk boyunca saklar.  Saklama yöntemi olarak veri tabanı veya önbellek araçları kullanılabilir. \n YÖS aynı istek numarası ve aynı veri gövdesi ile yeni bir çağrı yaptığında, aynı checksum değeri üretileceği için 5dk boyunca bu değere karşılık gelen yanıtı döner. \n 5 dk sonrasında istek numarası veya veri gövdesi değişmemiş olsa dahi bu HHS tarafından yeni istek olarak kabul edilir. \n \n Aşağıdaki Public Post işlemleri için bu kural setinin işletilmesi gerekmektedir: \n 1- Ödeme emri rızası oluşturma \n2- Erişim belirteci oluşturma \n3- Ödeme emri \n4- Hesap bilgisi rızası oluşturma \n 3.18. HTTP Durum Kodları \n RFC 2616\'da belirlenmiş olan durum ko
16dları (status code) gönderilen isteğin durumunu YÖS’a standart bir şekilde ifade eder. Eğer bir hata varsa hatayı, gönderilen istek başarılı bir şekilde işlem gördüyse ona ilişkin durumu aktarır. Durum kodları genel olarak 5 kategoridedir. \n \n 1xx Bilgi \n 2xx Başarılı \n 3xx Yönlendirme \n 4xx İstemci Hatası \n 5xx Sunucu Hatası \n \n errorCode Alanında Kullanılabilecek Sıralı Hata Tipleri : \n \n TR.OHVPS.Resource \n \n ⇨\tInvalidFormat \n ⇨\tConsentMismatch \n ⇨\tNotFound \n ⇨\tInvalidSignature \n ⇨\tMissingSignature \n ⇨\tMethodNotAllowed \n ⇨\tNotAcceptable \n ⇨\tUnsupportedMediaType \n ⇨\tConsentRevoked \n \n \n \n TR.OHVPS.Business \n \n ⇨\tInvalidContent \n ⇨\tInvalidAccount \n \n \n \n TR.OHVPS.Connection \n \n ⇨\tInvalidCertificate \n ⇨\tExceededRate \n ⇨\tInvalidTPP \n ⇨\tInvalidASPSP \n ⇨\tInvalidToken \n ⇨\tInvalidTPPRole \n \n \n \n TR.OHVPS.Server \n \n ⇨\tInternalError \n ⇨\tServiceUnavailable \n \n \n TR.OHVPS.Resource.InvalidFormat hatası alındığı durumda; fieldErrors nesnesi içerisinde verilecek hata kodları : \n \n TR.OHVPS.Field \n \n ⇨\tMissing \n ⇨\tInvalid \n \n \n Veri Tipi Örneği: \n { \n     "path" :   "/ohvps/obh/s1.0/odeme-emri-rizasi" , \n     "id" :   "d8bd4e5f-f094-48a6-aee1-3a800e2709d9" , \n     "timestamp" :   "2022-12-22T10:33:15+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "Validation error" , \n     "moreInformationTr" :   "Şema kontrolleri başarısız" , \n     "fieldErrors" :   [ \n         { \n             "objectName" :   "odemeEmriRizasiIstegi" , \n             "field" :   "odmBsltm.islTtr.prBrm" , \n             "messageTr" :   "boş değer olamaz" , \n             "message" :   "must not be null" , \n             "code" :   "TR.OHVPS.Field.Missing" \n         } , \n         { \n             "objectName" :   "odemeEmriRizasiIstegi" , \n             "field" :   "odmBsltm.kmlk.kmlkVrs" , \n             "messageTr" :   "boyut \'1\' ile \'30\' arasında olmalı" , \n             "message" :   "size must be between 1 and 30" , \n             "code" :   "TR.OHVPS.Field.Invalid" \n         } \n     ] , \n     "errorCode" :   "TR.OHVPS.Resource.InvalidFormat" \n }  \n \n Tablo 4: HTTP Durum Kodları \n \n \n \n HTTP Durum \n İstek Sonucu ve Açıklamalar \n POST \n GET \n DELETE \n \n \n \n \n 200 OK \n İstek Başarıyla Tamamlandı. Kaynak güncellemek için yapılan (örneğin, GET) ve başarıyla tamamlanan isteklerinde kullanılır. \n H \n E \n H \n \n \n 201 Created \n İstek Başarılı Oldu. Kaynak yaratma isteği (örneğin, POST /ödeme-emri-rizasi) başarıyla sonuçlandı. \n E \n H \n H \n \n \n 204 No Content \n Silme işlemi başarıyla tamamlandı. Kaynak silme isteği (örneğin,  DELETE /hesap-rizasi/{RizaNo} ) başarıyla sonuçlandı. \n H \n H \n E \n \n \n 400 Bad Request \n İstekte bozuk, eksik veya uyumlu olmayan JSON gövdesi, URL parametreleri veya başlık alanları var.  İstekle başlatılan işlem yapısal bozukluk, eksik veya tutarsız veri veya HHS tarafındaki kontrollerin hatalı sonuçlanması nedeniyle hata ile sonuçlanır ve hataya ilişkin veriler hata nesnesi içerisinde dönülür. \n E \n E \n E \n \n \n 401 Unauthorized \n Yetkilendirme başlığı eksik, hatalı veya geçersiz olduğundan istek yetkilendirilmediğinde ve erişim reddedildiğinde http 401 kodu dönülmelidir. \n E \n E \n E \n \n \n 403 Forbidden \n Erişim belirtecinin veya rızanın kapsamı uyuşmuyor. YÖS bir hesaba/işlem kaynağına erişmeye çalışır ve YÖS, istenen kaynağa erişmek için geçerli izinlere sahip bir rızası yoktur.  Örneğin; hesap bilgisi rızası bakiye izni almamıştır ancak /bakiyeler adresinden istekte bulunmuştur. \n \n \n \n \n \n 404 Not Found \n **HHS geçerli bir API erişim adresini sağlamıyorsa, o URL\'ye gelen istekler için 404 (Bulunamadı) ile yanıt vermelidir.**YÖS, uygulama esaslarında tanımlanmayan bir 
16kaynak için bir URL\'ye erişmeye çalışırsa (örneğin, GET /yurtdisi-odeme), HHS, 404 (Bulunamadı) ile yanıt vermeyi seçebilir. \n E \n E \n E \n \n \n 405 Method Not Allowed \n YÖS, desteklenmeyen bir yöntemle kaynağa erişmeye çalıştı. \n E \n E \n E \n \n \n 406 Not Acceptable \n İstek, geçersiz bir karakter kümesi içeriyor. \n E \n E \n E \n \n \n 415 Unsupported Media Type \n İstek gövdesi hedef kaynakta bu yöntem tarafından desteklenmeyen bir biçimde oluşturulduğu için işlem reddedildi \n E \n H \n H \n \n \n 429 Too Many Requests \n Belirli bir süre içinde çok fazla talepte bulunulduğu için işlem reddedildi.  HHS’ler adil kullanım politikalarını aşan talepleri kısıtlayabilir. \n E \n E \n E \n \n \n 500 Internal Server Error \n API sunucu / servis katmanında sorun oluştu. İşlem başarısız.  5XX hata durumlarında yanıt gövde değeri olmadığı için mesaj imzalama yapılamaz ve x-jws-signature alanı boş olarak iletilir.  Bu durumda x-jws-signature kontrolü yapılmamalıdır. \n E \n E \n E \n \n \n 503 Service Unavailable \n Hizmet sürümü kullanımdan kaldırıldı.  Bir API\'nin kullanımdan kaldırıldığı ve artık bir HHS tarafından operasyonel olarak desteklenmediği durumlarda, URI yolu hala etkin olabilir ve API isteklerini kabul edebilir.  Bu durumda, YÖS\'ün API sürümünün çevrimdışı olduğunun farkında olması için 503 Hizmet Kullanılamıyor dönmesi önerilir. \n E \n E \n E \n \n \n \n Hata Örnekleri: \n 400 Bad Request \n TR.OHVPS.Business.InvalidContent  hatası HHS tarafından yapılacak iş kuralı kontrollerinin başarısız olduğu durumda verilmelidir. \n TR.OHVPS.Resource.InvalidFormat  hatası şema validasyonu, alan uzunluk ve varlık kontrollerinin başarısız olduğu durumda verilmelidir. \n \n { \n     "path" :   "/ohvps/obh/s1.0/odeme-emri-rizasi" , \n     "id" :   "7f115b9c-d7c2-4a2a-bc45-5a9891c79072" , \n     "timestamp" :   "2022-12-22T10:47:57+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "Validation error" , \n     "moreInformationTr" :   "Şema kontrolleri başarısız" , \n     "fieldErrors" :   [ \n         { \n             "objectName" :   "odemeEmriRizasiIstegi" , \n             "field" :   "odmBsltm.alc.unv" , \n             "messageTr" :   "boyut \'3\' ile \'140\' arasında olmalı" , \n             "message" :   "size must be between 3 and 140" , \n             "code" :   "TR.OHVPS.Field.Invalid" \n         } , \n         { \n             "objectName" :   "odemeEmriRizasiIstegi" , \n             "field" :   "odmBsltm.islTtr.ttr" , \n             "messageTr" :   "boş değer olamaz" , \n             "message" :   "must not be null" , \n             "code" :   "TR.OHVPS.Field.Missing" \n         } \n     ] , \n     "errorCode" :   "TR.OHVPS.Resource.InvalidFormat" \n }  \n\n \n Zorunlu header alanlarından biri ya da birkaçı eksik olarak gönderilirse aşağıdaki gibi bir hata dönüşü gerçekleşebilir. \n HHS uygulaması tarafından dönülebilecek hata örnekleri: \n \n { \n     "path" :   "/ohvps/obh/s1.0/odeme-emri-rizasi" , \n     "id" :   "2005515d-f0e6-4a07-a439-0ef3b0f56011" , \n     "timestamp" :   "2022-12-22T10:39:26+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "Validation error" , \n     "moreInformationTr" :   "Şema kontrolleri başarısız" , \n     "errorCode" :   "TR.OHVPS.Resource.InvalidFormat" , \n     "fieldErrors" :   [ \n         {          \n             "field" :   "X-Request-ID" , \n             "messageTr" :   "X-Request-ID değeri boş olamaz." , \n             "message" :   "X-Request-ID cannot be null." , \n             "code" :   "TR.OHVPS.Field.Invalid" \n         } \n     ] \n }  \n\n \n Business hata örneği - 1: \n { \n     "path" :   "/ohvps/obh/s1.0/odeme-emri-rizasi" , \n     "id" :   "677cfd9d-77c1-4ea3-8bdf-74a6e9887177" , \n     "timestamp" :   "2022-12-22T11:05:59+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "gonUnvan wrong" , \n     "moreInformationTr" :   "Gönderen Ünvan hatalı" , \n     "errorCode" :   "TR.OHVPS.Business.InvalidContent" \n }  \n \n Business hata örneği - 2: \n { \n     "path" :   "/ohvps/obh/s1.0/o
16deme-emri-rizasi" , \n     "id" :   "5df3b402-3aca-4305-a35b-5af0f3184b40" , \n     "timestamp" :   "2022-12-22T11:06:47+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "Sender account is disabled or not found." , \n     "moreInformationTr" :   "Gonderen hesap aktif değil veya bulunamadı." , \n     "errorCode" :   "TR.OHVPS.Business.InvalidAccount" \n }  \n \n BKM API Geçidi\'nde yapılan zorunlu header kontrollerinde aşağıdaki hatalar dönebilir: \n \n { \n     "timestamp" :   "2022-12-22T10:40:28+03:00" , \n     "path" :   "/ohvps/obh/s1.0/odeme-emri-rizasi" , \n     "id" :   "d4375748-6fc7-4f7e-94f3-6411cab1d59f" , \n     "moreInformationTr" :   "Geçersiz HHS kodu." , \n     "errorCode" :   "TR.OHVPS.Connection.InvalidASPSP" , \n     "moreInformation" :   "Invalid ASPSP Code" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" \n }  \n \n BKM API Geçidi tarafından dönülecek hata örneği: \n \n { \n     "timestamp" :   "2022-12-22T10:40:28+03:00" , \n     "path" :   "/ohvps/obh/s1.0/odeme-emri-rizasi" , \n     "id" :   "d4375748-6fc7-4f7e-94f3-6411cab1d59f" , \n     "moreInformationTr" :   "Geçersiz HHS kodu." , \n     "errorCode" :   "TR.OHVPS.Connection.InvalidTPP" , \n     "moreInformation" :   "Invalid TPP Code" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" \n }  \n \n BKM API Geçidi tarafından dönülecek hata örneği: \n \n { \n     "timestamp" :   "2022-12-22T11:14:05+03:00" , \n     "path" :   "/ohvps/hbh/s1.0/hesap-bilgisi-rizasi" , \n     "id" :   "ee1e3ea7-a5e5-468b-bb02-314148f84e6a" , \n     "moreInformationTr" :   "Geçersiz yös rolü. İlgili api çağrısı için yetkisi yok." , \n     "errorCode" :   "TR.OHVPS.Connection.InvalidTPPRole" , \n     "moreInformation" :   "Invalid TPP Role" , \n     "httpCode" :   403 , \n     "httpMessage" :   "Forbidden" \n }  \n\n \n 401 Unauthorized \n YÖS, süresi dolmuş bir erişim belirteci kullandığında, HHS 401 (Yetkisiz) http kodu ile aşağıdaki hata kodunu dönmelidir.  Aşağıdaki nedenlerden herhangi biri nedeniyle bir Erişim Belirtecinin süresi dolduğunda bu durum ortaya çıkabilir: \n \n Rızanın süresi doldu (Son Kullanma Tarihi geçti) \n Erişim Belirtecinin şüpheli kullanımı veya sahtekarlık şüphesi \n Rızada belirlenen gün sayısının aşımı\nBu hata, müşteriden doğru izinlerle yeniden kimlik doğrulaması isteyerek çözülebilir. \n \n \n { \n     "path" :   "/ohvps/gkd/s1.0/erisim-belirteci" , \n     "id" :   "ed3fd667-fc58-40ad-a982-e8937faccd15" , \n     "timestamp" :   "2022-12-22T11:17:33+03:00" , \n     "httpCode" :   401 , \n     "httpMessage" :   "Unauthorized" , \n     "moreInformation" :   "Refresh token expired or not found in database" , \n     "moreInformationTr" :   "Yenileme belirteci zaman aşımına uğramış veya veri tabanında yok" , \n     "errorCode" :   "TR.OHVPS.Connection.InvalidToken" \n }  \n \n\n \n 403 Forbidden \n Örn; YÖS yetkisi olmayan rol(ÖBH/HBH) ile işlem yapmaya çalıştığı durumda 403 hatası alarak işleme devam edemez. \n { \n   "path" :   "/ohvps/hbh/s1.0/bakiye" , \n   "id" :   "3e48ea98-f889-48b9-aa6e-28aabc6cfb14" , \n   "timestamp" :   "2022-12-22T11:20:05+03:00" , \n   "httpCode" :   403 , \n   "httpMessage" :   "Forbidden" , \n   "moreInformation" :   "Forbidden" , \n   "moreInformationTr" :   "Bakiye Bilgileri için ÖHK izni bulunmamaktadır." , \n   "errorCode" :   "TR.OHVPS.Resource.Forbidden" \n }  \n \n 404 Not Found \n Örn; GET /odeme-emri-rizasi/123456 çağrısı durumunda 123456 geçerli bir ödeme kaynağı değilse, HHS, 404 koduyla cevap vermelidir. \n { \n     "path" :   "/ohvps/obh/s1.0/odeme-emri-rizasi/123456" , \n     "id" :   "22f52b2d-d442-4a6a-8f39-d23eba45a34b" , \n     "timestamp" :   "2022-12-22T10:53:53+03:00" , \n     "httpCode" :   404 , \n     "httpMessage" :   "Not Found" , \n     "moreInformation" :   "Resource not found" , \n     "errorCode" :   "TR.OHVPS.Resource.NotFound" , \n     "moreInformationTr" :   "Kaynak bulunamadı" \n }  \n\n \n 405 Method Not Allowed \n { \n     "path" :   "/ohvps/obh/s1.0/o
16deme-emri-rizasi" , \n     "id" :   "3e5c6b28-7ee4-4469-b541-843fb4a94eec" , \n     "timestamp" :   "2022-12-22T11:35:10+03:00" , \n     "httpCode" :   405 , \n     "httpMessage" :   "Method Not Allowed" , \n     "moreInformation" :   "Method not allowed" , \n     "errorCode" :   "TR.OHVPS.Resource.MethodNotAllowed" , \n     "moreInformationTr" :   "İstek yapılan URL için izin verilmeyen metot" \n }  \n \n 406 Not Acceptable \n { \n     "path" :   "/ohvps/obh/s1.0/odeme-emri-rizasi" , \n     "id" :   "3e5c6b28-7ee4-4469-b541-843fb4a94eec" , \n     "timestamp" :   "2022-12-22T11:35:10+03:00" , \n     "httpCode" :   406 , \n     "httpMessage" :   "Not Acceptable" , \n     "moreInformation" :   "Not Acceptable" , \n     "errorCode" :   "TR.OHVPS.Resource.NotAcceptable" , \n     "moreInformationTr" :   "Kabul edilmedi" \n }  \n \n 415 Unsupported Media Type \n İstek başlığında content-type, JSON dışında bir veri iletilirse bu hata verilebilir. \n \n { \n     "path" :   "/ohvps/obh/s1.0/odeme-emri-rizasi" , \n     "id" :   "63cc94b6-1b51-4648-9671-95e6e2e7e03d" , \n     "timestamp" :   "2022-12-22T11:37:12+03:00" , \n     "httpCode" :   415 , \n     "httpMessage" :   "Unsupported Media Type" , \n     "moreInformation" :   "Content type not supported" , \n     "errorCode" :   "TR.OHVPS.Resource.UnsupportedMediaType" , \n     "moreInformationTr" :   "Desteklenmeyen içerik tipi’" \n }  \n \n 429 Too Many Requests \n { \n   "path" :   "/ohvps/hbh/s1.0/hesaplar/aef6061f-2978-4bb4-980d-b4c634c8055b/islemler" , \n   "id" :   "20473c5f-2f4f-4b2e-8b66-7978aec442f7" , \n   "timestamp" :   "2022-12-22T00:21:07+03:00" , \n   "httpCode" :   429 , \n   "httpMessage" :   "Too Many Requests" , \n   "moreInformation" :   "Exceeded rate" , \n   "moreInformationTr" :   "Erişim sıklığı limiti aşımı" , \n   "errorCode" :   "TR.OHVPS.Connection.ExceededRate" \n }  \n \n 500 Internal Server Error \n { \n   "id" :   "1b90c6dc-0277-4755-8b05-9297ddfab743" , \n   "path" :   "/ohvps/obh/s1.0/odeme-emri-rizasi" , \n   "timestamp" :   "2022-12-22T11:41:34+03:00" , \n   "httpCode" :   500 , \n   "httpMessage" :   "Internal Server Error" , \n   "moreInformation" :   "Unexpected condition was encountered." , \n   "moreInformationTr" :   "Beklenmeyen bir durumla karşılaşıldı." , \n   "errorCode" :   "TR.OHVPS.Server.InternalError" \n }  \n\n \n 503 Service Unavailable \n \n   "timestamp" :   "2022-12-20T23:18:56+03:00" , \n   "path" :   "/ohvps/hbh/s1.0/hesap-bilgisi-rizasi/2a72678ee3d24de2be47887e4903a8c6" , \n   "id" :   "e76315b7-09f4-4295-b6d8-1f7fec632159" , \n   "moreInformationTr" :   "HHS şu anda hizmet veremiyor." , \n   "errorCode" :   "TR.OHVPS.Server.ServiceUnavailable" , \n   "moreInformation" :   "HHS is currently unavailable" , \n   "httpCode" :   503 , \n   "httpMessage" :   "Service Unavailable" \n 3.19. Maskeleme Kuralları \n Maskeli olarak iletilmesi gereken verilerin maskeleme kuralları şu şekildedir: \n \n IBAN verileri Hesap Numarası : İlk 4 ve son 4 karakteri açık, diğer karakterler maskeli olmalıdır. Örnek: TR54******************4812 \n Ad-Soyadı / Ticari Unvan : Her kelimenin ilk 2 karakteri açık, sonraki karakterler yerine 4 adet ‘ ’ karakteri konumlandırılmalıdır.\nÖrneğin: “FATİH SERKAN EREN” ifadesi “FA *** SE**** ER****” şeklinde gösterilmelidir. \n Tabela Unvanı : Her kelimenin ilk 2 karakteri açık, sonraki karakterler yerine 4 adet ‘ ’ karakteri konumlandırılmalıdır. Örneğin “BANKALARARASI KART MERKEZİ ANONİM ŞİRKETİ” ifadesi “BA *** KA**
16** ME**** AN**** Şİ****” şeklinde gösterilmelidir. \n YÖS’ten girilen unvan ve iban bilgileri ödeme emri rızası ve ödeme emri yanıtında açık dönülür, Kolas akışında ödeme emri rızası yanıtı ve ödeme emri istek ve yanıtında maskeli taşınır. \n 3.20. Fonksiyonel Olmayan Gereksinimler \n \n \n HHS’lerin sunuyor oldukları servisleri en fazla 3000 ms içinde yanıt dönecek şekilde tasarlamalıdır. \n \n \n HHS\'ler mevcut online işlem kanallarından sundukları erişilebilirlik ve performans kriterlerinden daha düşük bir hizmet kalitesi sunmamalıdır. \n \n \n HHS’lerin sunuyor oldukları servislere sistemin güvenlik ve sürekliliğini sağlamak adına rate limit koyma ihtiyaçları olur ise, standartlar ve ihtiyaçlara uygun şekilde bir konfigürasyon yapabilirler.  \n \n \n HHS rate limit tanımı uyguluyor ise; YÖS\'ler arasında ayrım yapmadan, adil ve makul sınırlar dahilinde uygulamalıdır.    \n \n \n YÖS tarafından kullanıcının başlatmadığı otomatik sorgu limitleri  3.21 Otomatik Sorgular  bölümünde detaylandırılmıştır. HHS\'lerin bu servisler için minimumda cevap vermesi gereken sorgu sayıları belirlenmiştir. Bu sayıların üzerinde yapılan servis çağrısına yanıt dönmek HHS inisiyatifindedir. Diğer taraftan kullanıcının başlattığı istekler için uygulanacak limitler, HHS\'nin online işlem kanallarından sunulan sorgu limitlerinden daha az olmamalıdır. \n \n \n HHS\'ler, çağrım limitlerini aşan istekler için HTTP 429 - Too Many Request hatasını dönmelidir. Örnek hata mesajı  3.18 HTTP Durum Kodları  bölümünde bulunmaktadır. Rate Limit özelinde tanımlanmış parametreler olan X-RateLimit-Limit, X-RateLimit-Remaining ve X-RateLimit-Reset alanları da   3.16 Yanıt Başlığı  bölümünde açıklanmıştır. YÖS\'ler de HHS\'nin belirlediği rate limit kurallarına uymakla yükümlüdür. \n \n \n HHS’ler aynı zamanda servislerin ayakta olup olmadığına yönelik olarak bir healthcheck servisi kurmalıdır.  HHS’lerin bu servis ile tüm network ve veritabanı ya da servislerinin ihtiyaç duydukları altyapısal erişimleri modellemeli ve bu servisi BKM ile paylaşmaları beklenmektedir. Bu servis düzenli olarak BKM tarafından çağırılarak servislerin ayakta olup olmadıklarının kontrolünün sağlanması planlanmaktadır. \n \n \n Sunulan her API için /health endpointi ile aşağıdaki bilgileri vermeleri beklenmektedir. \n GET /{api ismi}/{versiyon}/health \n Örnek: \n GET /obh/s1.0/health \n GET /hbh/s1.0/health \n GET /gkd/s1.0/health \n HHS ve YÖS API için health servisleri aşağıdaki servislerle kontrol edilebilir. \n GET /hhs-api/s1.0/health \n GET /yos-api/s1.0/health \n Başarılı yanıtta Http 200 kodu dönülmelidir. \nBaşarılı Yanıt: \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Koşullu  / İsteğe Bağlı \n Açıklama \n \n \n \n \n status \n status \n AN2..20 \n Z \n “UP”, “DOWN” değerlerini alabilir. \n \n \n \n Health servisinden yanıt alınamaması, hata alması ya da status DOWN gelmesi durumunda API Gatewayden istek HHS tarafına iletilmeyecektir. \n \n \n ÖHVPS servisleri ile ilgili olarak HHS’ler, BKM tarafından düzenli olarak sorgulanacaktır, erişilebilirlik ve kullanım oranları takip edilecektir. \n \n \n HHS’lerin servislerini erişim yüzdeleri açısından yıl bazında %99.75 oranında ayakta olmalarını sağlayacak şekilde kurgulamaları gerekmektedir. \n 3.21. Otomatik Sorgular \n YÖS uygulaması, ÖHK\'nın başlattığı işlemler neticesinde API çağrımı yapabileceği gibi, sistemsel bir şekilde otomatik API çağrımı da yapabilir. \nHHS, API çağrımının ÖHK\'lı ya da ÖHK\'sız olduğunu istek parametreleri içerisinde yer alan PSU-Initiated parametresi ile anlar. Bu parametre “E” ise ÖHK’lı, “H” ise sistemsel yapılmış bir sorgu anlamına gelmektedir. \n ÖHK YÖS uygulamasına giriş yaptığı andan çıkış yaptığı ana kadar yani ÖHK oturumu boyunca yapılan API çağrımlarında, PSU-Initiated  deÄ
16Ÿerinin "E" olması gerekmektedir.  YÖS uygulamasında ÖHK oturumu boyunca,  ÖHK\'nın bilgilerinden minimumda "bakiye" bilgisinin, uygulama arayüzlerinde güncel değeri ile online sorgularla gösterimi YÖS\'ün insiyatifindedir. \n ÖHK’nın başlattığı sorgular için HHS tarafından belirlenen üst rate limitler dahilinde çağrım yapılabilir. \n YÖS, aşağıdaki API\'leri sistemsel bir şekilde çağırabilir. \nHHS\'lerin bu servisler için minimumda cevap vermesi gereken sorgu sayıları belirlenmiştir. Bu sayıların üzerinde yapılan servis çağrısına yanıt dönmek HHS inisiyatifindedir. \nHHS tarafından izin verilen sorgu sayısının üzerinde yapılan bir sorgu için HTTP 429 durum kodu (Too Many Requests) hatası dönülmelidir. Yanıt gövdesinde tekrar hata nesnesinin oluşturulması HHS inisiyatifindedir.  HHS yanıt headerı alanında iletilecek X-RateLimit-Reset (saniye cinsinden) değeri kadar süre sonunda\nYÖS\'ün tekrar sorgulama yapması beklenmektedir. \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Otomatik Sorgu Sayısı \n \n \n \n \n 1 \n erisim-belirteci \n POST \n /erisim-belirteci \n --- \n \n \n 2 \n odeme-emri-rizasi \n GET \n /odeme-emri-rizasi/{rizaNo} \n Rıza bazında günde 4 \n \n \n 3 \n odeme-emri \n GET \n /odeme-emri/{odemeEmriNo} \n Rıza bazında günde 24 \n \n \n 4 \n hesap-bilgisi-rizasi \n GET \n /hesap-bilgisi-rizasi/{RizaNo} \n Rıza bazında günde 4 \n \n \n 5 \n hesap-bilgisi-rizasi \n DELETE \n /hesap-bilgisi-rizasi/{RizaNo} \n --- \n \n \n 6 \n hesaplar \n GET \n /hesaplar \n Bireysel günde 4  Kurumsal günde 4 \n \n \n 7 \n hesaplar \n GET \n /hesaplar/{hspRef} \n Bireysel günde 4 Kurumsal günde 4 \n \n \n 8 \n bakiye \n GET \n /hesaplar/{hspRef}/bakiye \n Bireysel günde 24 Kurumsal ÖHK - günde 24 \n \n \n 9 \n bakiye \n GET \n /bakiye \n Bireysel günde 24 Kurumsal ÖHK - günde 24 \n \n \n 10 \n islemler \n GET \n /hesaplar/{hspRef}/işlemler \n Bireysel günde 4 Kurumsal ÖHK - saatte 12 \n \n \n \n YÖS ve HHS son 24 saat içerisindeki sorgu sayılarını toplayarak elde ettiği sonuçlarla limit kontrolü yapmalıdır (Pencere yöntemi). \n İşlemler servisinin çağrım detaylarına  ^Bölüm 7.8  üzerinden ulaşılabilir. \n Hesap bilgisi rızasının YÖS tarafından otomatik bir şekilde iptal edilmesi durumu  ^Bölüm 9 \'da açıklanmıştır. \n'},{title:"EK-1: İstek/Cevap Mesajlarında Kullanılacak Nesne Yapıları",frontmatter:{},regularPath:"/v1.1.0/contents/ekler.html",relativePath:"v1.1.0/contents/ekler.md",key:"v-cc5a0b86",path:"/v1.1.0/contents/ekler.html",headers:[{level:2,title:"EK-1: İstek/Cevap Mesajlarında Kullanılacak Nesne Yapıları",slug:"ek-1-istek-cevap-mesajlarında-kullanılacak-nesne-yapıları"},{level:2,title:"EK-2: Sıralı Veri Türleri",slug:"ek-2-sıralı-veri-turleri"},{level:2,title:"EK-3: İstemci Sertifikalarının Tanım ve Yönetimi",slug:"ek-3-istemci-sertifikalarının-tanım-ve-yonetimi"},{level:2,title:"EK-4: Sunucu Sertifikaları",slug:"ek-4-sunucu-sertifikaları"},{level:2,title:"EK-5: Mesaj İmzalama Akışı",slug:"ek-5-mesaj-imzalama-akısı"},{level:3,title:"İmzalama Kuralları (YÖS)",slug:"imzalama-kuralları-yos"},{level:2,title:"EK-6: HHS/YÖS API Mimarisi",slug:"ek-6-hhs-yos-api-mimarisi"}],content:' EK-1: İstek/Cevap Mesajlarında Kullanılacak Nesne Yapıları \n Açık Bankacılık simülatör uygulaması üzerinde swagger dökümanlarının güncel sürümlerine erişim sağlanabilir. \n EK-2: Sıralı Veri Türleri \n \n \n \n Kod \n Açıklama \n \n \n \n \n TR.OHVPS.DataCode.BrcAlc \n İşlemin hesabı borçlandırdığı ya da alacaklandırdığı bilgisidir. B : Borç A : Alacak \n \n \n TR.OHVPS.DataCode.EvetHayir \n E : Evet H : Hayır \n \n \n TR.OHVPS.DataCode.GkdTur \n GKD yapılmasını gerekli bulduğu durumda HHS, YÖS’ün belirlediği yöntemi dikkate alarak kendi belirlediği GKD yöntemini bildirir: Y: Yönlendirmeli GKD A: Ayrık GKD \n \n \n TR.OHVPS.DataCode.HHSDurumu \n A : Açık. Üretim Ortamında HHS’nin aktif bir şekilde hizmet vermesi durumu.  Y : Yaygınlaştırma. Üretim Ortamında HHS’nin kendisi tarafından tanımlanmış kısıtlı ÖHK’ya hizmet vermesi durumu.    G : Geçici Hizmet Veremiyor. HHS servislerinde teknik bir sorun olması nedeniyle HHS’nin hizmet verememesi durumu.  K: Kapalı. HHS’nin hizmet vermeme durumu. \n \n \n TR.OHVPS.DataCode.HHSYOSSrlmKrtr \n ‘kod’ : Kod ‘unv’ : Unvan \n \n \n TR.OHVPS.DataCode.HspDrm \n Hesabın durumunu belirtir: AKTIF PASIF KAPALI \n \n \n TR.OHVPS.DataCode.HspTip \n Hesap çeşidini belirtir: VADESIZ VADELI KREDILI_MEVDUAT_HESABI POS CEK YATIRIM \n \n \n TR.OHVPS.DataCode.HspTur \n Hesabın bireysel veya ticari nitelikte olduğunu belirtir: B: Bireysel T: Ticari \n \n \n TR.OHVPS.DataCode.IslemAmaci \n Ödemenin Amacına yönelik olarak aşağıdaki değerlerden birini alır: 01: Konut Kirası Ödemesi 02: İş yeri Kirası Ödemesi 03: Diğer Kira Ödemesi 04: E-Ticaret Ödemesi: Elektronik ticaret işlem amaçlı aktarımlar 05: Çalışan Ödemesi: Maaş, harcırah, prim gibi çalışan ödemeleri 06: Ticari ödeme: Ticari işletmelerin birbirlerine, kendi hesaplarına veya müşterilerine ödemeleri, borç, ithalat, ihracat, şirket satın alma, vb. kapsamında ödemeler 07: Bireysel Ödeme: Özel amaçlı (aile bireylerine, hediye, bağış, borç, alışveriş vs.) ödemeler 08: Yatırım: Mevduat, menkul kıymet, döviz, gayrı menkul, taşıt, varlık alımı, temettü ödeme, tahsilat vb. gibi yatırım amaçlı ödemeler 09: Finansal: Kredi, depo, repo, türev, finansal varlık alım/satımı vb. ödemeler 10: Eğitim ödemesi 11: Aid
16at ödemesi 12: Diğer \n \n \n TR.OHVPS.DataCode.IslemTuru \n Hesap hareketleri (işlemler) sorgusunda dönülen İşlem Türü (islTur) parametresi aşağıdaki değerlerden birini alabilir: HAVALE EFT FAST PARA_YATIRMA PARA_CEKME YABANCI_PARA_HAVALE YATIRIM_HESABINA_AKTARIM YATIRIM_HESABINDAN_AKTARIM KURUM_FATURA_ODEMESI CEK SENET SIGORTA_ODEMESI UCRET_KOMISYON_FAIZ SGK_ODEMESI VERGI_ODEMESI DOVIZ_ALIM DOVIZ_SATIM KREDI_ODEMESI KREDI_KULLANIM KK_ODEMESI KK_NAKIT_AVANS SANS_OYUNU UYE_ISYERI_ISLEMLERI HGS_OGS_ISLEMLERI DOGRUDAN_BORCLANDIRMA_SISTEMI DIGER \n \n \n TR.OHVPS.DataCode.IzinTur \n 01: Temel Hesap Bilgisi 02: Ayrıntılı Hesap Bilgisi 03: Bakiye Bilgisi 04: Temel İşlem (Hesap Hareketleri) Bilgisi 05: Ayrıntılı İşlem Bilgisi 06: Anlık Bakiye Bildirimi \n \n \n TR.OHVPS.DataCode.KareKodAksTur \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  01: FAST katılımcısından dinamik doğrulamalı hizmet alınan işyeri ödemesi 02: FAST katılımcısından statik doğrulamalı işyeri ödemesi 03: Kişiden kişiye ödemeler \n \n \n TR.OHVPS.DataCode.KaynakTip \n HESAP_BILGISI_RIZASI  ODEME_EMRI_RIZASI   ODEME_EMRI    BAKIYE    COKLU_ISLEM_TALEBI    HHS    YOS \n \n \n TR.OHVPS.DataCode.KimlikTur \n Kod, Tip, Format K , TCKN , N11 M , MNO , AN1..30 (HHS’ye özel bireysel veya kurum müşteri numarası) Y , YKN , N11 P , PNO , AN7..9 \n \n \n TR.OHVPS.DataCode.KolasHspTur \n Hesabın bireysel veya ticari nitelikte olduğunu belirtir: B: Bireysel T: Ticari \n \n \n TR.OHVPS.DataCode.KolasTur \n Müşterinin sorgulama istediği Kolay Adres Tipi değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır: T: Telefon Numarası E: E-Posta K: TCKN V: VKN Y: YKN P: Pasaport Numarası \n \n \n TR.OHVPS.DataCode.KurumKimlikTur \n Kod, Tip, Format K , TCKN , N11 M , MNO , AN1..30 (HHS’ye özel bireysel veya kurum müşteri numarası) V , VKN , AN10 \n \n \n TR.OHVPS.DataCode.LogoArkaPlan \n B :  Logoların arka planının beyaz olması (Erkek Logo)   K : Logoların arka planının renkli/koyu olması (Dişi Logo) \n \n \n TR.OHVPS.DataCode.LogoFormat \n SVG :  Logonun svg formatında olmasını ifade eder. Logonun 1:2 oranında olması gerekmektedir.   PNG : Logonun png formatında olmasını ifade eder. Logonun 500 X 1000 px olması gerekmektedir. \n \n \n TR.OHVPS.DataCode.LogoTur \n FULL_LOGO   : Yazı ve ikon şekillerin bir arada olduğu logo   ICON_LOGO : İkon şekillerin olduğu ( Sadece görsel olan-yazısız ) logo \n \n \n TR.OHVPS.DataCode.OdemeAmaci \n Ödemenin Amacına yönelik olarak aşağıdaki değerlerden birini alır: 01: Konut Kirası Ödemesi 02: İş yeri Kirası Ödemesi 03: Diğer Kira Ödemesi 04: E-Ticaret Ödemesi: Elektronik ticaret işlem amaçlı aktarımlar 05: Çalışan Ödemesi: Maaş, harcırah, prim gibi çalışan ödemeleri 06: Ticari ödeme: Ticari işletmelerin birbirlerine, kendi hesaplarına veya müşterilerine ödemeleri, borç, ithalat, ihracat, şirket satın alma, vb. kapsamında ödemeler 07: Bireysel Ödeme: Özel amaçlı (aile bireylerine, hediye, bağış, borç, alışveriş vs.) ödemeler 08: Yatırım: Mevduat, menkul kıymet, döviz, gayrı menkul, taşıt, varlık alımı, temettü ödeme, tahsilat vb. gibi yatırım amaçlı ödemeler 09: Finansal: Kredi, depo, repo, türev, finansal varlık alım/satımı vb. ödemeler 10: Eğitim ödemesi 11: Aidat ödemesi 12: Gayrimenkul alım ödemesi 13: Motorlu taşıt alım ödemesi 14: Borç verme/Borç ödeme 15: Hediye/bağış/yardım 16: Vergi/resim/harç ödemesi 17: Tazminat/sigorta ödemesi 18: Avukatlık/Danışmanlık/Müşavirlik Ödemesi 19: Sağlık ödemesi 20: Kripto/dijital varlık 21: Şans oyunları/bahis ödemesi 22: Eğlence/sosyal medya ödemesi \n \n \n TR.OHVPS.DataCode.OdemeDurumu \n Ödemenin durumunu gösterir. Alabileceği değerler: 01: Gerçekleşti (Ödeme ilgili ödeme sistemine iletildi ve alıcı hesabına ulaştı.)  02: Gönderildi (Ödeme ilgili ödeme sistemine iletildi ancak alıcı hesabına ulaştığına dair teyit alınmadı.)İşlemin son durumunun teyidi için YÖS sorgulama yapmalıdır. 03- Gerçekleşmedi (Ödemenin ilgili ödeme sistemine işletiminde veya işlenmesi sırasında hata, zaman aşımı, sistemin gün sonu işlemlerine başlaması vb. durum oluştu ve ödeme gereçeklemedi veya iade edildi.) 04- Onayda bekliyor (Ödeme emri alındı. Çoklu onay akışının tamamlanması bekleniyor.) 05- İşleme Alındı ( Ödeme emri alındı. ) YÖS tarafından müşteriye gösterilmeyen bir koddur. Bu kod dönüldüğünde YÖS uygulamasında ÖHK’ya ödeme durumu 02-Gönderildi  olarak gösterilir. İşlemin son durumunun teyidi için YÖS sorgulama yapmalıdır. \n \n \n TR.OHVPS.DataCode.OdemeKaynak \n I: İnternet bankacılığından gönderilen ödemelerde kullanılır. A: Otomatik para makineleri (ATM) ile gönderilen ödemelerde kullanılır. T: Telefon bankacılığı ile gönderilen ödemelerde kullanılır. K: Kiosklar aracılığıyla gönderilen ödemelerde kullanılır. S: Şubeden girilen ödemelerde kullanılır. M: Mobil uygulamadan gönderilen ödemelerde kullanılır. D: Yukarıdakiler dışındaki ödeme kaynaklarından gönderilen ödemelerde kullanılır.  O: Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır. \n \n \n TR.OHVPS.DataCode.OdemeSistemi \n İşlemin yönlendirildiği Ödeme Sistemine göre aşağıdaki değerlerden birini alabilir: H: Havale F: FAST E: EFT (PÖS) değerlerinden birini alabilir. \n \n \n TR.OHVPS.DataCode.OhkTur \n B: Bireysel  K: Kurumsal \n \n \n TR.OHVPS.DataCode.OhkTanimTip \n TCKN: TCKN   (ohkTanimDeger N11 olarak gönderilmelidir.)  MNO:        HHS’ye özel bireysel veya kurum müşteri numarası (OHKTanimDeger AN1..30 olarak gönderilmelidir. )   YKN:      Yabancı Kimlik Numarası (OHKTanimDeger N11 olarak gönderilmelidir.)    PNO:      Pasaport numarsı (ohkTanimDeger AN7..9 olarak gönderilmelidir.)    GSM:       Cep telefonu numarası (ohkTanimDeger N10 olarak gönderilmelidir.)   IBAN:    IBAN numarası (OHKTanimDeger AN26 olarak gönderilmelidir.) \n \n \n TR.OHVPS.DataCode.OlayTip \n KAYNAK_GUNCELLENDI  AYRIK_GKD_BASARILI AYRIK_GKD_BASARISIZ HHS_YOS_GUNCELLENDI \n \n \n TR.OHVPS.DataCode.YOSDurumu \n A : Açık. Üretim Ortamında YÖS’ün aktif bir şekilde hizmet vermesi durumu.   G : Geçici Hizmet Veremiyor. YÖS servislerinde teknik bir sorun olması nedeniyle YÖS\'ün hizmet verememesi durumu.   K: Kapalı. YÖS\'ün hizmet vermeme durumu. \n \n \n TR.OHVPS.DataCode.PSUInitiated \n ‘E’ : Evet  ‘H’ : Hayır   ‘O’ : Olay Bildirim \n \n \n TR.OHVPS.DataCode.RizaDurumu \n B: Yetki Bekleniyor Y: Yetkilendirildi K: Yetki Kullanıldı E: Yetki Ödeme Emrine Dönüştü S: Yetki S
16onlandırıldı I :Yetki Iptal \n \n \n TR.OHVPS.DataCode.RizaIptDtyKod \n ‘01’ :Yeni Rıza Talebi ile İptal ‘02’ :Kullanıcı İsteği ile HHS üzerinden İptal ‘03’ :Kullanıcı İsteği ile YÖS üzerinden İptal ‘04’ :Süre Aşımı : Yetki Bekleniyor ‘05’ :Süre Aşımı : Yetkilendirildi ‘06’ :Süre Aşımı : Yetki Ödemeye Dönüşmedi ‘07’ :GKD iptali : Aynı rıza no ile mükerrer çağrımı ‘08’ :GKD iptali : Rızano ile TCKN uyuşmaması ‘09’ :GKD iptali : Uygun ürünü bulunmuyor ‘10’ :GKD iptali : HHS Açık Bankacılık kanalı işleme kapalı ’11’ :GKD iptali : Hesap Yetki Sorunu ‘12’ :GKD iptali : ÖHK HHS kontrollerini aşamadı ‘13’ :GKD iptali : ÖHK isteği ile GKD’den vazgeçildi ‘14’ :GKD iptali : Fraud Şüphesi ‘99’ :GKD iptali : Diğer \n \n \n TR.OHVPS.DataCode.RizaTip \n H: Hesap Bilgisi Rızası O: Ödeme Emri Rızası \n \n \n TR.OHVPS.DataCode.SrlmYon \n ‘A’: Azalan değerle sıralama ‘Y’: Artan değerle sıralama \n \n \n TR.OHVPS.DataCode.VarYok \n 0 : Kayıt Yok   1 : Kayıt Var \n \n \n TR.OHVPS.DataCode.YetTip \n Alabileceği değerlere göre hangi belirtecin döneceğine karar verilir. yet_kod yenileme_belirteci \n \n \n TR.OHVPS.DataCode.ZmnAralik \n 0 : Kayıt Yok  1 : 0-2 saat 2 : 2 saat 1 dakika-24 saat  3 : 1-3 gün   4 : 4-15 gün\t  5 : 16 gün ve üstü \n EK-3: İstemci Sertifikalarının Tanım ve Yönetimi \n Tüm katılımcıların GEÇİT\'e erişebilmesi için, BKM tarafından yapılan istemci sertifika doğrulamasından geçmesi gerekmektedir. İstemci sertifikası üretilmeden önce katılımcıların CSR üretme akışını tamamlaması gerekmektedir. \n OpenSSL ile CSR (Certificate Signing Request) Oluşturma \nAşağıdaki komut ile 2048-bit RSA private key ve CSR oluşturulur. \nopenssl req -new -newkey rsa:2048 -nodes -keyout PRIVATEKEY.key -out CSR.csr \n CSR ile ilgili detay bilgilerin girişinde; \nCommon Name (CN) olarak 4 karakterli hhsKod ya da yosKod değeri ile, \ndiğer alanlar için de kurum bilgileriniz ile giriş yapılır. \n Tüm bilgilerin girilmesinden sonra oluşan private key dosyası kurumunuzda saklanır.\nCSR dosyası ise istemci sertifika üretmek üzere kullanılır. Bu aşamada takip edilmesi gereken adımlar şu şekildedir: \n Katılımcıların, TRIP ortamı üzerinden, BKM Tarafından yetki verilmiş kullanıcılarının görebileceği "İstemci Sertifika Talebi" menü adımına giriş yapmaları beklenir. Açılan ekranda,"CSR Dosyası Yükleme" alanı içerisine, katılımcının üretmiş olduğu csr dosyası yüklenir. Yaklaşık 1 dakika içerisinde kuruma özel olarak üretilmiş olan client sertifikası indirilmeye hazır hale gelecektir. "İndir" butonu ile client sertifika indirilir. İstemci tarafında web isteğinin ilgili sertifika ile ilişkilendirilerek oluşturulması gerekmektedir. \n Uzun dönemli olarak hazırlanacak olan sertifikalar sertifikasyon ve üretim ortamlarında kullanılacaktır. Sertifikaların işlevselliği ve geçerliliği bu aşamalarda sınanacaktır. \n GEÇİT\'in test ve üretim ortamları ayrımında istemci sertifikaları, HHS Listeleme API erişimleri ve Sertifikasyon bağlantıları Şekil 15-HHS/YÖS API Mimarisi Diagramında resmedilmiştir. \n EK-4: Sunucu Sertifikaları \n Sunucu sertifikalarının endpoint bilgisini (Fqdn) içerecek ve global bir Certification Authority tarafından imzalanmış olarak sunulması gerekmektedir.\nÖrneğin; entegrasyon formu içerinde yer alan URL bilgisinin (test.xbank.com.tr) sertifika içerisinde tanımlı olması ve bu sertifikanın global bir CA örneğin Verisign tarafından imzalanmış olarak sunulması gerekmektedir. \n Hizmet sağlayıcı olan HHS\'ler tarafından sunucu sertifikaları uygulanmalıdır. \n EK-5: Mesaj İmzalama Akışı \n Dijital imzalama yapısı, ÖHVPS API’de gerçekleştirilen işlemlerin ve taşınan verilerin bütünlük ve inkâr edilemezliğini sağlamak amacıyla kurgulanmıştır.\nBu kapsamda imzalama akışı aşağıdaki gibi olmalıdır: \n \n HHS ya da YÖS öncelikle özel ve açık anahtarlarını oluşturmalıdır. Bu anahtarları oluşturmak için aşağıda “openssl” kullanılarak oluşturma örneği paylaşılmıştır.  Bu anahtarlardan özel olan anahtar mesajı imzalamak için kullanılacak olup, açık anahtar ise mesajı doğrulamak amacıyla mesajın alıcısı tarafından kullanılacaktır. \n \n private_key.pem ve public_key.pem dosyasinin içerikleri kod tarafında kullanılacaktır. \n --private.pem => Özel anahtarın ismi\nopenssl genrsa -out private.pem 2048 \n --public_key.pem => Açık anahtarın ismi\nopenssl rsa -in private.pem -pubout -outform PEM -out public_key.pem \n --private_key.pem => Özel anahtarın PCKS8 formatına çevrilmesi (Java açısından PCKS8 formatında olma ihtiyacı nedeniyle) openssl pkcs8 -topk8 -inform PEM -in private.pem -out private_key.pem -nocrypt \n \n \n Açık ve Özel anahtarlar oluşturulduktan sonra Açık Anahtar BKM ile paylaşılır. BKM bu açık anahtarı diğer katılımcıların ulaşabilmesi ve alabilmesi için bir Anahtar Deposu yaklaşımı ile bünyesinde tutar. İlgili anahtarı iletebilmek ve alabilmek için kullanılacak HHS/YOS API ye erişim detayları EK-6 bölümünde detaylı olarak paylaşılmıştır.  Eğer kurumun ilgili anahtar çiftinin yenilenme durumu söz konusu ise yenilemenin hemen ardından açık anahtar yeni bir imzalama yapılmadan önce mutlaka BKM ile paylaşılmalıdır. \n \n \n İmzalı mesajı açacak olan kurum mesajı imzalayan kurumun açık anahtarını her sorguda yeniden almak durumunda değildir. Belirli periyodlarda kendi ortamındaki anahtarı yenileyerek sistemi işletebilir. Ancak imzalayan kurum anahtar çifti yenilemesi yaptığında BKM ile açık anahtarını paylaşsa dahi 
16imzalı mesajı doğrulayacak taraf eski açık anahtar ile doğrulama yapmaya çalıştığı için hata alacaktır. Bu ilk hata durumunda hızlıca BKM üzerinden yeni anahtarı alıp mesajı tekrar doğrulamayı denemelidir. Eğer yine hata alıyor ise doğrulama işlemini hata statüsüne almalıdır. Bu sebeple anahtar yenileyen kurum yeni açık anahtarını yeni bir mesaj imzalama yapmadan önce mutlaka BKM ile paylaşmalıdır. \n \n \n PSU-Fraud-Check alanı için de JWT formatında çıktı hazırlanması beklenmektedir. Örnek bir PSU-Fraud-Check payload değeri aşağıdaki gibidir; \n {"AnomalyFlag": "0", \n"LastPasswordChangeFlag": "1", \n"FirstLoginFlag": "1", \n"DeviceFirstLoginFlag": "1", \n"BlacklistFlag": "0", \n"MalwareFlag": "0", \n"UnsafeAccountFlag": "0", \n"exp": 1663424479, \n"iat": 1663338079, \n"iss": "[https://apigw.bkm.com.tr|https://apigw.bkm.com.tr/]" } \n İmzalama Kuralları (YÖS) \n Bir YÖS üzerinden başlayan akış örnek olarak paylaşılmıştır. \n \n \n YÖS, mesaj imzalama gerektiren her API isteğinin HTTP gövdesini (request body) kendi özel anahtarı ile şifreleyerek imza bilgisini oluşturur. \n \n \n Ardından bu imza verisini, göndereceği mesajın istek başlığında yer alan X-JWS-Signature alanında göndermelidir. \n \n \n X-JWS-Signature alanında gönderilecek olan bilgi aşağıdaki yöntem ile oluşturulmalıdır. \n \n \n Bu alana yazılacak olan bilgi JWT formatında oluşturulmalıdır. \n \n \n Bir JWT, header-payload-signature alanlarından oluşmaktadır. \n \n Header alanında JWT’yi imzalamak için kullanılacak algoritma belirtilmelidir.  Standartlar kapsamında RS256 kullanılacaktır. \n Payload kısmında özel olarak oluşturulacak olan “body” claim alanına istek gövdesi (request body) verisinin SHA256 hash değeri karşılığı yazılmalıdır. \n JSON payload oluşturulurken RFC 7519 baz alınmalıdır. "iss" (Issuer) Claim, "exp" (Expiration Time) Claim, "iat" (Issued At) Claim, “body” Claim alanlarının gönderilmesi zorunludur. ^RFC7519 \na.\t"iss" (Issuer) Claim : Kurumunuza özel bilgidir. \nb.\t"exp" (Expiration Time) Claim: Saniye cinsinden (Unix time) imzanın son geçerli olduğu tarih. Bu tarih  mevcut sunucu saatinizden 60 dakika sonra olacak şekilde kullanılmalıdır. \nc.\t"iat" (Issued At) Claim : Saniye cinsinden (Unix time) imzanın oluşturulduğu tarih. Bu tarih  mevcut sunucu saatinizden 5 dakika önce olacak şekilde kullanılmalıdır. \nd.\t“body” Claim : istek gövdesi (request body) verisinin SHA256 hash değeri karşılığı. \n Signature alanında da özel anahtar ile imzalanmış olan imza içeriği yer alacaktır. \n \n X-JWS-Signature:   JWS imzasını içeren üstbilgi. Bu başlığın ne zaman belirtilmesi gerektiği hususu ilgili endpoint için belirtilmiştir. \n Örnek X-JWS-Signature Payload Değeri \n { \n"iss": "https://apigw.bkm.com.tr", \n"exp": 1646832405, \n"iat": 1646746005, \n"body": "c543072f97a761a1d891dc81acc380bc1e6f61ca6541bd93ebfdece338457922" \n} \n \n \n \n \n YÖS, isteği gönderir. Sadece mesajın bütünlüğünü ve doğruluğunu teyit amacı ile istek gövdesi (request body) SHA256 hash değeri imzalanarak X-JWS-Signature alanında bu imza iletilir. İsteğin gövde (request body) kısmı açık ve şifresiz olarak gönderilmektedir. \n \n \n HHS, isteği alır, talebi gerçekleştirmeden önce aldığı API isteklerinin imzasını doğrulamalıdır. X-JWS-Signature alanındaki JWT aşağıdaki adımlarla doğrulanmalıdır. \n \n Header kısmındaki algoritmanin RS256 olduğu kontrol edilir. \n Gönderen kurumun açık anahtarı ile JWT verify (doğrulama) işlemi yapılır. \n Yukarıdaki işlemlerin doğruluğunun ardından JWT’nin payload kısmındaki “body” claim alanındaki bilginin, isteğin gövde verisinin SHA256 hash değerlerinin aynı olduğu kontrol edilir. \n Örnek checksum değeri   "a64b19f95eeb1fb0a0a3e2dbbc6e3d8472c52184d4543417ddc6d156fc5c5571" veya   "A64B19F95EEB1FB0A0A3E2DBBC6E3D8472C52184D4543417DDC6D156FC5C5571" şeklinde olabilir. İki hali de aynı değere sahiptir. Kontrollerde buna dikkat edilmesi gerekmektedir. \n \n \n \n Yukarıdaki işlemler ile doğruluğu teyit edilmiş olan isteğin talebi gerçekleştirir. \n \n \n Eğer istek doğrulanamıyor ise gönderen kurumun açık ve özel anahtar çifti yenilenmiş olabilir. \n \n \n BKM HHS API  üzerinden ilgili kurumun bilgilerini (kurum ko
16du vs) kullanarak kurumun detay bilgileri çeker ve kendi ortamında yeniler. \n \n \n Ardından imzayı tekrar açık anahtar ile doğrulayarak kontroller gerçekleştirilir. (Eğer halen doğrulama işlemi başarısız ise bu istek için hata akışı çalıştırılır.  TR.OHVPS.Resource.InvalidSignature  kodu ile hata üretilebilir.) \n \n \n İmza bilgisinin beklendiği (x-jws-signature) servislerde, bu bilginin iletilmediği durumlarda  TR.OHVPS.Resource.MissingSignature  hatası üretilebilir. \n \n \n HHS isteği işledikten sonra cevabı oluştururken de yukarıdaki akışlar ile göndereceği cevabı imzalamalıdır. \n \n \n İstek yanıt gövdesinin SHA256 checksum değeri için hexadecimal çıktı kullanılacaktır. Oluşacak çıktının 64 karakter olması beklenmektedir. Kontrol için "^[A-Fa-f0-9]{64}$" RegEx tarifini kullanabilirsiniz. \n \n \n Örnek bir gövde: \n {"katilimciBlg":{"hhsKod":"8000","yosKod":"8000"},"gkd":{"yetYntm":"Y","yonAdr":"https://boss-test.bkm.com.tr/boss/ab/yosSimulator/8000?drmKod=6021de9f-55e7-454a-94be-2044866b22e1"},"kmlk":{"kmlkTur":"M","kmlkVrs":"123456","ohkTur":"B"},"hspBlg":{"iznBlg":{"iznTur":["01","02","03","04","05"],"erisimIzniSonTrh":"2022-10-12T23:59:59+03:00","hesapIslemBslZmn":"2021-10-10T00:00:00+03:00","hesapIslemBtsZmn":"2023-10-10T23:59:59+03:00"}}}\n \n Bu gövdenin checksum\'ı: \n a64b19f95eeb1fb0a0a3e2dbbc6e3d8472c52184d4543417ddc6d156fc5c5571\n \n Bu checksum\'ın iletildiği x-jws-signature başlık değeri: \n eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FwaWd3LmJrbS5jb20udHIiLCJleHAiOjE2NjU0NzU1NjIsImlhdCI6MTY2NTM4OTE2MiwiYm9keSI6ImE2NGIxOWY5NWVlYjFmYjBhMGEzZTJkYmJjNmUzZDg0NzJjNTIxODRkNDU0MzQxN2RkYzZkMTU2ZmM1YzU1NzEifQ.Q65PI_1fTEzzBMirvmJvXgVX3orhhZ4_UqujtGdHkU7me-1ymIjvPrzy3kfyER1pedFb7HDCBuPvYoqjX8eUnpiiZsxfzCiEa0McIhoFeUOggq-O8VihItp8bLr2DWwQ9JHN1-WXB2mL31KAKFAL1VY9-DXuAdT-RfE_SLYsl2ycmNy4ti4XvfDvvlE56ZsieFZ727VuwR8wi7F0kKDc6UhjaMF9xcUeAM1fxX-bmcOaOo1NZGC0vvgjNZKz_OJrN-q8VhWYnQPiJ7wY7S9IG8bHIkBImKSVf8LuOEvl8u0BZzADLH1iOBd9x2l1plyI_NLPTrnOqhWhKlljkkJBCg\n \n Eğer PSU-Fraud-Check için başlık gönderilecekse, yine JWT formatında imza üretilmelidir. Örnek bir psu-fraud-check başlık değeri: \n eyJhbGciOiJSUzI1NiJ9.eyJBbm9tYWx5RmxhZyI6IjAiLCJMYXN0UGFzc3dvcmRDaGFuZ2VGbGFnIjoiMSIsIkZpcnN0TG9naW5GbGFnIjoiMSIsIkRldmljZUZpcnN0TG9naW5GbGFnIjoiMSIsIkJsYWNrbGlzdEZsYWciOiIwIiwiTWFsd2FyZUZsYWciOiIwIiwiVW5zYWZlQWNjb3VudEZsYWciOiIwIiwiZXhwIjoxNjY1NDc1NTU2LCJpYXQiOjE2NjUzODkxNTYsImlzcyI6Imh0dHBzOi8vYXBpZ3cuYmttLmNvbS50ciJ9.DhUh_nsXDuNIrvsQ3KOhOXdVcJg6fTDVW8K1oea8kLtmb7n-_hJHY3mWX5zzobu-Vh2VvFzIxPhHtol6gLHFktmIMiQ9TDHb_mRZFXgJB4ToNfqc3Fy9mi5bS8By2IYi1HxDaCStstaZDaunzXfHCtqybfZXyk6teDrf-iIf6lqX9Keo7GZO-Y7mP7C13-c_QwyNKrZK4TZwUQbecRqXYn1DcEHM7kukQHTar_hKBWkXPmNpScY0J2rKksr4ejR1uLhdQm-Pdwoe9y6qrNEB79vMLBkRNtbuV0vc1GYHp_YKkzBKBI_58uuB2GD9877CsrcRnHMQb88xpxiPKh6-ew\n EK-6: HHS/YÖS API Mimarisi \n HHS/YÖS API Uygulama Mimarisinde Test ve Üretim ortamlarında aşağıdaki alanda yer almaktadır. \n \n Şekil 15: HHS/YÖS API Mimarisi \n'},{title:"HHS ve YÖS API",frontmatter:{},regularPath:"/v1.0.2/contents/hhs-yos-api.html",relativePath:"v1.0.2/contents/hhs-yos-api.md",key:"v-0ec6f57d",path:"/v1.0.2/contents/hhs-yos-api.html",headers:[{level:2,title:"HHS API",slug:"hhs-api"},{level:2,title:"YOS API",slug:"yos-api"},{level:2,title:"Healthcheck API",slug:"healthcheck-api"}],content:' HHS ve YÖS API \n HHS API, HHS’lerin detay bilgilerini sunan servistir. Bu servis ile aşağıdaki istek/yanıt yapıları ile ihtiyaç duyulabilecek ilgili bilgiler temin edilebilir. HHS API için “hhs_read” scope bilgisi kullanılır. \n Production ortamında HHS / YOS API içerisinde sisteme dahil olmuş, sertifikasyonu başarı ile tamamlamış paydaşlar listelenecektir. HHS tarafından desteklenen API sürümleri listelenecektir. \n YÖS’ler HHS API’sini sorgulayabilir ancak YÖS API’sini sorgulayamazlar. \nBenzer şekilde HHS’ler YÖS API’sini sorgulayabilir, HHS API’sini sorgulayamazlar. \n HHS API \n GET /hhs/{hhsKod} \n İşlem Sorgu Örneği =  /hhs  ⇨  bu sorgu yöntemi ile tüm HHS’lerin dizi şeklinde verileri listelenir. \nİşlem Sorgu Örneği =  /hhs/2001   ⇨ bu sorgu yöntemi ile gönderilmiş olan hhsKodu’na ait bilgiler listelenir. Ya da “404 Not Found” hatası alır. \nHHS ve YÖS API Tablo 20’deki istek parametrelerine göre sorgulanabilir. \nİşlem Sorgu Örneği (Belirli Bir Hesap) =  /hhs?srlmKrtr=kod&srlmYon=A \n Tablo 20: HHS ve YÖS API Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek işlemlerin sıralama kriterini belirtir. Alabileceği değerler: {“kod”, “unvâ€
16} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, sıralama kriteri “unv” olarak belirlenmelidir. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler: A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 21: HHS Bilgileri Sorgulama Yanıtı “Hhs” nesnesi \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n hhs kodu \n kod \n AN4 \n Z \n HHS nin kod bilgisi \n \n \n hhs unvanı \n unv \n AN3..140 \n Z \n HHS nin unvan bilgisi \n \n \n hhs markası \n marka \n AN1..140 \n Z \n ÖHK\'nın kolaylıkla algılayabileceği kısa unvan bilgisi. HHS tarafından belirlenecektir. \n \n \n Açık anahtar \n acikAnahtar \n AN1..1024 \n Z \n HHS’nin mesaj imzalama için paylaştığı açık anahtar \n \n \n HHS Api Bilgileri \n apiBilgileri \n Kompleks: HhsApiBilgi[Array][0..N] \n Z \n Desteklenen Api ve sürüm bilgileri dönülecektir. \n \n \n > api \n api \n AN1..20 \n Z \n Api İsmi Örnek :obh, hbh,gkd \n \n \n > surum \n surum \n AN1..10 \n Z \n Api Sürüm Kodu Örnek: s1.0, s2.0 s1.0 \n \n \n Logo Bilgileri \n logoBilgileri \n Kompleks: LogoBilgisi [Array][1..N] \n Z \n HHS’ye ait logo bilgileri. Logotur = Original  formatındaki logonun minimumda gönderimi zorunludur. \n \n \n >logoTur \n logoTur \n AN3..50 \n Z \n Logonun türünü belirler. TR.OHVPS.DataCode.LogoTur alabileceği değerler  ORIGINAL , WHITE_OVERLAY , BLACK_OVERLAY , GRAY_OVERLAY \n \n \n > logoAdr \n logoAdr \n AN1..255 \n Z \n HHS tarafında tutulan ve YÖS’lerle paylaşılacak olan url adres bilgisidir. \n \n \n Durum \n durum \n AN1 \n Z \n HHS\'nin durum bilgisidir.  TR.OHVPS.DataCode.HHSDurumu sıralı veri tipinde alabileceği değerler belirtilmiştir. \n \n \n \n HHS API\'de; Açık, Yaygınlaştırma, Geçici Hizmet Veremiyor, Kapalı durumlarındaki HHS\'ler listelenecektir.  \nSertifikasyon onayı alan HHS\'ler, üretim ortamına geçişte "Yaygınlaştırma" durumuna sahip olabilir.  HHS\'nin, hangi YÖS\'ler ile "Yaygınlaştırma" kontrollerini yapacağı, HHS yönetiminde olacaktır. Böylece Üretim Ortamında HHS’nin kendisi tarafından tanımlanmış kısıtlı ÖHK’ya hizmet vermesi ve servislerini test etmesi sağlanabilir olacaktır. HHS\'ler kendi kurum kontrollerini yapana kadar, "Yaygınlaştırma" durumunda kalabilirler. HHS\'nin BKM\'ye yapacağı talep ile, HHS "Yaygınlaştırma" durumundan "Açık" durumuna geçebilecektir. \nHHS\'de olası bir teknik sorun olması durumunda, BKM - HHS koordinasyonu ile HHS durumu "Geçici Hizmet Veremiyor" haline getirilecektir. Sorun giderildiğinde "Açık" durumuna geri dönecektir. \n Hem YOS hem de HHS API için geçerli olacak; logo gönderiminde dikkat edilmesi gerekenler şu şekilde tariflenmiştir: \n \n Logoların ham dosya yerine kurumun yayınlayacağı bir URL üzerinden sunulması gerekmektedir. (Örn: logoURL  =  https://kurumadi.com.tr/logo.png) Logo BKM tarafında host edilmeyecektir.) \n PNG formatında (PNG-24) olmalıdır. \n 72 DPI çözünürlükte olmalıdır. \n 500 x 500 boyutlarında, yatayda veya dikeyde taşma paysız tam oturacak, sınır boyutlarını geçmeyecek ve ortalanmış yerleşime sahip olmalıdır. \n Logo arka planı renkli olmamalı, arka plan transparan olmalıdır. \n YÖS uygulamasında gösterim esnasında logoların hızlı yüklenmesi ve düşük veri tüketmesi açısından; logo boyutu 250 KB’ın altında olmalıdır. \n Dört adet logo türü belirlenmiştir. Bu 4 tür için de logo dönülmesi zorunludur. \n Logo url’in public erişilebilir url olması gereklidir. \n \n YÖS API, YÖS statüsundeki kurumların detay bilgilerini sunan servistir. Bu servis ile aşağıdaki istek/yanıt yapıları ile ihtiyaç duyulabilecek ilgili bilgiler temin edilebilir. YÖS API için “yos_read” scope bilgisi kullanılır. \n YÖS API yanıtında, listelenen yönlendirme ve bildirim adresleri bulunmaktadır. HHS, işlem anında iletilen yonAdr ya da bldrAdr alanlarında gönderilen adreslere yetKod değerini iletmelidir. YÖS API içerisinde yer alan adresleri, rıza isteğinde gönderilen adreslerin doğruluğunu kontrol etme amacıyla kullanılmalıdır. Bu nedenle YÖS API içerisinde listelenen adreslerin hostname seviyesinde yer alması yeterlidir. \n YOS API \n YÖS API içerisinde yer alan YÖS rol bilgileri ve aktiflik/pasiflik durumları birbiriyle ilişkili değildir. \n YÖS\'ün sahip olduğu öbhs,hbhs rolleri için herhangi bir fraud ya da teknik sebeplerden ötürü geçici süreyle geri alınabilir. \n YÖS aktifliğini korurken problem çözülene kadar geçici olarak alınan roller(öbhs,hbhs) tekrardan aktif hale getirilir. \n GET /yos/{yosKod} \n İşlem Sorgu Örneği =  /yos    bu sorgu yöntemi ile tüm yos lerin dizi şeklinde verileri listelenir. \n İşlem Sorgu Örneği =  /yos/2501    bu sorgu yöntemi ile gönderilmiş olan yosKodu’na ait bilgiler listelenir ya da “404 Not Found” hatası alır.\nYÖS API Tablo 20’deki istek parametrelerine göre sorgulanabilir.\nİşlem Sorgu Örneği (Belirli Bir Hesap)=  /yos?srlmKrtr=kod&srlmYon=A \n Tablo 22: YOS Bilgileri Sorgulama Yanıtı “Yos” nesnesi \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Yös kodu \n kod \n AN4 \n Z \n YÖS\'ün kod bilgisi \n \n \n Yös unvanı \n unv \n AN3..140 \n Z \n YÖS unvan bilgisi \n \n \n Yös markası \n marka \n AN1..140 \n Z \n ÖHK\'nın kolaylıkla algılayabileceği kısa unvan bilgisi. YÖS tarafından belirlenecektir. \n \n \n YÖS rolleri \n roller \n Array[AN4] \n Z \n YÖS’un rollerini belirten değer. Örnek: [ "obhs", "hbhs" ]  - obhs - Ödeme Bilgisi Hizmet Sağlayıcı Rolü  - hbhs - Hesap Bilgisi Hizmet Sağlayıcı Rolü \n \n \n Adresler \n adresler \n Kompleks:Adres[Array] [1..N] \n Z \n --- \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur sıralı veri türü değerlerlerinden birini alır. Adres detaylarının hangi GKD türüne ait olduğunu belirtir. \n \n \n >Adres Detayları \n adresDetaylari \n adresDetaylari\tKompleks: AdresDetayi[Array] [1..N] \n Z \n \n \n \n >>Temel Adres \n tmlAdr \n AN1..1024 \n Z \n yetYntm değeri “Y” olarak iletildiğinde Yönlendirmeli GKD sürecinde HHS’nin YOS’e authorizasyon kodunu hangi url e göndereceği bilgisini tutar. yetYntm değeri “A” olarak iletildiğinde Ayrık GKD sürecinde HHS’nin YOS’e authorizasyon kodunu hangi url e göndereceği bilgisini tutar. Riza isteklerinde bu değer ile uyumluluğu kontrol edilmelidir. Örnek: https://example.com https://example2.com/path deepLink://example/test deepLink://example2/test \n \n \n >>Açıklama \n aciklama \n AN1..1024 \n İ \n YÖS’ün gönderdiği adrese yönelik vermek istediği açıklama Örnek: WEB bireysel , WEB kurumsal  , APP \n \n \n Açık anahtar \n acikAnahtar \n AN1..1024 \n Z \n YÖS’ün mesaj imzalama için payla
16ştığı açık anahtar \n \n \n Logo Bilgileri \n logoBilgileri \n Kompleks: LogoBilgisi [Array][1..N] \n Z \n YOS’e ait logo bilgileri. Logotur = Original formatındaki logonun minimumda gönderimi zorunludur. \n \n \n >logoTur \n logoTur \n AN3..50 \n Z \n Logonun türünü belirler. TR.OHVPS.DataCode.LogoTur alabileceği değerler  ORIGINAL , WHITE_OVERLAY , BLACK_OVERLAY , GRAY_OVERLAY \n \n \n > logoAdr \n logoAdr \n AN1..255 \n Z \n YÖS tarafında tutulan ve HHS’lerle paylaşılacak olan url adres bilgisidir. Örnek: https://via.placeholder.com/150?text=0001 \n Healthcheck API \n GET /health \n HHS ve YÖS API için health servisleri aşağıdaki servislerle kontrol edilebilir. \n Başarılı yanıtta Http 200 kodu dönülecektir\nBaşarılı Yanıt: \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n status \n status \n AN2..20 \n Z \n “UP”, “DOWN” değerlerini alabilir \n \n \n \n'},{title:"Güçlü Kimlik Doğrulama",frontmatter:{},regularPath:"/v1.1.0/contents/erisim-belirteci.html",relativePath:"v1.1.0/contents/erisim-belirteci.md",key:"v-751f6acf",path:"/v1.1.0/contents/erisim-belirteci.html",headers:[{level:2,title:"Yetkilendirme Kodu API",slug:"yetkilendirme-kodu-api"},{level:2,title:"Erişim Belirteci API",slug:"erisim-belirteci-api"}],content:' Güçlü Kimlik Doğrulama  \n \n ÖHK\'nın YÖS uygulamasından HHS uygulamasına yönlendirilmesi ile başlanan güçlü kimlik doğrulama süreci,  Oauth 2.0 standartları gereği öncelikle yetkod değerinin YÖS\'e iletilmesi ile başlar ve erişim belirtecinin alınması sonucunda başarı ile sonuçlanmış olur. \n Güçlü Kimlik Doğrulama için Erişim Adresleri (Endpoints) \n Etki Alanı (Scope) =“hesap_bilgisi”  "odeme_emri" \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu (Z)/ İsteğe Bağlı(İ) \n Yetkilendirme Türü \n İmzalama \n Parametre \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n yetkilendirme-kodu \n GET \n /yetkilendirme-kodu \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n \n \n yetkilendirmeKodu \n \n \n 2 \n erisim-belirteci \n POST \n /erisim-belirteci \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n ErisimBelirteciIstegi \n ErisimBelirteci \n Yetkilendirme Kodu API \n GET /yetkilendirme-kodu \n Ayrık GKD sürecinde kullanılacak olan Yetkilendirme Kodu API\'nin  HHS tarafından sunulması gerekmektedir. \n Ayrık GKD akışında; HHS, YÖS\'ün olay dinleme servisine "AYRIK_GKD_BASARILI" olay tipi ile olay bildirimi yapar. Böylece ÖHK\'nın kendi sistemine başarı ile login olduğunu ve yetKod değerinin ÖHK ile ilişkilendirildiğinin bilgisini YÖS\'e iletmiş olur.  \nHHS olay bildirimi için retry policy süreçleri kapsamında 1 dakikada 3 kez deneme yapabilir. YÖS\'e olay bildirimi yapılmamış ise, kendisine gelmeyen olay bildirimi için yetkod\'un geçerli olduğu 5 dakika boyunca yetkilendirme-kodu endpointi ile sorgulama yaparak yetkod değerini alabilir. \n YÖS, "ODEME_EMRI_RIZASI" kaynağı için bildirim yapıldı ise; GET /yetkilendirme-kodu endpointi ile yetkod sorgusu yapılır. \nÖrnek çağrım :\n GET /yetkilendirme-kodu?rizaNo=123&rizaTip=O \n YÖS, "HESAP_BILGISI_RIZASI" kaynağı için bildirim yapıldı ise; GET /yetkilendirme-kodu endpointi ile yetkod sorgusu yapılır. \nÖrnek çağrım :\n GET /yetkilendirme-kodu?rizaNo=123&rizaTip=H \n İSTEK: \n YÖS, rıza numarasını ve isteğin ÖBH ya da HBH olmasına göre değişen rıza tipini parametre olarak istek talebine ekler. Rıza tipinin alabileceği değerler  TR.OHVPS.DataCode.RizaTip  sıralı veri tiplerinde belirtilmiştir. \n HHS\'nin, yetkilendirme yöntemi "Ayrık Gkd" ise  rıza numarası ile yetki kodu değerini dönmesi beklenmektedir. Yönlendirmeli GKD için bu endpoint "yetKod" değerini dönmemelidir. Yönlendirmeli GKD’ye ait bir rıza no ile yetkilendirme kodu API kullanılarak yet_kod alınmak istendiğinde HHS tarafından  TR.OHVPS.Resource.NotFound  hatası verilmelidir. \n YANIT: \n HHS yanıt nesnesi içerisinde, ÖHK\'ya ait yetki kodunu, rıza no ve rıza durumu ile birlikte YÖS\'e iletir. \n \n \n \n Alan Adı \n JSON Alan Adı \n Format:Veri modeli İsmi \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Yetki Kodu \n yetKod \n AN1..255 \n Z \n GKD sürecinde üretilen yetkilendirme kodudur. Tek kullanımlık olup, aynı yetKod ile birden fazla token alınamaz. yetKod Parametresinin yaşam ömrü 5 dakika olmalıdır. \n \n \n RızaNo \n rizaNo \n AN1..128 \n Z \n Rıza nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n \n Ayrık GKD sürecinde, yetkod değerini alan YÖS;
16 erişim belirteci API ile GKD sürecini tamamlar. \n Erişim Belirteci API \n POST /erisim-belirteci \n İSTEK: \n YÖS erisim-belirteci erişim adresini 2 amaçla kullanır: \n \n \n Bir önceki adımdan aldığı rizaNo, rizaTip (ödeme emri başlatma hizmetinde “O”, hesap bilgisi hizmetinde “H”) ve GKD sonrası dönülen yetKod bilgilerini kullanarak HHS nezdinde ErisimBelirteci nesnesi oluşturmak üzere istekte bulunur. YÖS’ün istekte bulunabilmesi için GKD adımının başarılı bir şekilde tamamlanması rizaDrm bilgisinin ‘yetkilendirildi’ olması gerekir. Erişim Belirteci nesnesi ile rızası nesnesi (Ödeme Emri Rızası veya Hesap Bilgisi Rızası) arasındaki ilişki rıza numarası üzerinden sağlanır. \n \n \n Aldığı erişim belirtecinin Geçerlilik Süresinin dolduğu durumda, yenileme belirteci karşılığında yeni bir erişim belirteci alması gerekmektedir. \n \n \n POST /erisim-belirteci isteğinin (REQUEST) gövdesinde (BODY)  “ErisimBelirteciIstegi” nesnesi (Tablo-23) kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “ErisimBelirteci” nesnesi (Tablo 24) oluşturulur veya (Yenileme Belirteci için) güncellenir. Rıza durumu “Yetki Kullanıldı” olarak güncellenir. \n Erişim Belirteci POST işlemi sonucunda HTTP 200 dönülmesi gerekmektedir. \n “ErisimBelirteciIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format:Veri modeli İsmi \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n RızaNo \n rizaNo \n AN1..128 \n Z \n Rıza nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n Rıza Tipi \n rizaTip \n AN1 \n Z \n O veya H (TR.OHVPS.DataCode.RizaTip) \n \n \n Yetki Tipi \n yetTip \n AN1..50 \n Z \n “yet_kod” yada “yenileme_belirteci” değerini alabilir.  (TR.OHVPS.DataCode.YetTip) \n \n \n Yetki Kodu \n yetKod \n AN1..255 \n K \n GKD işleminden dönen yetkilendirme kodudur. Tek kullanımlık olup, aynı yetKod ile birden fazla token alınamaz. yetKod Parametresinin yaşam ömrü 5 dakika olmalıdır. yetTip = “yet_kod” ise zorunludur. \n \n \n Yenilenme Belirteci \n yenilemeBelirteci \n AN1..4096 \n K \n Erişim belirtecinin yenilenmesi amacıyla kullanılır. yetTip = “yenileme_belirteci” ise kullanımı zorunludur. \n \n \n \n BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “erisimBelirteci” nesnesinde bulunan erişim belirteci değeri ödeme emrinin başlatılması esnasında kullanılır. \n "ErisimBelirteci" nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format:Veri modeli İsmi \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Erişim Belirteci \n erisimBelirteci \n AN1..4096 \n Z \n Yetkilendirme Kodu karşılığında HHS tarafından dönülen ve sonraki hesap bilgisi ve ödeme emri servislerine erişimde kullanılan bilgidir. Bölüm 3.6 Karakter Kodlama   bölümünde açıklanan karakter formatında gönderilmesi beklenmektedir. Yenileme belirteci ile birden fazla erişim belirteci alınması durumunda verilen tüm erişim belirteçlerinin süreleri bitene kadar geçerli olmalıdır. \n \n \n Geçerlilik Süresi \n gecerlilikSuresi \n N1..9 \n Z \n Erişim Belirtecini saniye cinsinden geçerlilik süresidir.  Erişim belirteci geçerli olduğu son tarih ; Hesap Bilgisi Rızası için en fazla 30 gün en az ise 1 gün olmalıdır.  Erişimin Geçerli Olduğu Son Tarih(erisimIzniSonTrh); Erişim Belirteci Geçerlilik Süresi\'nden küçük ise Erişimin Geçerli Olduğu Son Tarih değeri ile sınırlıdır. Ödeme Emri Rızası için 5 dakika olmalıdır. \n \n \n Yenileme Belirteci \n yenilemeBelirteci \n AN1..4096 \n Z \n Erişim belirtecinin yenilenmesi amacıyla kullanılır.   Bölüm 3.6 Karakter Kodlama  bölümünde açıklanan karakter formatında gönderilmesi beklenmektedir.  Yenileme Belirteci ile Erişim Belirteci isteği yapıldığında HHS\'nin döndüğü yanıt içerisindeki yenilemeBelirteci değerini kesinlikle değiştirmemesi gerekmektedir.Yenileme belirteci rıza süresi boyunca güncellenmemelidir. \n \n \n Yenileme Belirteci Geçerlik Süresi \n yenilemeBelirteciGecerlilikSuresi \n N1..9 \n Z \n Yenileme belirtecinin saniye cinsinden geçerlilik süresidir. Yenileme belirtecinin geçerli olduğu son tarih ; Hesap Bilgisi için Erişimin Geçerli Olduğu Son Tarih ile sınırlı olmalıdır. Bu tarih geldiği zaman Hesap Bilgisi Rıza Durumunu ”Yetki Sonlandırıldı” statüsüne çekilmesi gerekir. Ödeme Başlatma için Rıza Oluşturma Zamanından 15 gün sonrası olmalıdır. 15 gün süresi sorgulama servislerinin çağrımını destekleyecek şekilde uzun tutulmuştur. İleri vadeli işlemler bu kapsamda değildir.  Ödeme emri 5 dakika içinde gerçekleştirilmelidir. Gerçekleşmediğinde 4.2.8 bölümünde aktarılan rıza statü güncellemesi yapılmalıdır. \n \n \n \n erisim-belirteci erisim noktasından elde edilen erisimBelirteci, ilişkilendirildiği nesne veya işlem için gönderilen POST isteği başlığında x-access-token alanında iletilir. \n Yenilenme Belirteci (refreshToken) kullanılarak Erişim Belirteci (accessToken) alındığında, döne
16n yanıttaki Yenileme Belirteci Geçerlik Süresi (yenilemeBelirteciGecerlilikSuresi) geçen süre eksiltilerek, kalan zamanın saniye cinsinden hesaplanmasıyla iletilmelidir. \n Erişim Belirteci API çağrımı sırasında rıza durumları kontrol edilmelidir. Bu kontrollerin nasıl yapılması gerektiği 4-Rıza Durumları bölümünde aktarılmıştır. \n Yenileme belirteci karşılığında yeni bir erişim belirteci alınması sırasında HHS\'nin döndüğü hata yanıtında httpCode = 401 ve errorCode = "TR.OHVPS.Connection.InvalidToken" gelirse YÖS önce rızanın durumu sorgulamalıdır.  \nEğer geçerli bir rıza ise; HHS veya YÖS tarafında bir sorun olduğu anlaşılmalıdır. Sistem tarafından hata üretilmeli ve sorun incelenmelidir. \nEğer geçerli bir rıza değil ise YÖS tarafındaki rıza durumu güncellenmelidir. \n'},{title:"HHS ve YÖS API",frontmatter:{},regularPath:"/v1.1.0/contents/hhs-yos-api.html",relativePath:"v1.1.0/contents/hhs-yos-api.md",key:"v-9cc354c6",path:"/v1.1.0/contents/hhs-yos-api.html",headers:[{level:2,title:"HHS API",slug:"hhs-api"},{level:2,title:"YOS API",slug:"yos-api"}],content:" HHS ve YÖS API \n HHS API, HHS’lerin detay bilgilerini sunan servistir. Bu servis ile aşağıdaki istek/yanıt yapıları ile ihtiyaç duyulabilecek ilgili bilgiler temin edilebilir. HHS API için “hhs_read” scope bilgisi kullanılır. \n Production ortamında HHS / YOS API içerisinde sisteme dahil olmuş, sertifikasyonu başarı ile tamamlamış paydaşlar listelenecektir. HHS tarafından desteklenen API sürümleri listelenecektir. \n YÖS’ler HHS API’sini sorgulayabilir ancak YÖS API’sini sorgulayamazlar. \nBenzer şekilde HHS’ler YÖS API’sini sorgulayabilir, HHS API’sini sorgulayamazlar. \n HHS API \n GET /hhs/{hhsKod} \n İşlem Sorgu Örneği =  /hhs  ⇨  bu sorgu yöntemi ile tüm HHS’lerin dizi şeklinde verileri listelenir. \nİşlem Sorgu Örneği =  /hhs/2001   ⇨ bu sorgu yöntemi ile gönderilmiş olan hhsKodu’na ait bilgiler listelenir. Ya da “404 Not Found” hatası alır. \nHHS ve YÖS API Tablo 20’deki istek parametrelerine göre sorgulanabilir. \nİşlem Sorgu Örneği (Belirli Bir Hesap) =  /hhs?srlmKrtr=kod&srlmYon=A \n Tablo 20: HHS ve YÖS API Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek işlemlerin sıralama kriterini belirtir. Alabileceği değerler: {“kod”, “unv”} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, sıralama kriteri “unv” olarak belirlenmelidir. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler: A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 21: HHS Bilgileri Sorgulama Yanıtı “Hhs” nesnesi \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n hhs kodu \n kod \n AN4 \n Z \n HHS nin kod bilgisi \n \n \n hhs unvanı \n unv \n AN3..140 \n Z \n HHS nin unvan bilgisi \n \n \n hhs markası \n marka \n AN1..140 \n Z \n ÖHK'nın kolaylıkla algılayabileceği kısa unvan bilgisi. HHS tarafından belirlenecektir. \n \n \n Açık anahtar \n acikAnahtar \n AN1..1024 \n Z \n HHS’nin mesaj imzalama için paylaştığı açık anahtar \n \n \n HHS Api Bilgileri \n apiBilgileri \n Kompleks: HhsApiBilgi[Array][0..N] \n Z \n Desteklenen Api ve sürüm bilgileri dönülecektir. \n \n \n > api \n api \n AN1..20 \n Z \n Api İsmi Örnek :obh, hbh,gkd \n \n \n > surum \n surum \n AN1..10 \n Z \n Api Sürüm Kodu Örnek: s1.0, s2.0 s1.0 \n \n \n Logo Bilgileri \n logoBilgileri \n Kompleks: LogoBilgisi [Array][1..N] \n Z \n HHS'ye ait logo bilgileri. \n \n \n > logoTur \n logoTur \n AN3..50 \n Z \n Logonun türünü belirler. TR.OHVPS.DataCode.LogoTur sıralı veri türü değerlerlerinden birini alır. \n \n \n > logoAdr \n logoAdr \n AN1..255 \n Z \n HHS tarafında tutulan ve YÖS'lerle paylaşılacak olan url adres bilgisidir.  Örnek: https://via.placeholder.com/150?text=0001 \n \n \n > logoArkaPlan \n logoArkaPlan \n AN1 \n Z \n TR.OHVPS.DataCode.LogoArkaPlan sıralı veri türü değerlerlerinden birini alır. \n \n \n > logoFormat \n logoFormat \n AN3 \n Z \n TR.OHVPS.DataCode.LogoFormat sıralı veri türü değerlerlerinden birini alır. \n \n \n Ayrık GKD \n ayrikGKD \n AN1 \n Z \n HHS'nin Ayrık GKD desteklediğini BKM'ye bildirmesi 
16ile bu alan E değerini alır.  TR.OHVPS.DataCode.EvetHayir sıralı veri tiplerinden birini alır. \n \n \n Durum \n durum \n AN1 \n Z \n HHS'nin durum bilgisidir.  TR.OHVPS.DataCode.HHSDurumu sıralı veri tipinde alabileceği değerler belirtilmiştir. \n \n \n \n HHS API'de; Açık, Yaygınlaştırma, Geçici Hizmet Veremiyor, Kapalı durumlarındaki HHS'ler listelenecektir.  \nSertifikasyon onayı alan HHS'ler, üretim ortamına geçişte \"Yaygınlaştırma\" durumuna sahip olabilir.  HHS'nin, hangi YÖS'ler ile \"Yaygınlaştırma\" kontrollerini yapacağı, HHS yönetiminde olacaktır. Böylece Üretim Ortamında HHS’nin kendisi tarafından tanımlanmış kısıtlı ÖHK’ya hizmet vermesi ve servislerini test etmesi sağlanabilir olacaktır. HHS'ler kendi kurum kontrollerini yapana kadar, \"Yaygınlaştırma\" durumunda kalabilirler. HHS'nin BKM'ye yapacağı talep ile, HHS \"Yaygınlaştırma\" durumundan \"Açık\" durumuna geçebilecektir. \n Aşağıdaki durumlarda HHS'nin statüsü Geçici Kapalı olarak güncellenebilecektir: \n \n HHS'nin talebi ile uzun süreli (minimum 1 saati aşan) yaşanan teknik sorunlarda G statüsüne alınabilecektir. G statüsüne alınma talebinin HHS tarafından [email protected] ye mail atarak iletilmesi beklenmektedir. \n İlgili resmi kurumlardan gelen talep üzerine HHS G statüsüne alınabilir. \n \n YÖS'ler hem A hem G statüsünde olan HHS'leri listeleyebilir. Ancak YÖS uygulamasında G statüsünde olan bir HHS müşteri tarafından seçilirse müşteriye gerekli hata mesajının verilmesi ve ilgili HHS'ye istek atılmaması sağlanmalıdır. \n Hem YOS hem de HHS API için geçerli olacak; logo gönderiminde dikkat edilmesi gerekenler şu şekilde tariflenmiştir: \n \n Logoların ham dosya yerine kurumun yayınlayacağı bir URL üzerinden sunulması gerekmektedir. (Örn: logoURL = https://kurumadi.com.tr/logo.png) Logo BKM tarafında host edilmeyecektir. \n Logo url’in public erişilebilir url olması gereklidir. \n Logo, yatayda veya dikeyde taşma paysız tam oturacak, sınır boyutlarını geçmeyecek ve ortalanmış yerleşime sahip olmalıdır. \n YÖS uygulamasında gösterim esnasında logoların hızlı yüklenmesi ve düşük veri tüketmesi açısından; logo boyutu 250 KB’ın altında olmalıdır. \n HHS ve YÖS’lerin tüm logo türlerini (8 farklı tipte logoyu) zorunlu olarak dönmesi beklenmektedir. \n Circle logo kullanılması gerektiğinde ICON_LOGO logo türü kullanılmalıdır. \n Logolarını güncellemek isteyen kurumların en az 3 iş günü öncesinde BKM’ye bu değişikliği GEÇİT Test/Üretim Ortamı Entegrasyon formu ile bildirmesi gereklidir.  BKM de katılımcılara HHS/YÖS API aracılığı ile güncel logonun çekilmesi gerektiğine dair bilgilendirme yapar. \n Logoları anlık çeken katılımcıların, herhangi bir teknik nedenden dolayı güncel logoyu alamadığı durum olabilir. Bu durumda sistemlerine kaydetmiş olduğu kuruma ait ikon logoyu göstermesi gereklidir. \n HHS ve YÖS’ler API aracılığı ile almış oldukları logoların formatı üzerinde değişiklik (kare, yuvarlak hale getirip resize etmek gibi) yapabilirler. Ancak logonun görsel ve yazılarını etkileyecek bir  değişiklik yapmamalıdırlar. \n YÖS/HHS mobil uygulamasındaki dark mode ve light mode kullanımlarında, hangi logonun kullanılacağına uygulama sahibi karar verecektir. \n YOS API \n YÖS API, YÖS statüsundeki kurumların detay bilgilerini sunan servistir. Bu servis ile aşağıdaki istek/yanıt yapıları ile ihtiyaç duyulabilecek ilgili bilgiler temin edilebilir. YÖS API için “yos_read” scope bilgisi kullanılır. \n YÖS API yanıtında, listelenen yönlendirme ve bildirim adresleri bulunmaktadır. HHS, işlem anında iletilen yonAdr ya da bldrAdr alanlarında gönderilen adreslere yetKod değerini iletmelidir. YÖS API içerisinde yer alan adresleri, rıza isteğinde gönderilen adreslerin doğruluğunu kontrol etme amacıyla kullanılmalıdır. Bu nedenle YÖS API içerisinde listelenen adreslerin hostname seviyesinde yer alması yeterlidir. \n YÖS API içerisinde yer alan YÖS rol bilgileri ve aktiflik/pasiflik durumları birbiriyle ilişkili değildir. \n YÖS'ün sahip olduğu öbhs,hbhs rolleri için herhangi bir fraud ya da teknik sebeplerden ötürü geçici süreyle geri alınabilir. \n YÖS'lerin hizmet verememesi durumunda rollerinin ger
16i alınması yapılmayacaktır. YÖS rolleri sadece ilgili resmi kurumlardan gelen talep üzerine alınabilecektir. \n YÖS aktifliğini korurken problem çözülene kadar geçici olarak alınan roller(öbhs,hbhs) tekrardan aktif hale getirilir. \n GET /yos/{yosKod} \n İşlem Sorgu Örneği =  /yos  ⇨  bu sorgu yöntemi ile tüm YÖS'lerin dizi şeklinde verileri listelenir. \n İşlem Sorgu Örneği =  /yos/2501  ⇨  bu sorgu yöntemi ile gönderilmiş olan yosKodu’na ait bilgiler listelenir ya da “404 Not Found” hatası alır.\nYÖS API Tablo 20’deki istek parametrelerine göre sorgulanabilir.\nİşlem Sorgu Örneği (Belirli Bir Hesap)=  /yos?srlmKrtr=kod&srlmYon=A \n Tablo 22: YOS Bilgileri Sorgulama Yanıtı “Yos” nesnesi \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Yös kodu \n kod \n AN4 \n Z \n YÖS'ün kod bilgisi \n \n \n Yös unvanı \n unv \n AN3..140 \n Z \n YÖS unvan bilgisi \n \n \n Yös markası \n marka \n AN1..140 \n Z \n ÖHK'nın kolaylıkla algılayabileceği kısa unvan bilgisi. YÖS tarafından belirlenecektir. \n \n \n YÖS rolleri \n roller \n Array[AN4] \n Z \n YÖS’un rollerini belirten değer. Örnek: [ \"obhs\", \"hbhs\" ]  - obhs - Ödeme Bilgisi Hizmet Sağlayıcı Rolü  - hbhs - Hesap Bilgisi Hizmet Sağlayıcı Rolü \n \n \n Adresler \n adresler \n Kompleks:Adres[Array] [1..N] \n Z \n --- \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur sıralı veri türü değerlerlerinden birini alır. Adres detaylarının hangi GKD türüne ait olduğunu belirtir. \n \n \n > Adres Detayları \n adresDetaylari \n adresDetaylari\tKompleks: AdresDetayi[Array] [1..N] \n Z \n \n \n \n >> Temel Adres \n tmlAdr \n AN1..1024 \n Z \n yetYntm değeri “Y” olarak iletildiğinde Yönlendirmeli GKD sürecinde HHS’nin YOS’e authorizasyon kodunu hangi url e göndereceği bilgisini tutar. yetYntm değeri “A” olarak iletildiğinde Ayrık GKD sürecinde HHS’nin YOS’e authorizasyon kodunu hangi url e göndereceği bilgisini tutar. Riza isteklerinde bu değer ile uyumluluğu kontrol edilmelidir. Örnek: https://example.com https://example2.com/path deepLink://example/test deepLink://example2/test \n \n \n >> Açıklama \n aciklama \n AN1..1024 \n İ \n YÖS’ün gönderdiği adrese yönelik vermek istediği açıklama Örnek: WEB bireysel , WEB kurumsal  , APP \n \n \n Açık anahtar \n acikAnahtar \n AN1..1024 \n Z \n YÖS’ün mesaj imzalama için paylaştığı açık anahtar \n \n \n YÖS Api Bilgileri \n apiBilgileri \n Kompleks: YosApiBilgi[Array][0..N] \n Z \n Desteklenen Api ve sürüm bilgileri dönülecektir. \n \n \n > api \n api \n AN1..20 \n Z \n Api İsmi Örnek :ods \n \n \n > surum \n surum \n AN1..10 \n Z \n Api Sürüm Kodu Örnek: s1.0, s2.0 s1.0 \n \n \n Logo Bilgileri \n logoBilgileri \n Kompleks: LogoBilgisi [Array][1..N] \n Z \n YOS’e ait logo bilgileri. \n \n \n > logoTur \n logoTur \n AN3..50 \n Z \n Logonun türünü belirler. TR.OHVPS.DataCode.LogoTur sıralı veri türü değerlerlerinden birini alır. \n \n \n > logoAdr \n logoAdr \n AN1..255 \n Z \n YÖS tarafında tutulan ve HHS’lerle paylaşılacak olan url adres bilgisidir.  Örnek: https://via.placeholder.com/150?text=0001 \n \n \n > logoArkaPlan \n logoArkaPlan \n AN1 \n Z \n TR.OHVPS.DataCode.LogoArkaPlan sıralı veri türü değerlerlerinden birini alır. \n \n \n > logoFormat \n logoFormat \n AN3 \n Z \n TR.OHVPS.DataCode.LogoFormat sıralı veri türü değerlerlerinden birini alır. \n \n \n Durum \n durum \n AN1 \n Z \n YÖS'ün durum bilgisidir.  TR.OHVPS.DataCode.YOSDurumu sıralı veri tipinde alabileceği değerler belirtilmiştir. \n \n \n \n"},{title:"7.\tHesap Bilgisi Hizmeti",frontmatter:{},regularPath:"/v1.1.0/contents/hesap-bilgisi-hizmeti.html",relativePath:"v1.1.0/contents/hesap-bilgisi-hizmeti.md",key:"v-553c6446",path:"/v1.1.0/contents/hesap-bilgisi-hizmeti.html",headers:[{level:2,title:"Genel Bilgiler",slug:"genel-bilgiler"},{level:2,title:"Hesap Bilgisi Hizmeti İçin Erişim Adresleri",slug:"hesap-bilgisi-hizmeti-icin-erisim-adresleri"}
16,{level:2,title:"ADIM 0: ÖHK'nın hesap bilgilerine erişim için talepte bulunması:",slug:"adim-0-ohk-nın-hesap-bilgilerine-erisim-icin-talepte-bulunması"},{level:2,title:"7.1 ADIM 1: Hesap Bilgisi Rızasının Hazırlanması",slug:"_7-1-adim-1-hesap-bilgisi-rızasının-hazırlanması"},{level:3,title:"POST /hesap-bilgisi-rizasi",slug:"post-hesap-bilgisi-rizasi"},{level:3,title:"Başarılı İstek:",slug:"basarılı-istek"},{level:3,title:"Başarılı Yanıt:",slug:"basarılı-yanıt"},{level:2,title:"İzinler",slug:"izinler"},{level:2,title:"7.2 ADIM 2: Hesap Bilgisi Hizmeti Rızasının Tesisi",slug:"_7-2-adim-2-hesap-bilgisi-hizmeti-rızasının-tesisi"},{level:2,title:"7.3 ADIM 2.1: Hesap Bilgisi Rızasının Sorgulanması",slug:"_7-3-adim-2-1-hesap-bilgisi-rızasının-sorgulanması"},{level:2,title:"7.4 ADIM 2.2: Hesap Bilgisi Rızasının İptali",slug:"_7-4-adim-2-2-hesap-bilgisi-rızasının-iptali"},{level:2,title:"7.5 ADIM 3: Hesap Bilgilerinin Alınması",slug:"_7-5-adim-3-hesap-bilgilerinin-alınması"},{level:2,title:"7.6 ADIM 3.1 ve 3.2: Hesap Bilgilerinin Sorgulanması",slug:"_7-6-adim-3-1-ve-3-2-hesap-bilgilerinin-sorgulanması"},{level:2,title:"7.7 ADIM 3.3 ve 3.4: Hesap Bakiyesinin Sorgulanması",slug:"_7-7-adim-3-3-ve-3-4-hesap-bakiyesinin-sorgulanması"},{level:2,title:"7.8 ADIM 3.5 ve 3.6: İşlemlerin Sorgulanması",slug:"_7-8-adim-3-5-ve-3-6-islemlerin-sorgulanması"}],content:" 7.\tHesap Bilgisi Hizmeti  \n Genel Bilgiler \n Hesap bilgisi sorgulama için HBHS tarafından müşteri rızası tesisinin HHS tamamlanmış olması gerekir. Müşteri rızası tesisi tamamlandıktan sonra, HBHS sorgulamak istediği hesaba ait verileri ilgili erişim adresi üzerinden sorgular. \n \n \n Şekil 10: Hesap Bilgisi Hizmeti Üst Düzey Akışı \n Şekil-10’da sunulan hesap bilgisi hizmeti 5 temel akıştan oluşur: \n 0.\tMüşterinin hesap bilgilerine erişim için talepte bulunması:  ÖHK ÖBHS mobil uygulama ya da web sitesinden hesap bilgilerine erişim işlemini başlatır. \n 1.\tHesap Bilgisi müşteri rızasının hazırlanması: \n HBHS, “hesap bilgilerine erişim” için müşteri rızası tesisi amacıyla HHS’deki hesap bilgisi rızası erişim adresine bir POST isteğinde bulunur ve bir hesap bilgisi rızası nesnesi oluşturur. HHS hesap bilgisi rızası nesnesi için biricik tanımlayacı döner (RızaNo). Hesap bilgisi rızası, müşterinin HBHS’nin hesap bilgilerine erişim izin verdiği alanları içerir: \n \n İzinler - erişim için izin verilen veri kümelerinin listesi. \n Erişimin Geçerli Olduğu Son Tarih - HBHS'nin müşterinin hesap bilgilerine erişebileceği isteğe bağlı seçilebilen son tarih. \n İşlem Sorgulama Başlangıç Zamanı – Müşteri rızasının tesisinden itibaren geriye dönük olarak HBHS’nin hesap bilgilerine erişebileceği süreyi \n İşlem Sorgulama Bitiş Zamanı - Müşteri rızasının tesisinden itibaren ileriye dönük olarak HBHS’nin hesap bilgilerine erişebileceği süreyi \n \n 2.\tHesap bilgisi hizmeti müşteri rızasının tesisi: \n HHS, Hesap Bilgisi Rızası servisi ile ÖHK özelinde “Yetki bekleniyor” statüsünde bir rıza nesnesi hazırlar. HHS, GKD’nin başarıyla tamamlanması sonrasında hesap bilgisi rızası nesnesinin yetkilendirildiğini belirtmek için Rıza Durumunu “Rıza Yetkilendirildi” olarak günceller. Nesne yetkilendirildikten sonra HHS nesne ile bir erişim belirteci (access token) ilişkilendirir, Rıza Durumunu “Yetki Kullanıldı” yapar ve bu belirteci HBHS’ye geri döner.  Böylece müşteri rıza tesisi sağlanmış olur. \n Hesap bilgisi için müşteri rızasına ilişkin temel ilkeler şunlardır: \n \n 1 ÖHK'nın 1 YÖS için 1HHS'de Yetki Bekleniyor, Yetkilendirildi, Yetki Kullanıldı statüsünde 1 rızası olabilir. \n Müşteri rızasının ayrıntıları ÖHK ile HBHS arasında belirlenir. Bu nedenle müşteri rızasının ayrıntıları HHS ekranında değiştirilmemelidir. \n ÖHK, hesap erişim izni ayrıntılarını yalnızca bir bütün olarak yetkilendirebilir veya geri alabilir. \n Müşteri rızası tesisi esnasında, müşteri HHS arayüzünde erişim için yetkilendirecek hesapları seçer. \n Ödeme Sistemine doğrudan katılımcı olmayan HHS'ler, müşterilerine IBAN hizmeti sunmayabildikleri için hesap referansı ile akışlarını kurgulayabilirler. YÖS önyüzlerinde yapılan bilgilendirmelerde, IBAN harici hesap referansı ile işlem yapılabilmesine dikkat edilmelidir. \n \n 2.1\tHesap bilgisi rızasının sorgulanması:  Müşteri rızası  GET/hesap-bilgisi-rizasi/{RizaNo}  çağrısı yapılarak sorgulanır. \n 2.2\tHesap bilgisi müşteri rızasının iptali:  Müşteri rızası  DELETE/hesap-bilgisi-rizasi/{RizaNo}
16  çağrısı yapılarak iptal edilir. \n 3.\tHesap bilgilerinin alınması:  Hesap bilgileri ilgili kaynağa (hesaplar, bakiye, işlemler) GET isteği yapılarak gerçekleştirilir. HBHS, müşteri rızasının tesisinden sonrasında (geçerli bir erişim belirticine sahip olduğunda) öncelikle  GET/hesaplar  çağrısı yapacaktır. \n Nezdinde ödeme hesabı bulunduran hesap hizmeti sağlayıcılar(Banka, EPK, Ödeme Kuruluşları) müşterilerine ait hesapları hesap referansı ya da hesap numarası üzerinden takip etmektedir. YÖS'lerin HBH servisleri için hesap referansı veya hesap numarası üzerinden işlem yapılabileceğini bilmeleri, sistemlerini API dokümanında belirtilen akışlara göre uyumlandırmaları ve müşteri bilgilendirmesini (önyüzlerinde hesap no ve hesap referansı ayrımını gözeterek) buna paralel yapmaları beklenmektedir. \n Hesap Bilgisi Hizmeti İçin Erişim Adresleri \n Etki Alanı (Scope) =“hesap_bilgisi” \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu / İsteğe Bağlı \n Yetkilendirme Türü \n İmzalama \n Parametre \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n hesap-bilgisi-rizasi \n POST \n /hesap-bilgisi-rizasi \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n HesapBilgisiRizasiIstegi \n HesapBilgisiRizasi \n \n \n 2 \n erisim-belirteci  (GKD için) \n POST \n /erisim-belirteci \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n ErisimBelirteciIstegi \n ErisimBelirteci \n \n \n 2.1 \n hesap-bilgisi-rizasi \n GET \n /hesap-bilgisi-rizasi/{RizaNo} \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n \n \n HesapBilgisiRizasi \n \n \n 2.2 \n hesap-bilgisi-rizasi \n DELETE \n /hesap-bilgisi-rizasi/{RizaNo} \n Z \n İstemci Kimlik Bilgileri \n \n \n \n \n \n \n 3.1 \n hesaplar \n GET \n /hesaplar \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama \n \n HesapBilgileri(birden çok hesap) \n \n \n 3.2 \n hesaplar \n GET \n /hesaplar/{hspRef} \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n \n \n HesapBilgileri(tek  hesap) \n \n \n 3.3 \n bakiye \n GET \n /hesaplar/{hspRef}/bakiye \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n \n \n BakiyeBilgileri(tek  hesap) \n \n \n 3.4 \n bakiye \n GET \n /bakiye \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama \n \n BakiyeBilgileri(birden çok hesap) \n \n \n 3.5 \n islemler \n GET \n /hesaplar/{hspRef}/işlemler \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama Filtreleme \n \n IslemBilgileri (tek hesap) \n \n \n \n Tablo 11: Hesap Bilgisi Hizmeti İçin Erişim Adresleri \n ADIM 0: ÖHK'nın hesap bilgilerine erişim için talepte bulunması: \n ÖHK, HBHS uygulamasında (web arayüzü/mobil uygulama) hesap bilgilerine erişim için talepte bulunur. \n 7.1 ADIM 1: Hesap Bilgisi Rızasının Hazırlanması \n Bu API çağrısı HBHS'nin HHS'de yeni bir “HesapBilgisiRizasi” nesnesi oluşturmasını ve nesneye erişmek için benzersiz bir rıza numarası ({RizaNo}) dönülmesini sağlar. \n API çağrısının başarıyla sonuçlanması için HBHS'nin istemci kimlik bilgileri yetkisi kullanması yeterlidir.\nBaşarıyla oluşturulan hesap bilgisi rıza kaynağının rıza durumu “Yetki Bekleniyor” olarak düzenlenir.\nÖHK daha önce aldığı rızaya ilişkin erişim tarihleri, izin türlerini ve hesap bilgilerini güncellemek isterse, HBHS önce HHS nezdindeki rızayı iptal etmeli ve sonrasında yeni bir rıza talebinde bulunmalıdır.\n \n \n Şekil 11: Hesap Bilgisi Müşteri Rızasının Hazırlanması \n \n \n Sürüm 1.1.0 için POST /hesap-bilgisi-rizasi isteğinde 06- Anlık Bakiye Bildirimi izin türü için YÖS’ün BAKİYE kaynak tipinde olay abonelik kaydının olması gerekmektedir. BAKİYE kaynak tipinde olay abonelik kaydı olmayan YÖS kurumu ; sürüm 1.1.0 için 06 izin türünü kapsayan Hesap Bilgisi Rızası isteği gönderdiğinde HHS tarafından  TR.OHVPS.Business.EventSubscriptionNotFound  hatası verilmeli ve rıza oluşturulmamalıdır. \n \n \n POST /hesap-bilgisi-rizasi isteğinin (REQUEST) gövdesinde (BODY)  “HesapBilgisiRizasıIstegi” nesnesi (Tablo-12) kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “HesapBilgisiRizasi” (Tablo-13) nesnesi oluşturulur. \n  POST /hesap-bilgisi-rizasi \n Başarılı İstek: \n İSTEK: \n HBHS, bu API erişim adresinden HHS’ye yeni bir HesapBilgisiRizasi oluşturulması için istekte bulunur: \n \n HBHS, ÖHK’nın hesap bilgilerine yönelik rıza başlatma isteği olduğunu HHS’ye bildirir. \n HBHS, ÖHK’nın, HBHS arayüzünden verdiği rızanın (“Ön Onay”) bir kopyasının HHS nezdinde müşteri tarafından onaylanması için HHS’ye gönderilmesini sağlar. \n HHS; istek mesajında yer alan alanların API dökümanında belirtilen şartları sağlayacak şekilde zorunluluk ve uzunluk kontrollerini y
16apar. (Zorunlu) \n HHS; YÖS API ile alınan HBHS bilgilerinin içerisinde yer alan yönlendirme adresleri ile hesap bilgisi rızası nesnesi request mesajında paylaşılan adreslerin uyumlu olup olmadığının kontrollerini yapar. (Zorunlu) \n HHS; kimlik bilgileri nesnesinde iletilen kimlik bilgileri ile ÖHK’nın HHS müşterisi olup olmadığının kontrollerini yapar. Bu kontrol hem bireysel hem de kurumsal ÖHK’lar için yapılmalıdır.  (Zorunlu) \n Erişimin Geçerli Olduğu Son Tarih, İşlem Sorgulama Başlangıç Zamanı, İşlem Sorgulama Bitiş Zamanı alanları ile ilgili Tablo 12’de belirtilen kontroller yapılmalıdır. (Zorunlu) \n HHS, benzersiz “RizaNo” ile “HesapBilgisiRizasi” nesnesi oluşturur ve HBHS’ye döner. \n HHS, HesapBilgisiRizasi oluşturduğu anda durumunu “Yetki Bekleniyor” olarak düzenler. \n \n Erişimin Geçerli Olduğu Son Tarih, İşlem Sorgulama Başlangıç Zamanı, İşlem Sorgulama Bitiş Zamanı alanlarında zaman aralıkları müşteri deneyimi penceresinden değerlendirilerek ay cinsinden belirtilmiştir. Bu konuda aşağıdaki gibi oluşabilecek uç örneklere dikkat edilmesi gerekmektedir. \n Yeni günün başlangıç saatinin 00:00:00 olduğu kabul edilmiştir. \n Bugün : 31.08.2019 \nBugün + 6 Ay : 01.03.2020 00:00:00 (29.02.2020 tüm gün dahildir.) \nBugün : 30.08.2020 \nBugün + 6 Ay : 01.03.2020 00:00:00 (28.02.2021 tüm gün dahildir.) \nBugün : 30.09.2022 \nBugün + 3 Ay : 01.01.2023 00:00:00 (30.12.2022 tüm gün dahildir.) \nBugün : 14.07.2022 \nBugün + 3 Ay : 15.10.2022 00:00:00 (14.10.2022 tüm gün dahildir.) \n Tablo 12: “HesapBilgisiRizasiIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Hata durumunda TR.OHVPS.Connection.InvalidASPSP hata kodunu döner. \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder.  Hata durumunda TR.OHVPS.Connection.InvalidTPP hata kodunu döner. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n >Yetkilendirme Yöntemi \n yetYntm \n AN1 \n İ \n TR.OHVPS.DataCode.GkdTur sıralı veri türü değerlerinden birini alır.   Yetkilendirme yöntemi, HBHS tarafından belirtilmeyebilir. \n HHS, HBHS’nin belirlediği yöntemi dikkate alarak süreci ilgili akışa uygun olarak devam ettirir. Desteklemediği yöntem için (örn: Ayrık GKD) ayrıca hata mesajı verilmelidir. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu.  YÖS’ün ileteceği adrestir.   Durum kodu(drmKod), yönlendirme adresine parametre olarak eklenmelidir. \n HHS, müşteri uygulama / tarayıcısını bu alanda belirtilen adrese yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n yetYntm = A gönderilmiş ise ayrikGkd nesnesinin dolu gönderilmesi zorunludur.   HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder.  Bknz: Ayrık GKD \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir.  TR.OHVPS.DataCode.OHKTanimTip  sıralı veri tiplerinden birini alır. \n \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir. \n \n \n \n Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n > Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur sıralı veri türü değerlerinden birini alır.   Kurum adına yapılan(ticari) işlemlerde kurum kullanıcısının bilgisi iletilmelidir. \n \n \n \n > Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır.   TR.OHVPS.DataCode.KimlikTur değerine göre uzunluk ve formatı değişir.   Kurum adına yapılan(ticari) işlemlerde kurum kullanıcısının bilgisi iletilmelidir. \n \n \n \n > Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür.  TR.OHVPS.DataCode.KurumKimlikTur sıralı veri türü değerlerinden birini alır. \n \n \n \n > Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.  TR.OHVPS.DataCode.KurumKimlikTur değerine göre uzunluk ve formatı değişir. \n \n \n \n > Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur sıralı veri türü değerlerinden birini alır (B: Bireysel, K:Kurumsal) \n \n \n \n Hesap Bilgisi \n hspBlg \n Kompleks: HesapBilgisi \n Z \n \n \n \n \n >İzin Bilgisi \n iznBlg \n Kompleks: IzinBilgisi \n Z \n \n \n \n \n >> İzin Türü \n iznTur \n Array[AN2] \n Z \n ÖHK tarafından HHS önyüzünde belirlenen izin tipleridir. Bir istekte birden fazla değer bulunabilir, TR.OHVPS.DataCode.IzinTur sıralı veri türü değerlerinden birini alır. \n \n \n \n >> Erişimin Geçerli Olduğu Son Tarih \n erisimIzniSonTrh \n ISODateTime \n Z \n Hesap bilgisi rızasının geçerli olduğu son tarih.   Müşteri YÖS ekranından bu değeri belirleyebilir.   Varsayılan değer : Rıza verilen tarih + 6 ay   Alabileceği maksimum değer : Rıza tarihi + 6 ay    Alabileceği minimum değer : Rıza tarihi + 1 gün    Örneğin  04/02/2023’de minimum 05/02/2023 seçilebilir. Bu durumda yeni günün başlangıç saati 00:00:00 olduğu kabul edildiği için; erisimIzniSonTrh değeri 2023-02-06T00:00:00+03:00 olmalıdır.  HHS rıza onay ekranlarında YÖS'ten iletilen erişim izni son tarihi yeni günün başlangıç saati olarak iletildiğinden ÖHK'ya gösterilecek tarih erişim izninin biteceği gün olarak gösterilmelidir.  Örneğe istinaden; ÖHK YÖS’de 05/02/2023 seçmiş ise HHS rıza onay ekranında 06/02/2023 görmemeli, bu iki tarihin aynı, yani 05/02/2023 olacak şekilde gösterilmesi gerekmektedir.      Örnek rıza oluş zamanı  : 2023-02-04T21:20:20+03:00    1 günlük rıza verildiğinde erisimIzniSonTrh değeri:    2023-02-06T00:00:00+03:00 (26 saat 40 sakikalık rıza vermiş oluyor.)    7 günlük rıza verildiğinde erisimIzniSonTrh değeri:  2023-02-12T00:00:00+03:00    1 aylık rıza verildiğinde erisimIzniSonTrh değeri :   2023-03-05-T00:00:00+03:00 \n Bu alanda bir değer bulunmadığı durumda HHS hata dönmelidir. \n \n \n >> İşlem Sorgulama Başlangıç Zamanı \n hesapIslemBslZmn \n ISODateTime \n K \n Hesap bilgisi rızası verilmesinden geçmişe dönük en fazla 12 ay olabilir, daha eski olmaması gerekir.   Varsayılan değeri rıza verilen tarih (işlem zamanı) – 12 aydır.   ÖHK bu alana bir değer girişi sağlamış ise zaman bilgisi üretilirken ekrandan girilen tarihe 00:00:00 zaman bilgisi eklenmelidir. ÖHK değer girişi sağlamamış ise ÖBHS varsayılan değerlerle bu alanı doldurarak, HHS’ye iletir.   Minimum tarihi : Rızanın veriliş tarihi  - 12 ay    Maksimum tarih: Rızanın veriliş tarihi +  12 ay    İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur.  İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ise gönderilmemelidir. \n ÖHK tarafından izin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ve  İşlem Sorgulama Başlangıç Zamanı ÖBHS tarafından dolu olarak gönderilmiş ise HHS tarafından işlemin devamına izin verilmez. İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmiş ise; HHS bu alanın alabileceği minimum ve maksimum değerlerin sınırlar içerisinde olduğunu kontrol eder. \n \n \n >> İşlem Sorgulama Bitiş Zamanı \n hesapIslemBtsZmn \n ISODateTime \n K \n Hesap bilgisi rızası verilmesinden geleceğe dönük en fazla 12 ay sonrası olabilir, daha ileri bir tarih olmaması gerekir.   Varsayılan değeri: Rıza verilen tarih + 12 aydır. ÖHK bu alana bir değer girişi sağlamış ise girdiği tarihe 1 gün eklenir ve yeni günün ilk saati kabul edilen 00:00:00 saat bilgisini ekler.  ÖHK bu alana bir değer girişi sağlamamış ise ÖBHS varsayılan değerlerle bu alanı doldurarak, HHS’ye iletir.  Minimum tarihi : Rızanın veriliş tarihi  – 12 ay  Maksimum tarihi :  Rızanın veriliş tarihi + 12 ay   İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur.  İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ise gönderilmemelidir. Eğer dolu gönderilirse HHS tarafından uygun hata mesajı iletilmelidir. \n ÖHK tarafından izin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ve İşlem Sorgulama Bitiş Zamanı ÖBHS tarafından dolu olarak gönderilmiş ise HHS tarafından işlemin devamına izin verilmez.   İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmiş ise; HHS bu alanın alabileceği minimum ve maksimum değerlerin sınırlar içerisinde olduğunu kontrol eder. \n Başarılı Yanıt: \n Tablo 13: HesapBilgisiRizasi nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n HesapBilgisiRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n HesapBilgisiRızası nesnesinin oluşturulma zamanı \n \n \n > Güncellenme Zamanı \n gnclZmn \n ISODateTime \n Z \n HesapBilgisiRızası nesnesinin güncellenme zamanı \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu sıralı veri tipini değerlerinden birini alır. Örn; hesap bilgi rızasının tesisine dair ilk istek mesajına dönüşte “B: Yetki Bekleniyor” değerini alması beklenir. \n \n \n > Rıza Iptal Detay Kodu \n rizaIptDtyKod \n AN2 \n K \n Rıza durumunun iptal olduÄ
16Ÿu durumda zorunludur. \n \n \n Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n > Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur sıralı veri türü değerlerinden birini alır. \n \n \n > Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur değerine göre uzunluk ve formatı değişir. \n \n \n > Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür.  TR.OHVPS.DataCode.KurumKimlikTur sıralı veri türü değerlerinden birini alır. \n \n \n > Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.  TR.OHVPS.DataCode.KurumKimlikTur değerine göre uzunluk ve formatı değişir. \n \n \n > Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur sıralı veri türü değerlerinden birini alır (B: Bireysel, K:Kurumsal) \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n HHS, HBHS’nin belirlediği yöntemi dikkate alarak süreci ilgili akışa uygun olarak devam ettirir. Desteklemediği yöntem için (örn: Ayrık GKD) ayrıca hata mesajı verilmelidir.  TR.OHVPS.DataCode.GkdTur sıralı veri türü değerlerinden birini alır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde\tGKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.  HHS tarafından maksimum 5 dk içinde işlem tamamlanacak şekil zaman damgası oluşturulur. Zaman aşımı olduğunda HHS’nin GKD’ye izin vermeyecek şekilde hata mesajı vermesi gerekmektedir. Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Hesap Bilgisi \n hspBlg \n Kompleks: HesapBilgisi \n Z \n \n \n \n > İzin Bilgisi \n iznBlg \n Kompleks: IzinBilgisi \n Z \n \n \n \n >> İzin Türü \n iznTur \n Array[AN2] \n Z \n ÖHK tarafından HBHS önyüzünde belirlenen izin tipleridir. Bir istekte birden fazla değer bulunabilir, TR.OHVPS.DataCode.IzinTur sıralı veri türü değerlerinden birini alır. \n \n \n >> Erişimin Geçerli Olduğu Son Tarih \n erisimIzniSonTrh \n ISODateTime \n Z \n Hesap bilgisi rızasının geçerli olduğu son tarih \n \n \n >> İşlem Sorgulama Başlangıç Zamanı \n hesapIslemBslZmn \n ISODateTime \n K \n Hesap hareketlerinin sorgunabileceği başlangıç zamanı. İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur. \n \n \n >> İşlem Sorgulama Bitiş Zamanı \n hesapIslemBtsZmn \n ISODateTime \n K \n Hesap hareketlerinin sorgunabileceği bitiş zamanı. İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur. \n \n \n > Ayrıntı Bilgi \n ayrBlg \n Kompleks: AyrintiBilgi \n İ \n \n \n \n > ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n İzinler \n Bir hesap bilgisi müşteri rızası kaynağı çağrısına yanıt olarak döndürülen verileri sınırlamak için izin kodları kullanılır: \n \n Temel Hesap Bilgisi \n Ayrıntılı Hesap Bilgisi \n Bakiye Bilgisi \n Temel İşlem (Hesap Hareketleri) Bilgisi \n Ayrıntılı İşlem Bilgisi \n Anlık Bakiye Bildirimi \n \n ÖHK’ya sunulacak seçimler ve kuralları aşağıdaki gibi olmalıdır. \n \n \n \n Seçim \n Kural \n \n \n \n \n Temel Hesap Bilgisi \n ÖHK seçimine sunulmamalıdır. Değiştirilemez şekilde seçili gösterilmelidir. \n \n \n Ayrıntılı Hesap Bilgisi \n ÖHK seçim yapabilir. \n \n \n Bakiye Bilgisi \n ÖHK seçim yapabilir. \n \n \n Temel İşlem (Hesap Hareketleri)  Bilgisi \n ÖHK seçim yapabilir. \n \n \n Ayrıntılı İşlem Bilgisi \n ÖHK seçim yapabilir. Ayrıntılı İşlem Bilgisi seçimi Temel İşlem Bilgisi seçimini kapsar. (Ayrıntılı İşlem bilgisi seçildiğinde Temel İşlem Bilgisi de seçili olmalıdır.) \n \n \n Anlık Bakiye Bildirimi \n Bakiye Bilgisi izin türü ile birlikte seçilmesi gereklidir. ÖHK, HHS'de olacak bakiye değişikliklerinden anlık haberdar olmak istiyor ise bu izin türü seçimi ile rıza başlatması gereklidir. \n \n \n \n Aşağıdaki durumlarda, izin kombinasyonlarına izin verilmez. HHS, bu hesap erişim onaylarını 400 (Hatalı İstek) yanıt ko
16duyla reddetmelidir: \n \n İzin dizisinin herhangi bir izin türü içermemesi durumu, \n İzin dizisinde HHS tarafından desteklenmeyen bir izin kodunun yer alması durumu \n 7.2 ADIM 2: Hesap Bilgisi Hizmeti Rızasının Tesisi \n \n \n Şekil 12: Hesap Bilgisi ÖHK Rızasının Tesisi \n Rıza tesisinin başarıyla sonuçlanması için HBHS'nin istemci kimlik bilgileri yetkisi kullanması ve ardından müşterinin HHS tarafından yönlendirmeli veya ayrık GKD ile doğrulanması gerekir. HHS'de oluşturulan ve rıza durumu “Yetki Bekleniyor” olan bir hesap bilgisi rızası, GKD sonrası “Yetkilendirildi” statüsüne güncellenir. HBHS, erişim sağlayacağı hesapları hesap bilgisi rızasının tesisinden önce seçer. \n \n \n Yönlendirmeli doğrulama akışında, HBHS ÖHK’yı HHS’ye yönlendirir. \n \n \n HBHS tarafından yönlendirme, bir önceki adımdaki RizaNo’yu içerir. \n \n \n HHS, ÖHK için GKD sürecini işletir. \n ÖHK’yı doğrularsa, \n \n \n ÖHK HBHS üzerinden işlem yapılmasına izin vereceği hesap seçimini, hesap numarası ya da hesap referansı bilgisi ile yapar. HBHS üzerinden ÖHK’nın verdiği izin bilgilerini ve erişim izninin bitiş tarihi bilgilerini, HHS bilgilendirme amaçlı ÖHK’ya gösterir. \n \n \n HHS hesap bilgisiri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n HHS, ÖHK’yı “olumlu yönlendirme akışı” ile HBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=Y&yetKod=xx&rizaNo=yy&rizaTip=H&drmKod=zzz\n \n \n \n ÖHK’yı doğrulayamazsa, \n \n \n HHS, hesap bilgisi rıza kaynağının durumunu “Yetki İptal” olarak günceller. \n \n \n HHS, ÖHK’yı “olumsuz yönlendirme akışı” ile HBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=I &rizaNo=yy&rizaTip=H&rizaIptDtyKod=11&drmKod=zzz\n \n \n \n \n \n \n \n Ayrık doğrulama akışında, HHS, ÖHK’nın hesap bilgisi hizmetini başlattığı uygulamadan farklı olabilecek bir “doğrulama” uygulamasında işlemi doğrulamasını ister. \n \n Ayrık akış HBHS’nin farklı bir kanal kullanarak yetkilendirme isteği göndermesiyle başlatılır. \n Bu yetkilendirme isteği, yetkilendirilecek hesap bilgisi rızasının eşleştirileceği ÖHK’nın bulunması için ilgili veriyi taşır. \n HHS, ödeme hizmeti kullanıcısını doğrular. \n ÖHK verdiği izin tipi dahilinde bilgileri paylaşılacak olan hesapları seçer. \n HHS, hesap bilgisi rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n \n Başarılı GKD sonrasında (rizaDrm=’Y’) ilgili rıza nesnesi için (belirli bir rizaNo) yetkilendirme kodunun (yetKod) alınmasının ardından erişim belirteci erişim adresine POST çağrısı yapılarak yetkilendirme kodu karşılığında erişim belirteci ve yenileme belirteci alınır. POST /erişim-belirteci erişim noktası EK-3’te açıklanmıştır. \n Erişim belirteci alındıktan sonra; HHS,  hesap bilgisi rızasının durumunu “Yetki Kullanıldı” olarak günceller. Rıza tesisi sağlanmış olur. \n 7.3 ADIM 2.1: Hesap Bilgisi Rızasının Sorgulanması \n GET /hesap-bilgisi-rizasi/{RizaNo} \n ÖHK, HHS üzerinden rıza iptali yapmış olabilir veya ÖHK’nın verdiği rıza süresi dolmuş olabilir.  Bu durumlarda HBHS, rıza alma akışına başlamadan önce, daha önce oluşturulmuş bir HesapBilgisiRizasi kaynağının durumunu, isteğe bağlı olarak alabilir. \n Servis başarılı yanıtında Tablo 13’de belirtilen “HesapBilgisiRizasi” nesnesini dönmektedir. \n Durum \nHesapBilgisiRizasi kaynağı için kullanılabilecek durum göstergeleri şu şekildedir: \n \n \n Yetki Bekleniyor \n \n \n Yetkilendirildi \n \n \n Yetki Kullanıldı \n \n \n Yetki Sonlandırıldı \n \n \n Yetki İptal \n \n \n Hesap bilgisi rızası sonlandırıldı ve iptal statüsünde olan rıza'ların güncellenme zamanından(gnclZmn) 6 ay sonrasına kadar sorgulanabilir olması beklenmektedir. HHS'ler ilgili süre sonrasında yapılacak rıza sorgularına TR.OHVPS.Resource.NotFound uyarısı verebilir. YÖS'ler tarafından iptal ve sonlandırıldı statüsünde olan rızalar için sorgulama yapmamalıdır. \n 7.4 ADIM 2.2: Hesap Bilgisi Rızasının İptali \n \n \n \n Şekil 13: Hesap Bilgisi Müşteri Rızasının Geri Alınması \n DELETE /hesap-bilgisi-rizasi/{RizaNo} \n DELETE /hesap-bilgisi-rizasi çağrısı, bir HBHS'nin önceden oluşturulmuş bir hesap erişim rızasını (yetkili olsun veya olmasın) silmesine izin verir. Müşteri, rızasını HHS üzerinden iptal etmek yerine, HBHS üzerinden bu rızasını kaldırmak isteyebilir. \nBu API çağrısı, müşterinin HBHS üzerinden hesap bilgisi rızasını iptal etmesine ve HHS nezdindeki hesap bilgisi rızası nesnesinin silinmesini sağlar. \nMüşterinin HBHS’nin veri erişim iznini iptal etmesi durumunda HBHS, HHS’de mevcut olan HesapBilgisiRizasi kaynağını pratik olarak mümkün olan en kısa sürede silmelidir. Bu ise, ilgili kaynağa \n DELETE /hesap-bilgisi-rizasi/{RizaNo} \nçağrısı aracılığı ile yerine getirilir. HBHS ayrıca, sisteminden Hesap Erişim İzni kaynaklarını da temizlemelidir. \nSöz konusu silme işlemi, kayıtların statüsünün pasife çekilmesi ile gerçekleştirilmelidir. Söz konusu kayıtlar, denetim izlerinin oluşturulması ve saklanmasına ilişkin ikincil düzenleme hükümleri kapsamında güvenli şekilde tutulmalıdır. \nServis istek parametresi olarak sadece path’de iletilen Rıza No bilgisine ihtiyaç duymaktadır. \nÖHK rızası başarı ile silindiğinde HTTP 204 response kodu ile işlem sonucu iletilir. Rıza tipi “I” yani “Yetki İptal” olarak güncellenir ve gnclZmn zaman damgası vurularak güncellenir. \nÖHK ile rıza iptali sırasında kurulacak iletişimde (e-posta, sms gibi) aşağıdaki alanların iletilmesi tavsiye edilmektedir: \nYÖS Adı, HHS adı, Rıza Oluşturma Zamanı, Servis Tipi Bilgisi (HBHS) \n 7.5 ADIM 3: Hesap Bilgilerinin Alınması \n    \n \n   \n Şekil 14: Hesap Bilgilerinin Alınması \n İSTEK: \nMüşteri rızası tesis edilmiş kullanıcı için HBHS API erişim adresinden HHS’ye erişilebilir hesap bilgilerini GET isteği ile sorgular: \n \n RizaDurumu “Yetki Kullanıldı” ise işleme başlanır. RizaDurumu farklı bir değerde ise “TR.OHVPS.Resource.ConsentMismatch” hatasının iletilmesi gerekir. \n GET verisinin modele göre kontrolü yapılır (Örneğin: Alan kontrolleri) \n \n GET verisinin mantıksal kontrolleri yapılır. \n \n \n Hesap bilgisi rızası alınmış ve erişim izni devam eden hesaplar içerisinden herhangi bir hesabın kapatılması ya da pasife alınması durumunda YÖS tarafından yapılan hesap isteğine HHS tarafından hesap bilgisi dönülmelidir. \n \n \n Kapalı hesap için TR.OHVPS.DataCode.HspDrm veri türünden KAPALI değeri ile, pasif hesap için TR.OHVPS.DataCode.HspDrm veri türünden PASIF değeri ile dönülmelidir. \n 7.6 ADIM 3.1 ve 3.2: Hesap Bilgilerinin Sorgulanması \n GET /hesaplar ve GET /hesaplar/{hspRef} \n Bu erişim noktalarından tüm hesapların veya belirli bir hesabın bilgilerinin sorgulanır. Hesap bilgisi için daha önce tanımlanmış izin türüne göre (Temel Hesap Bilgisi veya Detaylı Hesap Bilgisi) yanıtında dönülen HesapBilgileri nesnesinin içeriği değişir.  Tablo 15’te HesapBilgileri nesnesinin içeriği verilmiştir. \n Hesap Bilgisi Sorgu Örneği (Tüm Hesaplar) =  /hesaplar \nHesap Bilgisi Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef} \nİşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar?\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= hspRef &\nsrlmYon=A \n Tablo 14: Hesap Bilgileri Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den bü
16yük olamaz. \n Bu veri gönderildiği durumda, HHS listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarası \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek kayıtların sıralama kriterini belirtir. Alabileceği değerler: { “hspRef”} \n Bu veri gönderildiği durumda, HHS listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama kriterini hspRef olarak belirler. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler:  A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 15: “HesapBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Rıza No \n rizaNo \n AN1..128 \n Z \n HesapBilgisiRızası nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n Hesap Temel \n hspTml \n Kompleks: HesapTemel \n Z \n Temel Hesap Bilgileri (Temel Hesap Bilgisi varsayılan izin türü olduğundan Hesap Temel nesnesi zorunlu olarak yanıtta bulunur) \n \n \n > Hesap Referansı \n hspRef \n AN5..40 \n Z \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez. Bir hesap (IBAN) tek bir hspRef'e karşılık gelmelidir, benzer şekilde bir hspRef tek bir IBAN'a karşılık gelmelidir. Aynı hesap için alınan tüm rızalarda hesap referans bilgisinin değişmemesi gerekmektedir. \n \n \n > Hesap Numarası \n hspNo \n AN26 \n K \n Eğer varsa ödeme hesabına ait IBAN bilgisi \n \n \n > Hesap Sahibi Unvanı \n hspShb \n AN3..140 \n Z \n Hesap sahibi ya da hesap sahiplerinin ad-soyadı, ticari unvanı \n \n \n > Şube Adı \n subeAdi \n AN3..50 \n K \n Eğer varsa ödeme hesabının bağlı olduğu şubenin adı \n \n \n > Kısa Ad \n kisaAd \n AN3..50 \n K \n Eğer hesap sahibi hesaba ait bir ad tanımladıysa, tanımlanan hesap adı \n \n \n > Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi. \n \n \n > Hesap Türü \n hspTur \n AN1 \n Z \n Hesabın türü (bireysel veya ticari). TR.OHVPS.DataCode.HspTur sırali veri değerlerinden birini alır. \n \n \n > Hesap Tipi \n hspTip \n AN1..32 \n Z \n Hesabın tipi (VADESİZ, KREDİLİ vb.).TR.OHVPS.DataCode.HspTip sıralı veri değerlerinden birini alır. \n \n \n >Hesap Ürün Adı \n hspUrunAdi \n AN1..140 \n İ \n HHS tarafından atanmış olan ürün adı bilgisidir. HBHS tarafından ÖHK’ya gösterilmesi kullanım kolaylığı sağlayacaktır. \n \n \n > Hesap Durumu \n hspDrm \n AN5..50 \n Z \n Hesabın durumunu belirtir. TR.OHVPS.DataCode.HspDrm sıralı veri türlerinden birini alır. \n \n \n Hesap Detay \n hspDty \n Kompleks: HesapDetay \n K \n Detay Hesap Bilgileri (Temel Hesap Bilgisine ek olarak Detay Hesap Bilgisi izin türü de seçilmişse Hesap Detay nesnesi koşullu olarak yanıtta bulunur) \n \n \n > Açılış Tarihi \n hspAclsTrh \n ISODateTime \n Z \n Belirtilen hesabın açılış tarihi. \n 7.7 ADIM 3.3 ve 3.4: Hesap Bakiyesinin Sorgulanması \n GET /bakiye ve GET /hesaplar/{hspRef}/bakiye \nBu erişim noktalarından tüm hesapların veya belirli bir hesabın bakiyesi sorgulanır. \nİstek çağrısına dönülen “BakiyeBilgileri” nesnesi Tablo 17’de verilmiştir. \n Hesap Bilgisi Rızası alınmış ve erişim izni devam eden hesaplar içerisinde yer alan hesaplardan kapatılmış ya da pasif duruma alınmış olan hesaplar için bakiye isteği yapıldığında HHS tarafından bakiye bilgisi dönülmelidir. \n Hesap bakiyelerinin gösterilmesi sırasında aşağıda verilen örnekler gözönünde bulundurulmalıdır. \n Örnek 1 : ÖHK  Hesap Bakiye Tutarı  0 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL. ÖHK 1000 TL para çıkışı gerçekleştirdi. Bakiye API'si yanıtı içerisinde iletilen  Kredi Dahil Göstergesi  0 değerini içeriyorsa,  Hesap Bakiye Tutarı  -1000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL olmalıdır. \n Örnek 2 : ÖHK  Hesap Bakiye Tutarı  0 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL. ÖHK 1000 TL para çıkışı gerçekleştirdi. Bakiye API'si yanıtı içerisinde iletilen  Kredi Dahil Göstergesi  1 değerini içeriyorsa,  Hesap Bakiye Tutarı  2000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL olmalıdır. \n Örnek 3 : ÖHK  Hesap Bakiye Tutarı  1000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL. ÖHK 1000 TL para çıkışı gerçekleştirdi. Bakiye API'si yanıtı içerisinde iletilen  Kredi Dahil Göstergesi  0 değerini içeriyorsa,  Hesap Bakiye Tutarı  0 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL olmalıdır. \n Örnek 4 : ÖHK  Hesap Bakiye Tutarı  1000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL. ÖHK 1000 TL para çıkışı gerçekleştirdi. Bakiye API'si yanıtı içerisinde iletilen  Kredi Dahil Göstergesi  1 değerini içeriyorsa,  Hesap Bakiye Tutarı  3000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL olmalıdır. \n İşlem Sorgu Örneği (Belirli Bir Hesap)=  /bakiye?\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= hspRef &\nsrlmYon=A \n Tablo 16: “BakiyeBilgileri” Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den bü
16yük olamaz. \n Bu veri gönderildiği durumda, HHS listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarasi \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek kayıtların sıralama kriterini belirtir. Alabileceği değerler: { “hspRef”} \n Bu veri gönderildiği durumda, HHS listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama kriterini hspRef olarak belirler. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler:  A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 17: “BakiyeBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Hesap Referansı \n hspRef \n AN5..40 \n Z \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez. Bir hesap (IBAN) tek bir hspRef'e karşılık gelmelidir, benzer şekilde bir hspRef tek bir IBAN'a karşılık gelmelidir. Aynı hesap için alınan tüm rızalarda hesap referans bilgisinin değişmemesi gerekmektedir. \n \n \n Bakiye \n bky \n Kompleks:Bakiye \n Z \n \n \n \n > Hesap Bakiye Tutarı \n bkyTtr \n AN1..25 \n Z \n Hesabın bakiyesi. Bloke tutar düşülmeden iletilmelidir.   Tutar alanı regex patterni şu şekildedir:  '^-?\\d{1,18}$|^-?\\d{1,18}\\.\\d{1,5}$' \n \n \n > Blokeli Tutar \n blkTtr \n AN1..24 \n K \n Varsa hesapta blokeli tutar bilgisi.     Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Para Birimi \n prBrm \n AN3 \n Z \n Para birimi. \n \n \n > Bakiye İletilme Zamanı \n bkyZmn \n ISODateTime \n Z \n Bakiyenin iletildiği zaman bilgisi. \n \n \n > KrediliHesap \n krdHsp \n Kompleks: KrediliHesap \n K \n \n \n \n >> Kredili Mevduat Hesabı Bakiyesi \n kulKrdTtr \n AN1..24 \n Z \n Kredili mevduat tutarı. Kredili bir hesap ise zorunlu.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n >> Kredi Dahil Göstergesi \n krdDhlGstr \n AN1 \n Z \n Kredili bir hesap ise zorunlu. Bakiye tutarının kredi tutarı dahil edilerek ya da edilmeden iletildiğini gösterir.   0: Kredi tutarı dahil edilmeden bakiye bilgisi iletilmesi durumu   1: Kredi tutarı dahil edilerek bakiye bilgisi iletilmesi durumu \n 7.8 ADIM 3.5 ve 3.6: İşlemlerin Sorgulanması \n GET /hesaplar/{hspRef}/islemler \n Belirli bir hesaba ilişkin işlem bilgileri Tablo 1’daki istek parametrelerine göre sorgulanır. \nHesap Bilgisi Rızası alınmış ve erişim izni devam eden hesaplar içerisinde yer alan hesaplardan kapatılmış ya da pasif duruma alınmış olan hesaplar için işlemler isteği yapıldığında HHS tarafından işlemler bilgisi dönülmelidir. \nİşlem bilgisi için daha önce tanımlanmış izin türüne göre yanıtta dönen IslemBilgileri nesnesinin (Temel İşlem Bilgisi veya Temel İşlem Bilgisi ve Detaylı İşlem Bilgisi) içeriği değişir. \nİşlemler servisi hem ÖHK’nın talebi ile YÖS uygulaması üzerinden çağrılabileceği gibi, YÖS’ün ÖHK’sız başlatabileceği otomatik çağrıları ile de yanıt dönebilmektedir. \nHHS, işlemin sistemsel yapılıp yapılmadığını, istek parametreleri içerisinde yer alan PSU-Initiated parametresi ile anlar. Bu parametre “E” ise ÖHK’lı, “H” ise sistemsel yapılmış bir sorgu anlamına gelmektedir.\nÖHK’nın başlattığı sorgular için HHS tarafından belirlenen üst rate limitler dahilinde çağrım yapılabilir. \nYÖS, otomatik yapacağı sorgularda; \n \n Bireysel ÖHK’lar için hesap bazında günde en fazla 4 adet başarı ile sonuçlanan sorgulama yapabilir. \n Kurumsal ÖHK’lar için hesap bazında saatte en fazla 12 adet başarı ile sonuçlanan sorgulama yapabilir. \n \n HHS, tutacağı sayaç bilgisi ile bu sayıları kontrol ederek daha fazla sorgulama yapılmasına izin vermeyebilir. \n Aynı istek parametreleri ile yapılan sorgu sonucunda dönecek toplam kayıt sayısı 100’ü aştığında, sayfalama yöntemi ile HHS’nin cevap dönmesi beklenmektedir.  Her bir sayfa için işlemler servisi tekrar çağrılsa da, bu çağrım HHS’nin tuttuğu sayaç değerini arttırmaz. HHS’nin tutacağı sayaçın kontrol parametreleri YÖS kodu, hesap numarası ya da referansı olmalıdır. Sayfa no parametresi varsa ve 1'den büyük ise işlem sayacını arttırmamalıdır. \n ÖHK’nın YÖS uygulaması üzerinden tetiklediği işlemlerde ise;\nbireysel ÖHK’lar  için en fazla 1 aylık,\nkurumsal ÖHK’lar için ise en fazla 1 haftalık bir pencere aralığında sorgulama yapılabilir. \n YÖS, otomatik yapacağı sorgularda hem bireysel hem de kurumsal ÖHK’lar için 24 saatlik bir pencere aralığında sorgulama yapabilir. \n Yeni günün başlangıç saatinin 00:00:00 olduğu kabul edilmiştir. \n Sorgu örnekleri aşağıdaki gibidir:  \n 1 günlük İşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-06-01T00:00:00+03:00&\nhesapIslemBtsTrh=2020-06-02T00:00:00+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n \n 1 haftalık İşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-06-01T00:00:00+03:00&\nhesapIslemBtsTrh=2020-06-08T00:00:00+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n \n 1 Aylık İşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-02-01T00:00:00+03:00&\nhesapIslemBtsTrh=2020-03-01T00:00:00+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n 1 Aylık İşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-01-31T00:00:00+03:00&\nhesapIslemBtsTrh=2020-02-28T00:00:00+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n 1 Aylık İşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-02-28T00:00:00+03:00&\nhesapIslemBtsTrh=2020-03-28T00:00:00+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n 24 saatlik pencerede yapacağı sistemsel sorgu örneği (Son sorgusunun üzerine 24 saat eklenmesi)  =\n/hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-06-01T14:10:08+03:00&\nhesapIslemBtsTrh=2020-06-02T14:10:08+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n Önyüzden alınan sorgu parametreleri ile oluşturulan sorgu örneği (Örnek sorgu tarih aralığı 20.02.2023- 25.02.2023 arasındadır)  =\n/hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2023-02-20T00:00:00+03:00&\nhesapIslemBtsTrh=2023-02-26T00:00:00+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n Tablo 18: İşlem Listesi Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n İşlem Sorgulama Başlangıç Zamanı \n hesapIslemBslTrh \n ISODateTime \n Z \n Sorgulanacak işlemlerin başlangıç tarihi. \n HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. ÖHK tarafından tetiklenen sorgularda;hesapIslemBslTrh ve hesapIslemBtsTrh arası fark bireysel ÖHK’lar için en fazla 1 ay,kurumsal ÖHK’lar için ise en fazla 1 hafta olabilir. YÖS tarafından sistemsel yapılan sorgulamalarda hem bireysel, hem de kurumsal ÖHK’lar için;son 24 saat sorgulanabilir. Bu yüzden hesapIslemBtsTrh-24 saat’ten daha uzun bir aralık sorgulanamaz olmalıdır. İstek başlığında yer alan PSU-Initiated alanı “E” ise ÖHK’lı, “H” ise sistemsel yapılmış bir sorgu anlamına gelmektedir. \n \n \n İşlem Sorgulama Bitiş Zamanı \n hesapIslemBtsTrh \n ISODateTime \n Z \n Sorgulanacak işlemlerin bitiş tarihi. \n HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. YÖS tarafından sistemsel yapılan sorgulamalarda hem bireysel, hem de kurumsal ÖHK’lar için;İleri vadeli işlem emirleri dahil olmadığı için (Sürüm 1.0.2 kapsamında); İşlem Sorgulama Bitiş Zamanı, her zaman, sorgulama zaman damgasını iletecek şekilde (datetime (now)) iletilebilir. \n \n \n En Düşük İşlem Tutarı \n minIslTtr \n AN1..24 \n İ \n Sorgulanacak işlemlerin alabileceği en düşük işlem tutarı.      Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n Bu veri gönderildiği durumda HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. \n \n \n En Yüksek İşlem Tutarı \n mksIslTtr \n AN1..24 \n İ \n Sorgulanacak işlemlerin alabileceği en yüksek işlem tutarı.    Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n Bu veri gönderildiği durumda HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. \n \n \n Borç Alacak Göstergesi \n brcAlc \n AN1 \n İ \n TR.OHVPS.DataCode.BrcAlc sıralı veri tipi değerlerinden birini alır. Sorgulanacak işlemlerin borç / alacak kriteri B: Hesaba borç yaratan işlem.A: Hesaba alacak yaratan işlem.{“B”,”A”} \n Bu veri gönderildiği durumda HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den bü
16yük olamaz. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarasi \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek işlemlerin sıralama kriterini belirtir. Alabileceği değerler: {“islGrckZaman”} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama kriterini islGrckZaman olarak belirler. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler: A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 19: “IslemBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Hesap Referans Numarası \n hspRef \n AN5..40 \n Z \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez. Bir hesap (IBAN) tek bir hspRef'e karşılık gelmelidir, benzer şekilde bir hspRef tek bir IBAN'a karşılık gelmelidir. Aynı hesap için alınan tüm rızalarda hesap referans bilgisinin değişmemesi gerekmektedir. \n \n \n Islemler \n isller \n Kompleks:Islem[Array] \n K \n Hesaba ilişkin hareketler varsa İşlemler nesnesi dizisi olarak dönülür. İşlemler nesnesi Temel İşlem Bilgileri ve Detay İşlem Bilgileri nesnesinden meydana gelir. İzin türü varsayılan olarak Temel İşlem Bilgilerini içerir. Detay İşlem Bilgileri izin türü de seçildi ise Temel İşlem Bilgilerine ek olarak Detay İşlem Bilgileri de gönderilir. \n \n \n > Temel İşlem Bilgileri \n islTml \n Kompleks:IslemTemel \n Z \n Temel İşlem Bilgileri varsayılan olarak dönülür. \n \n \n >> İşlem Numarası \n islNo \n AN3..50 \n Z \n Hesap hareketinin oluşturulması sırasında atanan ve borç (veya alacak) hareketini tekilleştiren HHS bazında tekil tanımlayıcıdır. Bu değer tek başına tekil olabileceği gibi birden fazla değerin bir araya getirilmesiyle de tekilliği sağlanmış olabilir. Bu değerin en azından hesap numarası (hesNo) bazında tekil olması beklenir. Genellikle kullanılan örnekleri; Instance_Id, Transaction_Id, Transaction_Num, Transaction_TimeStamp,dekont numarası \n \n \n >> İşlem Referans Numarası \n refNo \n AN3..50 \n Z \n İşlemi uçtan uca tanımlayan tekil tanımlayıcıdır. Borç ve alacak hareketinden oluşan bir veya birden fazla işlemler bütünü için atanmış olan ve bu bütünü tekilleştiren (bir biri ile ilişkisini tutan) değerdir.Bu değer hem YÖS’ten gelen değer olabilir (ödeme işlemlerinde kullanılan kkodRef ya da refBlg alanı) hem de HHS içinde takip edilmek için üretilmiş bir değer olabilir. HHS sisteminde 2 değerin de bulunması durumunda;refNo alanını doldurmak için, HHS’nin YÖS’ten gelen değere öncelik vermesi beklenmektedir. YÖS’ten gelen veri örneği: Sipariş Numarası, Fatura Numarası, Karekod Referansı vb. HHS’te üretilen veri örneği: Masraflı havale işleminde hem havale işleminin hem de masraf işleminin aynı referans numarasına sahip olması da örnek olarak gösterilebilir. \n \n \n >> İşlem Tutarı \n islTtr \n AN1..24 \n Z \n İşlem tutarı.    Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n >> Güncel Bakiye Tutarı \n gnclBky \n AN1..25 \n Z \n İşlem sonrası güncel bakiye bilgisi tutarı.   Tutar alanı regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi. \n \n \n >> İşlem Gerçekleşme Zamanı \n islGrckZaman \n ISODateTime \n Z \n İşlemin gerçekleşme zamanı. \n \n \n >> İşlem Kanalı \n kanal \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeKaynak sıralı veri türü değerlerinden birini alır. \n \n \n >> Borçlandırma Alacaklandırma Göstergesi \n brcAlc \n AN1 \n Z \n TR.OHVPS.DataCode.BrcAlc sıralı veri türü değerlerinden birini alır. İşlemin hesabı borç ya da alacaklandırdığı bilgisidir. \n \n \n >> İşlem Türü \n islTur \n AN3..50 \n Z \n HHS’nin işleme ait ilişkilendirdiği işlem türü değeri. TR.OHVPS.DataCode.IslemTuru sıralı veri türü değerlerinden birini alır. \n \n \n >> İşlem Amacı \n islAmc \n AN2 \n Z \n TR.OHVPS.DataCode.IslemAmaci sırali veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n \n \n >> Ödeme Sistemi No \n odmStmNo \n AN10..50 \n K \n Ödeme başarılı başlatıldıysa, ödemenin başlatıldığı sistemdeki referans numarası. Gerektiğinde ilgili ödeme sisteminde/HHS’de söz konusu ödemeye karşılık gelen mesajla bağlantı kurmada kullanılır.   Ödeme Hizmeti kullanıcısına işlemin takibi için gösterilebilir.  İşlemin yönlendirildiği ödeme sistemi FAST ya da PÖS ise sistemdeki ilgili mesajın Tarih, GönderenKatilimKodu ve SorguNumarasi değerlerinin birleşiminden oluşur. Bu 3 alan mevcutta kullanıldığı formatta aralarına dikey çizgi (Unicode U+2223) işareti koyularak, birleştirmeli ve iletilmelidir. Örn : Tarih|GönderenKatilimKodu|SorguNumarasi   Ödeme Havale/Virman işlemi ise HHS’nin üretmiş olduğu havale/virman numarasını içerir. Buradaki format da Tarih|GönderenKatilimKodu|Havale-virman numarası şeklinde olmalıdır. Havale/FAST/PÖS  ödeme yöntemleri için tarih alanı yyyy-aa-gg formatında 10 karakter olarak 
16iletilmelidir. \n \n \n > Detay İşlem Bilgileri \n islDty \n Kompleks: IslemDetay \n K \n Detay İşlem Bilgileri dizi olarak gönderilmelidir. \n \n \n >> İşlem Açıklaması \n islAcklm \n AN1..200 \n Z \n HHS tarafından atanan işlem açıklaması. HHS kendi işlem hareketlerine yansıttığı açıklamayı buraya yansıtmalıdır. HHS'ler tüm hesap hareketlerini YÖS'ler ile paylaşmakla yükümlü olup, hassas veri içeren(örn: faiz, komisyon bilgisi içeren vb.) işlem hareketleri de bu kapsamda değerlendirilerek işlem açıklamasının maskeli olarak iletilmesi sağlanır. Kelimelerin ilk 3 hanesi maskeli olacak şekilde, ancak sakıncalı bulunan kelimeler varsa; (örn: faiz, komiyon vb.) kelimelerin tamamı maskeli olacak şekilde gösterilebilir. \n \n \n >> Karşı Taraf \n krsTrf \n Kompleks:  KarsiTaraf \n K \n Kullanımı işlem bazında değişmektedir. Örnek: FAST işleminde karşı taraf alıcının bilgileridir. Vergi ödemesinde kurum IBAN bilgisi müşteriye gösterilemeyebileceğinden bu alanın boş gelmesi HHS insiyatifindedir. \n \n \n >>> Karşı Maskeli IBAN \n krsMskIBAN \n AN26 \n K \n İlgili hesap hareketinin karşı tarafının maskeli IBAN bilgisi. \n \n \n >>> Karşı Unvan \n krsMskUnvan \n AN3..140 \n K \n İlgili hesap hareketinin karşı tarafının ad-soyad ya da ticari unvan bilgisi.Unvan bilgisi maskelenmeden iletilmelidir. \n \n \n >>> Karşı Taraf Kimlik Bilgisi \n krsKimlikVrs \n AN1..11 \n İ \n HHS sorumluluğunda YÖS ile paylaşılan Karşı Taraf Kimlik Bilgisi(Kimlik/Kurum Kimlik - TCKN/VKN) \n \n \n \n"},{title:"2.Kapsam ve Dayanak",frontmatter:{},regularPath:"/v1.1.0/contents/kapsam-ve-dayanak.html",relativePath:"v1.1.0/contents/kapsam-ve-dayanak.md",key:"v-9e25e106",path:"/v1.1.0/contents/kapsam-ve-dayanak.html",content:" 2.Kapsam ve Dayanak \n 12 Kasım 2019’da güncellenen “ 6493 sayılı Ödeme ve Menkul Kıymet Mutabakat Sistemleri, Ödeme Hizmetleri ve Elektronik Para Kuruluşları Hakkında Kanun ”un (Kanun) 12’nci maddesine yeni eklenen ve  Ödeme Hizmetleri Direktifi 2 'de (Payment Services Directive 2, PSD2) bulunan iki yeni ödeme hizmeti aşağıdaki gibi tanımlanmıştır (Şekil-1: Ödeme Hizmetleri Veri Paylaşım Servisleri): \n \n Ödeme Emri Başlatma Hizmeti : ÖHK’nın isteği üzerine başka bir ödeme hizmeti sağlayıcısında bulunan  ödeme hesabıyla  ilgili sunulan ödeme emri başlatma hizmeti [Madde 12, birinci fıkra, (f) bendi] \n Hesap Bilgisi Hizmeti : ÖHK’nın onayının alınması koşuluyla, ÖHK’nın ödeme hizmeti sağlayıcıları nezdinde bulunan bir veya daha fazla  ödeme hesabına  ilişkin konsolide edilmiş bilgilerin çevrim içi platformlarda sunulması hizmeti [Madde 12, birinci fıkra, (g) bendi] \n \n   \n Şekil 1: Ödeme Hizmetleri Veri Paylaşım Servisleri (ÖHVPS)- tanıtım \n Kanunun 14/A maddesinin ikinci fıkrasına göre , Kanunun 12’nci maddesinin birinci fıkrasının (f) veya (g) bentlerinde yer alan ödeme hizmetleri ile ilgili işlemlerin yürütülmesine ilişkin usul ve esaslar ile taraflarca uyulması gereken teknik ve operasyonel gereklilikler ikincil düzenlemeler uyarınca Türkiye Cumhuriyet Merkez Bankası (TCMB) tarafından belirlenir. Kanunun 12’nci maddesinin birinci fıkrasının (f) veya (g) bentlerinde yer alan ödeme hizmetlerinde kullanılan veri paylaşım servisleri  ödeme hizmetleri veri paylaşım servisleri (ÖHVPS)  olarak adlandırılmaktadır. \n Ödeme Hizmetleri ve Elektronik Para İhracı ile Ödeme Hizmeti Sağlayıcıları Hakkında Yönetmelik’in (Yönetmelik) 59’uncu maddesinin birinci fıkrası uyarınca hazırlanan bu belgede söz konusu ödeme hizmetlerini sunacak ödeme hizmeti sağlayıcısının, ödeme hesabının bulunduğu ödeme hizmeti sağlayıcısının, varsa ilgili diğer tarafların ve bu hizmetlerin sunulması için taraflar arasında kurulacak bağlantının teknik ve operasyonel gereklilikleri açıklanmaktadır. \n Düzenlemeler kapsamında yetkilendirilen üçüncü taraf hizmet sağlayıcısı  (Yetkili Ödeme Hizmeti Sağlayıcısı, YÖS) , ödeme hizmeti kullanıcılarının  Hesap Hizmeti Sağlayıcıları (HHS)  nezdindeki ödeme hesaplarına ulaşarak ödeme emri başlatma ve hesap bilgisi sağlama hizmetlerinden (ödeme hizmetleri veri paylaşım servislerinden) faydalanmasına aracılık eder. Ödeme hizmetleri veri paylaşım servisleri kapsamında iki tip YÖS bulunmaktadır:  1) Hesap Bilgisi Hizmeti Sağlayıcısı (HBHS) ve 2) Ödeme Emri Başlatma Hizmeti Sağlayıcısı (ÖBHS). \n Hesap Bilgisi Hizmeti Sağlayıcısı (HBHS) ÖHK’nın farklı Hesap Hizmeti Sağlayıcıları (HHS) nezdindeki hesaplarının bilgilerini derleyerek çevrim içi platformlarda  toplu şekilde  sunar. Ödeme Emri Başlatma Hizmeti Sağlayıcısı (ÖBHS) ise talebi üzerine ÖHK’nın HHS’de bulunan ödeme hesabından ödeme işlemi başlatır. \n ÖHVPS’nin üst düzey gösterimi Şekil-2’de verilmiştir. \n   \n Şekil 2: Ödeme Hizmetleri Veri Paylaşım Servisleri (ÖHVPS) -üst düzey gösterim \n Ödeme Hizmetleri Veri Paylaşım Servislerinin HHS’ler tarafından  GEÇİT  vasıtasıyla sunulduğu uygulama mimarisi ise Şekil-3’te sunulmuştur. \n  \n Şekil 3: ÖHVPS'nin GEÇİT vasıtasıyla sunumu \n"},{title:"10.\tOlay Bildirim",frontmatter:{},regularPath:"/v1.1.0/contents/olay-bildirim.html",relativePath:"v1.1.0/contents/olay-bildirim.md",key:"v-206455c6",path:"/v1.1.0/contents/olay-bildirim.html",headers:[{level:2,title:"Genel Bilgiler",slug:"genel-bilgiler"},{level:2,title:"Olay Abonelik Servisleri (OAS)",slug:"olay-abonelik-servisleri-oas"}
16,{level:2,title:"ADIM 1: Olay Aboneliğinin gerçekleştirilmesi",slug:"adim-1-olay-aboneliginin-gerceklestirilmesi"},{level:2,title:"ADIM 2: Olay Aboneliğinin güncellenmesi",slug:"adim-2-olay-aboneliginin-guncellenmesi"},{level:2,title:"ADIM 3: Olay Aboneliğinin sorgulanması",slug:"adim-3-olay-aboneliginin-sorgulanması"},{level:2,title:"ADIM 4: Olay Aboneliğinin iptali",slug:"adim-4-olay-aboneliginin-iptali"},{level:2,title:"ADIM 5: Olay Aboneliğinin İletilemeyen Olayları",slug:"adim-5-olay-aboneliginin-iletilemeyen-olayları"},{level:2,title:"ADIM 6: Sistem Olay Dinleme",slug:"adim-6-sistem-olay-dinleme"},{level:2,title:"Olay Dinleme Servisleri (ODS)",slug:"olay-dinleme-servisleri-ods"},{level:2,title:"ADIM 1: Olay Dinleme",slug:"adim-1-olay-dinleme"},{level:2,title:"ADIM 2:  Sistem Olay Dinleme",slug:"adim-2-sistem-olay-dinleme"}],content:" 10.\tOlay Bildirim  \n Genel Bilgiler \n Olay Bildirim Abonelik API servisleri, HHS'lerin sunmuş oldukları olay bildirimlerini takip etmek amacıyla abonelik akışlarını tanımlar. \n YÖS'ler olay bildirimlerini takip edebilmek için talep ettikleri abonelik hizmetlerini belirterek HHS'ler özelinde bir abonelik kaydı oluştururlar. Bu abonelik kaydını okuyabilir, güncelleyebilir ya da silebilirler. \n Olay bildirimleri HHS'ler tarafından 2 yöntem ile sağlanır. İlki olay bildirimlerinin anlık olarak iletilmesi, diğeri ise anlık iletilemeyen olayların toplu olarak iletilmesidir. \n Olay Bildirimi 2 API ile yönetilecektir. \n 1 - Olay Abonelik Servisleri (OAS) \n2 - Olay Dinleme Servisleri  (ODS) \n Olay Abonelik ve Olay Dinleme API'lerinin istek ve yanıt başlığında beklenen parametreler ÖBH,HBH,GKD API'lerinden farklıdır.\n 3.15. İstek Başlığı  ve  3.16. Yanıt Başlığı  bölümlerinde zorunlu parametreler ve açıklamaları belirtilmiştir. \n Olay Abonelik Servisleri (OAS) \n Olay abonelik Servisleri; HHS'ler tarafından sunulacak olay bildirim abonelik servislerini ve iletilemeyen olaylar servisini içermektedir. \n HHS'nin sunacağı bu API ile YÖS'ler şu adımları gerçekleştirebilir. \n \n YÖS'ün olay bildirimlerini dinleyebilmek için öncelikle dinlemek istediği olaylara ait olay tipleri ve kaynak tiplerini belirlemesi gerekmektedir. \n Olay tipleri ve kaynak tiplerinin neler olacağı \"Olay Tipleri ve Kaynak Tipleri İlişkisi\" tablosunda belirtilmiştir. \n YÖS, belirlediği olaylar için HHS'ye olay abonelik endpointi aracılığı ile abonelik başlatır. \n YÖS, abonelik numarası aracılığı ile abonelik bilgilerini görüntüleyebilir, güncelleyebilir, silebilir. \n YÖS, olay bildirimlerini bu abonelik sayesinde kendisinin sunacağı Olay Dinleme API'si ile dinler. \n HHS anlık iletemediği olaylarını biriktirerek, iletilemeyen olaylar endpointi ile YÖS'e sunar. \n \n HHS'ler \"Olay Tipleri ve Kaynak Tipleri İlişkisi\" tablosunda belirlenen olay ve kaynak tiplerinin tümü için YÖS'lere bildirim sunmak zorundadır. \n Olay Abonelik Servislerinde Idempotency kurallarının işletilmesine gerek bulunmamaktadır. \n Nezdinde ödeme hesabı bulunduran bazı hesap hizmeti sağlayıcılar(EPK, Ödeme Kuruluşları) müşterilerine ait hesapları, diğer HHS'lerdeki havuz hesaplarını kullanarak yönetiyor olabilir. Bu durum ilgili hesap hizmeti sağlayıcılarının, ÖHVPS kapsamında HHS olduğu rolde sunması gereken olay bildirim servisleri ile ilgili uyması gereken kuralları değiştirmemektedir. İlgili hesap hizmeti sağlayıcılarının standartlara uygun şekilde YÖS'lere bildirimleri yapması gerekmektedir. \n YÖS'ler sahip oldukları rol özelinde olay abonelik servislerinden faydalanabilir. Bu yüzden olay bildirim etki alanı (scope) değerleri hesap_bilgisi ve/veya odeme_emri olarak belirlenmiştir. \n Olay Abonelik Servisine ait API Endpointleri aşağıdaki tabloda listelenmiştir. \n Olay Abonelik Servisleri için Erişim Adresleri (Endpoints) \n Etki Alanı (Scope) =“hesap_bilgisi”  \"odeme_emri\" \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu (Z)/ İsteğe Bağlı(İ) \n Yetkilendirme Türü \n İmzalama \n Parametre \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n olay-abonelik \n POST \n /olay-abonelik \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n OlayAbonelikİstegi \n OlayAbonelik \n \n \n 2 \n olay-abonelik \n GET \n /olay-abonelik \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n \n 
16- \n OlayAbonelik \n \n \n 3 \n olay-abonelik/{olayAbonelikNo} \n PUT \n /olay-abonelik/{olayAbonelikNo} \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n OlayAbonelik \n OlayAbonelik \n \n \n 4 \n olay-abonelik/{olayAbonelikNo} \n DELETE \n /olay-abonelik/{olayAbonelikNo} \n Z \n İstemci Kimlik Bilgileri \n - \n - \n - \n - \n \n \n 5 \n olay-abonelik/{olayAbonelikNo}/iletilemeyen-olaylar \n GET \n /olay-abonelik/{olayAbonelikNo}/iletilemeyen-olaylar \n Z \n İstemci Kimlik Bilgileri \n - \n Sayfalama \n \n Olaylar \n \n \n 6 \n sistem-olay-dinleme \n POST \n sistem-olay-dinleme \n Z \n İstemci Kimlik Bilgileri \n - \n - \n Olaylar \n - \n ADIM 1: Olay Aboneliğinin gerçekleştirilmesi \n POST /olay-abonelik \n HHS'nin olay abonelik hizmeti sunduğu servistir.\nYÖS, seçeceği olay-kaynak tipleri için bu servis aracılığı ile abone olabilir. HHS POST işlemi sonucunda, YÖS adına bir olay abonelik kaynağı oluşturur ve tekil tanımlayıcı olan olayAbonelikNo değerini döner. olayAbonelikNo üretilirken farklı YÖS'ler için aynı değer kullanılamaz. olayAbonelikNo evrensel tekil olmalıdır. \n1 YÖS'ün 1 HHS'de 1 adet abonelik kaydı olabilir. \nBaşarılı POST isteği sonucu HTTP 201 cevabı ile iletilmelidir. \n YÖS tarafından daha önce oluşturulmuş olay abonelik kaydı varsa \"HTTP 400 -TR.OHVPS.Business.InvalidContent -Kaynak Çakışması\" hatasıyla uyarı mesajını döner. \n Olay Abonelik kaydı oluşturmak isteyen YÖS'ün ODS API tanımı HHS tarafından kontrol edilmelidir. YÖS'ün tanımı olmaması halinde \"HTTP 400-TR.OHVPS.Business.InvalidContent\" hatası verilmelidir. \n Olay Abonelik kaydı oluşturmak isteyen YÖS tarafından olay tipi ve kaynak tipi için iletilen değerler olması gereken sıralı veri tülerinden(TR.OHVPS.DataCode.OlayTip ve TR.OHVPS.DataCode.KaynakTip) farklı ise HHS tarafından  \"HTTP 400-TR.OHVPS.Resource.InvalidFormat\" hatası verilmelidir. \n Abonelik üzerinde görüntüleme, güncelleme, silme işlemlerini gerçekleştirebilir.\nYÖS'ün Aboneliği devam ettiği sürece; YÖS'ün açacağı Olay Dinleme API'sine, HHS tarafından abonelik kapsamında olay bildirimleri iletilir. \n BKM'nin sunacağı abonelik servisleri için HHS ve YÖS'lerin abonelik isteği yapmasına gerek bulunmamaktadır. BKM üretim ortamı tanımları yapılırken katılımcıları abonelik servislerine üye yapacaktır. BKM'nin sunacağı abonelik servislerinin olay tipi \"HHS_YOS_GUNCELLENDI\"dir. HHS ve YÖS API ile sunulan bilgilerde bir değişiklik olduğunda yapılacak olay bildirimlerini sağlar.\nÖrneğin; HHS logo bilgilerinde yapılacak bir değişiklik sonrasında, YÖS'lere yapılacak bildirim ile logo bilgisini değişen HHS'nin hhsKod değerini iletir. YÖS, HHS API'yi  hhsKod ile çağırarak HHS'nin güncel bilgilerini alır. Güncel bilgiler ile kendi sistemini günceller. \n OlayAbonelikIstegi nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n \n Abonelik Tipleri \n abonelikTipleri \n Kompleks: abonelikTipleri[Array][1..N] \n Z \n \n \n \n \n > Olay Tipi \n olayTipi \n AN1..36 \n Z \n YÖS abone olmak istediği olay tiplerini TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden değer ya da değerler ile doldurur. \n \"Olay Tipleri ve Kaynak Tipleri İlişkisi\" tablosunda \"Olay Bildirim Yapan\" kolonu \"HHS\" olan olay tipleri ile veri girişine izin verilir. \n \n \n > Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n Olay tiplerinin tanımlanabildiği kaynak listesi bulunmaktadır. Bu listeye uygun kaynak tipleri iletilmelidir. \n HHS, YÖS API üzerinden YÖS'ün rollerini alarak uygun kaynak tiplerine kayıt olmasını sağlar. \n \n \n \n OlayAbonelik nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Olay Abonelik Numarası \n olayAbonelikNo \n AN1..64 \n Z \n YÖS özelinde oluşturulan tekil tanımlayıcıdır. Farklı YÖS'ler için aynı değer kullanılamaz. \n \n \n Olay Abonelik Oluşturulma zamanı \n olusturmaZamani \n ISODateTime \n Z \n Olay Abonelik nesnesinin oluşturulma zaman damgası \n \n \n Olay Abonelik Güncelleme zamanı \n guncellemeZamani \n ISODateTime \n Z \n Olay Abonelik nesnesinin güncelleme zaman damgası iletilebilir. İlk değeri olay abonelik oluşturma zamanı bilgisidir. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n Abonelik Tipleri \n abonelikTipleri \n Kompleks: abonelikTipleri[Array][1..N] \n Z \n OlayAbonelikIstegi nesnesi içerisinde iletilen değerlerin yanıt içerisinde dönmesi beklenmektedir. \n \n \n > Olay Tipi \n olayTipi \n AN1..36 \n Z \n \n \n \n > Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n \n \n \n \n Olay Tipleri ve Kaynak Tipleri İlişkisi \n * Anlık : Olay gerçekleştikten sonra maksimum 5 saniye içerisindeki zaman \n \n \n \n Olay Tipleri \n YÖS Rolü \n Kaynak Tipleri \n Olay Oluşturulma durumu \n KaynakNo \n Asıl verinin elde edileceği API \n Olay Bildirimini Yapan \n Olay Bildirim Zamanı \n Retry Policy \n \n \n \n \n KAYNAK_GUNCELLENDI \n ÖBH \n ODEME_EMRI \n Tüm ödeme durum değişikliklerinde \n odemeEmriNo \n GET /odeme-emri/{odemeEmriNo} \n HHS \n Anlık \n 30 Dakika - 3 Deneme \n \n \n \n HBH \n HESAP_BILGISI_RIZASI \n Rıza iptal detay kodu ‘02’ : Kullanıcı İsteği ile HHS üzerinden İptal durumunda \n RizaNo \n GET /hesap-bilgisi-rizasi/{RizaNo} \n HHS \n *Anlık \n 30 Dakika - 3 Deneme \n \n \n \n HBH \n BAKIYE \n Bakiye nesnesindeki tutarla ilgili bir bilgi değiştiğinde ve HBH rızası içerisinde \"06-Anlık Bakiye Bildirimi\" izin türü varsa oluşturulur. Mevcutta alınmış rızalar için  bakiye kaynak tipi özelinde 06 izin türü gerektiğinden; mevcut rızanın yenilenmesine dair müşteriye bilgilendirme yapılarak 06 izin türünü kapsayan yeni rıza alınması süreci YÖS tarafından gerçekleştirilebilir. Bloke tutar değişikliği için olay oluşturma ve bildirimi HHS inisiyatifindedir. KrdHsp içerisinde yer alan kulKrdTtr değerinin değiştiği durumda olay bildirim gönderilmesi gerekmektedir. \n hspRef \n GET /hesaplar/{hspRef}/bakiye, GET /hesaplar/{hspRef}/islemler \n HHS \n Maksimum 10 dakika içerisinde \n Retry policy uygulanmamalıdır. İlk istek gönderilemediği durumda İletilemeyen Olaylara eklenmelidir. \n \n \n \n HBH \n COKLU_ISLEM_TALEBI ( bulk-data) \n İlgili API İlke ve kurallarına eklendiğinde güncellenecektir. \n \n \n HHS \n \n 30 Dakika - 3 Deneme \n \n \n AYRIK_GKD_BASARILI \n ÖBH \n ODEME_EMRI_RIZASI \n HHS sisteminde ÖHK kendini doğruladığında rıza oluşturulur. YÖS'e rıza oluşturulduğuna dair bildirim yapılır. YÖS yetkod değerini sorgulama sonucunda elde eder. \n RizaNo \n GET /yetkilendirme-kodu?rizaNo={rizaNo}}&rizaTip=O \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n \n HBH \n HESAP_BILGISI_RIZASI \n HHS sisteminde ÖHK kendini doğruladığında rıza oluşturulur. YÖS'e rıza oluşturulduğuna dair bildirim yapılır. YÖS yetkod değerini sorgulama sonucunda elde eder. \n RizaNo \n GET /yetkilendirme-kodu?rizaNo={rizaNo}&rizaTip=H \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n AYRIK_GKD_BASARISIZ \n ÖBH \n ODEME_EMRI_RIZASI \n HHS sisteminde ÖHK kendini doğruladıktan sonra yaptığı kontroller neticesinde logine izin vermez ise YÖS'e bildirim yapılır. YÖS rıza durumunu sorgulayarak işlemin neden iletilmediğine dair bilgi edinebilir. \n RizaNo \n GET /odeme-emri-rizasi/{RizaNo} \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n \n HBH \n HESAP_BILGISI_RIZASI \n HHS sisteminde ÖHK kendini doğruladıktan sonra yaptığı kontroller neticesinde logine izin vermez ise YÖS'e bildirim yapılır. YÖS rıza durumunu sorgulayarak işlemin neden iletilmediğine dair bilgi edinebilir. \n RizaNo \n GET /hesap-bilgisi-rizasi/{RizaNo} \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n HHS_YOS_GUNCELLENDI \n \n \n BKM sistemi tarafından üretilecek olayları dinlemek için kullanılacak kaynak tipidir. YÖS ve HHS'lerin BKM'ye abonelik oluşturmasına gerek bulunmamaktadır. BKM HHS ve YÖS üretim ortamı tanımı yaparken aboneliklerini başlatacaktır.   (HHS yaygınlaştırma durumundayken de aboneliği başlatılacaktır.) \n \n \n HHS \n \n \n \n \n \n YÖS \n HHS \n HHS bilgilerinde değişiklik olduğunda, YÖS'ün hhsKod ile sorgulama yapması ve değişen bilgiyi güncellemesi beklenmektedir. \n hhsKod \n GET /hhs/{hhsKod} \n BKM \n *Anlık \n 5 Dakika - 3 Deneme \n \n \n \n HHS \n YOS \n YÖS bilgilerinde değişiklik olduğunda, HHS'nin yosKod ile sorgulama yapması ve değişen bilgiyi güncellemesi beklenmektedir. \n yosKod \n GET /yos/{yosKod} \n BKM \n *Anlık \n 5 Dakika - 3 Deneme \n \n \n \n * Anlık : Olay gerçekleştikten sonra maksimum 5 saniye içerisindeki zaman \n ADIM 2: Olay Aboneliğinin güncellenmesi \n PUT\tolay-abonelik/{olayAbonelikNo} \n YÖS'ün olay aboneliğine ait abonelik tiplerini güncelleyebildiği servistir. Olay aboneliği oluşturulduğu zaman HHS tarafından iletilen olayAbonelikNo aracılığı ile güncelleme işlemi yapılır. YÖS abone olmak istediği olay-kayıt tiplerininin son halini güncelleme servisi ile HHS'ye iletir. HHS bu bilgilerle eski abonelik tiplerinin yerini değiştirir. \n Başarılı PUT isteği sonucu HTTP 200 cevabı ile iletilmelidir. \n OlayAbonelikIstegi nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Olay Abonelik Numarası \n olayAbonelikNo \n AN1..64 \n Z \n YÖS özelinde oluşturulan tekil tanımlayıcıdır. Farklı YÖS'ler için aynı değer kullanılamaz. \n HHS geçerli bir olay abonelik numarası olduğunun kontrolünü yapar. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n \n Abonelik Tipleri \n abonelikTipleri \n Kompleks: abonelikTipleri[Array][1..N] \n Z \n HHS Sisteminde, YÖS'ün eski abonelikleri yeni aboneliklerle güncellenmelidir. \n \n \n \n > Olay Tipi \n olayTipi \n AN1..36 \n Z \n YÖS abone olmak istediği olay tiplerini TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden değer ya da değerler ile doldurur. \n \"Olay Tipleri ve Kaynak Tipleri İlişkisi\" tablosunda \"Olay Bildirim Yapan\" kolonu \"HHS\" olan olay tipleri ile veri girişine izin verilir.  Olay tipi AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ için, YÖS'ün ODS API'yi sunması zorunludur. HHS, bu olay tipleri özelinde YÖS API üzerinden YÖS'ün bu API'yi sunduğunu kontrol eder ve eğer sunmuyor ise TR.OHVPS.Business.InvalidContent hatası dönerek kayıt işlemini gerçekleştirmez. \n \n \n > Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n Olay tiplerinin tanımlanabildiği kaynak listesi bulunmaktadır. Bu listeye uygun kaynak tipleri iletilmelidir. \n HHS, YÖS API üzerinden YÖS'ün rollerini alarak uygun kaynak tiplerine kayıt olmasına izin verir. \n \n \n \n OlayAbonelik nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Olay Abonelik Numarası \n olayAbonelikNo \n AN1..64 \n Z \n YÖS özelinde oluşturulan tekil tanımlayıcıdır. Farklı YÖS'ler için aynı değer kullanılamaz. \n \n \n Olay Abonelik Oluşturulma zamanı \n olusturmaZamani \n ISODateTime \n Z \n Olay Abonelik nesnesinin oluşturulma zaman damgası \n \n \n Olay Abonelik Güncelleme zamanı \n guncellemeZamani \n ISODateTime \n Z \n Olay Abonelik nesnesinin güncelleme zaman damgası \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n Abonelik Tipleri \n abonelikTipleri \n Kompleks: abonelikTipleri[Array][1..N] \n Z \n OlayAbonelikIstegi nesnesi içerisinde iletilen değerlerin yanıt içerisinde dönmesi beklenmektedir. \n \n \n > Olay Tipi \n olayTipi \n AN1..36 \n Z \n OlayAbonelikIstegi nesnesi içerisinde iletilen değerlerin yanıt içerisinde dönmesi beklenmektedir. \n \n \n > Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n OlayAbonelikIstegi nesnesi içerisinde iletilen değerlerin yanıt içerisinde dönmesi beklenmektedir. \n ADIM 3: Olay Aboneliğinin sorgulanması \n GET /olay-abonelik \n YÖS olay abonelik bilgilerini sorgulamak isteyebilir. HHS, YÖS'e ait aktif durumdaki abonelik bilgisini iletir.\nBaşarılı GET sonucu HTTP 200 kodu ile iletilmelidir. \n OlayAbonelik nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Olay Abonelik Numarası \n olayAbonelikNo \n AN1..64 \n Z \n YÖS özelinde oluşturulan tekil tanımlayıcıdır. Farklı YÖS'ler için aynı değer kullanılamaz. \n \n \n Olay Abonelik Oluşturulma zamanı \n olusturmaZamani \n ISODateTime \n Z \n Olay Abonelik nesnesinin oluşturulma zaman damgası \n \n \n Olay Abonelik Güncelleme zamanı \n guncellemeZamani \n ISODateTime \n Z \n Olay Abonelik nesnesinin güncelleme zaman damgası \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n Abonelik Tipleri \n abonelikTipleri \n Kompleks: abonelikTipleri[Array][1..N] \n Z \n YÖS'ün abone olduÄ
16Ÿu olay - kaynak listesini döner. \n \n \n > Olay Tipi \n olayTipi \n AN1..36 \n Z \n TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden değerler içerir. \n \n \n > Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n TR.OHVPS.DataCode.KaynakTip sıralı veri tiplerinden değerler içerir. \n ADIM 4: Olay Aboneliğinin iptali \n DELETE /olay-abonelik/olayAbonelikNo \n YÖS'ün abonelik kaydını silmesi için HHS'nin sunduğu servistir.  Başarılı silme işlemi sonucu HTTP 204 ile YÖS'e iletilir. \n ADIM 5: Olay Aboneliğinin İletilemeyen Olayları \n GET /iletilemeyen-olaylar \n HHS kaynaklar üzerinde oluşacak olayları YÖS'e POST/olay-dinleme servisi ile gönderim sağlamaktadır. Bu gönderim belli bir yeniden gönderim politası (retry-policy) ile yapılmalıdır.  Ancak yine de iletilemeyen olaylar olursa (YÖS servisinden HTTP 202 alamama durumu) YÖS'e iletilemeyen-olaylar servisi üzerinden sunulmalıdır. Yani yeniden gönderim politikası sonunda gönderilemeyen olaylar bu servis ile sunulmalıdır. \n Aynı kaynak numarası ile aynı olay-kaynak tipinde, 1 YÖS’e ait, 1 adet iletilemeyen olay kaydı olabilir. \n Bu serviste 1 gün öncesinden sorgu anına kadar tüm kayıtlarına ait iletilemeyen olaylar listelenmelidir.\nÖrnek sorgu zamanı : 2023-04-06T15:14:00+03:00\nHHS'nin sunacağı veri 2023-04-05T00:00:00+03:00  ile 2023-04-06T15:14:00+03:00 arasında olmalıdır.\nSıralama yönü olay tarihine göre artan şekilde olmalıdır. Sayfalama 100'er kayıt dönülerek yapılmalıdır. \n YÖS tarafından iletilemeyen olaylar isteği 10 dakikada bir olacak şekilde yapılabilir. HHS bu limite uygun işlem kısıtı uygulayabilir. \n İşlem Sorgu Örneği GET İşlem Sorgu Örneği  : /iletilemeyen-olaylar?syfNo=1&olyZmnBslTrh=2024-01-08T16:42:00+03:00&olyZmnBtsTrh=2024-01-09T17:09:00+03:00 \n Örneğin; \n olyZmnBslTrh : 07/01/2024 10:00:00+03:00\n olyZmnBtsTrh : 09/01/2024 16:00:00+03:00\n Sorgu Zamanı : 09/01/2024 10:15:00+03:00 \n Yanıt içerisinde yer alan veriye ait tarih aralığı : 08/01/2024 00:00:00+03:00 - 09/01/2024 10:15:00+03:00 olmalıdır. \n Başlangıç ve bitiş zaman aralığı örnekte yer alan şekilde seçilse dahi ilgili servis yanıtı için öncelikle sorgu zamanına bakılıp 1 gün öncesinden sorgu anına kadar tüm kayıtların iletilemeyen olaylar içerisinde listelenmesi sağlanmalıdır. \n İlgili tarih aralığında uygun veri olmaması halinde yanıt gövdesi boş olacak şekilde dönülmelidir. \n İletilemeyen Olaylar Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n İstenen Sayfa Numarasi \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS İletilemeyen Olaylar listesine ait bu sayfadaki kayıtları göndermelidir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları göndermelidir. \n \n \n Olay Zamanı Başlangıç Tarihi \n olyZmnBslTrh \n ISODateTime \n İ \n Sorgulanacak Olay Zamanına ait başlangıç tarihi \n HHS'ler iletilemeyen olaylar listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. YÖS tarafından tetiklenen sorgularda; olyZmnBslTrh iletilmediği durumda ya da 1 gün öncesinin başlangıç saatine göre daha geri bir zaman dilimi gönderildiğinde, başlangıç zamanı(olyZmnBslTrh) değeri sorgu zamanından 1 gün öncesine ait günün başlangıç zamanı olarak kabul edilmelidir. \n \n \n Olay Zamanı Bitiş Tarihi \n olyZmnBtsTrh \n ISODateTime \n İ \n Sorgulanacak Olay Zamanına ait bitiş tarihi \n HHS'ler iletilemeyen olaylar listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. YÖS tarafından tetiklenen sorgularda; olyZmnBtsTrh iletilmediği durumda ya da sorgu zamanından daha ileri bir zaman dilimi gönderildiğinde, bitiş zamanı(olyZmnBtsTrh) değeri sorgu zamanı olarak kabul edilmelidir. \n \n \n \n Tablo 17: Olaylar nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n Olaylar \n olaylar \n Kompleks: Olaylar \n Z \n \n \n \n >Olay No \n olayNo \n AN1..64 \n Z \n Olaya ait evrensel tekil numaradır. \n \n \n >Olay Zamani \n olayZamani \n ISODateTime \n Z \n Olayın oluştuğu tarih bilgisidir. \n \n \n >Olay Tipi \n olayTipi \n AN1..36 \n Z \n TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden birini alır. \n \n \n >Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n TR.OHVPS.DataCode.KaynakTip sıralı veri tiplerinden birini alır. \n \n \n >Kaynak Numarası \n kaynakNo \n AN1..128 \n Z \n Güncellenen kaynağa ait HHS sistemindeki tekil tanımlayıcı. \n \n \n \n Kaynak numarasında gönderilen değer ile ilgili kaynağı sorgulayarak almak YÖS'ün insiyatifindedir. \n ADIM 6: Sistem Olay Dinleme \n POST /sistem-olay-dinleme \n HHS'lerin sistem olaylarını dinleme amacıyla açması gereken endpoint bilgisidir. \n YÖS API içerisinde yapılan değişikliklerde, BKM tarafından HHS'lere olay bildirimlerini yapılır. \n Olaylar yanıt nesnesi içerisinde 1 adet kayıt yer almalıdır. \n Başarılı POST isteği sonucu HTTP 202 Accepted kodu ile dönülmelidir. \n HHS'den başarılı yanıt alınamadığı durumda, 5 dakika aralıklarla 3 kez deneme yapılacaktır. Hata alınmaya devam edilmesi durumunda başka bir aksiyon alınmayacaktır. \n Olay Dinleme Servisleri (ODS) \n YÖS sunacağı Olay Dinleme Servisi ile hem HHS'den hem de BKM'den gelen olayların bildirimini dinleyebilir. YÖS'ler HHS'de yer alan olay abonelik kayıtlarını iptal edebilir ancak BKM Sistem Olay Dinleme servisinin ileteceği bildirimlerin alınması zorunlu olduğundan ODS API her zaman aktif olmalıdır. \n HHS'den gelecek olay bildirimlerini olay-dinleme endpointi ile dinlerken, BKM'den gelecek olay bildirimlerini sistem-olay-dinleme endpointi ile dinlemelidir. \n Olay Dinleme Servislerinde Idempotency kurallarının işletilmesine gerek bulunmamaktadır. \n Olay Dinleme Servisine ait API Endpointleri aşağıdaki tabloda listelenmiştir. \n Olay Dinleme Servisleri için Erişim Adresleri (Endpoints) \n Etki Alanı (Scope) =“olay_dinleme” \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu (Z)/ İsteğe Bağlı(İ) \n Yetkilendirme Türü \n İmzalama \n Parametre \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n olay-dinleme \n POST \n /olay-dinleme \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek \n - \n Olaylar \n - \n \n \n 2 \n sistem-olay-dinleme \n POST \n /olay-dinleme \n Z \n İstemci Kimlik Bilgileri \n 
16- \n - \n Olaylar \n - \n ADIM 1: Olay Dinleme \n POST /olay-dinleme \n Olay abonelik servisi ile abone olunan olaylar, olay dinleme servisi ile YÖS'e iletilir.\nOlaylar yanıt nesnesi içerisinde en fazla 100 kayıt gönderilmelidir.\nBaşarılı POST isteği sonucu HTTP 202 Accepted ile dönülmelidir. \n HHS'nin işlem hata aldığında, başarılı işlem olana kadar 3 kez deneme yapılması gerekmektedir.\nİlk istekle son istek arasında 30 dakika olacak şekilde, zamana yayarak bu denemelerin yapılması gerekmektedir. (Exponential backoff policy uygulanması beklenmektedir. )\nHHS kendi sistemini yormayacak şekilde, belirleyeceği kurallar dahilinde bu geliştirmeyi yapmalıdır. \n Tablo 17: Olaylar nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n >Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >>Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n >> Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n >Olaylar \n olaylar \n Kompleks: Olaylar \n Z \n \n \n \n >>Olay Numarası \n olayNo \n AN1..64 \n Z \n Olaya ait atanmış tekil kimlik numarası \n \n \n >>Olay Zamanı \n olayZamani \n ISODateTime \n Z \n Olayın oluşma zamanı \n \n \n >>Olay Tipi \n olayTipi \n AN1..36 \n > \n TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden birini alır. \n \n \n >>Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n TR.OHVPS.DataCode.KaynakTip sıralı veri tiplerinden birini alır. \n \n \n >>Kaynak Numarası \n kaynakNo \n AN1..128 \n Z \n Güncellenen kaynağa ait HHS sistemindeki tekil tanımlayıcı. \n ADIM 2:  Sistem Olay Dinleme \n POST /sistem-olay-dinleme \n YÖS'lerin sistem olaylarını dinleme amacıyla açması gereken endpoint bilgisidir. \n HHS API içerisinde yapılan değişikliklerde, BKM tarafından YÖS'lere olay bildirimlerini yapılır. \n Olaylar yanıt nesnesi içerisinde 1 adet kayıt yer almalıdır. \n Başarılı POST isteği sonucu HTTP 202 Accepted kodu ile dönülmelidir. \n YÖS'ten başarılı yanıt alınamadığı durumda, 5 dakika aralıklarla 3 kez deneme yapılacaktır. Hata alınmaya devam edilmesi durumunda başka bir aksiyon alınmayacaktır. \n"},{title:"4. Rıza Durumları",frontmatter:{},regularPath:"/v1.1.0/contents/riza-durumlari.html",relativePath:"v1.1.0/contents/riza-durumlari.md",key:"v-3358815e",path:"/v1.1.0/contents/riza-durumlari.html",headers:[{level:2,title:"4.1.\tHesap Bilgisi Hizmeti Rıza durum değişiklikleri",slug:"_4-1-hesap-bilgisi-hizmeti-rıza-durum-degisiklikleri"},{level:2,title:"4.2.\tÖdeme Bilgisi Hizmeti Rıza Durum Değişiklikleri",slug:"_4-2-odeme-bilgisi-hizmeti-rıza-durum-degisiklikleri"}],content:" 4. Rıza Durumları \n ÖHK, Ödeme Emri Başlatma Hizmetine ya da Hesap Bilgisi Hizmetine müşteri rızasının tesisi ile başlar. ÖHK’nın YÖS uygulaması üzerinden yaptığı işlemler neticesinde rıza durumları değişebilir.\nRıza’nın alabileceği durum kodları şu şekilde belirlenmiştir. \n B: Yetki Bekleniyor  – İlk rıza talebinde \n Y: Yetkilendirildi  – Başarılı GKD sonrası yetKod üretildiğinde \n K: Yetki Kullanıldı  – Erişim Belirteci alındığında \n E: Yetki ödeme emrine dönüştü  – ÖBHS için \n S: Yetki Sonlandırıldı \n    HBHS için : Erişimin Geçerli Olduğu Son Tarih geldiğinde \n    ÖBHS için : Yenileme belirteci Son Tarihi geldiğinde \n I :Yetki İptal \nRıza iptal durumu ise gerek raporlama gerekse müşteri deneyimi perspektifinden doğru   bilgilendirmeler yapılabilmesi açısından aşağıdaki gibi detay kodları ile zenginleştirilmiştir: \n \n Rıza İptal Detay Kodu: \n \n \n \n ‘01’ :\tYeni Rıza Talebi ile İptal \n ‘02’ :\tKullanıcı İsteği ile HHS üzerinden İptal \n ‘03’ :\tKullanıcı İsteği ile YÖS üzerinden İptal \n ‘04’ :\tSüre Aşımı : Yetki Bekleniyor \n ‘05’ :\tSüre Aşımı : Yetkilendirildi \n ‘06’ :\tSüre Aşımı : Yetki Ödemeye Dönüşmedi \n ‘07’ :\tGKD iptali : Aynı rıza no ile mükerrer çağrımı \n ‘08’ :\tGKD iptali : Rızano ile kimlik bilgileri uyuşmaması \n ‘09’ :\tGKD iptali : Uygun ürünü bulunmuyor \n ‘10’ :\tGKD iptali : HHS Açık Bankacılık kanalı işleme kapalı \n ’11’ :\tGKD iptali : Hesap Yetki S
16orunu \n ‘12’ :\tGKD iptali : ÖHK HHS kontrollerini aşamadı \n ‘13’ :\tGKD iptali : ÖHK isteği ile GKD’den vazgeçildi \n ‘14’ :\tGKD iptali : Fraud Şüphesi \n ‘99’ :\tGKD iptali : Diğer \n \n \n 4.1 ve 4.2 bölümlerinde detaylandırılan rıza durum değişikliklerinde rıza iptal detay kodları kullanılmıştır. \n Örneğin B⇨ I/01 denildiğinde “Yetki Bekleniyor” rıza durumundan “Yetki İptal” rıza durumuna Rıza İptal Detay Kodu da ‘01’ yani ‘Yeni Rıza Talebi ile İptal’ olarak güncellenmelidir ifade edilmiştir. \n ÖHK verdiği rıza sırasında seçtiği hesaplarından biri kapatılırsa, diğer hesaplara ait bilgileri görmeye devam eder. Ancak ÖHK’nın hesabına ait bilgilerinin YÖS'e iletilmesini istemediği durumda, rızasını tamamen iptal ederek yeni hesap listesi ile yeni rıza vermesi gerekmektedir. Yani hesap kapanması nedeniyle rıza geçerliliğini yitirmez. ÖHK'nın proaktif olarak bu hesabı rızadan çıkarması durumunda rıza iptali olur. \n Rıza iptal edilmediği ve geçerli olduğu sürece kapalı hesaplar için diğer çevrimiçi kanallarda uygulanan yöntem izlenmelidir. Diğer çevrimiçi kanallarda kapalı hesaplara ilişkin bilgi dönülmüyor ise ÖHVPS'den de dönüş yapılmaz. ÖHK’nın rıza onayı verdiği açık hesaplarının tümü HHS tarafında kapatıldığı durumda, yine aynı şekilde HHS çevrimiçi kanallarında koyduğu kurallara göre bu hesaplarının YÖS uygulamasında gösterilmesine karar verir. \n Hesap kapama ve ticari kullanıcıların hesaplar üzerindeki yetki değişiklikleri HHS'nin iç sistemleri tarafından yapılan kontrollerle yönetilir. Buradaki değişiklikler ile HHS sistemsel olarak rıza iptali gerçekleştiremez. ÖHK izni ve onayı dahilinde rıza iptal gerçekleştirilmesi gerekmektedir. \n HHS'ler sunmuş oldukları Rıza İptal ekranını (sadece Hesap Bilgisi Rızası için), hangi ortamlardan GKD yapılmasına izin veriliyorsa (web/mobil) aynı ortamdan ÖHK'ya sunmalıdır.  Örneğin bir HHS bireysel müşterileri için web ve mobil, kurumsal müşteriler için web üzerinden GKD imkanı sunuyor ise, minimumda bireysel müşteriler için web ve mobil ortamlarından, kurumsal müşteriler için web ortamından Rıza İptal ekranı aracılığı ile rıza iptaline izin vermelidir. Bunun dışında çağrı merkezi ya da şube gibi ortamlardan sunacağı Rıza İptal imkanı HHS inisiyatifindedir. Bahsi geçen zorunluluk Ödeme Emri Rıza İptal ekranı için geçerli değildir. \n Benzer şekilde YÖS'ler hangi ortamlardan (web/mobil) hizmet veriyorsa, aynı ortam üzerinden Rıza İptal ekranını sunmalıdır. \n 4.1.\tHesap Bilgisi Hizmeti Rıza durum değişiklikleri \n Kural : Bir ÖHK'nın, bir YÖS için, bir HHS'de Y, K, B rıza durumlarında tek bir rızası olabilir.\nBir ÖHK hem kişisel olarak hem de bir kurumun kullanıcısı olabilir. Bu durumda kurum ve kişisel rıza aynı anda mevcut olabilmelidir. Rıza nesneleri, HHS tarafından uygun şekilde yönetilmelidir. \n \n \n Hesap Bilgisi Rızası isteği HHS’ye iletilir. \na.\tHHS ÖHK'ya ait içeride rıza var mı kontrol eder. Eğer yoksa  Yetki Bekleniyor - B  rıza durumu ile yeni rıza oluşturur. \nb.\tEğer içeride rıza varsa \n     i. Rıza durumu Yetki Bekleniyor - B ise; \n        HHS, sistemde Yetki Bekleniyor - B rıza durumuna sahip kayıt olduğu için, öncelikle eski kaydı Yetki İptal - I durumuna getirir.  Rıza İptal Detay Kodu “Yeni Rıza Talebi ile iptal” olmalıdır.  B ⇨ I / 01  Sonrasında,  Yetki Bekleniyor - B  rıza durumu ile yeni rıza oluşturur. \n      ii. Rıza durumu Yetkilendirildi - Y veya Yetki Kullanıldı - K ise; \n    ÖHK'nın halihazırda verilmiş bir rızası vardır. HHS, önce mevcut rızanın iptalinin yapılması gerektiğine dair   TR.OHVPS.Resource.ConsentMismatch  hatasını döner. YÖS, HHS ya da YÖS uygulaması üzerinden bu rızanın iptal edilmesi gerektiğine dair ÖHK'ya bilgilendirme yapar. \n      iii.\tRıza durumu Yetki Sonlandırıldı - S  ise Yetki Bekleniyor - B durumunda yeni rıza no oluşturur. \n      iv.\tRıza durumu Yetki İptal - I ise  Yetki Bekleniyor - B  durumunda yeni rıza no oluşturur. \n \n \n GKD başarılı bir şekilde tamamlandığında Rıza durumu Yetki Bekleniyor’dan Yetkilendirildi’ye güncellenir.  B ⇨ Y \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdar olmayabilir. \n ÖHK GKD yapmadan ayrılmış olabilir. (ÖR: Tarayıcıyı kapatmış olabilir) Rıza Yetki Bekleniyor - B rıza durumunda kalır.  5 dakika içerisinde sistem tarafından Yetki Bekleniyor - B rıza durumundaki kayıtlar Yetki İptal  : Yetki Bekleniyor Süre Aşımı olarak güncellenir.   B ⇨ I / 04  Bkz. 9. Madde. \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdardır. HHS yonlendirme adresinin query parametrelerine  rizaIptDtyKod  değerini ekleyerek bu durumu YÖS’e bildirmek zorundadır. \n \n \n Rıza durumunun  “Yetkilendirildi\" , “Yetki Kullanıldı” olduğu durum.  Yetki Bekleniyor ⇨ Yetki İptal   B ⇨  I / 07 \n \n \n Rızano ile kimlik bilgileri uyuşmazlığı.  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 08 \n \n \n ÖHK'nın HHS'de ilgili ürününün olmadığı durum (hesap/kart) Yetki Bekleniyor ⇨ Yetki İptal   B ⇨ I / 09 \n \n \n Açık bankacılık kanalınız işleme kapalıdır.Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 10 \n \n \n Kullanıcının HHS'deki hesaplarında yeterli yetkisinin olmama durumu  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 11 \n \n \n HHS’nin ÖHK için yaptığı kontrollerin başarısız olduğu durum Yetki Bekleniyor ⇨ Yetki İptal   B ⇨ I / 12 \n \n \n ÖHK isteği ile GKD’den vazgeçildiği durum Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 13 \n \n \n Fraud Şüphesi Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 14 \n \n \n Diğer Yetki Bekleniyor ⇨  Yetki İptal   B ⇨  I / 99 \n \n \n \n \n \n \n ÖHK, hesaplarında/izin türlerinde/Erişimin Geçerli Olduğu Son Tarih bilgilerinden bir ya da birden fazlasında güncelleme yapmak için YÖS ekranına girer. \n \n \n     a.\tYÖS önce Rıza İptal API'sini çağırır. Sonra yeni değerlerle yeni bir rıza isteğinde bulunur. Tekrar GKD gerekir. \n     b.\tYÖS rıza iptal yapmadan yeni rıza alma akışına başlarsa 1.b akışı devreye girer. \n     c.\tRıza güncelleme ilerleyen sürümlerde ele alınacaktır. \n \n \n Erişim Belirteci API \n a. Erişim Belirteci'nin yetkilendirme kodu ile çağrımı yapıldığında;
16 \n      i. Rıza durumu Yetki İptal - I ya da Yetki Sonlandırıldı - S ise   TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     ii. Rıza durumu Yetki Bekleniyor - B ya da Yetki Kullanıldı - K  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iii. Rıza durumu Yetkilendirildi - Y olduğunda erişim belirteci tahsis edilir.\nErişim belirteci alındığında rıza durumu K: Yetki Kullanıldı yapılır.  Y ⇨K \n b. Yenileme belirteci karşılığı erişim belirteci alınması sırasında; yenileme belirteci kontrolü ve sonrasında rıza kontrolü yapılmalıdır. \n      i. Öncelikle Yenileme Belirteci Geçerlik Süresi kontrolü yapılmalıdır. Geçerli bir Yenileme Belirteci olmadığı görülür ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n     ii. Rıza durumu Yetki İptal - I  ya da Yetki Sonlandırıldı - S ise  TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     iii. Rıza durumu Yetki Bekleniyor - B ya da Yetkilendirildi - Y  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iv. Rıza durumu Yetki Kullanıldı - K olduğunda, yenileme belirteci karşılığı erişim belirteci tahsis edilir. \n \n \n Sorgulama: HBHS, rıza alma akışına başlamadan önce, daha önce oluşturulmuş bir hesap bilgisi-rizasi kaynağının durumunu, isteğe bağlı olarak alabilir. Rıza numarası ile sorgulama yapılır. \n \n \n Hesap Bilgisi Rızasının İptali: HBHS üzerinden ya da HHS üzerinden yapılan rıza iptallerinde Rıza durumu  Yetki İptal - I olarak güncellenir. Rıza numarası ile iptal sağlanır. \n a. HHS üzerinden rıza iptali yapmış olabilir.  Rıza durumu sorgulanır. \n Rıza numarası Yetki Bekleniyor - B ve Yetkilendirildi - Y ve Yetki Kullanıldı - K durumlarında ise Yetki İptal durumuna getirilir. Rıza gnclzmn timestamp ile güncellenir.\nHHS, Rıza iptalinde aynı zamanda erişim belirtecini de invalid hale getirmelidir. \n B ⇨ I / 02 \n Y ⇨ I / 02 \n K ⇨ I / 02 \n b.\tYÖS üzerinden yapılacak iptal işleminde yine Y ve B ve K rıza durumlarında ise iptal edilebilir. \n B ⇨ I / 03 \n Y ⇨ I / 03 \n K ⇨ I / 03 \n Rıza durumu Yetki Sonlandırıldı - S  ise iptal gerçekleşmez. “Rıza durumunuz iptal etmeye uygun değildir.” hatası ÖHK'ya yansıtılır.  TR.OHVPS.Resource.ConsentRevoked \n \n \n ÖHK’nın verdiği rıza süresi dolmuş olabilir.\nErişimin Geçerli Olduğu Son Tarih geldiğinde Rıza durumu Yetki Kullanıldı’dan Yetki Sonlandırıldı durumuna çekilmelidir.   K ⇨ S \n \n \n Hesaplar, Bakiye ve İşlemler servislerinde erişim belirteci kontrolü ve sonrasında rıza kontrolü yapılmalıdır.\nGeçerli bir erişim belirteci yok ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n YÖS'ün; Rıza İptal - I ya da Yetki Sonlandırıldı - S rıza durumlarında Hesaplar, Bakiye ve İşlemler servislerini çağırmaması beklenir. HHS'nin bu rıza durumları ile yapılmış çağrılar olduğunda  TR.OHVPS.Resource.ConsentRevoked  hatasını dönmesi gereklidir. \n Rıza durumu Yetki Kullanıldı - K dışında ise  TR.OHVPS.Resource.ConsentMismatch  hatası verilmelidir. \n Rıza durumu Yetki Kullanıldı - K ise servis akışlarına devam edilir. \n Rıza sorgulama API'sinde ilgili rıza kaydı bulunamaz veya sorgulayan kurumun yetkisi yoksa (örn : YÖS’ün farklı bir YÖS’e ait rıza noyu sorgulaması) \n TR.OHVPS.Resource.NotFound hatası  verilmelidir. \n \n \n HHS/YÖS tarafında rıza bilgileri belirli aralıklarla sistem kullanıcısı tarafından taranır:\n5 dakikadan uzun süredir “Yetki Bekleniyor” durumunda kalan kayıtların durumları güncellenir.\nYetki Bekleniyor  ⇨ Rıza İptal  / Süre Aşımı : Yetki Bekleniyor  B ⇨ I / 04 \n 5 dakikadan uzun süredir “Yetkilendirildi” durumunda kalan kayıtlar güncellenir.\nYetkilendirildi     ⇨ Rıza İptal / Süre Aşımı: Yetkilendirildi  B ⇨ I / 05 \nYukarıda bahsedilen, YÖS Süre Aşımı nedeniyle rıza iptal durum güncellemelerini y
16apmadan önce HHS’yi sorgulayarak rıza durumunu öğrenmeli ve süre aşımı dışında bir kodu varsa aynı kodla kendi sistemini güncellemelidir. \nErişimin Geçerli Olduğu Son Tarih geldiğinde rıza durumu Yetki Kullanıldı’dan Yetki Sonlandırıldı’ya güncellenir.  K ⇨ S \n 4.2.\tÖdeme Bilgisi Hizmeti Rıza Durum Değişiklikleri \n Kural : Bir ÖHK'nın bir YÖS için bir HHS'de istediği kadar rızası olabilir. \n Kurum ve kişisel rıza aynı anda mevcut olabilmelidir. Rıza nesneleri, HHS tarafından uygun şekilde yönetilmelidir. \n \n \n Ödeme Emri Rızası isteği HHS’ye iletilir. İçeride rıza olup olmamasına bakılmaksızın  Yetki Bekleniyor - B  rıza durumu ile yeni rıza no oluşturur. \n \n \n GKD başarılı bir şekilde tamamlandığında rıza durumu Yetki Bekleniyor’dan Yetkilendirildi’ye güncellenir.   B ⇨ Y \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdar olmayabilir. \n ÖHK GKD yapmadan ayrılmış olabilir. (ÖR: Browserı kapatmış olabilir)\nRıza durumu Yetki Bekleniyor'dur. 5 dakika içerisinde sistem tarafından Yetki Bekleniyor - B durumundaki kayıtlar Rıza İptal : Yetki Bekleniyor Süre Aşımı olarak güncellenir. Bkz. 8. Madde. \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdardır. HHS yonlendirme adresinin query parametrelerine rizaIptDtyKod değerini ekleyerek bu durumu YÖS’e bildirmek zorundadır. \n \n \n Rıza durumunun  “Yetkilendirildi\" , “Yetki Kullanıldı” olduğu durum.  Yetki Bekleniyor ⇨ Yetki İptal   B ⇨  I / 07 \n \n \n Rızano ile kimlik bilgileri uyuşmazlığı.  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 08 \n \n \n ÖHK'nın HHS'de ilgili ürününün olmadığı durum (hesap/kart) Yetki Bekleniyor ⇨ Yetki İptal   B ⇨ I / 09 \n \n \n Açık bankacılık kanalınız işleme kapalıdır.Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 10 \n \n \n Kullanıcının HHS'deki hesaplarında yeterli yetkisinin olmama durumu  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 11 \n \n \n HHS’nin ÖHK için yaptığı kontrollerin başarısız olduğu durum Yetki Bekleniyor ⇨ Yetki İptal   B ⇨ I / 12 \n \n \n ÖHK isteği ile GKD’den vazgeçildiği durum Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 13 \n \n \n Fraud Şüphesi Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 14 \n \n \n Diğer Yetki Bekleniyor ⇨  Yetki İptal   B ⇨  I / 99 \n \n \n \n \n \n \n GKD muafiyeti olduğunda YÖS HHS’den arka planda onay alır. Bu onay sırasında rıza durumu  Yetkilendirildi  yapılır.  B ⇨ Y \n \n \n Erişim Belirteci API \na. Erişim Belirteci'nin yetkilendirme kodu ile çağrımı yapıldığında; \n      i. Rıza durumu Yetki İptal - I  ya da Yetki Sonlandırıldı - S ise   TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     ii. Rıza durumu Yetki Bekleniyor - B , Yetki Kullanıldı - K  ya da Yetki ödeme emrine dönüştü - E  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iii. Rıza durumu Yetkilendirildi - Y olduğunda erişim belirteci tahsis edilir.\nErişim belirteci alındığında rıza durumu K: Yetki Kullanıldı yapılır.  Y ⇨K \n b. Yenileme belirteci karşılığı erişim belirteci alınması sırasında; yenileme belirteci kontrolü ve sonrasında rıza kontrolü yapılmalıdır. \n      i. Öncelikle Yenileme Belirteci Geçerlik Süresi kontrolü yapılmalıdır. Geçerli bir Yenileme Belirteci olmadığı görülür ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n     ii. Rıza durumu Yetki İptal - I  ya da Yetki Sonlandırıldı - S ise  TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     iii. Rıza durumu Yetki Bekleniyor - B ya da Yetkilendirildi - Y  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iv. Rıza durumu Yetki Kullanıldı - K veya Yetki Ödeme Emrine Dönüştü – E olduğunda, yenileme belirteci karşılığı erişim belirteci tahsis edilir. \n \n \n Ödeme Başlatma API önce erişim belirteci ve sonrasında rıza kontolü yapılarak gerçekleştirilmelidir \n \n Öncelikle Erişim Belirteci kontrolü yapılmalıdır. Geçerli bir Erişim Belirteci olmadığı görülür ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n Rıza durumu Yetki İptal - I  ya da Yetki S
16onlandırıldı - S ise  TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n Rıza durumu Yetki Bekleniyor - B , Yetkilendirildi - Y, Yetki Ödeme Emrine Dönüştü - E  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n Rıza durumu Yetki Kullanıldı - K olduğunda ödeme emri gerçekleştirilir.  Rıza durumu Yetki Kullanıldı - K'dan Yetki Ödeme Emrine Dönüştü – E yapılmalıdır.   K ⇨E \n \n \n \n Sorgulama: GKD işleminin başarıyla tamamlanıp Ödeme Emri Rızasının yetkilendirilmesi esnasında, gönderen hesap seçiminin HHS ekranında yapıldığı durumlarda, ödeme emri isteğinde gönderen hesap bilgileri alanının zorunlu olması nedeniyle, ödemeEmriRizasi nesnesi sorgulanarak gönderen hesap bilgileri (hesap numarası ve/veya hesap referansı) alınmalıdır.\nRıza sorgulama, Ödeme Emri Sorgulama API'lerinde ilgili rıza kaydı bulunamaz veya sorgulayan kurumun yetkisi yoksa (örn : YÖS’ün farklı bir YÖS’e ait rıza noyu sorgulaması) \n TR.OHVPS.Resource.NotFound  hatası verilmelidir. \n \n \n Ödeme Emri Rızasının İptali bulunmamaktadır. \n \n \n HHS/YÖS tarafında rıza bilgileri belirli aralıklarla sistem kullanıcısı tarafından taranır:\n5 dakikadan uzun süredir Yetki Bekleniyor'da kalan kayıtların durumları güncellenir.\nYetki Bekleniyor ⇨ Rıza İptal / Süre Aşımı : Yetki Bekleniyor  B ⇨ I / 04 \n 5 dakikadan uzun süredir Yetkilendirildi'de kalan kayıtlar durumları güncellenir.\nYetkilendirildi     ⇨ Rıza İptal / Süre Aşımı : Yetkilendirildi  B ⇨ I / 05 \n 5 dakikadan uzun süredir Yetki kullanıldı'da kalan kayıtlar durumları güncellenir.\nYetki kullanıldı ⇨ Rıza İptal / Süre Aşımı : Yetki Ödemeye Dönüşmedi  B ⇨ I / 06 \n Yenileme belirteci Son Tarih geldiğinde rıza durumu Yetki ödeme emrine dönüştü’den Yetki Sonlandırıldı'ya güncellenir. \n E ⇨ S \n \n \n GKD muafiyeti sadece ödeme başlatma servislerinde bulunmaktadır. \n \n \n"},{title:"6.\tÖdeme Emri Başlatma Hizmeti",frontmatter:{},regularPath:"/v1.1.0/contents/odeme-emri-baslatma-hizmeti.html",relativePath:"v1.1.0/contents/odeme-emri-baslatma-hizmeti.md",key:"v-7e5b51bd",path:"/v1.1.0/contents/odeme-emri-baslatma-hizmeti.html",headers:[{level:3,title:"Ödeme Emri Başlatma Hizmeti için Erişim Adresleri (Endpoints)",slug:"odeme-emri-baslatma-hizmeti-icin-erisim-adresleri-endpoints"},{level:2,title:"6.1.\tADIM 0 - Ödeme Emri Başlatma Isteği",slug:"_6-1-adim-0-odeme-emri-baslatma-istegi"},{level:2,title:"6.2.\tADIM 1 - Ödeme Emri Rızasının Hazırlanması",slug:"_6-2-adim-1-odeme-emri-rızasının-hazırlanması"},{level:2,title:"6.3.\tADIM 2- Ödeme Emri Rızasının Yetkilendirilmesi",slug:"_6-3-adim-2-odeme-emri-rızasının-yetkilendirilmesi"},{level:2,title:"6.4.\tADIM 2.1 – Ödeme Emri Rızasının Sorgulanması (isteğe bağlı)",slug:"_6-4-adim-2-1-odeme-emri-rızasının-sorgulanması-istege-baglı"},{level:2,title:"6.5.\tADIM 3- Ödeme Emrinin Oluşturulması",slug:"_6-5-adim-3-odeme-emrinin-olusturulması"},{level:2,title:"6.6.\tADIM 3.1- Ödeme Emri Sorgusu (İsteğe bağlı)",slug:"_6-6-adim-3-1-odeme-emri-sorgusu-istege-baglı"},{level:3,title:"GET /odeme-emri/{odemeEmriNo}",slug:"get-odeme-emri-odemeemrino"}],content:" 6.\tÖdeme Emri Başlatma Hizmeti \n Ödeme emri başlatma işlemi havale, FAST ya da PÖS ödemesiyle sonuçlanabilir. Ödeme işleminin amacı kişiden kişiye para transferi, e-ticaret ödemesi gibi farklı ödeme türleri olabilir. Ödemenin amacına göre ÖBHS’nin ileteceği veri setinde farklılaşmalar olabilir. \n Ödeme Emri Başlatma Hizmeti 5 temel akışdan oluşur: \n \n Ödeme Emri Başlatma İsteğinin tetiklenmesi:  ÖHK ÖBHS mobil uygulama ya da websitesinden ödeme emrini başlatır. \n Ödeme Emri Rıza Hazırlanması:  ÖBHS, “Ödeme Emri Başlatma” işlemi için izin oluşturulması isteğini HHS’ye iletir. \n Ödeme Emri Rızasının Yetkilendirilmesi:  HHS, gerekli gördüğü durumlarda ÖHK’yı GKD ile doğrular ve ödeme emri rızasına erişim için erişim belirteci tanımlanmasını temin eder. \n Ödeme Emrinin Başlatılması:  ÖBHS, “ödeme emri”ni HHS’ye iletir. \n Ödeme Emri Rıza Durumu, Ödeme Emri Durumu, Ödeme Emri Detayı Sorguları:  ÖBHS, Ödeme Emri Rıza Durumu, Ödeme Emri Durumu, Ödeme Emri Detayı bilgilerini isteğe bağlı olarak sorgulayabilir. \n \n Nezdinde ödeme hesabı bulunduran hesap hizmeti sağlayıcılar(Banka, EPK, Ödeme Kuruluşları)  müşterilerine ait hesapları hesap referansı ya da hesap numarası üzerinden takip etmektedir. YÖS'lerin hem HBH hem de ÖBH servisleri için hesap referansı veya hesap numarası üzerinden işlem yapılabileceğini bilmeleri, sistemlerini API dokümanında belirtilen akışlara göre uyumlandırmaları ve müşteri bilgilendirmesini(önyüzlerinde hesap no ve hesap referansı ayrımını gözeterek) buna paralel yapmaları beklenmektedir. \n YÖS'ler gönderen hesap seçimini aşağıdaki yöntemlerden biri ya da birkaçı ile sağlayabilirler: \n \n YÖS, müşterisinin ödeme hesabını HHS ekranından seçtirebilir. \n YÖS, müşterisinden Hesap Bilgisi rızası alır. Rıza aldığı hesaplar üzerinden hesap referansı aracılığı ile ödeme emri başlatabilir. \n YÖS, müşterisinin ödeme hesabını elle girmesine olanak tanıyabilir. IBAN'ı olmayan HHS'ler ödeme emri rızası adımında  TR.OHVPS.Business.IBANNotSupported  hatasını vermelidir. IBAN'ı olan HHS'lerin bu akışı desteklemesi zorunludur. \n YÖS; müşterisinin hesap referansını elle girmesini sağlayabilir. Hesap Referansı bilgisi ile başlatılan ödeme emri işlemlerinde HHS seçimi zorunludur. \n \n Ödeme Sistemine doğrudan katılımcı olmayan HHS'ler, müşterilerine IBAN sunmadıkları için, YÖS'ler hesap referansı ile ödeme başlatabilirler. Bu
16nların dışındaki HHS'lerin, gönderen IBAN veya hesap referansı ile ödeme akışını desteklemesi zorunludur. \n \n Şekil 4: Ödeme Emri Başlatma Hizmeti Üst Düzey İş Akışı \n Ödeme Emri Başlatma Hizmeti için Erişim Adresleri (Endpoints) \n Ödeme Emri Başlatma Hizmeti İçin Erişim Adreslerinin Etki Alanı (Scope) = “odeme_emri” olarak belirtilmelidir. \n Tablo 6: Ödeme Emri Başlatma Hizmeti İçin Erişim Adresleri \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu / İsteğe Bağlı \n Yetkilendirme Türü \n İmzalama \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n odeme-emri-rizasi \n POST \n /odeme-emri-rizasi \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n OdemeEmriRizasiIstegi \n OdemeEmriRizasi \n \n \n 2 \n erisim-belirteci (GKD için) \n POST \n /erisim-belirteci \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n ErisimBelirteciIstegi \n ErisimBelirteci \n \n \n 2.1 \n odeme-emri-rizasi \n GET \n /odeme-emri-rizasi/{rizaNo} \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n - \n OdemeEmriRizaYaniti \n \n \n 3 \n odeme-emri \n POST \n /odeme-emri \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı İstek ve Yanıt \n OdemeEmriIstegi \n OdemeEmri \n \n \n 3.1 \n odeme-emri \n GET \n /odeme-emri/{odemeEmriNo} \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı Yanıt \n - \n OdemeEmri \n 6.1.\tADIM 0 - Ödeme Emri Başlatma Isteği \n \n ÖHK, ÖBHS uygulamasında (web arayüzü/mobil uygulama) ödeme emri başlatma işlemine onay verir. \n Gönderen hesap detaylarının bu aşamada belirtilmesi zorunlu değildir. \n 6.2.\tADIM 1 - Ödeme Emri Rızasının Hazırlanması \n   \n Şekil 5: Ödeme Emri Rızasının Hazırlanması \n \n \n ÖBHS, ödeme hizmeti kullanıcı hesabının bulunduğu HHS’ye bağlanarak ödeme emri rıza kaynağının oluşturulmasını (odemeEmriRizasi) sağlar. \n \n \n POST isteği TLS protokolü tesis edilen iletişim katmanı üzerinden gerçekleştirilir. TLS için nitelikli sertifikalar kullanılır. \n \n \n POST isteğinin başlığındaki alanlar ve istemcinin sertifikasındaki özel alanlar kullanılarak istemcinin yetkilendirilmesi sağlanır: \n \n İstekte bulunan ÖBHS yetkilendirilmiş mi? \n İstekte bulunan yetkilendirilmiş ödeme hizmeti sağlayıcısı ÖBHS rolüne sahip mi? \n İstekte bulunulan HHS kodu doğru mu? \n \n \n \n POST başarılı olursa, HHS, ödeme emri için içeride rıza olup olmamasına bakılmaksızın yeni bir rıza tanımlayıcısı RizaNo içeren odemeEmriRizasi  yanıt olarak döner. \n \n \n 1 ÖHK'nın 1 YÖS için 1HHS'de istediği kadar rızası olabilir. \n \n \n HHS tarafında RizaDurumu değişkeninin durumu “Yetki Bekleniyor” olarak güncellenir. \n \n \n YÖS’ün doğrulama ekranı olarak ÖHK’ya açacağı URL adresini de ilgili rıza numarasına göre oluşturur. Burada 2 farklı yöntemle URL oluşturabilir. \n \n Statik URL  : \nHHS’nin base pathi/alt-dizin/{rızaNo} \nÖrnek hhsYonAdr : https://xbank.com.tr/ohvps/cb54834e36f742d09af3d534ece3352a \nBu adres için ilgili doğrulama sayfası önden hazırlanmalı ve ÖHK’nın doğrulama sayfasına erişimi için yayınlanmış olmalıdır (publish edilmelidir). \n Dinamik URL : \nHHS’nin base pathi/alt-dizin/GKD Karşılama Ekranı?rizano={rızano} \nÖrnek: https://xbank.com.tr/ohvps/gkd?rizano=cb54834e36f742d09af3d534ece3352a \n \n \n \n POST /odeme-emri-rizasi \n İSTEK: \n ÖBHS, bu API erişim adresinden HHS’ye yeni bir OdemeEmriRizasi oluşturulması için istekte bulunur: \n \n ÖBHS, ödeme emri başlatma isteği olduğunu HHS’ye bildirir. \n ÖBHS, ÖHK’nın, ÖBHS arayüzünden verdiği rızanın (“Ön Onay”) bir kopyasının HHS nezdinde müşteri tarafından onaylanması için HHS’ye gönderilmesini sağlar. \n HHS; istek mesajında yer alan alanların ÖHVPS API İlke ve Kuralları dökümanında belirtilen şartları sağlayacak şekilde zorunluluk, uzunluk ve içerik kontrollerini yapar. (Zorunlu) \n HHS; YÖS API ile alınan ÖBHS bilgilerinin içerisinde yer alan yönlendirme adresleri ile ödeme emri rızası nesnesi request mesajında paylaşılan adreslerin uyumlu olup olmadığının kontrollerini y
16apar. (Zorunlu) \n HHS; kimlik bilgileri nesnesinde eğer kimlik bilgileri iletilmiş ise; bu veri ile ÖHK’nın HHS müşterisi olup olmadığının kontrollerini yapar. Bu kontrol hem bireysel hem de kurumsal ÖHK’lar için yapılmalıdır.  (Koşullu Zorunlu) \n HHS kimlik bilgisi ile gönderen unvanının uyumlu olduğunun kontrol eder. HHS'ler EFT/FAST işlemlerinde kabul ettikleri kontrol kriterleri ile işleme izin verebilirler. (Zorunlu) \n Gönderen Hesap Numarası ile ilgili Tablo7’de belirtilen kontroller yapılmalıdır. (Zorunlu) \n HHS, ödeme için benzersiz “RizaNo” ile “OdemeEmriRizasi” nesnesi oluşturur ve ÖBHS’ye döner. \n HHS, OdemeEmriRizasi oluşturduğu anda durumunu “Yetki Bekleniyor” olarak düzenler. \nBu aşamada ÖHK’nın HHS tarafından tanımlanmış ve isteğin veri alanında gönderen hesaba (borçlandırılacak hesaba) ilişkin bir bilgisinin olması gerekmez. \nHesap bakiye kontrolünün rıza aşamasında yapılmaması gerekmektedir. Çünkü ÖHK ödeme emri gerçekleşene kadar hesabına para eklemesi yapabilir. \n \n POST /odeme-emri-rizasi  isteğinin (REQUEST) gövdesinde (BODY)  “odemeEmriRizasiIstegi” nesnesi (Tablo-7) kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “odemeEmriRizasi” (Tablo-8) nesnesi oluşturulur. \n Tek Seferlik Ödeme \nTek seferlik ödeme akışı YÖS'ten HHS'ye giden istekte, gönderen kimlik bilgilerinin olmadığı durumda gerçekleşir. Gönderen kimlik bilgisi olmadığında, KOLAS sorgusu yapılamayacağından ötürü, HHS tarafından TR.OHVPS.Business.InvalidContent hatası dönülmelidir.  ÖHK'nın YÖS'ün müşterisi olmadığı durumda tek seferlik ödeme başlatılabilir. \nTek seferlik ödeme akışı hem işyeri ödemelerinde hem de kişiden kişiye para transferlerinde kullanılabilen bir akıştır. İşyeri tarafından başlatılan tek seferlik ödeme işlemlerinde katılımcılar gönderen ÖHK'dan ücret alınamaz.\n Tek seferlik ödeme akışı sadece bireysel müşteriler için kullanılabilir. \nTek seferlik ödeme akışında hem yönlendirmeli hem de ayrık GKD akışı ile müşteri yetkilendirmesi sağlanabilir. \n Aşağıdaki senaryolar tek seferlik ödemeye örnek olarak gösterilebilir. \n İşyeri Ödemesi akışı örneği: Bir e-ticaret sitesinde, üye olmadan alışveriş yapılması ve ödemenin YÖS tarafından kimlik bilgisi olmadan başlatılması \nKişiden kişiye para transferi akışı örneği: QR veya diğer yöntemler ile alıcı bilgilerinin gönderici ile paylaşılması ve YÖS üzerinden gönderici bilgileri olmadan alıcıya para transferi yapılması için rıza verilmesi \n  BAŞARILI İSTEK: \n Tablo 7: “OdemeEmriRizasiIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n HHS tarafından ödeme emri rızası oluşturulması sırasında yapılması gereken kontrol ve işlemler \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder.  Hata durumunda  TR.OHVPS.Connection.InvalidASPSP  hata kodunu döner. \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. Hata durumunda  TR.OHVPS.Connection.InvalidTPP  hata kodunu döner. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n İ \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. Yetkilendirme yöntemi, ÖBHS tarafından belirtilmeyebilir. \n HHS, HBHS’nin belirlediği yöntemi dikkate alarak süreci ilgili akışa uygun olarak devam ettirir. Desteklemediği yöntem için (örn: Ayrık GKD) ayrıca hata mesajı verilmelidir. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu.  YÖS’ün ileteceği adrestir.  Durum ko
16du(drmKod), yönlendirme adresine parametre olarak eklenmelidir. \n HHS, müşteri uygulama / tarayıcısını bu alanda belirtilen adrese yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n yetYntm = A gönderilmiş ise ayrikGkd nesnesinin dolu gönderilmesi zorunludur.   HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder.  Bknz: Ayrık GKD \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir.  TR.OHVPS.DataCode.ohkTanimTip  sıralı veri tiplerinden birini alır. \n \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir. \n \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n K \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS geçerli bir Kimlik Numarası Türü olduğunu kontrol eder. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n K \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS, ÖBHS tarafından iletilmesi durumunda Kimlik Verisi üzeriden çapraz kontroller uygulamalı ve Kimlik Verisini temel alarak GKD gerçekleştirmelidir.  Pasaport numarasına ilişkin kontroller HHS'nin halihazırda kullandığı veri, akış ve tabi olduğu diğer düzenlemelerdeki işleyiş ile aynı şekilde ele alınmalıdır.  Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur.  HHS geçerli bir Kurum Kimlik Numarası Türü olduğunu kontrol eder. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur.  HHS, ÖBHS tarafından iletilmesi durumunda Kurum Kimlik Verisi üzeriden çapraz kontroller uygulamalıdır. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n Kurum adına yapılan ödemelerde K değerini alır. Kurum Kimlik Türü ve Kurum Kimlik Verisi alanlarının girilmiş olduğu çapraz olarak kontrol edilir. \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n HHS geçerli bir para birimi olduğu kontrol eder. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n İ \n \n \n \n \n >> Unvan \n unv \n AN3..140 \n K \n Gönderenin unvanıdır.  HHS, bu bilgiyi ÖBHS sisteminden gelen veri yerine FAST’a iletirken kendi sisteminden alabilir.  Tek seferlik ödeme dışında YÖS'ün gönderen unvanını göndermesi zorunludur. \n HHS’nin bu veri ile kendi sistemlerindeki verinin farklı olması ve Kimlik Numarası ile eşleşmemesi durumunda ödeme emri başlatma isteği reddedilir.  ÖBHS verisi ile HHS verisinin farklılaşması durumunun ise risk değerlendirme sistemlerine girdi olarak kullanması tavsiye edilir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n İ \n ÖBHS'nin ön yüzünden daha önce kayıt altına alınmış hesaplar arasından seçtirdiği veya müşteriye girdiği IBAN’dır.  ÖBHS tarafından iletilmediği durumda, gönderen hesap bilgisini müşteri tarafından HHS’nin dijital kanalında GKD sonrasında seçilebilir. Bu amaçla ÖBHS arayüzünde HHS seçtirilmelidir.  Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir. Hesap referansı ile ödeme emri rızası başlatılacak ise HHS hesap referansı değeri ile ilişkilendirilmiş mevcut bir hesap bilgisi rızası var mı kontrol etmelidir. Eğer aktif bir rızası yok ise  TR.OHVPS.Business.InvalidContent  hatası verilmelidir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n ÖBHS tarafından iletildiği durumda; IBAN içerisindeki HHS kodunun istek başlığındaki HHS kodu ile aynı olduğu (hesabın HHS’ye aitliğinin kontrolü), IBAN’ın doğruluğu (kontrol basamağı doğrulaması), Hesap numarasının ÖHK’ya ait olduğu, HHS’ye özel ödeme izni verilmeyen farklı statülerin bulunması durumu kontrol edilir.  Kontrol başarısız olduğunda  TR.OHVPS.Business. InvalidAccount  hatası YÖS’e iletilir. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n İ \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez.  ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir.  Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan HHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n HspRef'e bağlı IBAN değiştiğinde yeni IBAN'ın da ilgili HspRef ile ilişkilendirilmesi beklenmektedir. Bu durumda, HBHS, Hs
16pRef ile sorguya geldiğinde HHS'nin yeni IBAN ve hesap hareketlerini dönebilmesi mümkün olacaktır. HspRef’in, IBAN değiştiğinde değiştirilmemesi tavsiye edilmektedir. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n \n >> Unvan \n unv \n AN3..140 \n K \n Kolay Adres Sistemi  kullanılmıyorsa zorunludur.  Alıcının unvanıdır. ÖBHS ekranlarından girişi yapılabileceği gibi ÖBHS’nin kayıtlı alıcılarından yapılan seçimle de doldurup gönderebildiği bilgi olabilir.  FAST-TR Karekod Veri Organizasyonunda;  İşyeri tarafından sunulan uzun karekod yapısının  59:  alanında tanımlı İşyeri adı alanıdır, Kişiden Kişiye Ödeme Karekod Yapısının  07:  alanında tanımlı    Ödeme Alıcısının Adı ve Soyadı  alanıdır.  FAST-TR Karekod dışındaki iş yeri ödemelerinde; yine Unvan alanında işyeri adı bilgisi gönderilmelidir. \n \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n Alıcının Hesap Numarası (IBAN)  alanıdır.   Kolay Adres Sistemi  kullanılmıyorsa zorunludur.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  30-01:  alanında tanımlı İş Yeri IBAN verisi kullanılır.  Alıcının birden fazla hesabının kullanılabilir olduğu durumlarda (özellikle işyeri ödemelerinde HHS nezdindeki hesap (on-us havale akışı) tercih edilmelidir. \n HHS (Gönderen Katılımcı) tarafından IBAN doğrulaması (kontrol basamağı doğrulaması) yapılır. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n Tek seferlik ödemelerde ( kimlik bilgileri boş iletildiğinde) KOLAS nesnesi dolu iletiliyorsa; HHS tarafından TR.OHVPS.Business.InvalidContent hatası dönülmelidir \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n HHS (Gönderen FAST katılımcısı) tarafından KOLAS Servisine yapılan sorguda girdi olarak kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n HHS (Gönderen FAST katılımcısı) tarafından KOLAS Servisine yapılan sorguda girdi olarak kullanılır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n TR.OHVPS.DataCode.KareKodAksTur  sıralı veri değerlerinden birini alır. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını  gösterir. Okunan karekodda referans değeri varsa kullanılması zorunludur.  Karekod ilke ve kurallar belgesinde tanımlandığı şekilde kullanılması gerekmektedir.  Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR Karekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri veri değerlerinden “O” değeri atanarak iletilmelidir. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n HHS, YÖS'ün API deseninde \"O\" kodunu ilettiğini kontrol eder. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n HHS geçerli bir Ödeme Amacı kodu olduğunu kontrol eder. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarında: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.   -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -\tİşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n YÖS bu değeri ÖHK’yı HHS’ye yönlendirmeden önceki ekranda göstermeli, ve HHS bu değeri GKD için kullandığı önyüzünde “işlem doğrulama kodunun” bir unsuru olarak yine ÖHK’ya göstermelidir. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n K \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği 
16için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda istekte yer alır.  İşyeri Ödeme Bilgileri, YÖS uygulama önyüzünde ÖHK’nın bildiği ve girişi yapılması beklenen bir bilgi olmamalıdır. YÖS tarafından sistemsel olarak doldurulması gereklidir. \n \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n K \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir.  4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n K \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). 4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n K \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n  BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “OdemeEmriRizasi” nesnesi Tablo-8’deki parametrelerden oluşur: \n Tablo 8: “OdemeEmriRizasi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n > Güncellenme Zamanı \n gnclZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin güncellenme zamanı \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n > Rıza Iptal Detay Kodu \n rizaIptDtyKod \n AN2 \n K \n Rıza durumunun iptal olduğu durumda zorunludur. Alabileceği değerler 4. Bölümde detaylandırılmıştır. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır.  HHS, ÖBHS’nin belirlediği yöntemi dikkate alarak kendi belirlediği yöntemi kullanır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n \n \n \n \n \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   HHS tarafından maksimum 5 dk içinde işlem tamamlanacak şekil zaman damgası oluşturulur. Zaman aşımı olduğunda HHS’nin GKD’ye izin vermeyecek şekilde hata mesajı vermesi gerekmektedir.  Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n K \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n K \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n >>
16 Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n İ \n \n \n \n >> Unvan \n unv \n AN3..140 \n K \n Gönderenin unvanıdır.  HHS, bu bilgiyi ÖBHS sisteminden gelen veri yerine FAST’a iletirken kendi sisteminden alabilir.   Tek seferlik ödeme dışında YÖS'ün gönderen unvanını göndermesi zorunludur. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n İ \n ÖBHS'nin ön yüzünden daha önce kayıt altına alınmış hesaplar arasından seçtirdiği veya müşteriye girdiği IBAN’dır.  ÖBHS tarafından iletilmediği durumda, gönderen hesap bilgisini müşteri tarafından HHS’nin dijital kanalında GKD sonrasında seçilebilir. Bu amaçla ÖBHS arayüzünde HHS seçtirilmelidir.   GKD sonrası HHS ekranında seçilen Hesap Numarası POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir.    Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n İ \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez.  ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir.   GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir.    Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.    Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n >> Unvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari unvan bilgisidir. Kolas’tan dönen “account owner” alanı kullanılmalıdır. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen unvan bilgisidir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n ÖBHS tarafından istek mesajında iletilip doğrulanan veya Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen alıcı maskeli IBAN bilgisidir. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n TR.OHVPS.DataCode.KareKodAksTur  sıralı veri değerlerinden birini alır. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını  gösterir. \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O” değerini alır. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  - İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n >> Ödeme Sistemi \n odmStm \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeSistemi  sıralı veri değerlerinden birini alır. \n \n \n >> Beklenen Ödeme Zamanı \n bekOdmZmn \n ISODateTime \n K \n İşlemin yönlendirildiği ödeme sistemi PÖS ise ve PÖS işlem saatleri dışında ise işlemin yapılabileceği ilk zaman bilgisidir. Bu alan ileri vadeli ödemeler için düşünülmüştür. İlk fazda doldurulmasına gerek olmadığı düşünülmektedir. \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n K \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda yanıtta yer alır. \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n K \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir. \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n K \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n K \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n 6.3.\tADIM 2- Ödeme Emri Rızasının Yetkilendirilmesi \n   \n Şekil 6: Ödeme Emri Rızasının Yetkilendirilmesi \n ÖBHS, ÖHK’nın ödeme emrini yetkilendirmesi isteğini iletir. Ödeme emrinin yetkilendirilmesi, HHS tarafından gerçekleştirilen Yönlendirme veya Ayrık GKD yöntemiyle yapılır. \n \n \n Yönlendirmeli doğrulama akışında , ÖBHS ÖHK’yı HHS’ye yönlendirir. \n \n ÖBHS tarafından yönlendirme, bir önceki adımdaki RizaNo’yu içerir. \n Yönlendirmenin RizaNo’yu içermesi sayesinde, HHS hangi ödeme emriyle ilişkili olarak yönlendirme yapıldığını ilişkilendirebilir. \n HHS, ÖHK için GKD sürecini işletir. \n \n ÖHK’yı doğrularsa, \n \n ÖHK -bir önceki adımda seçmediyse- borçlu hesabını seçer. \n HHS, ödeme emri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n HHS, ÖHK’yı “olumlu yönlendirme akışı” ile ÖBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n \n \n \n yonAdr?rizaDrm=Y&yetKod=xx&rizaNo=yy&rizaTip=O&drmKod=zzz\n \n ÖHK’yı doğrulayamazsa, \n1. HHS, ödeme emri rıza kaynağının durumunu “Yetki İptal” olarak günceller. \n2. HHS, 
16ÖHK’yı “olumsuz yönlendirme akışı” ile ÖBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=I&rizaNo=yy&rizaTip=O&drmKod=zzz\n \n HHS tarafında oluşabilecek bir hata durumunun YÖS’e aktarılması gerektiği durumlar olabilir. Bu durumda yonlendirme adresinde hata kodu parametresi zorunlu olarak iletilmelidir. \nHata açıklamalarının neler olabileceği ve YÖS’ün kendi uygulamasında bu hatayı ne şekilde göstereceği aşağıda tariflenmiştir. \n yonAdr?rizaDrm=I&rizaNo=yy&rizaTip=O&rizaIptDtyKod=11&drmKod=zzz\n \n URL’de iletilen “Rıza İptal Detay Kodu” Rıza durumları bölümünde (4. Bölüm) belirtilen hata kodları ile aynı olacak şekilde tasarlanmıştır. GKD sırasında yapılması gereken kontroller 5.3 bölümünde detaylandırılmıştır. \n \n Ayrık doğrulama akışında , HHS, ÖHK’nın ödeme emrini başlattığı uygulamadan farklı olabilecek bir “doğrulama” uygulamasında işlemi doğrulamasını ister.\n \n Ayrık akış ÖBHS’nin farklı bir kanal kullanarak yetkilendirme isteği göndermesiyle başlatılır. \n Bu yetkilendirme isteği, yetkilendirilecek ödeme emri rızasının eşleştirileceği ÖHK’nın bulunması için ilgili veriyi taşır. \n HHS, ÖHK’yı doğrular. \n ÖHK -bir önceki adımda seçmediyse- borçlandırılacak hesabını seçer. \n HHS, ödeme emri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n \n Başarılı GKD sonrasında (rizaDrm=’Y’) ilgili rıza nesnesi için (belirli bir rizaNo) yetkilendirme kodunun (yetKod) alınmasının ardından erişim belirteci erişim adresine POST çağrısı yapılarak yetkilendirme kodu karşılığında erişim belirteci ve yenileme belirteci alınır. POST /erişim-belirteci erişim noktası EK-3’te açıklanmıştır. \n Erişim belirteci alındıktan sonra; HHS, ödeme emri rıza kaynağının durumunu “Yetki Kullanıldı” olarak günceller. \n 6.4.\tADIM 2.1 – Ödeme Emri Rızasının Sorgulanması (isteğe bağlı) \n   \n Şekil 7: “odemeEmriRizasi” nesnesinin sorgulanması (isteğe bağlı) \n GKD işleminin başarıyla tamamlanıp Ödeme Emri Rızasının yetkilendirilmesi esnasında, gönderen hesap seçiminin HHS ekranında yapıldığı durumlar olabilir. Bu durumlarda ödeme emri isteğinde gönderen hesap bilgileri alanının zorunlu olması nedeniyle,  OdemeEmriRizasi  nesnesi sorgulanarak gönderen hesap bilgileri (hesap numarası ve/veya hesap referansı) alınmalıdır. HHS, “ ADIM 2 -Ödeme Emri Rızasının Yetkilendirilmesi ” akışında ÖHK’nın hesapları arasında seçim yapmasını ve seçilen hesap bilgisinin  OdemeEmriRizasi  nesnesine işler. \n GET /odeme-emri-rizasi/{RizaNo} \n ÖBHS, mevcut durumunu kontrol etmek için, oluşturulan bir  OdemeEmriRizasi  kaynağının durumunu isteğe bağlı olarak alabilir. \n Durum \n OdemeEmriRizasi  kaynağı için kullanılabilecek durum göstergeleri şu şekildedir: \n \n Yetki Bekleniyor \n Yetkilendirildi \n Yetki Kullanıldı \n Yetki Ödeme Emrine Dönüştü \n Yetki Sonlandırıldı \n Yetki İptal \n \n Ödeme Emri Rızası sonlandırıldı ve iptal statüsünde olan rıza'ların güncellenme zamanından(gnclZmn) 6 ay sonrasına kadar sorgulanabilir olması beklenmektedir. HHS'ler ilgili süre sonrasında yapılacak rıza sorgularına TR.OHVPS.Resource.NotFound uyarısı verebilir. YÖS'ler tarafından iptal ve sonlandırıldı statüsünde olan rızalar için sorgulama yapmamalıdır. \n Ödeme emri rıza durum değişiklikleri 4.2 bölümünde detaylandırılmıştır. \n BAŞARILI YANIT: \n GET /odeme-emri-rizasi/{RizaNo}  yanıtının (RESPONSE) gövdesinde (BODY)  “OdemeEmriRizasiİstegi” nesnesi kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda Tablo-8’de yer alan parametreleri içeren “OdemeEmriRizasi” oluşturulur. \n Gönderen Hesap Bilgisinin, ADIM 2 (Ödeme Emri Rızasının Yetkilendirilmesi) sonrasında HHS ekranından seçildiği akışta “OdemeEmriRizasi” nesnesi güncellenir ve ÖBHS  GET /odeme-emri-rizasi/{RizaNo}  isteği yaparak güncel gönderen hesap bilgisi bilgisini de içeren “OdemeEmriRizasi” nesnesini çekmelidir. \n Çerçeve sözleşme kapsamında olmayan tek seferlik ödeme işlemlerinde, Kimlik Türü ve Kimlik Verisi bilgilerinin ödeme emri rızası sırasında gönderimi zorunlu değildir. Başarılı GKD sonrası, yani erişim belirteci alındığında, ödeme emri oluşmadan önce, YÖS’ün ödeme emri rızasını sorgulayarak bu bilgileri alması ve ödeme emrini oluştururken Kimlik Türü, Kimlik Verisi ve Gönderen Unvan alanlarını dolu olarak göndermesi beklenmektedir.  Ancak rıza durumu “Yetki Bekleniyor - B”, “Yetkilendirildi - Y” ve “Yetki İptal - I” statülerinde ise, ödeme emri rızası sorgulamasında, HHS’nin Kimlik Türü ve Kimlik Verisi bilgisini Y
16ÖS ile paylaşmaması gerekmektedir. \n 6.5.\tADIM 3- Ödeme Emrinin Oluşturulması \n   \n Şekil 8: Ödeme Emrinin Oluşturulması \n POST /odeme-emri \n \n ÖHK’nın Güçlü Kimlik Doğrulama ile işlemi yetkilendirmesi sonrasında, ÖBHS OdemeEmri kaynağını oluşturur. \n Ödeme emri (OdemeEmri) uygun ödeme kaynağına POST isteği yapılarak başlatılır.\n \n POST HHS tarafından işlenir: RizaDurumu “Yetki Kullanıldı” ise işleme başlanır. \n POST /odeme-emri-rizasi ile POST /odeme-emri isteklerinde istek alanların aynı olması beklenmektedir. HHS tarafından kontrolü sağlanmalıdır.POST verisindeki Gönderen Hesap Numarası ve Alıcı Hesap Numarasının aynı bankaya aitse HAVALE değilse FAST veya PÖS iş akışına geçilir. \n POST verisinin modele göre kontrolü yapılır (alan kontrolleri) \n POST verisinin mantıksal kontrolleri yapılır (IBAN kontrolü, çapraz alan kontroller) \n OdemeEmriDurumu “Gerçekleşti” / “Gönderildi” / “Gerçekleşmedi” olarak güncellenir. \n \n \n POST başarılı olursa, içerisinde OdemeEmriNo ve OdemeEmriDurumu değişkenleri de bulunan OdemeEmri nesnesi ÖBHS’ye döner ve RizaDurumu değişkenin değeri “Yetki Ödeme Emrine Dönüştü” olarak güncellenir. \n \n BAŞARILI İSTEK: \n Tablo 9: “OdemeEmriIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n HHS tarafından ödeme emri oluşturulması sırasında yapılması gereken kontrol ve işlemler \n FAST A01 PÖS M01 mesaj mapping \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder.  Hata durumunda  TR.OHVPS.Connection.InvalidASPSP  hata kodunu döner. \n Gönderen katılımcı kodu (yani bankanın FAST/PÖS’teki Katılımcı kodu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder.  Hata durumunda  TR.OHVPS.Connection.InvalidTPP  hata kodunu döner. \n YosKod \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n \n >Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n \n \n >Yönlendirme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunludur. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n \n \n \n \n \n \n \n \n \n \n \n >Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n yetYntm = A gönderilmiş ise ayrikGkd nesnesinin dolu gönderilmesi zorunludur. yetYntm = Y için bu nesne iletilmemelidir. \n \n \n \n >>OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n \n \n >>OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n \n \n >HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n \n \n >Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. Ödeme Emri Rizası Nesnesindeki Kimlik Numarası Türü verisi ile aynı olmalıdır. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS, ÖBHS tarafından iletilmesi durumunda Kimlik Verisi üzeriden çapraz kontroller uygulamalı ve Kimlik Verisini temel alarak GKD gerçekleştirmelidir. Ödeme Emri Rizası Nesnesindeki Kimlik Numarası verisi ile aynı olmalıdır. Gerçek kişi tarafından yapılan ödemelerde, 
161. HHS, Gönderen Adı ve Gönderen Hesap Numarasını ödeme emri isteğinde (Havale/FAST/PÖS) gönderir. - Gönderen Adı ve diğer tüm müşteri bilgileri, Kimlik Numarası üzerinden elde edillir. Pasaport numarasına ilişkin kontroller HHS'nin halihazırda kullandığı veri, akış ve tabi olduğu diğer düzenlemelerdeki işleyiş ile aynı şekilde ele alınmalıdır. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik verisi bu alanda gönderilebilmesi zorunludur. \n GonKimN / Psp \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur. Ödeme Emri Rizası Nesnesindeki Kurum Kimlik Türü verisi ile aynı olmalıdır. \n \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur. Ödeme Emri Rizası Nesnesindeki Kurum Kimlik Verisi ile aynı olmalıdır. \n GonKimN / VKN \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n Kurum adına yapılan ödemelerde K değerini alır. Kurum Kimlik Türü ve Kurum Kimlik Verisi alanlarının giilmiş olduğu çapraz olarak kontrol edilir.  Ödeme Emri Rizası Nesnesindeki ÖHK Türü ile aynı olmalıdır. \n \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n Ödeme Emri Rizası Nesnesindeki Para Birimi verisi ile aynı olmalıdır. \n \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n Ödeme Emri Rizası Nesnesindeki İşlem Tutarı verisi ile aynı olmalıdır. HHS işlem tutarı ödeme mesajında (Havale/FAST/PÖS) aynen taşınmak durumundadır. \n Ttr \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n \n \n >> Unvan \n unv \n AN3..140 \n Z \n Gönderen kişinin ad soyad ya da ticari unvan bilgisi. \n HHS ve ÖBHS verisi tutarlı olmalıdır.  ÖBHS verisi ile HHS verisinin farklılaşması durumunun ise risk değerlendirme sistemlerine girdi olarak kullanması tavsiye edilir. \n GonAd \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n ÖBHS'nin ön yüzünden seçtirdiği/kullanıcıya girdiği IBAN Hesap numarası ya da Hesap Referansı alanlarından en az birinin dolu olarak gelmesi gerekmektedir. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Gönderen Hesap Numarası verisi ile aynı olmalıdır. \n GonHesN \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n K \n ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başlatılabilir. GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir. Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n \n \n >> Unvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari unvan bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen unvan bilgisidir. \n YÖS’ten alıcı ad soyad bilgisi geliyorsa ve HHS'nin kontrolünden başarılı bir şekilde geçti ise HHS'nin tekrar alıcı ad soyad bilgisi için giriş yaptırmasına gerek bulunmamaktadır. \n AlAd \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n Alıcının Hesap Numarası alanıdır (IBAN). Kolay Adres  sorgusunda dönülen adres kaydı yaptırmış olan alıcının maskeli IBAN bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen IBAN bilgisidir. Karekod akışında, FAST Karekod Veri Organizasyonundaki 30-01: alanında tanımlı İş Yeri IBAN verisi kullanılır. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Alıcı Hesap Numarası verisi ile aynı olmalıdır.  Kontroller başarıyla sonuçlanırsa, bilgi FAST/PÖS AlHesN alanına doğrudan aktarır ve FAST/PÖS Alan Katılımcı Kodu (AlKK) olarak Alıcı HHS Kodu kullanılır.  KOLAS sorgusu sonucunda ödeme emrinde iletilen maskeli bilgi ile HHS’nin kendi ödeme emri rızası isteğinde tuttuğu KOLAS sorgusundan dönülen bilgi maskelenerek karşılaştırılır. Eğer aynı değilse uygun hata kodu dönülerek işlem sonlandırılır. \n AlHesN \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n Müşterinin sorgulamak istediği Kolay Adres Tipi değeridir.  TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Kolay Adres Tipi verisi ile aynı olmalıdır. \n \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Kolay Adres Değeri verisi ile aynı olmalıdır. \n FAST (KolasRef) \n \n \n >>>
16 Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n KolasRef ( hem FAST hem de PÖS için aynı) \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  Kolay Adresi Sistemi ile birlikte kullanılmaz.  01: FAST katılımcısından dinamik doğrulama hizmeti alınan işyeri ödemesi  02: FAST katılımcısından statik doğrulama hizmeti alınan işyeri ödemesi 03: Kişiden kişiye ödemeler \n Ödeme Emri Rizası Nesnesindeki Kare Kod Akış Türü verisi ile aynı olmalıdır. \n FAST: KrkdAksTur \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını gösterir.  Okunan karekodda referans değeri varsa kullanılması zorunludur. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n Ödeme Emri Rizası Nesnesindeki Karekod Referansı verisi ile aynı olmalıdır.  Çevrimiçi doğrulama hizmeti alınmayan statik karekodlar için Referans numarasının bulunmadığı durumlarda HHS tarafından “NONREF” ifadesi girilir. \n FAST: Karekod Referansı (KrkdRef) \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR Karekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O” değeri atanarak iletilmelidir. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n Ödeme Emri Rizası Nesnesindeki Ödeme Kaynağı verisi ile aynı olmalıdır. HHS tarafından ödeme mesajında (FAST/PÖS) aynen taşınmak durumundadır. \n FAST/PÖS: OdmKynk \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. \n Ödeme Emri Rizası Nesnesindeki Ödeme Amacı verisi ile aynı olmalıdır. HHS tarafından ödeme mesajında (FAST/PÖS) aynen taşınmak durumundadır. \n FAST (OdmAmc)/PÖS(OdmAmaci) \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n Ödeme Emri Rizası Nesnesindeki Referans Bilgisi verisi ile aynı olmalıdır. \n RefBlg (Hem FAST hem de PÖS için aynı) \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n FAST/PÖS Acklm \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n \n \n >> Ödeme Sistemi \n odmStm \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeSistemi  sıralı veri değerlerinden birini alır. \n Ödeme Emri Rizası Nesnesindeki Ödeme Sistemi verisi ile aynı olmalıdır. \n \n \n \n >> Beklenen Ödeme Zamanı \n bekOdmZmn \n ISODateTime \n K \n İşlemin yönlendirildiği ödeme sistemi PÖS ise ve PÖS işlem sa
16atleri dışında ise işlemin yapılabileceği ilk zaman bilgisi \n \n \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n K \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda istekte yer alır.  İşyeri Ödeme Bilgileri, YÖS uygulama önyüzünde ÖHK’nın bildiği ve girişi yapılması beklenen bir bilgi olmamalıdır. YÖS tarafından sistemsel olarak doldurulması gereklidir. \n \n \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n K \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir. 4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n K \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). 4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n K \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n \n \n \n \n \n BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “OdemeEmri” nesnesi Tablo-10’daki parametrelerden oluşur: \n Tablo 10: “OdemeEmri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanıdır. \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n Z \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Emir Bilgileri \n emrBlg \n Kompleks: EmirBilgileri \n Z \n \n \n \n > Ödeme Emri Numarası \n odmEmriNo \n AN1..128 \n Z \n odemeEmri nesnesinin UID'sidir. OdemeEmrine İlişkin sorgular bu ID üzerinden yapılır. \n \n \n > Ödeme Emri Zaman \n odmEmriZmn \n ISODateTime \n Z \n odemeEmri nesnesinin oluşturulma zamanıdır. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n >>
16 Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.    Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n >> Unvan \n unv \n AN3..140 \n Z \n Gönderen kişinin ad soyad ya da ticari unvan bilgisi. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n ÖBHS tarafından iletilip doğrulanan veya HHS ekranında seçilen Gönderen Hesap Numarası dönülür. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n K \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid)  YÖS bazında farklılaşması gerekmez. ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir. GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir. Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.  Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n >> Unvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari unvan bilgisidir. Kolas’tan dönen “account owner” alanı kullanılmalıdır. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen unvan bilgisidir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n Alıcının Hesap Numarası alanıdır (IBAN). Kolay Adres  sorgusunda dönülen adres kaydı yaptırmış olan alıcının maskeli IBAN bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen IBAN bilgisidir. Karekod akışında, FAST Karekod Veri Organizasyonundaki 30-01: alanında tanımlı İş Yeri IBAN verisi kullanılır. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n Müşterinin sorgulamak istediği Kolay Adres Tipi değeridir.  TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  Kolay Adresi Sistemi ile birlikte kullanılmaz.  01: FAST katılımcısından dinamik doğrulama hizmeti alınan işyeri ödemesi  02: FAST katılımcısından statik doğrulama hizmeti alınan işyeri ödemesi 03: Kişiden kişiye ödemeler \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını gösterir.  Okunan karekodda referans değeri varsa kullanılması zorunludur. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O”  değerini alır. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n \n \n >> Ödeme Durumu \n odmDrm \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeDurumu  sıralı veri değerlerinden birini alır.      Ödeme Durumu alanı ile ilgili olarak HHS’ler tarafından YÖS’lere  OdemeEmri servisi yanıtında 02:Gönderildi, 04:Onayda Bekliyor,05:İşleme Alındı yanıtları gönderilebilir.   05:İşleme Alındı  durumu YÖS tarafından müşteriye gösterilmeyen bir koddur. Bu kod dönüldüğünde YÖS uygulamasında ÖHK’ya ödeme durumu  02:Gönderildi  olarak gösterilir. İşlemin son durumunun teyidi için YÖS ödeme emri sorgulaması yapmalıdır.   02:Gönderildi  durumu oluştuktan sonra YÖS tarafından ödeme emri sorgulaması yapılarak ödeme durumunun güncel değeri öğrenilir. Güncel değerler  01:Gerçekleşti,03:Gerçekleşmedi  durumları olabilir. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  - İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n >> Ödeme Sistemi \n odmStm \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeSistemi  sıralı veri değerlerinden birini alır. \n \n \n >> Ödeme Sistem Numarası \n odmStmNo \n AN10..50 \n K \n Ödeme başarılı başlatıldıysa, ödemenin başlatıldığı sistemdeki referans numarası. Gerektiğinde ilgili ödeme sisteminde/HHS’de söz konusu ödemeye karşılık gelen mesajla bağlantı kurmada kullanılır.   Ödeme Hizmeti kullanıcısına işlemin takibi için gösterilebilir.  İşlemin yönlendirildiği ödeme sistemi FAST ya da PÖS ise sistemdeki ilgili mesajın Tarih, GönderenKatilimKodu ve SorguNumarasi değerlerinin birleşiminden oluşur. Bu 3 alan mevcutta kullanıldığı formatta aralarına dikey çizgi (Unicode U+2223) işareti koyularak, birleştirmeli ve iletilmelidir. Örn : Tarih|GönderenKatilimKodu|SorguNumarasi   Ödeme Havale/Virman işlemi ise HHS’nin üretmiş olduğu havale/virman numarasını içerir. Buradaki format da Tarih|GönderenKatilimKodu|Havale-virman numarası şeklinde olmalıdır. Havale/FAST/PÖS  ödeme yöntemleri için tarih alanı yyyy-aa-gg formatında 10 karakter olarak iletilmelidir. \n \n \n >> Beklenen Ödeme Zamanı \n bekOdmZmn \n ISODateTime \n K \n İşlemin yönlendirildiği ödeme sistemi PÖS ise ve PÖS işlem saatleri dışında ise işlemin yapılabileceği ilk zaman bilgisi \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n K \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği 
16için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda yanıtta yer alır. \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n K \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir. \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n K \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n K \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n 6.6.\tADIM 3.1- Ödeme Emri Sorgusu (İsteğe bağlı) \n   \n Şekil 9: Ödeme Emri Sorgusu \n GET /odeme-emri/{odemeEmriNo} \n ÖBHS, bu erişim adresi aracılığıyla ödeme emrini sorgulayabilir. \n BAŞARILI YANIT: \n GET /odeme-emri/{odemeEmriNo} yanıtının (RESPONSE) gövdesinde (BODY)  “OdemeEmri” nesnesi bulunur. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda Tablo-10’da yer alan parametreleri içeren “OdemeEmri” nesnesi döner. \n"},{title:"5.\tGüçlü Kimlik Doğrulama",frontmatter:{},regularPath:"/v1.1.0/contents/gkd.html",relativePath:"v1.1.0/contents/gkd.md",key:"v-8d4168c6",path:"/v1.1.0/contents/gkd.html",headers:[{level:2,title:"5.1.\tYönlendirmeli Güçlü Kimlik Doğrulama",slug:"_5-1-yonlendirmeli-guclu-kimlik-dogrulama"},{level:2,title:"5.2.\tAyrık Güçlü Kimlik Doğrulama",slug:"_5-2-ayrık-guclu-kimlik-dogrulama"},{level:3,title:"5.2.1\tStatik Model",slug:"_5-2-1statik-model"},{level:2,title:"5.3.\tYönlendirme/Bildirim Adresleri ve Durum Kodu Parametresi",slug:"_5-3-yonlendirme-bildirim-adresleri-ve-durum-kodu-parametresi"},{level:2,title:"5.4  Güçlü Kimlik Doğrulama Kontrolleri",slug:"_5-4-guclu-kimlik-dogrulama-kontrolleri"}],content:" 5.\tGüçlü Kimlik Doğrulama \n Müşteri için güçlü kimlik doğrulama, ÖHK’nın (müşterinin) kimliğinin doğrulamada kullanılan ve bir bileşenin ele geçirilmesinin diğer bileşenin güvenliğini tehlikeye atmayacağı en az iki bileşenden oluşan, bu iki bileşenin de müşterinin “bildiği”, “sahip olduğu” veya “biyometrik bir karakteristiği olan” bileşen sınıflarından farklı ikisine ait olacak şekilde seçildiği yöntemi tanımlar. \n Ödeme ve Elektronik Para Kuruluşlarının Bilgi Sistemleri ile Ödeme Hizmeti Sağlayıcılarının Ödeme Hizmetleri Alanındaki Veri Paylaşım Servislerine İlişkin Tebliğ uyarınca hesap bilgisi hizmetinde müşterinin onayının alınması esnasında ve ödeme emri başlatma hizmetinde her bir ödeme emri başlatma işleminde  HHS tarafından müşteriye güçlü kimlik doğrulama (GKD) uygulanması esastır.  Buna göre: \n \n \n Hesap bilgisi hizmetinde ÖHK’nın onayının alınması esnasında  Tebliğin 26 ncı maddesinin 1 inci fıkrası uyarınca  HHS tarafından ÖHK’ya GKD uygulanır. \n \n \n Ödeme emri başlatma hizmetinde,  Tebliğin 26 ncı maddesinin 2 nci fıkrası uyarınca  HHS tarafından ÖHK’ya güçlü kimlik doğrulama uygulanır ve işlem doğrulama kodu ile ÖHK’nın onayı alınır. \n \n \n Ödeme emri başlatma hizmetinde,  Tebliğin 26 ncı maddesinin 3 nci fıkrası uyarınca  HHS tarafından ÖHK’ya güçlü kimlik doğrulama uygulanmasına ilişkin istisna veya ilave güvenlik önlemleri işbu API İlke ve Kuralları belgesinde tanımlanır. \n \n \n HHS, güçlü kimlik doğrulama sürecinde ÖHK’nin sahip olduğu bileşen sınıfı olarak SMS OTP ya da SMS ile işlem doğrulama kodu kullanabilir. \n \n \n HHS, aşağıdaki hallerde veya  Tebliğin 10 uncu maddesinin ikinci fıkrasında  belirtilen risk değerlendirmesi sonucuna göre tek bileşen ile kimlik doğrulama yapabilir. \n \n Ödemenin göndereni ve alıcısının aynı olması, \n Daha önce tanımlanmış güvenli alıcılar listesine ödeme yapılması, \n ÖHK’nin talimatına istinaden gerçekleştirilen düzenli bir ödeme olması. \n \n \n \n Tek bileşen ile kimlik doğrulama yapılan bu işlemlerle ilgili olarak gerçekleştirilen işlemin müşteri tarafından yapıldığını ispat etme yükümlülüğü HHS’ye ait olur. \n \n \n İşlem Doğrulamada  Tebliğin 3 üncü maddesinin birinci fıkrası ğğ bendindeki  işlem bilgisi tanımına uygun olarak aşağıdaki bilgiler ile  Tebliğin 3 üncü maddesinin birinci fıkrası hh bendinde  tanımlanan işleme özel üretilmiş işlem doğrulama kodu birlikte kullanılır. \n \n Alıcı Unvan (Kolas akışında maskeli olarak)  (ödeme emri başlatma hizmeti) \n Tutar (ödeme emri başlatma hizmeti) \n Referans bilgisi (8 karakterden küçük ise alanın tüm değeri, büyük ise ilk 4 ve son 4 hanesi) \n \n İşleme ait yukarıdaki bilgilerden en az biri değiştiği zaman  Tebliğin 3 üncü maddesinin birinci fıkrası hh bendinde  belirtildiği gibi yeni bir işlem doğrulama kodu üretilecek şekilde akış kurgulanmalıdır. \n \n \n İşlem doğrulama kodunun gönderilmesinden HHS sorumludur. HHS,  Tebliğin 10 uncu maddesinin ikinci fıkrasında  belirtilen risk değerlendirmesi sonucuna göre işlem doğrulama kodu kullanmaksızın ÖHK’nın onayını alabilir. İşlem doğrulama kodu kullanılmayan işlemlerle ilgili olarak gerçekleştirilen işlemin ÖHK tarafından yapıldığını ispat etme yükümlülüğü HHS’ye aittir. \n \n \n ÖHVPS API İlke ve Kuralları kapsamında iki adet Güçlü Kimlik Doğrulama (GKD) yöntemi kullanılacaktır: \n \n Yönlendirmeli (Redirect) GKD Yöntemi \n Ayrık (Decoupled) GKD Yöntemi \n \n \n \n HHS asgari olarak tarayıcı tabanlı Yönlendirmeli GKD yöntemini desteklemek zorundadır. Hem web hem mobil uygulama hizmeti bulunan katılımcılar için her iki uygulama özelinde de yönlendirme yapılması zorunludur. Web ya da mobil uygulamalardan sadece birinin olması durumunda ilgili uygulama özelinde yönlendirme yapılması zorunludur. \n \n \n HHS’nin mobil uygulamasının bulunması durumunda tarayıcı tabanlı yönlendirmenin y
16anında uygulama tabanlı yönlendirme yapması zorunludur. Uygulama sahiplerinin uygulama tabanlı yönlendirme için uyumlanma son tarihleri 1 Ekim 2023’tür. \n 5.1.\tYönlendirmeli Güçlü Kimlik Doğrulama \n Yönlendirmeli GKD Yönteminde, müşteri kimlik doğrulama için YÖS tarafından HHS arayüzüne yönlendirilir. \n Müşteri HHS’ye (app veya web arayüzü vasıtasıyla) yönlendirildikten sonra müşterinin güçlü kimlik doğrulaması adım adım ve doğrudan HHS ile müşteri arasında yürütülür. GKD’nin tamamlanmasından sonra müşteri tekrar YÖS uygulamasına yönlendirilir. \n Yönlendirmeli GKD Yöntemi için üst düzey örnek iş akışı aşağıdaki adımlardan oluşur: \n \n YÖS, GKD için HHS tarafından tanımlanan arayüze (tarayıcı ya da uygulama) yönlendirme yapar. \n Müşteri, YÖS arayüzünden ayrılır, yönlendirildiği HHS arayüzü üzerinde kimlik doğrulama işlemlerini gerçekleştirir. \n GKD tamamlandıktan sonra müşteri, YÖS arayüzüne tekrar yönlendirilir ve işlem sonucu görüntülenir. \n \n Yönlendirmeli GKD için temel gereklilikler şunlardır: \n \n Ödeme hizmeti (hesap bilgisi veya ödeme emri başlatma hizmeti) tarayıcı ya da uygulama tabanlı bir şekilde sunulabilir. Bu nedenle, YÖS ve HHS’lerin Yönlendirmeli GKD için asgari olarak tarayıcı tabanlı yönlendirme akışını desteklemeleri gerekmektedir. Web ya da mobil uygulamalardan sadece birinin olması durumunda ilgili uygulama özelinde yönlendirme yapılması zorunludur. \n \n Tarayıcı Tabanlı Yönlendirme \n Yönlendirmeli GKD Yönteminde; rıza isteğine başarılı yanıt alındıktan sonra, ÖHK, kimlik doğrulama için YÖS tarafından HHS arayüzüne yönlendirilir.\nYÖS, yönlendirme akışını kendi sunucusundan karşılayacağı bir istek ile başlatmalıdır. YÖS web arayüzündeki bu yapı, 302 yanıt kodu ve yanıt başlığındaki Location değeri ile ÖHK tarayıcısını HHS adresine yönlendirmelidir. Bu sayede GKD, HHS tarafında başlayabilir. \n YÖS tarafındaki yönlendirme servisi için örnek response; \n HTTP/1.1 302 Found\nLocation: {{hhsYonAdr}}\n \n ÖHK, HHS’ye (uygulama veya web arayüzü vasıtasıyla) yönlendirildikten sonra ÖHK'nin güçlü kimlik doğrulaması HHS ile ÖHK arasında yürütülür. GKD’nin tamamlanmasından sonra ÖHK tekrar YÖS uygulamasına yönlendirilir. \n HHS, yönlendirme akışını kendi sunucusundan karşılayacağı bir istek ile başlatmalıdır. HHS web/app arayüzündeki bu yapı, ÖHK'nin oturumunu güvenli bir şekilde kapatmalıdır. Ardından 302 yanıt kodu ve yanıt başlığındaki Location değeri ile ÖHK tarayıcısını YÖS adresine yönlendirmelidir. \n HTTP/1.1 302 Found\nLocation: {{yosYonAdr}}&rizaDrm=Y&yetKod=xx&rizaNo=yy&rizaTip=O\n \n HHS’nin web arayüzüne, \n \n HHS’nin mobil uygulamasının olmadığı, \n ÖHK’nın ödeme hizmetini (hesap bilgisi veya ödeme emri başlatma hizmeti) sunduğu mobil cihazda HHS uygulamasının yüklü olmadığı, \ndurumlarda yönlendirme yapılır. \n \n YÖS’ün mobil uygulaması varsa mobil cihazda uygulamadan tarayıcıya, YÖS’ün mobil uygulaması yoksa ödeme hizmetinin sunduğu cihazda (Kişisel Bilgisayar veya Mobil Cihaz) tarayıcı üzerinden yönlendirme yapılır. \n Uygulama Tabanlı Yönlendirme \n ÖHK’nın ödeme hizmetini (hesap bilgisi veya ödeme emri başlatma hizmeti) YÖS’ün mobil uygulaması ile kullanıyorsa, aynı mobil cihazda HHS’nin mobil uygulamasının yüklenmiş olması durumunda, ÖHK doğrulamasının HHS mobil uygulaması tarafından yapılması için uygulama tabanlı yönlendirme yapılır. Böylece ÖHK, ödeme hizmetine erişim için HHS’nin mobil kanalına erişim sırasında kullandığı doğrulama yöntemini ile doğrulanabilir. \n HHS'nin mobil uygulaması olması durumunda hhsYonAdr olarak universal link kullanması gerekmektedir. \n Tablo 5: Yönlendirmeli Güçlü Kimlik Doğrulama Kanalları \n \n \n \n Doğrulama Yöntemi \n YÖS Olası Ortam \n HHS Olası Ortam \n \n \n \n \n Tarayıcı Tabanlı Yönlendirme \n Kişisel Bilgisayar (masaüstü, dizüstü)/Mobil Cihaz \n Kişisel Bilgisayar (masaüstü, dizüstü) / Mobil Cihaz \n \n \n Uygulama Tabanlı Yönlendirme \n Mobil Cihaz \n Mobil Cihaz \n 5.2.\tAyrık Güçlü Kimlik Doğrulama \n Ayrık Güçlü Kimlik Doğrulama, bir kullanıcının kimliğinin, bir işlem başlatıldıktan sonra ayrı bir şekilde doğrulandığı yönteme verilen addır. Bu GKD modelinde, kimlik doğrulama işlem sürecinden \"ayrıştırılmıştır\". Kullanıcılar, başka bir arayüze yönlendirilmek yerine ( tarayıcı veya uygulama tabanlı yönlendirme gibi), ayrı bir kanal üzerinden (telefonlarında bir uygulama bildirimi gibi) işlemi doğrulamaları için bildirim alır.\nKullanıcı, işlemi tamamen ayrı bir cihaz veya uygulama kullanarak doğrulayabilir. \n İlk fazda Ayrık GKD'de QR’lı modeller kullanılmayacaktır. \n Ayrık GKD uygulamalarının farklı örnekleri bulunmaktadır. Ancak yaygın olan yaklaşım, bir web arayüzü ve bir mobil uygulamanın komb
16inasyonunu kullanmayı içerir. \n Mobil uygulaması bulunan HHS'ler için Ayrık GKD desteklenmesi zorunludur.  HHS’nin web olduğu durumda Ayrık GKD akışı uygulanmayacaktır. Mobil uygulaması bulunup müşteri özelinde mobil aktiflik kontrol süreci HHS inisiyatifindedir. Ayrık GKD sürecinde HHS tarafında sadece mobil uygulama üzerinden GKD yapılmalıdır. ÖHK’nın web uygulamasına yönlendirme yapmaması gerekmektedir. \n YÖS rolünde Ayrık GKD akışının ÖHK’ya sorularak başlatılmasına gerek bulunmamakla beraber bu bilginin ÖHK’ya sorulması YÖS inisiyatifindedir. YÖS olarak, Ayrık GKD iş akışları kapsamında ÖHK’ya ayrık GKD öncesi HHS mobil uygulamasının varlığı sorularak (bildirim ayarlarının açık olması gerektiği bilgisi de verilebilir) ilerlenebilir. Aynı zamanda Ayrık GKD ile rıza sürecinin başlatılması zorunlu değildir. Rıza süreci başlatılırken yetkilendirme yöntemi YÖS inisiyatifindedir. \n Örnek bir akış şu şekildedir: \n \n İşlem Başlatma (YÖS Web/Mobil Arayüzü):  ÖHK bir işlemi YÖS’ün web/mobil arayüzünde başlatır. YÖS uygulaması, ÖHK'nın tekil bir kullanıcı kimliğini rızaya ekleyerek bir rıza başlatma işlemini HHS’ye iletir. HHS, tekil kullanıcı kimliğini kullanarak ÖHK'nın mobil uygulamasına bir bildirim gönderir. \n Kimlik Doğrulama İsteği (HHS Mobil Uygulama):  ÖHK Mobil uygulama bildirimi alır ve mobil uygulama ÖHK'ya  kimlik doğrulama isteği sunar. HHS’nin BDDK tarafından belirlenmiş GKD yöntemlerine uygun davranması beklenmektedir. \n Kimlik Doğrulama Onayı (HHS Mobil Uygulama):  Mobil uygulama, ÖHK’nın kimlik doğrulama girişimini doğrular. Başarılı olursa rıza onayı sonrası mobil uygulama, 'Ayrık Yetkilendirme Başarılı' olay bildirimini YÖS’e gönderir. \n İşlem Onayı (YÖS Web/Mobil Arayüzü):  YÖS,  HHS'den gelen 'Ayrık Yetkilendirme Başarılı' olay bildirimine konu olan rızayı kullanarak yetkilendirme koduna erişir. Bundan sonraki süreç erişim belirteci alınması servisi ile devam eder. \n \n Ayrık Güçlü Kimlik Doğrulamanın Olay Bildirim Servisleri ile olan Bağımlılıkları \n Ayrık GKD sürecinde; HHS'nin yetkilendirme kodunu YÖS'e iletmesi için gerekli önkoşul olan ÖHK doğrulaması adımının tamamlanmasını olay bildirimi ile YÖS'e yapması gerekmektedir.\nBu nedenle YÖS'lerin eğer Ayrık GKD sürecini destekleyecek ise;  /olay-dinleme endpointini açarak olay bildirimi alması zorunludur. \n Özetle: \n Yönlendirmeli GKD \n \n HHS mobil uygulaması olması durumunda yönlendirme adresi olarak universalLink kullanmalı. \n Bu link tanımı  uygulama var ise uygulamayı aç yoksa webden devam et şeklinde olmalı. \n YÖS’ün mobilden mi webden mi geldiği HHS açısından önemli değildir. HHS olarak YÖS hangi adresi yonAdr değerinde göndermiş ise yetkilendirme süreci bittiğinde o adrese yönlendirme yapılmalıdır. \n \n Ayrık GKD \n \n Mobil uygulaması bulunan HHS'ler için Ayrık GKD desteklenmesi zorunludur. HHS’nin web olduğu durumda Ayrık GKD akışı uygulanmayacaktır. Mobil uygulaması bulunup müşteri özelinde mobil aktiflik kontrol süreci HHS inisiyatifindedir. Ayrık GKD sürecinde HHS tarafında sadece mobil uygulama üzerinden GKD yapılmalıdır. ÖHK’nın web uygulamasına yönlendirme yapmaması gerekmektedir. \n ÖHK’nin Mobil uygulamasının olmadığını tespit edebildiğiniz her durum için rıza oluşturma aşamasında “TR.OHVPS.Business.CustomerMobileApplicationNotFound” hatası döülür. \n HHS, ÖHK’nın mobil uygulamasının bulunmadığı bilgisine ulaşamazsa kendisinin belirleyeceği bildirim yöntemlerinden biri ile ÖHK’ye bilgilendirme yapar. Bildirim yöntemi SMS ise ÖHK’ya mobil uygulamasını açtıracak şekilde adres iletir, Web uygulamayı açtıracak bir link iletilmemelidir. ÖHK bu bildirimi dikkate almazsa/alamazsa veya ÖHK’da mobil uygulama yok ise bu durumda rıza süre aşımından iptal olur. \n ÖHK mevcut bankacılık işlemlerinde bildirimi nasıl gönderiyorsanız (Örneğin: Anlık bildirim gönderildi, alınmadı, SMS’e dönüldü gibi.) aynı şekilde bildirim göndererek ÖHK’nin uygulama üzerinden rızayı onaylaması beklenir. Buradaki akış HHS’nin diğer ürünleri için verdiği müşteri deneyimi ile paralel olmalıdır. \n 5.2.1\tStatik Model \n YÖS'ün ÖHK'yı tanıdığı ve ÖHK'ya ait tanımlayıcı bilgileri HHS'ye aktarabildiği durumda kullanılmaktadır. Buradaki ÖHK'ya ait tanımlayıcı bilgiler TCKN, MNO , YKN, PNO, GSM, IBAN olarak belirlenmiştir. \n Akış aşağıdaki gibi kurgulanmıştır: \n   \n \n \n ÖHK, YÖS uygulaması üzerinde işlem başlatır. \n \n \n ÖHK, YÖS uygulaması içerisinde, farklı bir ortam üzerinden HHS doğrulamasını gerçekleştirmek istediğini belirtir. ÖHK'yı tanıma tip ve değerleri YÖS ÖHK'dan talep edebileceği gibi, YÖS sisteminde hali hazırda kayıtlı bilgilerle de akışı devam ettirebilir.  \n \n \n ÖHK, YÖS'ün müşterisi ve YÖS uygulamasına login ise tek seferlik ödeme akışı başlatamaz. \n \n \n YÖS tarafından başlatılan tek seferlik bir Ödeme işleminin Ayrık GKD ile onaylanacağı durumda;\nYÖS’ün ilgili kullanıcıya ait “ÖHK Tanım Değer” verisinin yanında işleme ait ve ilgili ÖHK ile eşleştirilmiş olan  ve sadece YÖS ile ÖHK’nın bilebileceği bir değerin daha ÖHK tarafından sağlanması ve YÖS tarafından kontrol edilerek eşleşen Ödeme emrinin HHS’ye iletilmesi gerekmektedir. Örneğin; bu değer YÖS tarafında yapılan tek seferlik ödeme işlemine ait fatura numarası. \n \n \n YÖS önyüzde ÖHK'dan aldığı ohkTanimTip ve ohkTanimDeger deÄ
16Ÿerlerini kimlik tür ve kimlik değeri alanlarına atamamalıdır. \n \n \n YÖS, ayrık GKD ile işlem başlatabileceği HHS'lerin listesini HHS API'de yer alan \"ayrikGKD\"=\"E\" parametresi ile alabilir. \n \n \n YÖS, ÖHK bilgileri ile rıza oluşturur. Rıza nesnesi içerisinde yer alan GKD nesnesinde ilgili parametreler aşağıdaki şekilde doldurulur: \n \n \n ohkTanimTip ve ohkTanimDeger parametreleri \nBu metodda; ayrikGkd nesnesi içerisindeki \"ohkTanimTip\" parametresi TR.OHVPS.DataCode.ohkTanimTip sıralı veri tiplerinden TCKN, MNO , YKN, PNO, GSM, IBAN değerlerinden birini alabilir. ohkTanimDeger parametresi de seçilen tipe ait ÖHK'ya ait değeri içermelidir.Rıza başlatma akışı içerisinde kimlik bilgisinin olduğu durumlarda; ÖHK'ya ait kimlik verisi(kmlk.kmlkVrs) ile ayrık GKD içerisinde yer alan OHK Tanım Değer alanı (ayrikGkd.ohkTanimDeger) birebir aynı olmalıdır.Kimlik alanı içermeyen tek seferlik ödeme emri akışlarında bu kural geçerli değildir. GSM ve IBAN değerleri sadece tek seferlik ödemelerde kullanılabilir. \n YÖS'ten ohkTanimTip olarak gelen IBAN bilgisi sadece ÖHK'yı tanımak için kullanılabilir. Tanım tipi IBAN ile başlatılan bir işlemde ÖHK, başka bir IBAN ile ödeme başlatabilir. \n Kurumsal müşteriler için kmlkTur ve kmlkVrs alanları ohkTanimTip ve ohkTanimDeger alanlarında gönderilmelidir. \n \n \n yetYntm parametresi \nyetYntm parametresi  Ayrık GKD  akışını ifade eden \"A\" değerini almalıdır.  \n \n \n \n \n Örnek bir istek : \nPOST/ohvps/obh/s1.1/odeme-emri-rizasi \n RizaNesnesi \n {\n...\n  \"gkd\": {\n    \"yetYntm\": \"A\",\n     \"ayrikGkd\" :{\n         \"ohkTanimTip\" : \"TCKN\" \n         \"ohkTanimDeger\": \"11232123212\"\n     }    \n  },\n...\n}\n \n \n \n YÖS, ayrık GKD ile işlem başlatabileceği HHS'lerin listesini HHS API'de yer alan \"ayrikGKD\"=\"E\" parametresi ile alabilir.\nYÖS, ayrık GKD desteklemeyen HHS'ye Ayrık GKD yöntemiyle rıza başlatma isteği yapması durumunda HHS tarafından  TR.OHVPS.Business.DecoupledAuthenticationNotSupported  hatası iletilmelidir. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n \n \n HHS tarafında ÖHK'nın mobil uygulaması bulunmaması durumu tespit edilebildiği durumda Ayrık GKD ile başlatılan rıza akışlarında hata mesajı vermelidir. HHS tarafından  TR.OHVPS.Business.CustomerMobileApplicationNotFound  hatası iletilmelidir. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. HHS, ÖHK’nın mobil uygulamasının bulunmadığı bilgisine ulaşamazsa kendisinin belirleyeceği bildirim yöntemlerinden biri ile ÖHK’ye bilgilendirme yapar. Bildirim yöntemi SMS ise ÖHK’ya mobil uygulamasını açtıracak şekilde adres iletir, Web uygulamayı açtıracak bir link iletilmemelidir. \n \n \n HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder.  YÖS iki olay tipine de abone olmak zorundadır. Eğer olay aboneliği yoksa HHS tarafından  TR.OHVPS.Business.EventSubscriptionNotFound  hata kodu iletilmelidir. \n \n \n HHS \"gkd\" nesnesi için alan kontrollerini gerçekleştirir.   \"yetYntm\" = \"A\" gönderilmiş ise \"ayrikGkd\" nesnesinin dolu gönderilmesi zorunludur. Gönderilmemesi durumunda HHS tarafından  TR.OHVPS.Resource.InvalidFormat  hata kodu iletilmelidir. \n \n \n Rıza başlatma akışı içerisinde kimlik bilgisinin olduğu durumlarda; ÖHK'ya ait kimlik verisi(kmlk.kmlkVrs) ile ayrık GKD içerisinde yer alan OHK Tanım Değer alanı (ayrikGkd.ohkTanimDeger) birebir aynı olmalıdır. Aynı olmadığı durumda HHS tarafından  TR.OHVPS.Business.CustomerInfoMismatch  hatası iletilmelidir.\nKimlik alanı içermeyen tek seferlik ödeme emri akışlarında bu kural geçerli değildir. GSM ve IBAN değerleri sadece tek seferlik ödemelerde kullanılabilir. \n \n \n Tek seferlik ödeme işlemlerinde \"ohkTanimTip\" = \"GSM\"/\"IBAN\" olarak gönderilmiş ise, HHS sisteminde bu GSM/IBAN ile eşleşen müşterileri taramalıdır. GSM/IBAN bilgisi ÖHK bazında tekil bir kullanıcıya erişim imkanı sağlamaz ise  TR.OHVPS.Business.InvalidCustomerInfo  hatasını iletmelidir. \n \n \n Kontrollerin başarılı olması durumunda HHS rızayı oluşturur ve ÖHK tekil verisi ile ulaştığı ÖHK'ya bilgilendirme mesajı gönderir.      Bilgilendirme mesajı kısa mesaj ya da anlık bildirim mesajı olabilir. ÖHK’nın birden fazla cihazda aktivasyonu varsa HHS’nin iç süreçlerine göre mevcut durumda nasıl bir bildirim süreci işletiliyorsa aynı şekilde ilerlenebilir.  \n \n \n Kurumsal müşteriler için, hangi kullacıya bildirim gitmesi isteniyor ise, rıza aşamasında o kişi ayrikGkd nesnesinde gönderilir. HHS'nin rıza içerisindeki ohkTur değerine göre,  gelen bildirime verilen cevaba uygun uygulamasını açmalıdır. Kurumsal ÖHK için rıza geldi ise, kurumsal giriş sayfası; bireysel ÖHK için rıza geldi ise bireysel giriş sayfası müşterinin önüne açılmalıdır ve ilgili hesaplara erişime izin vermelidir. \n \n \n ÖHK'ya bir bildirim gelmemesi durumunda, HHS kendi sisteminde GKD sürecine devam edemez. 5 dakika sonunda rıza durumu Yetki Bekleniyor'dan Rıza İptal / Süre Aşımı (İptal kod 04) durumuna çeker. \n \n \n \n \n ÖHK, HHS sisteminden gelen bildirim mesajını alır. HHS sistemine login olduktan sonra işleme onay verilmezse veya GKD kontrolleri başarısız olursa HHS Olay Bildirim servisleri aracılığı ile GKD sürecinin sonlandığını YÖS'e iletir. Olay tipi \"AYRIK_GKD_BASARISIZ\" olacak şekilde bir POST /olay-dinleme servis çağrısı yapılır.YÖS kendisine gelen olay bildirimi ile\nrıza sorgulaması yaparak iptal detay kodunu öğrenebilir. \n \n \n ÖHK, HHS sisteminde login olduktan sonra işleme onay verirse; HHS tarafından rıza ile ilişkili yetkod değeri üretilir.HHS, YÖS'e ÖHK için \"yetkod\" değeri üretildiğinin bilgisini Olay Bildirim servisleri aracılığı ile iletir. Olay tipi \"AYRIK_GKD_BASARILI\" olacak şekilde bir POST /olay-dinleme servis çağrısı yapılır. \n \n \n YÖS kendisine gelen olay bildirimi ile \"yetkod\" değerinin HHS'de üretildiğinin bilgisini alır. \"yetkod\" değerini öğrenebilmek için HHS'yi sorgulaması gerekmektedir.  \nHHS'nin açacağı   GET /yetkilendirme-kodu endpointi   ile bu bilgiye erişebilir. \n \n \n YÖS, \"yetkod\" ile POST /erisim-belirteci endpointinden erişim belirteci alır. Böylelikle ÖHK'nın Ayrık GKD süreci tamamlanmış olur. \n 5.3.\tYönlendirme/Bildirim Adresleri ve Durum Kodu Parametresi \n CSRF Ataklarından korunmak için ve YÖS uygulamasının bir önceki durumunu restore edebilmesi için; YÖS tarafından iletilen yönlendirme ve bildirim adreslerine , Oauth2 standartlarındaki state parametresine eşdeğer,   durum ko
16du (drmKod)  parametresinin eklenmesi gerekmektedir. Durum kodu parametresi YÖS tarafından üretilen, tekil ve kolay tahmin edilemeyen bir değer olmalıdır. Rıza isteği gönderimi aşamasında oluşturulmalıdır. YÖS uygulamasında uygun bir yerde saklanmalıdır (cookie, session, local storage gibi) . \n Durum kodu, rıza isteğindeki yönlendirme adresine parametre olarak eklenir.  GKD süreci sonrasında yetki kodu ile birlikte bu bilgi, HHS tarafından YÖS’e iletilir. YÖS sakladığı değer ile parametre olarak gelen değerin eşitliğini kontrol eder. Aynı ise erişim belirteci almak üzere akışı ilerletir. Farklı ise işlemi keser. \n 5.4  Güçlü Kimlik Doğrulama Kontrolleri \n ÖHK, GKD için HHS uygulamasına yönlendirildiğinde, HHS’nin çeşitli kontroller yaparak işlemin doğruluğunu teyit etmesi gerekmektedir.\nYapılması gereken kontrollere ait temel senaryolar aşağıdaki tabloda belirtilmiştir. Bu senaryolar baz alınarak HHS’ler tarafından zenginleştirilebilir. \n Aşağıdaki tabloda yer alan 07-13 arası Rıza İptal Detay Kodlarının oluştuğu senaryolar, HHS uygulamasında yapılan kullanıcı doğrulama öncesi ve sonrası olarak iki adımda incelenmelidir. \n HHS tarafında, kullanıcı doğrulama öncesinde yapılan kontroller neticesinde verilemeyen rızalar için ‘04’ : Süre Aşımı : Yetki Bekleniyor iptal kodu atanır. HHS'nin YÖS uygulamasına 04 kodunu iletmesi beklenmez. YÖS zaman aşımı neticesinde rıza statüsünü sorgulayarak öğrenir. \nKullanıcı doğrulandıktan sonra rıza verilemiyorsa ilgili hata kodunun YÖS'e iletilmesi beklenmektedir. Kullanıcı doğrulama sonrası YÖS'e iletilen rıza iptal detay kodu ile HHS veri modelinde tutulan rıza ile ilişkili rıza iptal detay kodu, aynı değeri alacak şekilde güncellenmelidir. YÖS, HHS tarafından kendine iletilen rıza iptal detay kodunu kendi veri modelinde güncellemelidir. \n Zorunlu olarak belirtilen hata durumlarının HHS’ler tarafından gerçeklenmesi ve uygun hata kodlarının YÖS’e iletilmesi; ileride oluşabilecek mutabakatlaşma sorunlarını ortadan kaldırabilecek, yapılacak raporlamalar kapsamında sistem ve süreç iyileştirmelerine katkı sağlayacak, son kullanıcı açısından da alınan hataya yönelik bilgilendirici içerik sağlayacaktır. \n Hata açıklamaları; hata koduna uygun ya da uyumlu olmak kaydıyla, HHS ve YÖS tarafından farklı şekillerde sunulabilir. \n GKD Sırasında yapılması gereken kontroller \n \n \n \n Rıza İptal Detay Kodu \n HHS hata açıklaması* \n Yös ekranında listelenecek örnek mesaj metni* \n Örnek Senaryo \n Zorunlu / Opsiyonel \n \n \n \n \n 07 \n Rıza mevcut ve durumu \"Yetkilendirildi\" veya \"Yetki Kullanıldı\" \n Yetki Hatası \n ÖHK,  kullanıcı doğrulama işlemi tamamlandıktan sonra  YÖS ekranında ileri - geri yaparak ya da ÖHK'nın yönlendirme adresini kopyalayarak tarayıcıya yapıştırması ile tekrar HHS'ye yönlendirir. Bu durumda HHS bu rıza iptal detay kodunu iletir. HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Zorunlu \n \n \n 08 \n Rızano ile kimlik bilgileri uyuşmazlığı. \n İşlem gerçekleştirilememiştir. \n YÖS tarafından başlatılan rıza içerisinde yer alan kimlik bilgisi (örn:TCKN) ile HHS'de başarılı kimlik doğrulama yapılan ÖHK'nın bilgilerinin uyuşmadığı durumda  HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Zorunlu \n \n \n 09 \n ÖHK'nın HHS'de ilgili ürününün olmadığı durum (hesap/kart) \n Gösterilebilecek hesap/kart bulunamamıştır. \n HHS, kullanıcı doğrulama yaptıktan sonra, ÖHK'nın uygun statülü hesabının olmadığı durumda  HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Zorunlu \n \n \n 10 \n ÖHK'nın Açık Bankacılık kanalı işleme kapalı \n ÖHK'nın Açık Bankacılık kanalı işleme kapalı \n Açık bankacılığı ayrı bir kanal olarak tanımlamış HHS'lerde,  ÖHK kullanıcı doğrulama yaptıktan sonra yapılan kontrollerde, ÖHK'nın işlemlerini AB kanalına kapatmış olması durumunda   HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Opsiyonel \n \n \n 11 \n ÖHK'nın HHS'deki hesaplarında yeterli yetkisinin olmaması \n Yetki hatası \n 1- Kurumsal firma kullanıcılarının hesaplar üzerinde işlem yetkisinin olmaması durumunda   2- Bireysel ortak hesaplarda hesap kısıtı bulunuyorsa (para çıkışına izin verilmediği durum)  HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Zorunlu \n \n \n 12 \n HHS’nin,  ÖHK özelinde yaptığı kontrollerin başarısız olması \n Yetki hatası \n HHS'nin, kullanıcı doğrulama sonrası ÖHK için iç sistemlerinde yaptığı kontrollerin başarısız olması. Örneğin: Müşterinin henüz bankacılık hizmet sözleşmesi gibi Internet şubesi üzerinde işlem yapmasını engelleyen eksikleri olması durumunda veya kurumsal kullanıcıda vekalet süresinin dolması/eksik doküman olması durumunda kanal üzerinde işlem yapamadığı durum  HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Opsiyonel \n \n \n 13 \n ÖHK isteği ile GKD’den vazgeçilmesi \n Müşteri işlemden vazgeçmiştir. \n HHS ekranında yer alan VAZGEÇ butonuna basılması durumu (ÖHK,HHS uygulamasında kullanıcı doğrulama yaptıktan sonra VAZGEÇ butonu olabilir.) \n Zorunlu \n \n \n 14 \n GKD İptali: Fraud Şüphesi \n İşlem gerçekleştirilememiştir. \n HHS Fraud şüphesi nedeniyle işlemin devamına izin vermez. HHS'nin, fraud kontrollerinin ödeme başlatma hizmeti için yapması ve “14- GKD İptali: Fraud Şüphesi” ile rıza iptalini gerçekleştirmelidir. HBH servislerinde HHS'nin rıza iptal kodu 14 ile işlemi kesmesi HHS'nin kendi insiyatifindedir yani opsiyoneldir. \n Koşullu \n \n \n 99 \n Diğer \n İşlem gerçekleştirilememiştir. \n Oluşabilecek diğer senaryolar. \n Zorunlu \n \n \n \n GKD sırasında iletilen rıza no eğer HHS’nin sisteminde bulunamazsa durumu güncellenecek bir rıza no da olmayacaktır. HHS kendi önyüzünde bu duruma uygun bir mesaj gösterebilir. YÖS’e de Diğer hata kodu ile bu durumu iletebilir. \n"},{frontmatter:{},regularPath:"/v1.1.0/contents/tanim-ve-kisitlamalar.html",relativePath:"v1.1.0/contents/tanim-ve-kisitlamalar.md",key:"v-e8779b46",path:"/v1.1.0/contents/tanim-ve-kisitlamalar.html",content:"  1.\tTanım ve Kısaltmalar   \n Tablo 1: Tanım ve Kısaltmalar \n \n \n \n Kısaltma \n Tanım \n Açıklama \n İngilizce Açıklama \n İngilizce Kısaltma \n \n \n \n \n ÇS \n Çerçeve Sözleşme \n Ödeme hizmeti sağlayıcısı ile müşteri arasında tekil veya süreklilik arz eden ödeme işlemlerinin yürütülmesine ve mümkün olan durumlarda ödeme hesabının açılmasına ilişkin usul ve esasları belirleyen sözleşme \n \n \n \n \n EPK \n Elektronik Para Kuruluşu \n Kanun kapsamında elektronik para ihraç etme yetkisi verilen tüzel kişi \n Electronic Money Institution \n EMI \n \n \n FAST \n Fonların Anlık ve Sürekli Transferi \n TCMB tarafından işletilen Fonların Anlık ve Sürekli Transferi Sistemi \n \n \n \n \n FAST TR-Karekod \n FAST-TR Karekod Teknik İlke ve Kurallar Rehberi \n TR Karekod’un FAST Sistemi aracılığıyla gerçekleşecek işlemlerde kullanılmasına ilişkin detaylı teknik ilke ve kurallarını içeren doküman \n \n \n \n \n GEÇİT \n BKM API Geçidi \n Bankalararası Kart Merkezi (BKM) tarafından geliştirilen ve taraflara standart Açık Bankacılık işlemleri sunulmasını sağlayan API Geçidi uygulaması \n \n \n \n \n GKD \n Güçlü Kimlik Doğrulama \n Kimlik doğrulamada kullanılan ve bir bileşenin ele geçirilmesinin diğer bileşenin güvenliğini tehlikeye atmayacağı en az iki bileşenden oluşan, bu iki bileşenin de müşterinin bildiği, sahip olduğu veya biyometrik bir karakteristiği olan bileşen sınıflarından farklı ikisine ait olacak şekilde seçildiği yöntem \n Strong Customer Authentication \n SCA \n \n \n İB \n İşlem Bilgisi \n Gerçekleştirilen işleme ilişkin işlem zamanını, işlemin niteliğini ve ödeme işlemi için ödeme emrinin masraf, komisyon ve ücretler de dahil hesabın borçlandırılacağı toplam tutarını ve ödemenin göndereni ile alıcısını veya toplu ödeme emrinin masraf, komisyon ve ücretler de dahil hesabın borçlandırılacağı toplam tutarını ve göndereni ile alıcılarını içeren bilgi \n \n \n \n \n İDK \n İşlem Doğrulama Kodu \n Kimlik doğrulama yöntemlerinden biriyle kendisini sisteme tanıtan bir müşterinin gerçekleştirmek istediği 
16işleme özgü olmak ve belirli bir geçerlilik süresi içinde işlem onayında kullanılmak üzere oluşturulan, finansal sonuç doğrunan işlemlerde kişiye onay anında ilgili işlem bilgisi (İB) ile birlikte gösterilen, alıcı veya tutarın değişmesiyle geçersiz hale gelen bilgi \n Authentication Code \n AC \n \n \n KOLAS \n Kolay Adresleme Servisi \n Fon transferlerinde hesap numarası ile ad soyad yerine kullanılan ve belirli bir hesap ile eşleştirilmiş telefon numarası, e-posta adresi, T.C. Kimlik Numarası (TCKN), Vergi Kimlik Numarası (VKN), Yabancı Kimlik Numarası veya Pasaport Numarası gibi Kolay Adres bilgilerinin kaydedilmesini, güncellenmesini ve sorgulamasını sağlayan katman servis \n \n \n \n \n HBHS \n Hesap Bilgisi Hizmeti Sağlayıcısı \n Kanunun 12 inci maddesinin birinci fıkrasının (g) bendinde tanımlanan ödeme hizmetini (hesap bilgisi hizmetini) sunan tüzel kişi \n Account Information Service Provider \n AISP \n \n \n HHS \n Hesap Hizmeti Sağlayıcısı \n Nezdinde ödeme hesabı bulunan ödeme hizmeti sağlayıcısı \n Account Servicing Payment Service Provider \n ASPSP \n \n \n ÖBHS \n Ödeme Emri Başlatma Hizmeti Sağlayıcısı \n Kanunun 12 inci maddesinin birinci fıkrasının (f) bendinde tanımlanan ödeme hizmetini (ödeme emri başlatma hizmetini) sunan tüzel kişi \n Payment Initiation Service Provider \n PISP \n \n \n ÖDK \n Ödeme Kuruluşu \n Ödeme hizmeti sağlamak ve gerçekleştirmek için Kanun kapsamında yetkilendirilmiş tüzel kişi \n Payment Institution \n PI \n \n \n ÖH \n Ödeme Hesabı \n Ödeme hizmeti kullanıcısı adına açılan ve ödeme işleminin yürütülmesinde kullanılan hesap \n Payment Account \n PA \n \n \n ÖHK \n Ödeme Hizmeti Kullanıcısı (Müşteri) \n Gönderen, alıcı veya her ikisi sıfatıyla belirli bir ödeme hizmetinden faydalanan gerçek veya tüzel kişi \n Payment Service User \n PSU \n \n \n ÖHS \n Ödeme Hizmeti Sağlayıcısı \n 5411 sayılı Kanun kapsamındaki bankalar, EPK, ÖDK ve Posta ve Telgraf Teşkilatı Anonim Şirketi(PTT) \n Payment Service Provider \n PSP \n \n \n ÖHVPS \n Ödeme Hizmetleri Veri Paylaşım Servisleri \n Kanunun 12’nci maddesinin birinci fıkrasının (f) veya (g) bentlerinde yer alan ödeme hizmetlerinde kullanılan veri paylaşım servisleri \n \n \n \n \n PÖS \n Perakende Ödeme Sistemi \n TCMB tarafından işletilen, işlemlerin Türk Lirası üzerinden gerçekleştiği Müşteriler Arası Türk Lirası Aktarım Sistemi \n \n \n \n \n TR-Karekod \n TR-Karekod İlke ve Kuralları \n Ulusal karekod (TR Karekod) ilke ve kurallarının belirlendiği belge \n \n \n \n \n YÖS \n Yetkili Ödeme Hizmeti Sağlayıcısı \n Ödeme emri başlatma hizmeti ve/veya hesap bilgisi hizmeti sunan tüzel kişi \n Third Party Payment Service Providers \n TPP \n \n \n \n"},{frontmatter:{},regularPath:"/v1.1.0/deneyalani/genel-bilgiler.html",relativePath:"v1.1.0/deneyalani/genel-bilgiler.md",key:"v-70a6dc4e",path:"/v1.1.0/deneyalani/genel-bilgiler.html",content:" GENEL BiLGİLER: \n ÖHVPS API İlke ve Kuralları dokümanına istinaden geliştirmelerini yapan/yapacak olan katılımcılar geliştirdikleri sürüme ait API’lerin nasıl çalıştıklarını görmek istediklerinde “Deney Alanı” üzerinden gözlem yapabilirler. Bu kapsamda, Deney Alanı katılımcılara tarayıcı üzerinden statik verilerle işlem başlatarak, dönen yanıtı inceleme imkanı sunar. \n Deney Alanı ile sunulan imkanlar şu şekildedir: \n \n Servisler durum bilgisi içermeyecek şekilde (stateless) olarak sunulmaktadır. \n Güçlü Kimlik Doğrulama akışlarında kurum özelinde oluşturulan yetkilendirme kimlik bilgilerine ihtiyaç duyulmamaktadır. \n Yanıt veri kümesi statiktir. Servislere yapılan istekler, her zaman aynı yanıtı dönmektedir. \n Yeni oluşturma, güncelleme, silme işlemleri kaynak veri üzerinde değişiklik yapmamaktadır. \n Deney alanı genelin kullanımına açıktır. Üyelik kaydı olmaksızın Deney Alanı üzerinden API incelemeleri gerçekleştirilebilmektedir. \n API dokümanında yapılacak minor değişiklikler deney alanına yansıtılmayacaktır. \n \n Not: Deney Alanı’nın kapsamı genişletilmiş versiyonu – “BKM ÖHVPS Simülatör” uygulaması hem HHS hem de YÖS katılımcılarının; test uygulamalarını uçtan uca test edebilebileceği bir ortamdır. Simülatör uygulaması üzerinden dinamik veri girişi yaparak, geliştirilen servisler ile zorunlu senaryoların tümünün simülasyonu gerçekleştirilebilir. Simülatör ortamındaki API’ler, üretim ortamının bir kopyası olacak şekilde oluşturulmuştur ve kurumların üretim ortamına hazır hale gelmelerine aracılık eder. Bu uygulama, pürüzsüz bir üretim ortamı geçişi imkanı sağlar ve ÖHVPS BKM Teknik Sertifikasyonu geçmek için koşulması gereken sertifikasyon senaryoları BKM ÖHVPS Simülatör’ü üzerinden sunulmaktadır. BKM Simülatör kullanımı için ayrı bir süreç işletilmekte olup daha fazla detaylı bilgi almak için [email protected] adresine taleplerinizi iletmeniz gerekmektedir. \n Ödeme Emri Başlatma API Deney Alanı \n"},{title:"3. Temel Prensipler",frontmatter:{},regularPath:"/v1.1.0/contents/temel-prensipler.html",relativePath:"v1.1.0/contents/temel-prensipler.md",key:"v-2fcc3a95",path:"/v1.1.0/contents/temel-prensipler.html",headers:[{level:2,title:"3.1 Genel",slug:"_3-1-genel"},{level:2,title:"3.2.\tİstem (Çağrı) ve Oturum",slug:"_3-2-istem-cagrı-ve-oturum"},{level:2,title:"3.3.\tRESTful API",slug:"_3-3-restful-api"},{level:2,title:"3.4.\tSürüm Yönetimi",slug:"_3-4-surum-yonetimi"},{level:2,title:"3.5.\tKaynak URI Yol Yapısı",slug:"_3-5-kaynak-uri-yol-yapısı"},{level:2,title:"3.6.\tKarakter Kodlama",slug:"_3-6-karakter-kodlama"},{level:2,title:"3.7.\tVeri Formatı",slug:"_3-7-veri-formatı"},{level:2,title:"3.8.\tİstemci Sertifika Yönetimi",slug:"_3-8-istemci-sertifika-yonetimi"},{level:2,title:"3.9.\tYetkilendirme Türleri",slug:"_3-9-yetkilendirme-turleri"},{level:2,title:"3.10. İstek/Cevap Mesajlarında Kullanılan Nesne Yapıları",slug:"_3-10-istek-cevap-mesajlarında-kullanılan-nesne-yapıları"},{level:2,title:"3.11. Sayfalandırma ve Filtreleme",slug:"_3-11-sayfalandırma-ve-filtreleme"},{level:2,title:"3.12. Mesaj İmzalama",slug:"_3-12-mesaj-imzalama"},{level:2,title:"3.13. Durum Kodu",slug:"_3-13-durum-kodu"},{level:2,title:"3.14. Gereksinimlerinin Sınıflandırılması",slug:"_3-14-gereksinimlerinin-sınıflandırılması"},{level:2,title:"3.15. İstek Başlığı",slug:"_3-15-istek-baslıgı"},{level:2,title:"3.16. Yanıt Başlığı",slug:"_3-16-yanıt-baslıgı"},{level:2,title:"3.17. Idempotency Kuralları",slug:"_3-17-idempotency-kuralları"},{level:2,title:"3.18. HTTP Durum Kodları",slug:"_3-18-http-durum-kodları"},{level:2,title:"3.19. Maskeleme Kuralları",slug:"_3-19-maskeleme-kuralları"},{level:2,title:"3.20. Fonksiyonel Olmayan Gereksinimler",slug:"_3-20-fonksiyonel-olmayan-gereksinimler"},{level:2,title:"3.21. Otomatik Sorgular",slug:"_3-21-otomatik-sorgular"}],content:' 3. Temel Prensipler  \n Bu bölümde Ödeme Hizmetleri Veri Paylaşım Servisleri (Hesap Bilgisi Hizmeti, Ödeme Emri Başlatma Hizmeti) için tanımlanan temel prensipler açıklanmaktadır. \n 3.1 Genel \n \n \n HHS’ler Yönetmeliğin 59. maddesinin beşinci fıkrası ve Ödeme ve Elektronik Para Kuruluşlarının Bilgi Sistemleri ile Ödeme Hizmeti Sağlayıcılarının Ödeme Hizmetleri Alanındaki Veri Paylaşım Servislerine İlişkin Tebliğin (Tebliğ) 23. maddesinin birinci fıkrası uyarınca, ödeme hizmetleri veri paylaşım servislerini GEÇİT aracılığıyla HBHS ve ÖBHS’ye sunmakla yükümlüdür. \n \n \n Tebliğin 23. maddesinin ikinci fıkrası uyarınca ödeme emri başlatma hizmetinde açık iletişim servisinin tarafları ÖBHS ile HHS’dir. \n \n \n Tebliğin 23. maddesinin üçüncü fıkrası uyarınca hesap bilgisi hizmetinde açık iletişim servisinin tarafları HBHS ile HHS’dir. \n \n \n Yönetmeliğin 60. maddesinin birinci fıkrası uyarınca müşteri, ödeme emri başlatma hizmetini  ödeme hesabının çevrim içi olarak erişilebilir olduğu durumlarda , kullanmayı tercih edebilir. \n \n \n Yönetmeliğin 61. maddesinin birinci fıkrası uyarınca müşteri, hesap bilgisi hizmetini  ödeme hesabının çevrim içi olarak erişilebilir olduğu durumlarda , kullanmayı tercih edebilir. \n \n \n Tebliğin 25. maddesi uyarınca HHS ve YÖS (ÖBHS ve HBHS) arasında bağlantı uçtan uca güvenli bir şekilde sağlanır. Bu amaçla iletim katmanında TLS (asgari 1.2 sürümü) ile şifreli iletişim sağlanır. \n \n \n Tebliğin 23. maddesinin dördüncü fıkrası uyarınca HHS tarafından sunulan ödeme hizmetleri veri paylaşım servislerini kullanan yetkilendirilmiş ödeme hizmeti sağlayıcılarının TCMB tarafından ilgili ödeme hizmeti için yetkilendirilmiş olduğu kontrol edilir. \n \n \n Tebliğin 25. maddesinin beşinci fıkrası uyarınca zaman damgası, 15/1/2004 tarihli 5070 sayılı Elektronik İmza Kanunu kapsamında tanımlanan zaman damgasına dayanır. \n \n \n API alan isimleri Türkçe olarak tanımlanmıştır. Ancak API başlığı (header) alanındaki alan isimleri özelinde, API Geçitleri tarafından otomatik olarak tanınabilmesi gözetilerek, İngilizce isimlendirme tercih edilmiştir. \n \n \n ÖHK halihazırda ödeme hesaplarına, çevrim içi (mobil bankacılık, internet bankacılığı vb.) erişebilir durumda ise, HHS\'nin varsa Açık Bankacılık kanal veya yetki tanımını varsayılan değeri AÇIK olacak şekilde sunması gerekmektedir. HHS’nin, Bireysel/Kurumsal/Ticari müşteri ayrımı yapmaksızın tüm müşterileri için, çevrim içi kanallarda hesap hareketlerine erişim ve ödeme yapabilme yetkisi bulunması durumunda, yine aynı şekilde Açık Bankacılık kanal veya yetki tanımını da varsayılan değeri AÇIK olacak şekilde sunması gerekmektedir. HHS Açık Bankacılık hizmetini kanal/yetki tanımı ile yönetmesi durumunda hizmeti verdiği ilgili kanallar(web,mobil) üzerinden müşterisine Açma/Kapama olanağı şeklinde sunması gerekmektedir. \n \n \n 5411 Sayılı Kanun kapsamındaki bankalar, HHS API içerisinde Aktif durumda listelenmemişken, YÖS API içerisinde listelenemezler. \n 3.2.\tİstem (Çağrı) ve Oturum \n \n \n Her istek tekil istek numarası ve ÖHK’lı işlemler için zaman damgası (PSU-Timestamp) içerir. Birden fazla istek içeren işlem YÖS tarafından belirlenen çağrıya özgü talep kimliği (istek numarası: X-Request-ID) ve rıza sürecine özgü talep kimliği (işlem grup numarası: X-Group-ID) değerleri kullanılmalıdır. Aynı rıza no’ya ait tüm isteklerde aynı X-Group-ID bilgisi değeri gönderilmelidir. \n \n \n Oturum takibi ise PSU-Session-ID ile yapılır. Oturum numarası (PSU-Session-ID) ÖHK’lı işlemler için zaman damgası (PSU-Timestamp) ile birlikte ilgili tüm işlem verilerini içerecek şekilde k
16ayıt altına alınır. \n \n \n Örneğin, bir ödeme emri başlatma işlemi birden fazla istekten oluşur. Her istek yukarıda belirtildiği gibi biricik istek numarası ve ÖHK’lı işlemler için zaman damgası (PSU-Timestamp) içerir. Ancak işlemin oturum bütünlüğü PSU-Session-ID ile sağlanır. \n \n \n Taraflar açtıkları oturumu işlem bütünlüğünü sağlayacak süre içerisinde açık tutar ve işlem biter bitmez kapatır. \n 3.3.\tRESTful API \n API’ler, dünya ölçeğinde yaygın bir şekilde kullanılan Temsili Durum Transferi (Representational State Transfer, REST) mimari tarzı ve JavaScript Nesne Notasyonu (JavaScript Object Notation, JSON) veri formatlarına uygun olarak geliştirilir. En üst seviye Veri Tanımlama Dili (Data Description Language) ve en iyi uygulama örnekleri için  ^JSON Şeması  temel alınır. \n İstek ve yanıt mesajlarında, isteğe bağlı veya koşullu bir alan, değer içermiyorsa, bu alan JSON payloadunda yer almamalıdır. \n Örnek kod bloğu. \n "rzBlg":{\n         "rizaNo":"aa9bd7e7-0ccd-4edc-9639-5a358dbf2335",\n         "olusZmn":"2022-11-28T12:00:21+03:00",\n         "gnclZmn":null,    --\x3e hatalı\n         "rizaDrm":"K",\n         "rizaIptDtyKod":"" --\x3e hatalı \n      },\n \n Örnek kod bloğu: \n \n         "alc":{\n            "hspNo": "TR800800004162387689546019",\n            "unv": "AHMET YILMAZ", \n            "kolas":{}  --\x3e nesne gönderimi hatalı\n         },\n 3.4.\tSürüm Yönetimi \n API sonraki aşamalarda doğabilecek gereksinimleri ve daha karmaşık kullanım durumlarını karşılamak için sürümler halinde geliştirilir ve bu durum tasarım sırasında göz önünde bulundurulur. \n API v1.0.2 sürümünde ; \n \n Kapsamdaki ödeme hesapları : Vadesiz TL, yabancı para hesapları (gerçek ve tüzel kişilere ait ödeme hesapları), Kredili Mevduat Hesabı \n Tekil ödeme (Virman/Havale/FAST/Müşterilerarası TL Aktarım Sistemi)\n \n Virman ve havale işlemleri kapsamında yabancı para transferi yapılabilir. \n \n \n Hesap bilgisi hizmetleri\n \n Temel veya ayrıntılı hesap bilgisi \n Bakiye \n Gerçekleşen işlemler için Hesap hareketleri \n \n \n Karekodlu ödemelerdeki 01, 02 ve 03 akış türleri\nyer almaktadır. \n \n API v1.1.0 sürümünde ; \n \n API v1.0.2 sürümüne ek Olay Bildirim ve Ayrık GKD özellikleri eklenmiştir. Süreçlerin daha iyi işlemesi için çeşitli güncellemeler yapılmıştır. \n \n Her sürüm değişikliğinde bir önceki sürüm belirli bir süre desteklenecektir. Diğer bir ifadeyle, sadece belirli bir süre için mevcut ve bir önceki sürüm aynı anda erişilebilir olacaktır. \n 3.5.\tKaynak URI Yol Yapısı \n YÖS’lerin başlattığı çağrılarda URI yolu aşağıdaki yapıyı takip eder: \n [hhs-yol-ön-eki]/ohvps/ [kaynak-grubu]/ [sürüm]/ [kaynak]/[kaynak-no]/[alt-kaynak] \n Bu, aşağıdaki unsurlardan oluşur: \n \n [hhs-yol-ön-eki] \nİsteğe bağlı, HHS\'ye özgü yol ön ekini ifade eder. \nGEÇİT üzerinden yapılan çağrılarda BKM tarafından belirlenen sistem adı ve yol ön eki kullanılır. \n ohvps \nSabit metin “ohvps” (Ödeme Hizmetleri Veri Paylaşım Servisleri kısaltması) \n [kaynak-grubu] \nKaynak grubu, API’ye erişmek için kullanılan ödeme hizmetine (HBH, ÖBH) göre erişim adresi (end point) grubunu tanımlar (“hbh” veya “obh”). \n [sürüm] \nAPI sürümünü ifade eder (“/s[ana-sürüm].[alt-sürüm]/”). \n [kaynak]/[kaynak-no] \nKaynak detaylarını ifade eder. \n [alt-kaynak] \nAlt kaynak detaylarını ifade eder. \n \n HHS, tüm kaynakları için aynı katılımcı yolu ön ekini ve sistem adını kullanmalıdır. \n BKM API’lerine erişmek isteyen uygulamaların yetkilerine göre aşağıdaki API’lere abone olmaları gerekmektedir: \n OBH: \n https://gecit-api.bkmtest.com.tr/ohvps/obh/s1.1/odeme-emri-rizasi \n https://gecit-api.bkmtest.com.tr/ohvps/obh/s1.1/odeme-emri \nHBH: \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s1.1/hesap-bilgisi-rizasi \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s1.1/hesaplar \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s1.1/hesaplar/1234/islemler \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s1.1/hesaplar/1234/bakiye \nGKD \n https://gecit-api.bkmtest.com.tr/ohvps/gkd/s1.1/erisim-belirteci \nHHS – YÖS API \n https://gecit-api.bkmtest.com.tr/hhs-api/s1.1/hhs \n https://gecit-api.bkmtest.com.tr/hhs-api/s1.1/hhs/1234 \n https://gecit-api.bkmtest.com.tr/yos-api/s1.1/yos \n https://gecit-api.bkmtest.com.tr/yos-api/s1.1/yos/1234 \n HHS’lerin sağlayacakları API’lerdeki URI çevrimi örnekleri aşağıdaki gibidir. \n \n https://xbank.com.tr/api-portal/ohvps/obh/s1.1/odeme-emri \n https://gecit-api.bkmtest.com.tr/ohvps/obh/s1.1/odeme-emri  (BKM API) \n https://xbank.com.tr/api-portal/ohvps/hbh/s1.1/hesap-bilgisi-rizasi \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s1.1/hesap-bilgisi-rizasi  (BKM API) \n https://xbank.com.tr/api-portal/ohvps/hbh/s1.1/hesaplar \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s1.1/hesaplar   (BKM API) \n https://xbank.com.tr/api-portal/ohvps/hbh/s1.1/hesaplar/1234 \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s1.1/hesaplar/1234  (BKM API) \n \n GEÇİT üzerinden yapılan çağrılarda, istek başlığında bulunan “x-aspsp-code” (isteğin iletildiği Hesap Hizmeti Sağlayıcısının kodu) değerine göre HHS API’de standart olarak tanımlanmış olan “basePath” bilgisine servis uzantısı eklenerek HHS’ye yönlendirme yapılır. \n Örneğin, istek başlığında  xbank ’ın kodu varsa, YÖS tarafından yapılan \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s1.1/hesap-bilgisi-rizasi \nçağrısı GEÇİT tarafından karşılanarak \n https://xbank.com.tr/api-portal/ohvps/hbh/s1.1/hesap-bilgisi-rizasi \nadresine yönlendirilir. \n Bu örnekte,  https://xbank.com.tr/api-portal  basePath bilgisi HHS tarafından HHS API’ye girilen değerdir. \n ÖNEMLİ :  URI Query parametreleri GET ile iletilirken değerlerde url-encode yapılmalıdır. Örnek bir API isteği; \nGET /ohvps/hbh/s1.1/hesaplar/xxx/islemler?hesapIslemBslTrh=2023-02-07T16:42:38%2B03:00&hesapIslemBtsTrh=2023-02-07T17:09:18%2B03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfKytSayi=10&syfNo=1 \n Burada \'+\' karakterinin boşluk olarak algılanmaması için %2B değeri ile iletilmiştir. \n 3.6.\tKarakter Kodlama \n API istekleri ve yanıtlarının  Başlık  parametrelerinde ISO-8859-1 standartında yer alan karakter kümesi kullanılmalıdır.  3.15. İstek Başlığı  bölümünde detaylandırılmıştır. \n API istekleri ve yanıtlarında  Gövde  parametrelerinde UTF-8 karakter kodlaması kullanılır. Bu, JSON için varsayılan karakter kodlamasıdır. \n Ancak, bir HHS\'nin kendi uygulamaları ve ödeme başlattığı ödeme sistemi (Havale vb.) bazı UTF-8 karakterlerini kabul etmeyebilir. HHS, UTF-8 kodlaması içeren bir mesajı işleyemez ve reddederse, HTTP 400 (Hatalı İstek) durum ko
16du ile yanıt vermelidir. \n Gövde parametrelerinde desteklenen UTF-8 karakter kümesi aşağıda listelenmiştir. \n \n \n \n Karakter \n UTF 8   Hex. \n Karakter \n UTF 8   Hex. \n Karakter \n UTF 8   Hex. \n Karakter \n UTF 8   Hex. \n \n \n \n \n \n 20 \n = \n 3d \n X \n 58 \n r \n 72 \n \n \n ! \n 21 \n ? \n 3f \n Y \n 59 \n s \n 73 \n\n 23 \n @ \n 40 \n Z \n 5a \n t \n 74 \n \n \n % \n 25 \n A \n 41 \n [ \n 5b \n u \n 75 \n \n \n & \n 26 \n B \n 42 \n \\ \n 5c \n v \n 76 \n \n \n \' \n 27 \n C \n 43 \n ] \n 5d \n w \n 77 \n \n \n ( \n 28 \n D \n 44 \n ^ \n 5e \n x \n 78 \n \n \n ) \n 29 \n E \n 45 \n _ \n 5f \n y \n 79 \n \n \n * \n 2a \n F \n 46 \n a \n 61 \n z \n 7a \n \n \n + \n 2b \n G \n 47 \n b \n 62 \n { \n 7b \n \n \n , \n 2c \n H \n 48 \n c \n 63 \n } \n 7d \n \n \n - \n 2d \n I \n 49 \n d \n 64 \n Ç \n c3 \n \n \n . \n 2e \n J \n 4a \n e \n 65 \n Ö \n c3 \n \n \n / \n 2f \n K \n 4b \n f \n 66 \n Ü \n c3 \n \n \n 0 \n 30 \n L \n 4c \n g \n 67 \n ç \n c3 \n \n \n 1 \n 31 \n M \n 4d \n h \n 68 \n ö \n c3 \n \n \n 2 \n 32 \n N \n 4e \n i \n 69 \n ü \n c3 \n \n \n 3 \n 33 \n O \n 4f \n j \n 6a \n Ğ \n c4 \n \n \n 4 \n 34 \n P \n 50 \n k \n 6b \n ğ \n c4 \n \n \n 5 \n 35 \n Q \n 51 \n l \n 6c \n İ \n c4 \n \n \n 6 \n 36 \n R \n 52 \n m \n 6d \n ı \n c4 \n \n \n 7 \n 37 \n S \n 53 \n n \n 6e \n Ş \n c5 \n \n \n 8 \n 38 \n T \n 54 \n o \n 6f \n ş \n c5 \n \n \n 9 \n 39 \n U \n 55 \n p \n 70 \n \n \n \n \n : \n 3a \n V \n 56 \n q \n 71 \n \n \n \n \n ; \n 3b \n W \n 57 \n \n \n \n \n \n \n \n Ancak  Erişim belirteci, Yenileme belirteci ve Authorization  parametreleri daha dar bir karakter kümesi ile doldurulmalıdır. \n Bearer HTTP Authorization Şeması RFC 6750\'de tanımlanmıştır.  https://www.rfc-editor.org/rfc/rfc6750#section-2.1  bölümünde izin verilen karakterlerin gönderilmesi beklenmektedir. Buradaki standartın her 3 parametre için de uygulanmasına karar verilmiştir. \n RFC 6750 içerisinde bearer token formatı şu şekildedir : 1*( ALPHA / DIGIT / "-" / "." / "_" / "~" / "+" / "/" ) *"=" \nAugmented BNF for Syntax Specifications (ABNF) ile ifade edilen bu formatta token en az 1 adet alfanumerik karakter veya özel karakter ("-", "." , "_" , "~" , "+" , "/")  içermeli ve 0 ya da daha çok sayıda "=" karakteri ile bitmelidir. \n ALPHA = A-Z / a-z aralığındaki harflerdir. \nDIGIT = 0-9 aralığındaki rakamlardır. \n 3.7.\tVeri Formatı \n \n Açık bankacılık kapsamındaki zaman damgası, ISO 8601 standartına uygun olarak yerel saat bilgisini ve timezone bilgisini de içerecek şekilde " yyyy-MM-dd’T’HH:mm:ssXXX " formattaki haliyle hazırlanmalıdır. \n \n Örnek:  "timestamp": "2021-05-30T20:34:15+03:00" \nyyyy : 4 hane yıl \nMM : Başa ‘0’ eklenmiş, toplam 2 hane ay \ndd    : Başa ‘0’ eklenmiş, toplam 2 hane gün \nHH    : Başa ‘0’ eklenmiş, toplam 2 hane saat (0-23 arası değer alabilir.) \nmm : Başa ‘0’ eklenmiş, toplam 2 hane dakika \nss    : Başa ‘0’ eklenmiş, toplam 2 hane saniye \nXXX : ISO 8601 Time zone \n \n \n Zaman damgası hesaplamalarında, yeni günün başlangıç saatinin 00:00:00 olduğu kabul edilmiştir. \n \n \n JWT veri paketlerinde kullanılan zaman damgaları, 1 Ocak 1970 Saat 00:00:00 (UTC) anından itibaren geçen saniye sayısı değerini (Unix Time) kullanmalıdır. \n \n \n Bir HHS, tarihi yanlış biçimlendirilmiş bir istek aldığında, 400 (Hatalı İstek) durum kodu ve ilgili hata kodu ile yanıt vermelidir. \n \n \n ISO 4217 Standartında para birimleri ve kaç basamak ondalık değer içerebilecekleri belirlenmiştir. \n https://www.iso.org/iso-4217-currency-codes.html   adresinden ücretsiz olarak listeye erişilebilir.  \nAPI Standartlarında da para birimleri  ISO 4217’de tanımlanmış olan 3 harfli kodlarla iletilir.   Tüm tutar alanları ISO 4217\'de tanımlanmış para birimlerinin ondalık basamak değerleri de göz önünde bulundurularak iletilmelidir. Tutar alanları artı ya da eksi değer alabileceği için API deseninde tanımlanmış regular expressionlar dikkate alınmalıdır. \nÖrneğin; Bakiye API\'sindeki "Kredili Mevduat Hesabı Bakiyesi" alanı "-100.25" ve "Para Birimi" alanı "TRY" olarak 
16iletildiğinde 25 değerinin kuruş olduğu anlaşılmalıdır. \nÖdeme Emri Rızası API\'sinde yer alan "İşlem Tutarı" alanı "104.75" TRY olarak iletildiğinde "75" değerinin kuruş olduğu anlaşılmalıdır. \n"12000" Japon Yeni için, ISO 4217’de JPY para biriminin ondalık kısmı olmadığından "İşlem Tutarı" alanında "12000" ve "Para Birimi" alanında "JPY" değeri  iletilmelidir. \n \n \n Altın para birimi özelinde ISO 4217’ye uygun olarak "XAU" cinsinde ve 2 basamak ondalık rakam içerecek şekilde iletilmelidir. Örneğin içerisinde "13,50 gr" altın olan hesap için bakiye "13.50", para birimi "XAU" olarak gönderilmelidir. \n \n \n Diğer madenlerde ondalık basamak ISO 4217 standartında tanımlandığı gibi olmalıdır. \n \n \n Sıralı veri tipleri büyük küçük harfe duyarlı olmalıdır. \n 3.8.\tİstemci Sertifika Yönetimi \n ÖHVPS kapsamında YÖS ve HHS’lerin güvenli bir şekilde tanımlanması amacıyla elektronik sertifikalar kullanılır. \n ÖHVPS kapsamında tarafların güvenli bir şekilde tanımlaması, uçtan uca güvenli iletişim, mesaj şifreleme ve mesaj imzalama işlevleri 15/1/2004 tarihli ve 5070 sayılı Elektronik İmza Kanunu’nda açıklanan elektronik sertifikalar kullanılarak sağlanır. Elektronik sertifikada Türkiye Cumhuriyet Merkez Bankası tarafından verilen kuruluş kodu ve kuruluşun türüne dair bilgiler bulunur. \n GEÇİT üzerinden yapılan erişimlerde YÖS ve HHS’lere önceden dağıtılmış olan istemci sertifikaları kullanılarak tarafların (sunucu) kimliklerinin doğrulanması sağlanacaktır. İstemci sertifikaları hem test hem de üretim ortamında kullanılacaktır. Sertifikaların işlevselliği ve geçerliliği sertifikasyon sürecinde de sınanacaktır. Söz konusu sertifikaların dağıtım prosedürleri ve kullanımlara yönelik açıklamalar EK-3’te yer verilmiştir. \n 3.9.\tYetkilendirme Türleri \n GEÇİT üzerinden yapılan çağrılarda iki temel yetkilendirme türü kullanılır: \n 1.\tİstemci Kimlik Bilgileri:  Müşteri onayının gerekmediği, sadece YÖS’ün tanımlanıp doğrulandığı API çağrılarında kullanılır. YÖS’ün yetkilendirilmiş olduğu ve faaliyet izninin yaptığı hizmet çağrısına uygun olduğu kontrol edilir.  Bu amaçla, YÖS’lere clientId ve clientSecret tahsis edilecektir. YÖS’ler ilgili clientId ve clientSecret ile sadece yetkilendirilmiş oldukları servislere erişebileceklerdir. YÖS’ler kendilerine BKM tarafından sunulacak API’yi, kendi clientID ve clientSecret değerleri ile sorgulayarak “İstemci Kimlik Bilgileri” belirtecini (access token) elde edeceklerdir.\nHHS’ler de GEÇİT üzerindeki YÖS API’sini sorgulama maksadı ile GEÇİT\'e geldiklerinde, kendilerine atanmış olan clientID ve clientSecret bilgileri ile yetki kontrolleri yapılır.\nHHS’ler kendilerinden alınacak username ve password değerleri kullanılarak oluşturulacak basic authentication metodu ile servislerini sunacaklardır. \n 2.\tYetkilendirme Kodu:  YÖS’ün doğrulanmasının yanısıra müşterinin GKD ile doğrulanması gereken API çağrılarında kullanılır. Müşteri doğrulanarak yetkilendirme kodu oluşturulması HHS’nin yetkilendirme arayüzüne yönlendirilir. GKD’nin başarıyla tamamlanması sonrasında yetkilendirme kodu YÖS’e dönülür. YÖS daha sonra HHS’nin  erişim belirteci  (access token) erişim adresini (EK-3: POST /erisim-belirteci) çağırmak suretiyle yetkilendirme kodunu bir erişim belirteci (access token) ile değiştirerek ilgili kaynakları kullanabilir. \n Ödeme emri başlatma ve hesap bilgisi hizmetlerinde hangi yetkilendirme türlerinin kullanılacağı bilgisi, ilgili başlıklardaki erişim adresleri (endpoints) tablolarında yer almaktadır. \n erisim-belirteci  erisim noktasından elde edilen  erisimBelirteci  ilişkilendirildiği nesne veya işlem için gönderilen POST isteği başlığında  x-access-token  alanında iletilir.\nBelirli bir süre için tanımlanan erişim belirteci (access token) değerinin yenileme belirteci (refresh token) ile yenilenmesi gerekir. \n Erişim adreslerinde kullanılan yetkilendirme türü ilgili erişim adresi tablolarında belirtilmiştir. \n 3.10. İstek/Cevap Mesajlarında Kullanılan Nesne Yapıları \n İstek ve Cevap mesajlarında kullanılacak olan nesneler tüm elemanlarını kapsayacak şekilde Ek-1 de listelenmiştir. Tüm listelenen elemanlar açısından (Uç nokta mesaj yapılarının belirtildiği tablolarda belirtildiği üzere) alanın Zorunlu (z) veya İsteğe Bağlı (İ) olma durumlarına göre bazı alanlar gönderilebilir veya gönderilmeyebilir. \n 3.11. Sayfalandırma ve Filtreleme \n Sayfalandırma \n Çağrıya dönülen kaynak nesnesi içerisindeki kayıtlar bir sayfalandırma yapısı ile ç
16ağrılacak şekilde istek oluşturulur. \n Oluşturulacak isteğin içerisinde parametreler ile filtreleme, sayfa başına gösterilecek kayıt sayısı ve hangi sayfanın önyüzde gösterileceği bilgileri erişim noktasına iletilir ve ilgili kayıtlar cevap olarak alınır. \n Filtreleme \n HHS, birden çok kayıt dönülmesi gereken GET çağrılarında sınırlı filtreleme desteği sağlamalıdır. Filtre parametreleri her zaman kaynak nesnesinin belirli alanlarına özgüdür ve nesne için tanımlanan kurallara uymalıdır. \n 3.12. Mesaj İmzalama \n Elektronik imzalar, ÖHVPS API’de gerçekleştirilen işlemlerin ve taşınan verilerin bütünlük ve inkâr edilemezliğini destekler. İmzaların kaynak bazında hangi istek ve yanıtlara uygulandığı belirlidir. \n API yalnızca TLS\'ye dayanırsa, dijital kayıtları ve inkâr edilemezlik kanıtlarını tutmak zor olur. Bu nedenle, TLS\'ye dayanmayan bir inkâr edilemezlik çözümü olarak API isteğinin HTTP başlığında bir JWS kullanılarak sağlanabilir. \n HTTP isteğinin gövdesinin hash fonksiyonu (SHA256) ile özeti alınacaktır. Elde edilen özet, asimetrik anahtarları destekleyen bir algoritma kullanılarak imzalanacak ve JWS elde edilecektir. \n Bir istek, YÖS\'nin özel anahtarı ile imzalanacak ve bu isteğe karşılık gelen yanıt, HHS\'nin özel anahtarı tarafından imzalanacaktır. \n Tüm API istekleri ve yanıtları imzalanmaz. Mesaj imzalamanın zorunlu olup olmadığı, desteklenip desteklenmediği her API özelinde belirlenir. \n Anahtar Deposu \n HHS\'ler ve YÖS\'ler tarafından güvenilen bir Güven Otoritesi (Trust Anchor), taraflar için bir genel anahtar deposu sağlamaktan sorumludur. \n Güven Otoritesi, taraflardan herhangi birisinin oluşturduğu bir anahtar çiftinin açık bölümünü saklayan merkezi bir dizin (BKM tarafından tutulan merkezi kayıt sistemi vb.) olacaktır. \n Mesajları doğrulamak için tarafların genel anahtarlarının paylaşılması için BKM bir servis sağlayacaktır. HHS API olarak adlandırılımış olan bu servis ile HHS ve YÖS listelerine ulaşılabildiği gibi doğrulama işlemi için ihtiyaç duyulacak olan genel anahtarlara da bu servis üzerinden erişilebilinecektir. \n İlgili Mesaj şifreleme için genel akış, Ek-5 bölümünde detaylarıyla paylaşılmaktadır. \n 3.13. Durum Kodu \n API’ler, iki farklı amaca hizmet eden iki durum kodu kullanır: \n \n HTTP Durum Kodu, API çağrısının (kaynaktaki HTTP işlemi) sonucunu yansıtır. \n Bazı kaynak payload’larındaki Durum alanı, kaynakların durumunu yansıtır. \n 3.14. Gereksinimlerinin Sınıflandırılması \n Erişim adreslerinin ve alanların kullanımı Zorunlu(Z), İsteğe Bağlı(İ) veya Koşullu(K) olabilir. Kullanımlara ilişkin durumlar ve kullanımın (K) koşullu olduğu duruma ilişkin açıklamalar ilgili tablolarda belirtilmiştir. \n ÖHVPS API\'lerinin (HBH,ÖBH,GKD) istek ve yanıtta kullanılacak başlık isimleri, ilgili RFC dokümanlarında ve aşağıdaki tabloda yer aldığı şekilde kullanılacaktır.  Uygulamaya özelleşmiş başlıklar "X-" ile başlayacaktır. Başlık isimlerinde yer alacak kısaltmalar (örn. PSU, ASPSP gibi) tamamı büyük harfle yazılacak şekilde tanımlanacaktır. Başlık isimleri büyük – küçük harfe duyarlı olmamalıdır. Örneğin x-request-id ya da X-Request-ID olarak gönderilmiş olan bir istek başlığı değişkeni, sunucu tarafında hata vermeyecek şekilde işlenebilmelidir. \n 3.15. İstek Başlığı \n \n "Başlık isimleri" yorumlanırken küçük büyük harfe duyarlı olmamalıdır. Örneğin "x-ReQuEsT-Id" geçerli bir başlık ismidir. \n "Başlık değerleri" yorumlanırken ise küçük büyük harf duyarlılığı olmalıdır. Örneğin "xyz123" ile "XYZ123" değerleri farklıdır. \n Başlık değerlerinde ISO-8859-1 standartında yer alan karakter kümesi kullanılmalıdır. Örneğin "PSU-Device-Data" değerinde "İOS12" yazmak, büyük "İ" harfinin ISO-8859-1 içerisinde yer almamasından dolayı, hataya yol açacaktır. \n İstek ve Yanıt başlığında yer alan alanların;
16 POST GET DELETE methodlarında, OBH,HBH,GKD,OAS,ODS API\'leri bazında Zorunlu/Koşullu/İsteğe Bağlı kullanım durumları aşağıdaki tabloda listelenmiştir. \n \n Tablo 2: İstek Başlığında Yer Alan Veriler \n \n \n \n Başlık İsimleri \n Format \n Notlar \n POST \n GET \n DELETE \n POST \n GET \n DELETE \n \n \n \n \n \n \n \n OBH HBH GKD \n OBH HBH GKD \n OBH HBH GKD \n OAS ODS \n OAS ODS \n OAS ODS \n \n \n X-Request-ID \n AN1..36 \n İsteği başlatan YÖS tarafından belirlenen çağrıya özgü talep kimliği. İstek numarası.   Örnek: Ödeme emri başlatma iş akışının her adımda farklı “x-request-id” değeri kullanılır.   Çağrıların aynı yanıtı dönmesinin beklendiği durumlarda (idempotent işlemlerde) aynı değer ile çağrı yapılır. \n Z \n Z \n Z \n Z \n Z \n Z \n \n \n X-Group-ID \n AN1..36 \n İsteği başlatan YÖS tarafından belirlenen işlem akışına özgü talep kimliği. İşlem grup numarası.  Aynı rıza no’ya ait tüm isteklerde aynı x-group-id bilgisi değeri gönderilmelidir. Örnek: Ödeme emri başlatma/hesap bilgisi iş akışının her adımında aynı “x-group-id” değeri kullanılır. \n Z \n Z \n Z \n - \n - \n - \n \n \n Content-Type \n AN1..20 \n Standart HTTP Başlığı; Talepte sağlanan payload’ın biçimini temsil eder. Bu değerin application/json olarak gönderilmesi gerekmektedir. Hata durumlarında application/problem+json da iletilebilir.  (Başka bir değere ayarlanırsa, HHS, 415 Desteklenmeyen Ortam Türü (Unsupported Media Type) ile yanıt vermelidir) \n Z \n - \n - \n Z \n - \n - \n \n \n X-ASPSP-Code \n AN4 \n Hesap Hizmeti Sağlayıcısının (HHS) kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n Z \n Z \n Z \n Z \n Z \n Z \n \n \n X-TPP-Code \n AN4 \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur \n Z \n Z \n Z \n Z \n Z \n Z \n \n \n PSU-Auth-Date \n ISODateTime \n ÖHK’nın YÖS üzerinde en son oturum açtığı saat. [RFC7231] Örneğin:  auth-date: Tue, 11 Sep 2012 19:43:31 GMT \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-IP-Address \n AN7..15 \n ÖHK YÖS üzerinde oturum açmışsa, işlemi başlattığı cihazın IP adresi. \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-IP-Port \n AN1..5 \n ÖHK YÖS üzerinde oturum açmışsa, işlemi başlattığı cihazın Port adresi. \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-GEO-Location \n AN1..36 \n ÖHK’nın işlemi başlattığı cihazın konum bilgisi. RFC2426 standartına uygun olarak paylaşılmalıdır. Örneğin  GEO:"<enlem >, <boylam>GEO:52.506931,13.144558 \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-User-Agent \n AN 1.. 255 \n ÖHK’nın işlemi başlattığı cihazın sağladığı user-agent bilgisi. (Tarayıcı, versiyon, işletim sistemi bilgileri) \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-Timestamp \n ISODateTime \n ÖHK’nın işlemi başlattığı cihazın tarih saat içeren zaman bilgisi. \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-Device-ID \n AN5..40 \n ÖHK işlemi mobil uygulama aracılığıyla başlattıysa, kullanılan mobil uygulama ilk yüklendiğinde oluşturulan tekil cihaz veya uygulama belirteci. ÖHK cihazının UUID değeri kullanılabilir. \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-Device-Data \n AN1..1024 \n ÖHK’nın işlemi başlattığı mobil cihaza ait veriler.  Örnek alanlar:   - Platform - (Android, iOS, Windows 10 Mobile)  - Device Model   - OS Name   - OS Version - Locale - Time zone \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-Initiated \n AN1 \n İşlemin ÖHK tarafından başlatılması durumunda E , sistem tarafından başlatıldığı durumda H değerini, olay bildirimine istinaden yapılacak isteklerde O değerini alması beklenir. İşlemler servisinde yapılacak sistemsel sorgulardaki işlem limitlerini kontrol amacıyla kullanılır. O değerinin gönderilebileceği API\'ler  Asıl Verinin Elde Edileceği API  olarak ilgili sayfada yer alan Olay Tipleri ve Kaynak Tipleri İlişkisi tablosunda yer almaktadır. Asıl verinin elde edileceği API\'ler özelinde O gönderimi yapılabilir. O olarak yapılan her isteğe HHS\'nin yanıt vermesi gereklidir. Otomatik sorgularda uygulanan üst limitler, O gönderimi durumunda geçerli değildir. \n Z \n Z \n Z \n - \n 
16- \n - \n \n \n PSU-Fraud-Check \n AN1..4096 \n YÖS\'lerin çeşitli güvenlik kontrollerini gerçekleştirerek, önemli görülen aşağıdaki bilgileri HHS\'ler ile paylaşmaları gerekmektedir. Bu bilgiler ışığında müşterinin profili oluşturulmasına katkı sağlanacaktır.   ÖHK’lı işlemlerde (PSU-Initiated = E gönderildiği durumlarda) gönderilmesi zorunludur.  Sistemsel yapılan API çağrımlarımda, Olay Bildirim Servis Çağrımlarında ve HHS-YÖS API çağrımlarında gönderilmesine gerek bulunmamaktadır.  Paylaşılacak bilgiler şu şekildedir.   FirstLoginFlag  : ÖHK\'nın, müşterilik ömründe ilgili YÖS sistemine (mobil ya da web uygulaması) ilk login olma süresini ifade eden değer. ÖHK\'nın ilk yaptığı HBH ya da ÖBH işlemi değil, YÖS sisteminde kendini aktifleştirme tarih aralığı bilgisidir.   YÖS, kullanıcının ilk login bilgisini tutarak sonraki işlemlerinde bu bilgiyi belirlenen format ile HHS\'ye aktaracaktır. Örneğin; YÖS\'ün 7 aydır müşterisi olan bir kullanıcı için bu alan "5" olarak YÖS tarafından beslenecektir. Burada amaç; ilgili kullanıcının YÖS\'ün eski bir müşterisi mi, yoksa yeni bir müşterisi mi olup olmadığını anlamaktır.   Gönderilmesi Zorunlu alandır. TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.   DeviceFirstLoginFlag  : ÖHK\'nın, müşterilik ömründe işlem anında kullandığı cihazla YÖS uygulamasına (web ya da uygulama tabanlı) ilk login olma süresini ifade eden değer. ÖHK cihaz değişikliği yaparsa FirstLoginFlag değeri sabit kalmalı  ancak DeviceFirstLoginFlag değeri değişmelidir.  FirstloginFlag değeri ile ÖHK’nın YÖS uygulamasına ilk login tarih bilgisi ile ilgili bilgi verilirken, DeviceFirstLoginFlag ile de ÖHK’nın YÖS uygulamasına farklı bir cihaz aracılığı ile ilk login tarihinin bilgisi verilmektedir.  Örneğin; ÖHK 7 aydır YÖS\'ün müşterisi olabilir, böyle bir durumda FirstLoginFlag değeri "5" olacaktır. Ancak son işlemini daha önce hiç kullanmadığı bir cihazdan yapmıştır. Yeni cihazdaki login süre aralığı 0-2 saat aralığında  olduğu için DeviceFirstLoginFlag değeri "1" olacaktır.FirstLoginFlag değeri yine "5" olarak kalmaya devam edecektir.Bu bilgi ile YÖS, ilgili HHS\'ye ilk kez geliyor olsa bile; HHS, müşterinin YÖS\'ü uzun süredir kullandığını ama yeni bir cihazla işlemlerine devam ettiğini anlayabilecektir. Bir ÖHK, farklı cihazlar veya platformlar üzerinden YÖS ile etkileşime girebilir.  Kullanıcı ve YÖS arasında bir oturum başlatılmış ise YÖS’ün tutarlı ve kalıcı bir kimlik (device id) ataması beklenmektedir.  Device ID: Web sitesi veya mobil uygulama kullanıcıları için üretilen, tarayıcı ya da mobil uygulama tabanlı benzersiz (tekil) tanımlayıcı değer. Mobil uygulamalar için ÖHK’nın ilk defa ilgili cihaza aktivasyon yaptığı tarih bilgisi alınmalıdır.   Device ID bilgileri YÖS uygulama ortamı (web ya da uygulama tabanlı) ve ÖHK cihazı bazında tutulmalıdır. YÖS’ten başlatılan işlem hangi uygulama ortamına ait ise ilgili ortamala ilişkili tutulan Device ID’nin ilk login tarihine bakılarak güncel flag değeri hesaplanmalıdır.  Gönderilmesi Zorunlu alandır. TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.   LastPasswordChangeFlag  : ÖHK\'nın, YÖS (cihaz bağımsız)  uygulamasına login olduğu şifre bilgisinin en son değiştirildiği süreyi ifade eden değer. Müşterinin en son ne zaman şifre değişikliği yaptığını anlamak için kullanılan alandır. Yeni müşteri ve hiç şifre değişikliği yapmamış olabilir, böyle bir durumda ilgili alan "0" olarak beslenecektir.   Gönderilmesi Zorunlu alandır. TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.   BlacklistFlag  : ÖHK\'nın herhangi bir sebeple YÖS\'ün sakıncalı müşteriler listesinde bulunup bulunmadığını ifade eden değer.   Burada amaç herhangi bir sebeple YÖS tarafında yasaklı olarak kayıtlı olan ÖHK bilgisinin, dolandırıcılığı önceden tespit etmek amaçlı HHS\'ye aktarılması olarak açıklanabilir. Örneğin, YÖS tarafından tespit edilen dolandırıcı kullancılara ait device id bilgisi, bu kara listede tutulur daha sonra aynı cihazla başka bir ÖHK işlem yapacak olsa bile bu alanda ilgili bilgi "1" değeri ile HHS\'ye aktarılır. HHS\'de olmayıp YÖS tarafında olan bu örnekteki sakıncalı müşteri/cihaz bilgisinin, dolaylı yoldan HHS\'ye aktarılması amaçlanmaktadır.  Gönderilmesi Opsiyonel alandır. TR.OHVPS.DataCode.VarYok sıralı veri tipinin alabileceği değerleri alabilir.   MalwareFlag  : YÖS uygulamasının çalıştığı cihaz üzerindeki son 21 güne ait zararlı yazılım tespit bilgisini ifade eden değer. Örneğin ÖHK\'nın cihazında zararlı yazılım olduÄ
16Ÿu ayın 1\'inde YÖS tarafından tespit edildi. Zararlı yazılım tespitinden 2 saat sonra YÖS üzerinden login olan ÖHK\'nın durumu,  "1" olarak iletilecektir. Bir gün sonra ayın 2\'sinde, yeni bir zararlı yazılım tespiti yok ancak mevcut zararlı yazılım aktifse alan "2" değeri ile iletilecektir. Süreler artarak 21 güne kadar TR.OHVPS.DataCode.ZmnAralik değerlerine göre iletilecektir.Son 21 gün içinde yeni bir tespit yoksa ayın 22\'sinden itibaren ilgili alan  "0" değeri ile beslenecektir. Not: Zararlı yazılım, bankacılık işlemlerinin yapıldığı uygulamalara girişte kullanılan bilgilerin (şifre, kullanıcı kodu gibi) ele geçirilmesi amacıyla kullanılan bir uygulama ya da kod parçacığı olabilir. Bu amaçlar dışında kullanılan (bankacılığa yönelik bir zararlı yazılım olmayan) yazılım tespitleri iletilmemelidir. YÖS kanallarına her bir loginde, kullanılan cihazda bir zararlı yazılım var mı yok mu kontrolü yapılmalıdır.   Gönderilmesi Opsiyonel alandır. TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.   AnomalyFlag  : Diğer şüpheli durumların varlığını ifade eden değer. Gönderilmesi Opsiyonel alandır. TR.OHVPS.DataCode.VarYok sıralı veri tipinin alabileceği değerleri alabilir.   UnsafeAccountFlag : HHS tarafından aktarılan bilgi ile son 21 gün içinde ÖHK\'nın dolandırıcılık mağduru olması durumunu ifade eden değer. Örneğin; HHS 1, ayın 1\'inde süphe veya sahtekarlık nedeniyle bir ödeme işlemine izin vermediği durumda, bu bilgiyi rıza iptal detay kodu ile YÖS\'e aktarmış olur. Bu bilgiyi tutan YÖS, ilgili müşterinin 15 dakika sonra HHS 2\'de yaptığı işlem için ilgili alanı "1" değeri ile besler. Böylece HHS 2, ÖHK\'nın farklı bir HHS\'de son 15 dakika içinde şüpheli veya sahte bir işlemi olduğunu anlayabilecektir. Ayın 22\'sinde yeni bir tespit/kayıt yoksa bu alan YÖS tarafından "0" olarak beslenecektir. Gönderilmesi Opsiyonel alandır.TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.     Flaglar JWT claims içine key value şeklinde eklenerek gönderilecektir. EK-5: Mesaj İmzalama Akışı\'nda belirtilen yöntemle imzalanarak oluşturulan JWT PSU-Fraud-Check alanına konularak YÖS\'ler tarafından HHS\'ye iletilmelidir. \n K \n K \n Z \n - \n - \n - \n \n \n PSU-Session-ID \n AN1..100 \n İsteği başlatan YÖS tarafından belirlenen oturuma özgü talep kimliği. ÖHK\'nın YÖS uygulaması üzerinden kimlik doğrulama mekanizması ile bilgi sistemlerine dâhil olmalarından işlemlerini tamamlayıp sistemden ayrılmalarına kadar geçecek tüm süreci kapsayacak şekilde aynı değeri almalıdır. Tek seferlik ödeme gibi ÖHK’nın tanınmadan başlatıldığı işlemlerde bu değer boş olarak iletilmelidir. \n İ \n İ \n İ \n - \n - \n - \n \n \n Authorization \n AN1..4096 \n Katılımcı ile GEÇİT arasındaki otorizasyon için kullanılan token bilgisidir.  Yekilendirme türlerinden İstemci Kimlik Bilgileri’ni adresler.    Bölüm 3.6 Karakter Kodlama  bölümünde açıklanan karakter formatında gönderilmesi beklenmektedir. \n Z \n Z \n Z \n Z \n Z \n Z \n \n \n X-Access-Token \n AN1..4096 \n ÖHK’nın GKD sürecinde doğrulanması sonrasında kullanılan erişim simgesi. Yetkilendirme türlerinden Yetkilendirme Kodu (GKD)’nu adresler.  Bölüm 3.6 Karakter Kodlama  bölümünde açıklanan karakter formatında gönderilmesi beklenmektedir. \n İ \n İ \n İ \n - \n - \n - \n \n \n X-JWS-Signature \n AN1..4096 \n Payload gövdesinin ayrılmış bir JWS imzasını içeren üstbilgi.  Bu başlığın ne zaman belirtilmesi gerektiği hususu ilgili endpoint için belirtilmiştir.  Mesaj imzalama kullanılan API ve methoda göre gönderimi zorunludur. \n K \n K \n K \n K \n - \n - \n 3.16. Yanıt Başlığı \n \n "Başlık isimleri" yorumlanırken küçük büyük harfe duyarlı olmamalıdır. Örneğin "x-ReQuEsT-Id" geçerli bir başlık ismidir. \n "Başlık değerleri" yorumlanırken ise küçük büyük harf duy
16arlılığı olmalıdır. Örneğin "xyz123" ile "XYZ123" değerleri farklıdır. \n Başlık değerlerinde ISO-8859-1 standartında yer alan karakter kümesi kullanılmalıdır. Örneğin "Link" değerinde "İOS12" yazmak, büyük "İ" harfinin ISO-8859-1 içerisinde yer almamasından dolayı, hataya yol açacaktır. \n \n Tablo 3: Yanıt Başlığında Yer Alan Veriler \n \n \n \n Başlık İsimleri \n Format \n Notlar \n Kullanım Durumu  OBH HBH GKD \n Kullanım Durumu  OAS ODS \n \n \n \n \n X-Request-ID \n AN1..36 \n YÖS tarafından belirlenen çağrıya özgü talep kimliği. İstek numarası    İlgili istek başlığındaki bilgi geri dönülür. \n Z \n Z \n \n \n X-Group-ID \n AN1..36 \n İsteği başlatan YÖS tarafından belirlenen işlem akışına özgü talep kimliği. İşlem grup numarası. İlgili istek başlığındaki bu değer geri dönülür. \n Z \n - \n \n \n X-ASPSP-Code \n AN4 \n Hesap Hizmeti Sağlayıcısının (HHS) kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n Z \n Z \n \n \n X-TPP-Code \n AN4 \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur \n Z \n Z \n \n \n Content-Type \n AN1..20 \n Standart HTTP Başlığı; Talepte sağlanan payload’ın biçimini temsil eder:  application/json \n Z \n Z \n \n \n X-JWS-Signature \n AN1..4096 \n JWS imzasını içeren üstbilgi. Bu başlığın hangi yanıtlar için kullanılması gerektiği ilgili endpoint için belirtilmiştir.  Hata durumlarında, yanıt gövdesi değeri dönülüyor ise imzalanmalı ve imza bilgisi x-jws-signature alanında iletilmelidir.  Ancak uygulama katmanı tarafından yakalanamayan dolayısı ile imzalanamayan hata durumlarında x-jws-signature alanı HHS\'ler tarafından boş gönderilebilir. \n K \n K \n \n \n X-RateLimit-Limit \n N 1..18 \n İstek kısıtı uygulanan servislerde en fazla kaç adet istek yapılabileceğini gösterir. Kısıt uygulanan servislerde bu başlığın dönmesi zorunludur. \n K \n - \n \n \n X-RateLimit-Remaining \n N 1..18 \n İstek kısıtı uygulanan servislerde k
16aç adet istek hakkı kaldığını gösterir. Kısıt uygulanan servislerde bu başlığın dönmesi zorunludur. \n K \n - \n \n \n X-RateLimit-Reset \n AN 1..255 \n İstek kısıtı uygulanan servislerde çağrım hakkı bittikten sonra yeniden denemeden önce beklemesi gereken süreyi (saniye cinsinden) gösterir. HTTP 429 durum kodu (Too Many Requests) ile dönülen yanıtların başlığında dönülmesi zorunludur.  YÖS olarak yaptığınız sistemsel sorgularda; HTTP 429 durum kodu (Too Many Requests) ile dönülen yanıt aldığınızda tekrar sorgu yapmadan önce “X-RateLimit-Reset” yanıt başlığını kontrol ederek, bu başlıktaki süre kadar bekledikten sonra yeniden sorgulama yapılması gerekmektedir. \n K \n - \n \n \n x-total-count \n N 1..18 \n Hesaplar, İşlemler, Bakiye, İletilemeyen Olaylar servislerinde sayfalama kullanıldığı durumda, sorgu sonucu dönecek toplam kayıt sayısı bilgisi, bu alanda HHS isteğine bağlı olarak gönderilebilir.   Kayıt sayısı 0 olduğu durumda gönderimi zorunludur. \n K \n K \n \n \n Link \n 1..4096 \n “Link” alanının  Hesap Bilgisi Hizmeti için Erişim Adresleri    tablosundaki parametre  = Sayfalama olan API’lerde ve İletilemeyen Olaylar API\'sinde gönderim yapılması zorunludur.  Sayfalama yapısı kullanıldığında gelen yanıtta birden fazla sayfa var ise; önceki, sonraki, ilk, son sayfalara gitmek için gerekli referanslar link headerında aşağıdaki örnekteki gibi doldurulabilir.  x-total-count alanının gönderimi kayıt sayısı 0 olduğu durum dışında isteğe bağlı olduğu için; Link içerisindeki son sayfa bilgisi  (last) isteğe bağlı hale getirilmiştir. “Önceki”( prev) ve “Sonraki” (next) adımlarının uygun olan her durumda yer alması zorunludur. İlk sayfada “Önceki” seçeneği olmamalı, son sayfada ise “Sonraki” seçeneği olmamalıdır.    </ohvps/hbh/s1.1/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=6&syfKytSayi=100>; rel="next",  </ohvps/hbh/s1.1/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=4&syfKytSayi=100>; rel="prev",  </ohvps/hbh/s1.1/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=14&syfKytSayi=100>; rel="last",  </ohvps/hbh/s1.1/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=0&syfKytSayi=100>; rel="first"    Hiç hesap hareketinin olmadığı durumda dönen yanıt başlığınızın şu şekilde olması beklenmektedir.  Response body: [] Response header: Link: </ohvps/hbh/s1.1/hesaplar?srlmKrtr=hspRef&srlmYon=A&syfNo=1&syfKytSayi=100>; rel="last",</ohvps/hbh/s1.1/hesaplar?srlmKrtr=hspRef&srlmYon=A&syfNo=1&syfKytSayi=100>; rel="first"  x-total-count alanı da 0 olarak iletilmelidir. \n K \n K \n 3.17. Idempotency Kuralları \n YÖS’ün aşağıdaki durumlarda aynı istek numarası (x-request-id) ve aynı veri gövdesiyle çağrıyı tekrarlaması; HHS’nin de bu durumlarda aynı yanıtı dönmesi gereklidir. \n \n HHS’nin yanıtı kesinti/arıza nedeniyle YÖS’e ulaşmaz ve zaman aşımı söz konusu olması, \n ÖHK, YÖS uygulaması üzerinden çift tıklama ile mükerrer defa HHS API’lerini çağırılması,\n(API kontrollerinden önce YÖS uygulamasının, çift tıklama kontrolü yapması önerilmektedir.) \n YÖS, yanıt almasına rağmen işleyemeden kaybedilmesi, \n \n durumlarında HHS aşağıdaki kuralları işletir: \n \n HHS gelen istek numarasını ve veri gövdesini birleştirerek checksum değeri üretir. \nchesksum değeri x-request-id|request.body ‘nin hash algoritmalarından (CRC32,MD5 vb)  geçirilerek üretilebilir. \n HHS bu checksum değeri ile YÖS’e dönmüş olduğu yanıtı 5 dk boyunca saklar.  Saklama yöntemi olarak veri tabanı veya önbellek araçları kullanılabilir. \n YÖS aynı istek numarası ve aynı veri gövdesi ile yeni bir çağrı yaptığında, aynı checksum değeri üretileceği için 5dk boyunca bu değere karşılık gelen yanıtı döner. \n 5 dk sonrasında istek numarası veya veri gövdesi değişmemiş olsa dahi bu HHS tarafından yeni istek olarak kabul edilir. \n \n Aşağıdaki Public Post işlemleri için bu kural setinin işletilmesi gerekmektedir: \n 1- Ödeme emri rızası oluşturma \n2- Erişim belirteci oluşturma \n3- Ödeme emri \n4- Hesap bilgisi rızası oluşturma \n 3.18. HTTP Durum Kodları \n RFC 2616\'da belirlenmiş olan durum ko
16dları (status code) gönderilen isteğin durumunu YÖS’a standart bir şekilde ifade eder. Eğer bir hata varsa hatayı, gönderilen istek başarılı bir şekilde işlem gördüyse ona ilişkin durumu aktarır. Durum kodları genel olarak 5 kategoridedir. \n \n 1xx Bilgi \n 2xx Başarılı \n 3xx Yönlendirme \n 4xx İstemci Hatası \n 5xx Sunucu Hatası \n \n errorCode Alanında Kullanılabilecek Sıralı Hata Tipleri : \n \n TR.OHVPS.Resource \n \n ⇨\tInvalidFormat \n ⇨\tConsentMismatch \n ⇨\tNotFound \n ⇨\tInvalidSignature \n ⇨\tMissingSignature \n ⇨\tMethodNotAllowed \n ⇨\tNotAcceptable \n ⇨\tUnsupportedMediaType \n ⇨\tConsentRevoked \n \n \n \n TR.OHVPS.Business \n \n ⇨\tInvalidContent \n ⇨\tInvalidAccount \n \n \n \n TR.OHVPS.Connection \n \n ⇨\tInvalidCertificate \n ⇨\tExceededRate \n ⇨\tInvalidTPP \n ⇨\tInvalidASPSP \n ⇨\tInvalidToken \n ⇨\tInvalidTPPRole \n \n \n \n TR.OHVPS.Server \n \n ⇨\tInternalError \n ⇨\tServiceUnavailable \n \n \n TR.OHVPS.Resource.InvalidFormat hatası alındığı durumda; fieldErrors nesnesi içerisinde verilecek hata kodları : \n \n TR.OHVPS.Field \n \n ⇨\tMissing \n ⇨\tInvalid \n \n \n Veri Tipi Örneği: \n { \n     "path" :   "/ohvps/obh/s1.1/odeme-emri-rizasi" , \n     "id" :   "d8bd4e5f-f094-48a6-aee1-3a800e2709d9" , \n     "timestamp" :   "2022-12-22T10:33:15+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "Validation error" , \n     "moreInformationTr" :   "Şema kontrolleri başarısız" , \n     "fieldErrors" :   [ \n         { \n             "objectName" :   "odemeEmriRizasiIstegi" , \n             "field" :   "odmBsltm.islTtr.prBrm" , \n             "messageTr" :   "boş değer olamaz" , \n             "message" :   "must not be null" , \n             "code" :   "TR.OHVPS.Field.Missing" \n         } , \n         { \n             "objectName" :   "odemeEmriRizasiIstegi" , \n             "field" :   "odmBsltm.kmlk.kmlkVrs" , \n             "messageTr" :   "boyut \'1\' ile \'30\' arasında olmalı" , \n             "message" :   "size must be between 1 and 30" , \n             "code" :   "TR.OHVPS.Field.Invalid" \n         } \n     ] , \n     "errorCode" :   "TR.OHVPS.Resource.InvalidFormat" \n }  \n \n Tablo 4: HTTP Durum Kodları \n \n \n \n HTTP Durum \n İstek Sonucu ve Açıklamalar \n POST \n GET \n DELETE \n \n \n \n \n 200 OK \n İstek Başarıyla Tamamlandı. Kaynak güncellemek için yapılan (örneğin, GET) ve başarıyla tamamlanan isteklerinde kullanılır. \n H \n E \n H \n \n \n 201 Created \n İstek Başarılı Oldu. Kaynak yaratma isteği (örneğin, POST /ödeme-emri-rizasi) başarıyla sonuçlandı. \n E \n H \n H \n \n \n 204 No Content \n Silme işlemi başarıyla tamamlandı. Kaynak silme isteği (örneğin,  DELETE /hesap-rizasi/{RizaNo} ) başarıyla sonuçlandı. \n H \n H \n E \n \n \n 400 Bad Request \n İstekte bozuk, eksik veya uyumlu olmayan JSON gövdesi, URL parametreleri veya başlık alanları var.  İstekle başlatılan işlem yapısal bozukluk, eksik veya tutarsız veri veya HHS tarafındaki kontrollerin hatalı sonuçlanması nedeniyle hata ile sonuçlanır ve hataya ilişkin veriler hata nesnesi içerisinde dönülür. \n E \n E \n E \n \n \n 401 Unauthorized \n Yetkilendirme başlığı eksik, hatalı veya geçersiz olduğundan istek yetkilendirilmediğinde ve erişim reddedildiğinde http 401 kodu dönülmelidir. \n E \n E \n E \n \n \n 403 Forbidden \n Erişim belirtecinin veya rızanın kapsamı uyuşmuyor. YÖS bir hesaba/işlem kaynağına erişmeye çalışır ve YÖS, istenen kaynağa erişmek için geçerli izinlere sahip bir rızası yoktur.  Örneğin; hesap bilgisi rızası bakiye izni almamıştır ancak /bakiyeler adresinden istekte bulunmuştur. \n \n \n \n \n \n 404 Not Found \n **HHS geçerli bir API erişim adresini sağlamıyorsa, o URL\'ye gelen istekler için 404 (Bulunamadı) ile yanıt vermelidir.**YÖS, uygulama esaslarında tanımlanmayan bir 
16kaynak için bir URL\'ye erişmeye çalışırsa (örneğin, GET /yurtdisi-odeme), HHS, 404 (Bulunamadı) ile yanıt vermeyi seçebilir. \n E \n E \n E \n \n \n 405 Method Not Allowed \n YÖS, desteklenmeyen bir yöntemle kaynağa erişmeye çalıştı. \n E \n E \n E \n \n \n 406 Not Acceptable \n İstek, geçersiz bir karakter kümesi içeriyor. \n E \n E \n E \n \n \n 415 Unsupported Media Type \n İstek gövdesi hedef kaynakta bu yöntem tarafından desteklenmeyen bir biçimde oluşturulduğu için işlem reddedildi \n E \n H \n H \n \n \n 429 Too Many Requests \n Belirli bir süre içinde çok fazla talepte bulunulduğu için işlem reddedildi.  HHS’ler adil kullanım politikalarını aşan talepleri kısıtlayabilir. \n E \n E \n E \n \n \n 500 Internal Server Error \n API sunucu / servis katmanında sorun oluştu. İşlem başarısız.  5XX hata durumlarında yanıt gövde değeri olmadığı için mesaj imzalama yapılamaz ve x-jws-signature alanı boş olarak iletilir.  Bu durumda x-jws-signature kontrolü yapılmamalıdır. \n E \n E \n E \n \n \n 503 Service Unavailable \n Hizmet sürümü kullanımdan kaldırıldı.  Bir API\'nin kullanımdan kaldırıldığı ve artık bir HHS tarafından operasyonel olarak desteklenmediği durumlarda, URI yolu hala etkin olabilir ve API isteklerini kabul edebilir.  Bu durumda, YÖS\'ün API sürümünün çevrimdışı olduğunun farkında olması için 503 Hizmet Kullanılamıyor dönmesi önerilir. \n E \n E \n E \n \n \n \n Hata Örnekleri: \n 400 Bad Request \n TR.OHVPS.Business.InvalidContent  hatası HHS tarafından yapılacak iş kuralı kontrollerinin başarısız olduğu durumda verilmelidir. \n TR.OHVPS.Resource.InvalidFormat  hatası şema validasyonu, alan uzunluk ve varlık kontrollerinin başarısız olduğu durumda verilmelidir. \n \n { \n     "path" :   "/ohvps/obh/s1.1/odeme-emri-rizasi" , \n     "id" :   "7f115b9c-d7c2-4a2a-bc45-5a9891c79072" , \n     "timestamp" :   "2022-12-22T10:47:57+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "Validation error" , \n     "moreInformationTr" :   "Şema kontrolleri başarısız" , \n     "fieldErrors" :   [ \n         { \n             "objectName" :   "odemeEmriRizasiIstegi" , \n             "field" :   "odmBsltm.alc.unv" , \n             "messageTr" :   "boyut \'3\' ile \'140\' arasında olmalı" , \n             "message" :   "size must be between 3 and 140" , \n             "code" :   "TR.OHVPS.Field.Invalid" \n         } , \n         { \n             "objectName" :   "odemeEmriRizasiIstegi" , \n             "field" :   "odmBsltm.islTtr.ttr" , \n             "messageTr" :   "boş değer olamaz" , \n             "message" :   "must not be null" , \n             "code" :   "TR.OHVPS.Field.Missing" \n         } \n     ] , \n     "errorCode" :   "TR.OHVPS.Resource.InvalidFormat" \n }  \n\n \n Zorunlu header alanlarından biri ya da birkaçı eksik olarak gönderilirse aşağıdaki gibi bir hata dönüşü gerçekleşebilir. \n HHS uygulaması tarafından dönülebilecek hata örnekleri: \n \n { \n     "path" :   "/ohvps/obh/s1.1/odeme-emri-rizasi" , \n     "id" :   "2005515d-f0e6-4a07-a439-0ef3b0f56011" , \n     "timestamp" :   "2022-12-22T10:39:26+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "Validation error" , \n     "moreInformationTr" :   "Şema kontrolleri başarısız" , \n     "errorCode" :   "TR.OHVPS.Resource.InvalidFormat" , \n     "fieldErrors" :   [ \n         {          \n             "field" :   "X-Request-ID" , \n             "messageTr" :   "X-Request-ID değeri boş olamaz." , \n             "message" :   "X-Request-ID cannot be null." , \n             "code" :   "TR.OHVPS.Field.Invalid" \n         } \n     ] \n }  \n\n \n Business hata örneği - 1: \n { \n     "path" :   "/ohvps/obh/s1.1/odeme-emri-rizasi" , \n     "id" :   "677cfd9d-77c1-4ea3-8bdf-74a6e9887177" , \n     "timestamp" :   "2022-12-22T11:05:59+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "gonUnvan wrong" , \n     "moreInformationTr" :   "Gönderen Ünvan hatalı" , \n     "errorCode" :   "TR.OHVPS.Business.InvalidContent" \n }  \n \n Business hata örneği - 2: \n { \n     "path" :   "/ohvps/obh/s1.1/odeme-emri-rizasi" , \n     "id" :   "5df3b402-3aca-4305-a35b-5af0f3184b40" , \n     "timestamp" :   "2022-12-22T11:06:47+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "Sender account is disabled or not found." , \n     "moreInformationTr" :   "Gonderen hesap aktif değil veya bulunamadı." , \n     "errorCode" :   "TR.OHVPS.Business.InvalidAccount" \n }  \n \n GEÇİT\'te yapılan zorunlu header kontrollerinde aşağıdaki hatalar dönebilir: \n \n { \n     "timestamp" :   "2022-12-22T10:40:28+03:00" , \n     "path" :   "/ohvps/obh/s1.1/odeme-emri-rizasi" , \n     "id" :   "d4375748-6fc7-4f7e-94f3-6411cab1d59f" , \n     "moreInformationTr" :   "Geçersiz HHS kodu." , \n     "errorCode" :   "TR.OHVPS.Connection.InvalidASPSP" , \n     "moreInformation" :   "Invalid ASPSP Code" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" \n }  \n \n GEÇİT tarafından dönülecek hata örneği: \n \n { \n     "timestamp" :   "2022-12-22T10:40:28+03:00" , \n     "path" :   "/ohvps/obh/s1.1/odeme-emri-rizasi" , \n     "id" :   "d4375748-6fc7-4f7e-94f3-6411cab1d59f" , \n     "moreInformationTr" :   "Geçersiz HHS kodu." , \n     "errorCode" :   "TR.OHVPS.Connection.InvalidTPP" , \n     "moreInformation" :   "Invalid TPP Code" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" \n }  \n \n GEÇİT tarafından dönülecek hata örneği: \n \n { \n     "timestamp" :   "2022-12-22T11:14:05+03:00" , \n     "path" :   "/ohvps/hbh/s1.1/hesap-bilgisi-rizasi" , \n     "id" :   "ee1e3ea7-a5e5-468b-bb02-314148f84e6a" , \n     "moreInformationTr" :   "Geçersiz yös rolü. İlgili api çağrısı için yetkisi yok." , \n     "errorCode" :   "TR.OHVPS.Connection.InvalidTPPRole" , \n     "moreInformation" :   "Invalid TPP Role" , \n     "httpCode" :   403 , \n     "httpMessage" :   "Forbidden" \n }  \n\n \n 401 Unauthorized \n YÖS, süresi dolmuş bir erişim belirteci kullandığında, HHS 401 (Yetkisiz) http kodu ile aşağıdaki hata kodunu dönmelidir.  Aşağıdaki nedenlerden herhangi biri nedeniyle bir Erişim Belirtecinin süresi dolduğunda bu durum ortaya çıkabilir: \n \n Rızanın süresi doldu (Son Kullanma Tarihi geçti) \n Erişim Belirtecinin şüpheli kullanımı veya sahtekarlık şüphesi \n Rızada belirlenen gün s
16ayısının aşımı\nBu hata, müşteriden doğru izinlerle yeniden kimlik doğrulaması isteyerek çözülebilir. \n \n \n { \n     "path" :   "/ohvps/gkd/s1.1/erisim-belirteci" , \n     "id" :   "ed3fd667-fc58-40ad-a982-e8937faccd15" , \n     "timestamp" :   "2022-12-22T11:17:33+03:00" , \n     "httpCode" :   401 , \n     "httpMessage" :   "Unauthorized" , \n     "moreInformation" :   "Refresh token expired or not found in database" , \n     "moreInformationTr" :   "Yenileme belirteci zaman aşımına uğramış veya veri tabanında yok" , \n     "errorCode" :   "TR.OHVPS.Connection.InvalidToken" \n }  \n \n\n \n 403 Forbidden \n Örn; YÖS yetkisi olmayan rol(ÖBH/HBH) ile işlem yapmaya çalıştığı durumda 403 hatası alarak işleme devam edemez. \n { \n   "path" :   "/ohvps/hbh/s1.1/bakiye" , \n   "id" :   "3e48ea98-f889-48b9-aa6e-28aabc6cfb14" , \n   "timestamp" :   "2022-12-22T11:20:05+03:00" , \n   "httpCode" :   403 , \n   "httpMessage" :   "Forbidden" , \n   "moreInformation" :   "Forbidden" , \n   "moreInformationTr" :   "Bakiye Bilgileri için ÖHK izni bulunmamaktadır." , \n   "errorCode" :   "TR.OHVPS.Resource.Forbidden" \n }  \n \n 404 Not Found \n Örn; GET /odeme-emri-rizasi/123456 çağrısı durumunda 123456 geçerli bir ödeme kaynağı değilse, HHS, 404 koduyla cevap vermelidir. \n { \n     "path" :   "/ohvps/obh/s1.1/odeme-emri-rizasi/123456" , \n     "id" :   "22f52b2d-d442-4a6a-8f39-d23eba45a34b" , \n     "timestamp" :   "2022-12-22T10:53:53+03:00" , \n     "httpCode" :   404 , \n     "httpMessage" :   "Not Found" , \n     "moreInformation" :   "Resource not found" , \n     "errorCode" :   "TR.OHVPS.Resource.NotFound" , \n     "moreInformationTr" :   "Kaynak bulunamadı" \n }  \n\n \n 405 Method Not Allowed \n { \n     "path" :   "/ohvps/obh/s1.1/odeme-emri-rizasi" , \n     "id" :   "3e5c6b28-7ee4-4469-b541-843fb4a94eec" , \n     "timestamp" :   "2022-12-22T11:35:10+03:00" , \n     "httpCode" :   405 , \n     "httpMessage" :   "Method Not Allowed" , \n     "moreInformation" :   "Method not allowed" , \n     "errorCode" :   "TR.OHVPS.Resource.MethodNotAllowed" , \n     "moreInformationTr" :   "İstek yapılan URL için izin verilmeyen metot" \n }  \n \n 406 Not Acceptable \n { \n     "path" :   "/ohvps/obh/s1.1/odeme-emri-rizasi" , \n     "id" :   "3e5c6b28-7ee4-4469-b541-843fb4a94eec" , \n     "timestamp" :   "2022-12-22T11:35:10+03:00" , \n     "httpCode" :   406 , \n     "httpMessage" :   "Not Acceptable" , \n     "moreInformation" :   "Not Acceptable" , \n     "errorCode" :   "TR.OHVPS.Resource.NotAcceptable" , \n     "moreInformationTr" :   "Kabul edilmedi" \n }  \n \n 415 Unsupported Media Type \n İstek başlığında content-type, JSON dışında bir veri iletilirse bu hata verilebilir. \n \n { \n     "path" :   "/ohvps/obh/s1.1/odeme-emri-rizasi" , \n     "id" :   "63cc94b6-1b51-4648-9671-95e6e2e7e03d" , \n     "timestamp" :   "2022-12-22T11:37:12+03:00" , \n     "httpCode" :   415 , \n     "httpMessage" :   "Unsupported Media Type" , \n     "moreInformation" :   "Content type not supported" , \n     "errorCode" :   "TR.OHVPS.Resource.UnsupportedMediaType" , \n     "moreInformationTr" :   "Desteklenmeyen içerik tipi’" \n }  \n \n 429 Too Many Requests \n { \n   "path" :   "/ohvps/hbh/s1.1/hesaplar/aef6061f-2978-4bb4-980d-b4c634c8055b/islemler" , \n   "id" :   "20473c5f-2f4f-4b2e-8b66-7978aec442f7" , \n   "timestamp" :   "2022-12-22T00:21:07+03:00" , \n   "httpCode" :   429 , \n   "httpMessage" :   "Too Many Requests" , \n   "moreInformation" :   "Exceeded rate" , \n   "moreInformationTr" :   "Erişim sıklığı limiti aşımı" , \n   "errorCode" :   "TR.OHVPS.Connection.ExceededRate" \n }  \n \n 500 Internal Server Error \n { \n   "id" :   "1b90c6dc-0277-4755-8b05-9297ddfab743" , \n   "path" :   "/ohvps/obh/s1.1/odeme-emri-rizasi" , \n   "timestamp" :   "2022-12-22T11:41:34+03:00" , \n   "httpCode" :   500 , \n   "httpMessage" :   "Internal Server Error" , \n   "moreInformation" :   "Unexpected condition was encountered." , \n   "moreInformationTr" :   "Beklenmeyen bir durumla karşılaşıldı." , \n   "errorCode" :   "TR.OHVPS.Server.InternalError" \n }  \n\n \n 503 Service Unavailable \n \n   "timestamp" :   "2022-12-20T23:18:56+03:00" , \n   "path" :   "/ohvps/hbh/s1.1/hesap-bilgisi-rizasi/2a72678ee3d24de2be47887e4903a8c6" , \n   "id" :   "e76315b7-09f4-4295-b6d8-1f7fec632159" , \n   "moreInformationTr" :   "HHS şu anda hizmet veremiyor." , \n   "errorCode" :   "TR.OHVPS.Server.ServiceUnavailable" , \n   "moreInformation" :   "HHS is currently unavailable" , \n   "httpCode" :   503 , \n   "httpMessage" :   "Service Unavailable" \n 3.19. Maskeleme Kuralları \n Maskeli olarak iletilmesi gereken verilerin maskeleme kuralları şu şekildedir: \n \n IBAN verileri Hesap Numarası : İlk 4 ve son 4 karakteri açık, diğer karakterler maskeli olmalıdır. Örnek: TR54******************4812 \n Ad-Soyadı / Ticari Unvan : Her kelimenin ilk 2 karakteri açık, sonraki karakterler yerine 4 adet ‘ ’ karakteri konumlandırılmalıdır.\nÖrneğin: “FATİH SERKAN EREN” ifadesi “FA *** SE**** ER****” şeklinde gösterilmelidir. \n Tabela Unvanı : Her kelimenin ilk 2 karakteri açık, sonraki karakterler yerine 4 adet \' \' karakteri konumlandırılmalıdır. Örneğin “BANKALARARASI KART MERKEZİ ANONİM ŞİRKETİ” ifadesi “BA *** KA**
16** ME**** AN**** Şİ****” şeklinde gösterilmelidir. \n YÖS’ten girilen alıcı unvan ve IBAN bilgileri ödeme emri rızası ve ödeme emri yanıtında açık dönülür, Kolas akışında ödeme emri rızası yanıtı ve ödeme emri istek ve yanıtında maskeli taşınır. \n 3.20. Fonksiyonel Olmayan Gereksinimler \n \n \n HHS’lerin sunuyor oldukları servisleri en fazla 3000 ms içinde yanıt dönecek şekilde tasarlamalıdır. \n \n \n HHS\'ler mevcut online işlem kanallarından sundukları erişilebilirlik ve performans kriterlerinden daha düşük bir hizmet kalitesi sunmamalıdır. \n \n \n HHS’lerin sunuyor oldukları servislere sistemin güvenlik ve sürekliliğini sağlamak adına rate limit koyma ihtiyaçları olur ise, standartlar ve ihtiyaçlara uygun şekilde bir konfigürasyon yapabilirler.  \n \n \n HHS rate limit tanımı uyguluyor ise; YÖS\'ler arasında ayrım yapmadan, adil ve makul sınırlar dahilinde uygulamalıdır.    \n \n \n YÖS tarafından kullanıcının başlatmadığı otomatik sorgu limitleri  3.21 Otomatik Sorgular  bölümünde detaylandırılmıştır. HHS\'lerin bu servisler için minimumda cevap vermesi gereken sorgu sayıları belirlenmiştir. Bu sayıların üzerinde yapılan servis çağrısına yanıt dönmek HHS inisiyatifindedir. Diğer taraftan kullanıcının başlattığı istekler için uygulanacak limitler, HHS\'nin online işlem kanallarından sunulan sorgu limitlerinden daha az olmamalıdır. \n \n \n HHS\'ler, çağrım limitlerini aşan istekler için HTTP 429 - Too Many Request hatasını dönmelidir. Örnek hata mesajı  3.18 HTTP Durum Kodları  bölümünde bulunmaktadır. Rate Limit özelinde tanımlanmış parametreler olan X-RateLimit-Limit, X-RateLimit-Remaining ve X-RateLimit-Reset alanları da   3.16 Yanıt Başlığı  bölümünde açıklanmıştır. YÖS\'ler de HHS\'nin belirlediği rate limit kurallarına uymakla yükümlüdür. \n 3.21. Otomatik Sorgular \n YÖS uygulaması, ÖHK\'nın başlattığı işlemler neticesinde API çağrımı yapabileceği gibi, sistemsel bir şekilde otomatik API çağrımı da yapabilir. \nHHS, API çağrımının ÖHK\'lı ya da ÖHK\'sız olduğunu istek parametreleri içerisinde yer alan PSU-Initiated parametresi ile anlar. Bu parametre “E” ise ÖHK’lı, “H” ise sistemsel yapılmış bir sorgu anlamına gelmektedir. \n ÖHK YÖS uygulamasına giriş yaptığı andan çıkış yaptığı ana kadar yani ÖHK oturumu boyunca yapılan API çağrımlarında, PSU-Initiated  değerinin "E" olması gerekmektedir.  YÖS uygulamasında ÖHK oturumu boyunca,  ÖHK\'nın bilgilerinden minimumda "bakiye" bilgisinin, uygulama arayüzlerinde güncel değeri ile online sorgularla gösterimi YÖS\'ün insiyatifindedir. \n ÖHK’nın başlattığı sorgular için HHS tarafından belirlenen üst rate limitler dahilinde çağrım yapılabilir. \n YÖS, aşağıdaki API\'leri sistemsel bir şekilde çağırabilir. \nHHS\'lerin bu servisler için minimumda cevap vermesi gereken sorgu sayıları belirlenmiştir. Bu sayıların üzerinde yapılan servis çağrısına yanıt dönmek HHS inisiyatifindedir. \nHHS tarafından izin verilen sorgu sayısının üzerinde yapılan bir sorgu için HTTP 429 durum kodu (Too Many Requests) hatası dönülmelidir. Yanıt gövdesinde tekrar hata nesnesinin oluşturulması HHS inisiyatifindedir.  HHS yanıt headerı alanında iletilecek X-RateLimit-Reset (saniye cinsinden) değeri kadar süre sonunda\nYÖS\'ün tekrar sorgulama yapması beklenmektedir. \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Otomatik Sorgu Sayısı \n \n \n \n \n 1 \n erisim-belirteci \n POST \n /erisim-belirteci \n --- \n \n \n 2 \n odeme-emri-rizasi \n GET \n /odeme-emri-rizasi/{rizaNo} \n Rıza bazında günde 4 \n \n \n 3 \n odeme-emri \n GET \n /odeme-emri/{odemeEmriNo} \n Rıza bazında günde 24 \n \n \n 4 \n hesap-bilgisi-rizasi \n GET \n /hesap-bilgisi-rizasi/{RizaNo} \n Rıza bazında günde 4 \n \n \n 5 \n hesap-bilgisi-rizasi \n DELETE \n /hesap-bilgisi-rizasi/{RizaNo} \n --- \n \n \n 6 \n hesaplar \n GET \n /hesaplar \n Bireysel günde 4  Kurumsal günde 4 \n \n \n 7 \n hesaplar \n GET \n /hesaplar/{hspRef} \n Bireysel günde 4 Kurumsal günde 4 \n \n \n 8 \n bakiye \n GET \n /hesaplar/{hspRef}/bakiye \n Bireysel günde 24 Kurumsal ÖHK - günde 24 \n \n \n 9 \n bakiye \n GET \n /bakiye \n Bireysel günde 24 Kurumsal ÖHK - günde 24 \n \n \n 10 \n islemler \n GET \n /hesaplar/{hspRef}/işlemler \n Bireysel günde 4 Kurumsal ÖHK - saatte 12 \n \n \n \n YÖS ve HHS son 24 saat içerisindeki sorgu sayılarını toplayarak elde ettiği sonuçlarla limit kontrolü yapmalıdır (Pencere yöntemi). \n İşlemler servisinin çağrım detaylarına  ^Bölüm 7.8  üzerinden ulaşılabilir. \n Hesap bilgisi rızasının YÖS tarafından otomatik bir şekilde iptal edilmesi durumu  ^Bölüm 9\'da  açıklanmıştır. \n'},{frontmatter:{},regularPath:"/v1.1.0/deneyalani/hesap-bilgisi-api.html",relativePath:"v1.1.0/deneyalani/hesap-bilgisi-api.md",key:"v-3637769d",path:"/v1.1.0/deneyalani/hesap-bilgisi-api.html",content:" \n   \
16n "},{frontmatter:{},regularPath:"/v1.1.0/deneyalani/hhs-yos-api.html",relativePath:"v1.1.0/deneyalani/hhs-yos-api.md",key:"v-3ee390dd",path:"/v1.1.0/deneyalani/hhs-yos-api.html",content:" \n   \n "},{frontmatter:{},regularPath:"/v1.1.0/deneyalani/olay-bildirim-api.html",relativePath:"v1.1.0/deneyalani/olay-bildirim-api.md",key:"v-642a7506",path:"/v1.1.0/deneyalani/olay-bildirim-api.html",content:" \n   \n "},{frontmatter:{},regularPath:"/v1.1.0/deneyalani/test.html",relativePath:"v1.1.0/deneyalani/test.md",key:"v-68ac6685",path:"/v1.1.0/deneyalani/test.html",content:" \n   \n "},{frontmatter:{},regularPath:"/v1.1.0/deneyalani/odeme-emri-api.html",relativePath:"v1.1.0/deneyalani/odeme-emri-api.md",key:"v-6480bcc7",path:"/v1.1.0/deneyalani/odeme-emri-api.html",content:" \n   \n "},{title:"8.\tDüzenli Ödeme Emri Başlatma Hizmeti",frontmatter:{},regularPath:"/v2.0.0/contents/duzenli-odeme-emri-hizmeti.html",relativePath:"v2.0.0/contents/duzenli-odeme-emri-hizmeti.md",key:"v-f0a9c5f2",path:"/v2.0.0/contents/duzenli-odeme-emri-hizmeti.html",headers:[{level:2,title:"Düzenli Ödeme Emri Başlatma Hizmeti için Erişim Adresleri (Endpoints)",slug:"duzenli-odeme-emri-baslatma-hizmeti-icin-erisim-adresleri-endpoints"},{level:2,title:"8.1.\tADIM 0 - Düzenli Ödeme Emri Rızası Başlatma Isteği",slug:"_8-1-adim-0-duzenli-odeme-emri-rızası-baslatma-istegi"},{level:2,title:"8.2.\tADIM 1 - Düzenli Ödeme Emri Rızasının Hazırlanması",slug:"_8-2-adim-1-duzenli-odeme-emri-rızasının-hazırlanması"},{level:2,title:"8.3.\tADIM 2- Düzenli Ödeme Emri Rızasının Yetkilendirilmesi",slug:"_8-3-adim-2-duzenli-odeme-emri-rızasının-yetkilendirilmesi"},{level:2,title:"8.4.\tADIM 2.1 – Düzenli Ödeme Emri Rızasının Sorgulanması (isteğe bağlı)",slug:"_8-4-adim-2-1-duzenli-odeme-emri-rızasının-sorgulanması-istege-baglı"},{level:2,title:"8.5.\tADIM 3- Duzenli Ödeme Emrinin Oluşturulması",slug:"_8-5-adim-3-duzenli-odeme-emrinin-olusturulması"},{level:2,title:"8.6.\tADIM 3.1- Duzenli Ödeme Emri Sorgusu (İsteğe bağlı)",slug:"_8-6-adim-3-1-duzenli-odeme-emri-sorgusu-istege-baglı"},{level:2,title:"8.7.\tADIM 4- Düzenli Ödeme Planı Sorgulama",slug:"_8-7-adim-4-duzenli-odeme-planı-sorgulama"},{level:2,title:"8.8.\tADIM 5- Düzenli Ödeme Emri Rıza İptali",slug:"_8-8-adim-5-duzenli-odeme-emri-rıza-iptali"}],content:" 8.\tDüzenli Ödeme Emri Başlatma Hizmeti \n Ödeme hizmeti kullanıcısının düzenli tekrar eden bir ödeme talimatı gerçekleştirmek istediği ödeme emirlerinde bu hizmeti kullanabilir. Ödemenin Havale / PÖS / FAST ödeme sistemlerinden hangisi ile gerçekleşeceğine, ödeme günü geldiğinde HHS karar verir. \n Düzenli ödeme hizmetini online bankacılık sistemlerinde sunan HHS'lerin, ÖHVPS üzerinden bu hizmetleri sunması zorunludur. Mevcutta online kanallarından bu hizmeti sundukları müşteri segmentine (bireysel,kurumsal vb.), ÖHVPS üzerinden hizmet sunmaya devam etmeleri gerekmektedir. YÖS, bireysel müşteri özelinde düzenli ödeme hizmeti vermeyen HHS'ye düzenli ödeme talimatı rızası isteği yapması durumunda HHS tarafından  TR.OHVPS.Business.IndividualCustomerNotSupported  hatası , kurumsal müşteri özelinde düzenli ödeme talimatı rızası isteği yapıldığında HHS tarafından  TR.OHVPS.Business.CorporateCustomerNotSupported  hatası verilmelidir. \n HHS'ler düzenli ödeme hizmetini sunuş bilgilerini HHS API aracılığı ile yayınlayacaklardır. YÖS, düzenli ödeme hizmeti başlatabileceği HHS'lerin listesini HHS API'de yer alan \"hizmetTipi\":\"03\" parametresi ile alabilir. YÖS, düzenli ödeme hizmeti sunmayan HHS'ye düzenli ödeme talimat rızası isteği yapması durumunda HHS tarafından  TR.OHVPS.Business.RegularPaymentOrderNotSupported  hatası iletilmelidir. \n Düzenli ödeme emri hizmetinde TRY dışındaki yabancı para birimleri için HHS tarafından destek verilmemesi durumunda  TR.OHVPS.Business.InvalidCurrencyCode  hataası verilmelidir. \n Düzenli ödeme talimatı güncelleme hizmeti YÖS üzerinden yapılamayacaktır. ÖHK aktif olan düzenli ödeme talimat rızasını iptal ederek, yeniden oluşturabilecektir. \n HHS üzerinden ilgili güncelleme hizmeti sağlanabilir. Ödeme planında yapılan güncelleme sonucunda olay bildirim ile YÖS'e bildirim sağlanacaktır. HHS üzerinden güncelleme yapılırken son ödeme günü için ileri bir tarihe güncelleme adımı olmamalıdır. Sadece ilk oluşturulan düzenli ödeme emri içerisindeki son ödeme gününden öncesi olacak şekilde güncelleme yapılmasına izin verilmelidir. \n Düzenli Ödeme Emri Başlatma Hizmeti 5 temel akışdan oluşur: \n \n Düzenli Ödeme Emri Rızası Başlatma İsteğinin tetiklenmesi:  ÖHK ÖBHS mobil uygulama ya da websitesinden düzenli ödeme emri rızasını başlatır. \n Düzenli Ödeme Emri Rıza Hazırlanması:  ÖBHS, “Düzenli Ödeme Emri Rızası Başlatma” işlemi için izin oluşturulması isteğini HHS’ye iletir. \n Düzenli Ödeme Emri Rızasının Yetkilendirilmesi:  HHS, gerekli gördüğü durumlarda ÖHK’yı GKD ile doğrular ve düzenli ödeme emri rızasına erişim için erişim belirteci tanımlanmasını temin eder. \n Düzenli Ödeme Emrinin Başlatılması:  ÖBHS, “düzenli ödeme emri”ni HHS’ye iletir. \n Düzenli Ödeme Emri Rıza Durumu, Düzenli Ödeme Emri Durumu, Düzenli Ödeme Emri Detayı Sorguları:  ÖBHS, Düzenli Ödeme Emri Rıza Durumu, Düzenli Ödeme Emri Durumu, Düzenli Ödeme Emri Detayı bilgilerini isteğe bağlı olarak sorgulayabilir. \n Düzenli Ödeme Planı Sorguları:  ÖBHS, Düzenli Ödeme Emri için oluşturulan talimata dair ödeme planını sorgulayabilir. \n \n Nezdinde ödeme hesabı bulunduran hesap hizmeti sağlayıcılar(Banka, EPK, Ödeme Kuruluşları)  müşterilerine ait hesapları hesap referansı ya da hesap numarası üzerinden takip etmektedir. YÖS'lerin hem HBH hem de ÖBH servisleri için hesap referansı veya hesap numarası üzerinden işlem yapılabileceğini bilmeleri, sistemlerini API dokümanında belirtilen akışlara göre uyumlandırmaları ve müşteri bilgilendirmesini(önyüzlerinde hesap no ve hesap referansı ayrımını gözeterek) buna paralel yapmaları beklenmektedir. \n YÖS'ler gönderen hesap seçimini aşağıdaki yöntemlerden biri ya da birkaçı ile sağlayabilirler: \n \n YÖS, müşterisinin ödeme hesabını HHS ekranından seçtirebilir. \n YÖS, müşterisinden Hesap Bilgisi rızası alır. Rıza aldığı hesaplar üzerinden hesap referansı aracılığı ile düzenli ödeme emri başlatabilir. \n YÖS, müşterisinin ödeme hesabını elle girmesine olanak tanıyabilir. IBAN'ı olmayan HHS'ler düzenli ödeme emri rızası adımında  TR.OHVPS.Business.IBANNotSupported  hatasını vermelidir. IBAN'ı olan HHS'lerin bu akışı desteklemesi zorunludur. \n YÖS; müşterisinin hesap referansını elle girmesini sağlayabilir. Hesap Referansı bilgisi ile başlatılan düzenli ödeme emri işlemlerinde HHS seçimi zorunludur. \n \n Ödeme Sistemine doğrudan katılımcı olmayan HHS'ler, müşterilerine IBAN sunmadıkları için, YÖS'ler hesap referansı ile ödeme başlatabilirler. Bu
16nların dışındaki HHS'lerin, gönderen IBAN veya hesap referansı ile ödeme akışını desteklemesi zorunludur. \n Düzenli Ödeme Emri Başlatma Hizmeti için Erişim Adresleri (Endpoints) \n Düzenli Ödeme Emri Başlatma Hizmeti İçin Erişim Adreslerinin Etki Alanı (Scope) = “odeme_emri” olarak belirtilmelidir. Ödeme Emri Hizmeti ile aynı etki alanı(scope) kullanılmaktadır. \n Tablo : Düzenli Ödeme Emri Başlatma Hizmeti İçin Erişim Adresleri \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu / İsteğe Bağlı \n Yetkilendirme Türü \n İmzalama \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n duzenli-odeme-emri-rizasi \n POST \n /duzenli-odeme-emri-rizasi \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n DuzenliOdemeEmriRizasiIstegi \n DuzenliOdemeEmriRizasi \n \n \n 2 \n erisim-belirteci (GKD için) \n POST \n /erisim-belirteci \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n ErisimBelirteciIstegi \n ErisimBelirteci \n \n \n 3 \n duzenli-odeme-emri-rizasi \n GET \n /duzenli-odeme-emri-rizasi/{rizaNo} \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n - \n DuzenliOdemeEmriRizasi \n \n \n 4 \n duzenli-odeme-emri \n POST \n /duzenli-odeme-emri \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı İstek ve Yanıt \n DuzenliOdemeEmriIstegi \n DuzenliOdemeEmri \n \n \n 5 \n duzenli-odeme-emri \n GET \n /duzenli-odeme-emri/{talimatNo} \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı Yanıt \n - \n DuzenliOdemeEmri \n \n \n 6 \n duzenli-odeme-emri-rizasi-iptal \n DELETE \n /duzenli-odeme-emri-rizasi/{rizaNo}
16 \n Z \n İstemci Kimlik Bilgileri \n - \n - \n - \n \n \n 7 \n duzenli-odeme-talimat-plani \n GET \n /duzenli-odeme-emri/{talimatNo}/odeme-plani \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı Yanıt \n - \n DuzenliOdemeEmriPlani \n 8.1.\tADIM 0 - Düzenli Ödeme Emri Rızası Başlatma Isteği \n \n ÖHK, ÖBHS uygulamasında (web arayüzü/mobil uygulama) düzenli ödeme emri rızası sürecini başlatır. \n Gönderen hesap detaylarının bu aşamada belirtilmesi zorunlu değildir. \n 8.2.\tADIM 1 - Düzenli Ödeme Emri Rızasının Hazırlanması \n   \n Şekil : Düzenli Ödeme Emri Rızasının Hazırlanması \n \n \n ÖBHS, ödeme hizmeti kullanıcı hesabının bulunduğu HHS’ye bağlanarak düzenli ödeme emri rıza kaynağının oluşturulmasını (DuzenliOdemeEmriRizasi) sağlar. \n \n \n POST isteği TLS protokolü tesis edilen iletişim katmanı üzerinden gerçekleştirilir. TLS için nitelikli sertifikalar kullanılır. \n \n \n POST isteğinin başlığındaki alanlar ve istemcinin sertifikasındaki özel alanlar kullanılarak istemcinin yetkilendirilmesi sağlanır: \n \n İstekte bulunan ÖBHS yetkilendirilmiş olduğu geçit tarafından kontrol edilir. \n İstekte bulunan yetkilendirilmiş ödeme hizmeti sağlayıcısı ÖBHS rolüne sahipliği geçit tarafından kontrol edilir. \n HHS tarafından, istek başlığındaki x-aspsp-code ile katilimciBlg içerisinde yer alan hhsKod değeri ile aynı olduğunu kontrol edilir. Farklı olması durumunda  “TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n \n \n \n POST başarılı olursa, HHS, düzenli ödeme emri için içeride rıza olup olmamasına bakılmaksızın yeni bir rıza tanımlayıcısı RizaNo içeren DuzenliOdemeEmriRizasi  yanıt olarak döner. \n \n \n 1 ÖHK'nın 1 YÖS için 1 HHS'de istediği kadar rızası olabilir. \n \n \n HHS tarafında RizaDurumu değişkeninin durumu “Yetki Bekleniyor” olarak güncellenir. \n \n \n YÖS’ün doğrulama ekranı olarak ÖHK’ya açacağı URL adresini de ilgili rıza numarasına göre oluşturur. Burada 2 farklı yöntemle URL oluşturabilir. \n \n Statik URL  : \nHHS’nin base pathi/alt-dizin/{rızaNo} \nÖrnek hhsYonAdr : https://xbank.com.tr/ohvps/cb54834e36f742d09af3d534ece3352a \nBu adres için ilgili doğrulama sayfası önden hazırlanmalı ve ÖHK’nın doğrulama sayfasına erişimi için yayınlanmış olmalıdır (publish edilmelidir). \n Dinamik URL : \nHHS’nin base pathi/alt-dizin/GKD Karşılama Ekranı?rizano={rızano} \nÖrnek: https://xbank.com.tr/ohvps/gkd?rizano=cb54834e36f742d09af3d534ece3352a \n \n \n \n POST /duzenli-odeme-emri-rizasi \n İSTEK: \n ÖBHS, bu API erişim adresinden HHS’ye yeni bir DuzenliOdemeEmriRizasi oluşturulması için istekte bulunur: \n \n ÖBHS, düzenli ödeme emri başlatma isteği olduğunu HHS’ye bildirir. \n ÖBHS, ÖHK’nın, ÖBHS arayüzünden verdiği rızanın (“Ön Onay”) bir kopyasının HHS nezdinde müşteri tarafından onaylanması için HHS’ye gönderilmesini sağlar. \n YÖS, düzenli ödeme hizmeti sunmayan (HHS API'de yer alan \"hizmetTipi\":\"03\" yok ise) HHS'ye düzenli ödeme talimat rızası isteği yapması durumunda HHS tarafından  TR.OHVPS.Business.RegularPaymentOrderNotSupported  hatası dönülür. \n HHS; istek mesajında yer alan alanların ÖHVPS API İlke ve Kuralları dökümanında belirtilen şartları sağlayacak şekilde zorunluluk, uzunluk ve içerik kontrollerini yapar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Resource.InvalidFormat\"  hata kodu iletilmeli ve fieldErrors dolu olacak şekilde hatalı alanı belirten detaylı açıklama gönderilmelidir. InvalidFormat hata kodlarında fieldErrors içeriği gönderilmeli ve anlaşılır açıklama ile message, messageTr alanları doldurulması zorunludur. \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidTPP”  hatası dönülür. \n YÖS, bireysel müşteri özelinde düzenli ödeme hizmeti vermeyen HHS'ye düzenli ödeme talimatı rızası isteği yapması durumunda HHS tarafından  \"TR.OHVPS.Business.IndividualCustomerNotSupported\"  hatası , kurumsal müşteri özelinde düzenli ödeme talimatı rızası isteği yapıldığında HHS tarafından  \"TR.OHVPS.Business.CorporateCustomerNotSupported\"  hatası dönülür. \n HHS; YÖS API ile alınan ÖBHS bilgilerinin içerisinde yer alan yönlendirme adresleri ile düzenli ödeme emri rızası nesnesi request mesajında paylaşılan adreslerin uyumlu olup olmadığının kontrollerini y
16apar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Business.TPPRedirectionAddressMismatch\"  hatası dönülür. \n HHS; kimlik bilgileri nesnesinde yer alan kimlik bilgileri ile ÖHK’nın HHS müşterisi olup olmadığının kontrollerini yapar. Bu kontrol hem bireysel hem de kurumsal ÖHK’lar için yapılmalıdır.  (Koşullu Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Business.CustomerNotFound\"  hatası dönülür. \n Düzenli Ödeme Emri Başlatma Hizmeti rıza isteğinde bulunan ÖHK’nın “Açık Bankacılık Kanal Yetki” tanımı yok ise  \"TR.OHVPS.Business.OpenBankingChannelClosed\"  hatası dönülür. HHS insiyatifinde olup HHS bu kontrolü GKD sonrası gerçekleştirebilir. \n HHS \"gkd\" nesnesi için alan kontrollerini gerçekleştirir. \"yetYntm\" = \"A\" gönderilmiş ise \"ayrikGkd\" nesnesinin dolu gönderilmesi zorunludur. Gönderilmemesi durumunda HHS tarafından  \"TR.OHVPS.Resource.InvalidFormat\"  hatası dönülür. \n Ayrık GKD desteklemeyen HHS'ye Ayrık GKD yöntemiyle rıza başlatma isteği yapılması durumunda HHS tarafından  \"TR.OHVPS.Business.DecoupledAuthenticationNotSupported\"  hatası dönülür. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n Ayrık GKD ile başlatılan rıza akışlarında HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder. YÖS iki olay tipine de abone olmak zorundadır. Eğer olay aboneliği yoksa HHS tarafından  \"TR.OHVPS.Business.EventSubscriptionNotFound\"  hatası dönülür. \n Rıza başlatma akışı içerisinde kimlik bilgisinin, ÖHK'ya ait kimlik verisi(kmlk.kmlkVrs) ile ayrık GKD içerisinde yer alan OHK Tanım Değer alanı (ayrikGkd.ohkTanimDeger) birebir aynı olmalıdır. Aynı olmadığı durumda HHS tarafından  \"TR.OHVPS.Business.CustomerInfoMismatch\"  hatası dönülür. \n HHS tarafında ÖHK'nın mobil uygulaması bulunmaması durumu tespit edilebildiği durumda Ayrık GKD ile başlatılan rıza akışlarında HHS tarafından  \"TR.OHVPS.Business.CustomerMobileApplicationNotFound\"  hatası dönülür. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n HHS kimlik bilgisi ile gönderen ünvanının uyumlu olduğunu kontrol eder. HHS'ler EFT/FAST işlemlerinde kabul ettikleri kontrol kriterleri ile işleme izin verebilirler. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Business.IncorrectSenderTitle\"  hatası dönülür. \n Gönderen Hesap Numarası ÖBHS tarafından iletildiği durumda;\n \n IBAN’ın doğruluğu (kontrol basamağı doğrulaması) kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.InvalidAccount\"  hatası dönülür. \n IBAN içerisindeki HHS kodunun istek başlığındaki HHS kodu ile aynı olduğu (hesabın HHS’ye aitliğinin kontrolü) kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.AccountCodeMismatch\"  hatası dönülür. \n Hesap numarasının ÖHK’ya ait olduğu kontrol edilir.Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.CustomerAccountMismatch\"  hatası dönülür. \n HHS’ye özel ödeme izni verilmeyen farklı statülerin bulunması durumu kontrol edilir. (İlgili hesabın para transfer işlemine yetkisi olmaması) Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.AccountUnauthorized\"  hatası dönülür. \n HHS’de gönderen hesabın aktifliği kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.AccountInactive\"  hatası dönülür. \n \n \n Gönderen hesap numarası için, Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir. Hesap referansı ile düzenli ödeme emri rızası başlatılacak ise HHS hesap referansı değeri ile ilişkilendirilmiş mevcut bir hesap bilgisi rızası var mı kontrol etmelidir. Eğer aktif bir rızası yok ise  \"TR.OHVPS.Business.ActiveConsentNotFound\"  hatası verilmelidir. \n Düzenli ödeme emri rızasında alıcı hesap bilgileri Karekod ya da Kolas ile belirlenebilir. HHS online kanallarında düzenli ödeme hizmetini Karekod ve Kolas aracılığı ile kabul ediyorsa, ÖHVPS servisleri ile de kabul etmek zorundadır. YÖS tarafından düzenli ödeme emri rızası isteği içerisinde alıcı bilgisi için karekod ya da kolas kompleks alanları yer alması durumunda , destek vermeyen HHS'ler tarafından  \"TR.OHVPS.Business.RecipientAccountTypeNotSupported\"  hatası verilmelidir. \n Alıcı ve gönderen hesabın aynı olması durumunda  “TR.OHVPS.Business.SenderRecipientSame”  hatası dönmesi beklenmektedir. Bu hata HHS insiyatifindedir. \n Müşterinin kendi hesapları arasında talimat veremeyeceği durumların kontrolü için  “TR.OHVPS.Business.SameAccountTransferRestricted”  hatası dönmesi beklenmektedir. Bu hata HHS insiyatifindedir. \n \n Yukarıdaki kontroller tamamlandıktan sonra HHS, DuzenliOdemeEmriRizasi oluşturduğu anda durumunu “Yetki Bekleniyor” olarak düzenler. \n Bu aşamada ÖHK’nın HHS tarafından tanımlanmış ve isteğin veri alanında gönderen hesaba (borçlandırılacak hesaba) ilişkin bir bilgisinin olması gerekmez. \nHesap bakiye kontrolünün rıza aşamasında yapılmaması gerekmektedir. Çünkü ÖHK düzenli ödeme emri gerçekleşene kadar hesabına para eklemesi yapabilir. \n POST /duzenli-odeme-emri-rizasi  isteğinin (REQUEST) gövdesinde (BODY)  “DuzenliOdemeEmriRizasiIstegi” nesnesi (Tablo) kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “DuzenliOdemeEmriRizasi” (Tablo) nesnesi oluşturulur. \n  BAŞARILI İSTEK: \n Tablo : “DuzenliOdemeEmriRizasiIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n HHS tarafından düzenli ödeme emri rızası oluşturulması sırasında yapılması gereken kontrol ve işlemler \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n İ \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. Yetkilendirme yöntemi, ÖBHS tarafından belirtilmeyebilir. \n HHS, HBHS’nin belirlediği yöntemi dikkate alarak süreci ilgili akışa uygun olarak devam ettirir. Desteklemediği yöntem için (örn: Ayrık GKD) ayrıca hata mesajı verilmelidir. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu.  YÖS’ün ileteceği adrestir.  Durum kodu(drmKod), yönlendirme adresine parametre olarak eklenmelidir. \n HHS, müşteri uygulama / tarayıcısını bu alanda belirtilen adrese yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n yetYntm = A gönderilmiş ise ayrikGkd nesnesinin dolu gönderilmesi zorunludur.   HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder.  Bknz: Ayrık GKD \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir.  TR.OHVPS.DataCode.ohkTanimTip  sıralı veri tiplerinden birini alır. \n \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir. \n \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS geçerli bir Kimlik Numarası Türü olduğunu kontrol eder. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS, ÖBHS tarafından iletilmesi durumunda Kimlik Verisi üzeriden çapraz kontroller uygulamalı ve Kimlik Verisini temel alarak GKD gerçekleştirmelidir.  Pasaport numarasına ilişkin kontroller HHS'nin halihazırda kullandığı veri, akış ve tabi olduğu diğer düzenlemelerdeki işleyiş ile aynı şekilde ele alınmalıdır.  Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n Z \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur.  HHS geçerli bir Kurum Kimlik Numarası Türü olduğunu kontrol eder. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n Z \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur.  HHS, ÖBHS tarafından iletilmesi durumunda Kurum Kimlik Verisi üzeriden çapraz kontroller uygulamalıdır. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n Kurum adına yapılan ödemelerde K değerini alır. Kurum Kimlik Türü ve Kurum Kimlik Verisi alanlarının girilmiş olduğu çapraz olarak kontrol edilir. \n \n \n >
16 Gönderen \n gon \n Kompleks:Hesap \n İ \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderenin ünvanıdır.  HHS, bu bilgiyi ÖBHS sisteminden gelen veri yerine FAST’a iletirken kendi sisteminden alabilir. \n HHS’nin bu veri ile kendi sistemlerindeki verinin farklı olması ve Kimlik Numarası ile eşleşmemesi durumunda düzenli ödeme emri başlatma isteği reddedilir.  ÖBHS verisi ile HHS verisinin farklılaşması durumunun ise risk değerlendirme sistemlerine girdi olarak kullanması tavsiye edilir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n İ \n ÖBHS'nin ön yüzünden daha önce kayıt altına alınmış hesaplar arasından seçtirdiği veya müşteriye girdiği IBAN’dır.  ÖBHS tarafından iletilmediği durumda, gönderen hesap bilgisini müşteri tarafından HHS’nin dijital kanalında GKD sonrasında seçilebilir. Bu amaçla ÖBHS arayüzünde HHS seçtirilmelidir.  Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir. Hesap referansı ile düzenli ödeme emri rızası başlatılacak ise HHS hesap referansı değeri ile ilişkilendirilmiş mevcut bir hesap bilgisi rızası var mı kontrol etmelidir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n ÖBHS tarafından iletildiği durumda; IBAN içerisindeki HHS kodunun istek başlığındaki HHS kodu ile aynı olduğu (hesabın HHS’ye aitliğinin kontrolü), IBAN’ın doğruluğu (kontrol basamağı doğrulaması), Hesap numarasının ÖHK’ya ait olduğu, HHS’ye özel ödeme izni verilmeyen farklı statülerin bulunması durumu kontrol edilir. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n İ \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez.  ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir.  Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan HHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n HspRef'e bağlı IBAN değiştiğinde yeni IBAN'ın da ilgili HspRef ile ilişkilendirilmesi beklenmektedir. Bu durumda, HBHS, HspRef ile sorguya geldiğinde HHS'nin yeni IBAN ve hesap hareketlerini dönebilmesi mümkün olacaktır. HspRef’in, IBAN değiştiğinde değiştirilmemesi tavsiye edilmektedir. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n K \n Kolay Adres Sistemi  kullanılmıyorsa zorunludur.  Alıcının ünvanıdır. ÖBHS ekranlarından girişi yapılabileceği gibi ÖBHS’nin kayıtlı alıcılarından yapılan seçimle de doldurup gönderebildiği bilgi olabilir.  FAST-TR Karekod Veri Organizasyonunda;  İşyeri tarafından sunulan uzun karekod yapısının  59:  alanında tanımlı İşyeri adı alanıdır, Kişiden Kişiye Ödeme Karekod Yapısının  07:  alanında tanımlı    Ödeme Alıcısının Adı ve Soyadı  alanıdır. \n \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n Alıcının Hesap Numarası (IBAN)  alanıdır.   Kolay Adres Sistemi  kullanılmıyorsa zorunludur.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  30-01:  alanında tanımlı İş Yeri IBAN verisi kullanılır.  Alıcının birden fazla hesabının kullanılabilir olduğu durumlarda (özellikle işyeri ödemelerinde HHS nezdindeki hesap (on-us havale akışı) tercih edilmelidir. \n HHS (Gönderen Katılımcı) tarafından IBAN doğrulaması (kontrol basamağı doğrulaması) yapılır. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n Talimatın gerçekleşeceği ana kadar KOLAS tanımınında değişiklik olabileceği için,  KOLAS ile yapılan düzenli ödeme emri işlemleri, talimatın verildiği anda çözülen IBAN'a yapılacaktır. \n Kolas ile düzenli ödeme emri hizmeti desteklenmiyorsa; HHS tarafından hata dönülmelidir. \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n HHS (Gönderen FAST katılımcısı) tarafından KOLAS Servisine yapılan sorguda girdi olarak kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n HHS (Gönderen FAST katılımcısı) tarafından KOLAS Servisine yapılan sorguda girdi olarak kullanılır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n Karekod ile yapılan düzenli işlemler, talimatın verildiği anda çözülen IBAN'a yapılacaktır. \n Karekod ile düzenli ödeme emri hizmeti desteklenmiyorsa; HHS tarafından hata dönülmelidir. \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n TR.OHVPS.DataCode.KareKodAksTur  sıralı veri değerlerinden birini alır. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını  gösterir. Okunan karekodda referans değeri varsa kullanılması zorunludur.  Karekod ilke ve kurallar belgesinde tanımlandığı şekilde kullanılması gerekmektedir.  Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri veri değerlerinden “O” değeri atanarak iletilmelidir. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n HHS, YÖS'ün API deseninde \"O\" kodunu ilettiğini kontrol eder. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n HHS geçerli bir Ödeme Amacı kodu olduğunu kontrol eder. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarında: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.   -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -\tİşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n YÖS bu değeri ÖHK’yı HHS’ye yönlendirmeden önceki ekranda göstermeli, ve HHS bu değeri GKD için kullandığı önyüzünde “işlem doğrulama kodunun” bir unsuru olarak yine ÖHK’ya göstermelidir. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n  BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “DuzenliOdemeEmriRizasi” nesnesi Tablo’da parametrelerden oluşur: \n Tablo : “DuzenliOdemeEmriRizasi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n DuzenliOdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n DuzenliOdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n > Güncellenme Zamanı \n gnclZmn \n ISODateTime \n Z \n DuzenliOdemeEmriRizasi nesnesinin güncellenme zamanı \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n > Rıza Iptal Detay Kodu \n rizaIptDtyKod \n AN2 \n K \n Rıza durumunun iptal olduğu durumda zorunludur. Alabileceği değerler 4. Bölümde detaylandırılmıştır. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır.  HHS, ÖBHS’nin belirlediği yöntemi dikkate alarak kendi belirlediği yöntemi kullanır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   HHS tarafından maksimum 5 dk içinde işlem tamamlanacak şekil zaman damgası oluşturulur. Zaman aşımı olduğunda HHS’nin GKD’ye izin vermeyecek şekilde hata mesajı vermesi gerekmektedir.  Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n Z \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n Z \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n \n \n >
16 Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderenin ünvanıdır.  HHS, bu bilgiyi ÖBHS sisteminden gelen veri yerine FAST’a iletirken kendi sisteminden alabilir.   Tek seferlik ödeme dışında YÖS'ün gönderen ünvanını göndermesi zorunludur. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n İ \n ÖBHS'nin ön yüzünden daha önce kayıt altına alınmış hesaplar arasından seçtirdiği veya müşteriye girdiği IBAN’dır.  ÖBHS tarafından iletilmediği durumda, gönderen hesap bilgisini müşteri tarafından HHS’nin dijital kanalında GKD sonrasında seçilebilir. Bu amaçla ÖBHS arayüzünde HHS seçtirilmelidir.   GKD sonrası HHS ekranında seçilen Hesap Numarası POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir.    Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n İ \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez.  ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir.   GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir.    Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.    Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari ünvan bilgisidir. Kolas’tan dönen “account owner” alanı kullanılmalıdır. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen ünvan bilgisidir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n ÖBHS tarafından istek mesajında iletilip doğrulanan veya Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen alıcı maskeli IBAN bilgisidir. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n TR.OHVPS.DataCode.KareKodAksTur  sıralı veri değerlerinden birini alır. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını  gösterir. \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O” değerini alır. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  - İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n 8.3.\tADIM 2- Düzenli Ödeme Emri Rızasının Yetkilendirilmesi \n   \n Şekil : Düzenli Ödeme Emri Rızasının Yetkilendirilmesi \n ÖBHS, ÖHK’nın düzenli ödeme emrini yetkilendirmesi isteğini iletir. Ödeme emrinin yetkilendirilmesi, HHS tarafından gerçekleştirilen Yönlendirme veya Ayrık GKD yöntemiyle yapılır. \n \n \n Yönlendirmeli doğrulama akışında , ÖBHS ÖHK’yı HHS’ye yönlendirir. \n \n ÖBHS tarafından yönlendirme, bir önceki adımdaki RizaNo’yu içerir. \n Yönlendirmenin RizaNo’yu içermesi sayesinde, HHS hangi ödeme emriyle ilişkili olarak yönlendirme yapıldığını ilişkilendirebilir. \n HHS, ÖHK için GKD sürecini işletir. \n \n ÖHK’yı doğrularsa, \n \n ÖHK -bir önceki adımda seçmediyse- borçlu hesabını seçer. \n HHS, düzenli ödeme emri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n HHS, ÖHK’yı “olumlu yönlendirme akışı” ile ÖBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n \n \n \n yonAdr?rizaDrm=Y&yetKod=xx&rizaNo=yy&rizaTip=D&drmKod=zzz\n \n ÖHK’yı doğrulayamazsa, \n1. HHS, düzenli ödeme emri rıza kaynağının durumunu “Yetki İptal” olarak günceller. \n2. HHS, ÖHK’yı “olumsuz yönlendirme akışı” ile ÖBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=I&rizaNo=yy&rizaTip=D&drmKod=zzz\n \n HHS tarafında oluşabilecek bir hata durumunun YÖS’e aktarılması gerektiği durumlar olabilir. Bu durumda yonlendirme adresinde hata kodu parametresi zorunlu olarak iletilmelidir. \nHata açıklamalarının neler olabileceği ve YÖS’ün kendi uygulamasında bu hatayı ne şekilde göstereceği aşağıda tariflenmiştir. \n yonAdr?rizaDrm=I&rizaNo=yy&rizaTip=D&rizaIptDtyKod=11&drmKod=zzz\n \n URL’de iletilen “Rıza İptal Detay Kodu” Rıza durumları bölümünde (4. Bölüm) belirtilen hata kodları ile aynı olacak şekilde tasarlanmıştır. GKD sırasında yapılması gereken kontroller 5.3 bölümünde detaylandırılmıştır. \n \n Ayrık doğrulama akışında , HHS, ÖHK’nın düzenli ödeme emri rızasını başlattığı uygulamadan farklı olabilecek bir “doğrulama” uygulamasında işlemi doğrulamasını ister.\n \n Ayrık akış ÖBHS’nin farklı bir kanal kullanarak yetkilendirme isteği göndermesiyle başlatılır. \n Bu yetkilendirme isteği, yetkilendirilecek ödeme emri rızasının eşleştirileceği ÖHK’nın bulunması için ilgili veriyi taşır. \n HHS, ÖHK’yı doğrular. \n ÖHK, bir önceki adımda seçmediyse- borçlandırılacak hesabını seçer. \n HHS, düzenli ödeme emri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n \n Başarılı GKD sonrasında (rizaDrm=’Y’) ilgili rıza nesnesi için (belirli bir rizaNo) yetkilendirme kodunun (yetKod) alınmasının ardından erişim belirteci erişim adresine POST çağrısı yapılarak yetkilendirme kodu karşılığında erişim belirteci ve yenileme belirteci alınır. POST /erişim-belirteci erişim noktası EK-3’te açıklanmıştır. \n Erişim belirteci alındıktan sonra; HHS, düzenli ödeme emri rıza kaynağının durumunu “Yetki Kullanıldı” olarak günceller. \n 8.4.\tADIM 2.1 – Düzenli Ödeme Emri Rızasının Sorgulanması (isteğe bağlı) \n   \n Şekil 7: “DuzenliOdemeEmriRizasi” nesnesinin sorgulanması (isteğe bağlı) \n GKD işleminin başarıyla tamamlanıp Düzenli Ödeme Emri Rızasının yetkilendirilmesi esnasında, gönderen hesap seçiminin HHS ekranında yapıldığı durumlar olabilir. Bu durumlarda düzenli ödeme emri isteğinde gönderen hesap bilgilerinin zorunlu olması nedeniyle,  DuzenliOdemeEmriRizasi  nesnesi sorgulanarak bu bilgiler alınmalıdır. HHS, “ ADIM 2 -Düzenli Ödeme Emri Rızasının Yetkilendirilmesi ” akışında ÖHK’nın hesapları arasında seçim yapmasını ve seçilen hesap bilgisinin  DuzenliOdemeEmriRizasi  nesnesine işler. \n \n Sorgulama yapılan Düzenli Ödeme Emri HHS tarafında bulunmuyor ise  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n \n GET /duzenli-odeme-emri-rizasi/{RizaNo} \n ÖBHS, mevcut durumunu kontrol etmek için, oluşturulan bir  DuzenliOdemeEmriRizasi  k
16aynağının durumunu isteğe bağlı olarak alabilir. \n Durum \n DuzenliOdemeEmriRizasi  kaynağı için kullanılabilecek durum göstergeleri şu şekildedir: \n \n Yetki Bekleniyor \n Yetkilendirildi \n Yetki Kullanıldı \n Yetki Ödeme Emrine/Talimata Dönüştü \n Yetki Sonlandırıldı \n Yetki İptal \n \n Düzenli Ödeme emri rıza durum değişiklikleri 4.2 bölümünde detaylandırılmıştır. \n BAŞARILI YANIT: \n GET /duzenli-odeme-emri-rizasi/{rizaNo}  yanıtının (RESPONSE) gövdesinde (BODY)  “DuzenliOdemeEmriRizasiİstegi” nesnesi kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda Tablo-8’de yer alan parametreleri içeren “DuzenliOdemeEmriRizasi” oluşturulur. \n Gönderen Hesap Bilgisinin, ADIM 2 (İleri Tarihli Ödeme Emri Rızasının Yetkilendirilmesi) sonrasında HHS ekranından seçildiği akışta “DuzenliOdemeEmriRizasi” nesnesi güncellenir ve ÖBHS  GET /duzenli-odeme-emri-rizasi/{rizaNo}  isteği yaparak güncel gönderen hesap bilgisi bilgisini de içeren “DuzenliOdemeEmriRizasi” nesnesini çekmelidir. \n 8.5.\tADIM 3- Duzenli Ödeme Emrinin Oluşturulması \n   \n Şekil 8: Duzenli Ödeme Emrinin Oluşturulması \n POST /duzenli-odeme-emri \n ÖHK’nın Güçlü Kimlik Doğrulama ile işlemi yetkilendirmesi sonrasında, ÖBHS DuzenliOdemeEmri kaynağını oluşturur.\nDuzenli Ödeme emri (DuzenliOdemeEmri) uygun ödeme kaynağına POST isteği yapılarak başlatılır. \n \n Erişim Belirteci kontrolü yapılır. Geçerli bir Erişim Belirteci yok ise  \"TR.OHVPS.Connection.InvalidToken\"  hatası dönülür. \n HHS; istek mesajında yer alan alanların ÖHVPS API İlke ve Kuralları dökümanında belirtilen şartları sağlayacak şekilde zorunluluk, uzunluk ve içerik kontrollerini yapar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Resource.InvalidFormat\"  hatası dönülür. \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidTPP”  hatası dönülür. \n Rıza durumu kontrol edilir.\n \n B: Yetki Bekleniyor, Y: Yetkilendirildi  ya da E: Yetki Ödeme Emrine Dönüştü ise  “TR.OHVPS.Resource.ConsentMismatch”  hatası dönülür. \n I: Rıza İptal ya da S: Yetki Sonlandırıldı ise  ”TR.OHVPS.Resource.ConsentRevoked”  hatası dönülür. \n RizaDurumu “K: Yetki Kullanıldı” ise kontrollere devam edilir. \n \n \n POST /duzenli-odeme-emri-rizasi ile POST /duzenli-odeme-emri isteklerinde istek alanların aynı olması beklenmektedir. HHS tarafından kontrolü sağlanmalıdır. Düzenli Ödeme Emri rızasında gönderilen değerlerden farklı bir değer gönderildiği durumda  “TR.OHVPS.Business.FieldMismatch”  hatası dönülür. \n \n Yukarıdaki kontroller tamamlandıktan sonra POST başarılı olursa, içerisinde tlmtNo değişkeni bulunan DuzenliOdemeEmri nesnesi ÖBHS’ye döner ve RizaDurumu değişkenin değeri “Yetki Ödeme Emrine/Talimata Dönüştü” olarak güncellenir. \n BAŞARILI İSTEK: \n Tablo 9: “DuzenliOdemeEmriIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n HHS tarafından düzenli ödeme emri oluşturulması sırasında yapılması gereken kontrol ve işlemler \n FAST A01 PÖS M01 mesaj mapping \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. \n Gönderen katılımcı kodu (yani bankanın FAST/PÖS’teki Katılımcı kodu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. \n YosKod \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n \n >Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n \n \n >Yönlendirme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunludur. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n \n \n >Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n yetYntm = A gönderilmiş ise ayrikGkd nesnesinin dolu gönderilmesi zorunludur. yetYntm = Y için bu nesne iletilmemelidir. \n \n \n \n >>OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n \n \n >>OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n \n \n >HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n \n \n >Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. Duzenli Ödeme Emri Rizası Nesnesindeki Kimlik Numarası Türü verisi ile aynı olmalıdır. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS, ÖBHS tarafından iletilmesi durumunda Kimlik Verisi üzeriden çapraz kontroller uygulamalı ve Kimlik Verisini temel alarak GKD gerçekleştirmelidir. Duzenli Ödeme Emri Rizası Nesnesindeki Kimlik Numarası verisi ile aynı olmalıdır. Gerçek kişi tarafından yapılan ödemelerde, 1. HHS, Gönderen Adı ve Gönderen Hesap Numarasını düzenli ödeme emri isteğinde (Havale/FAST/PÖS) gönderir. - Gönderen Adı ve diğer tüm müşteri bilgileri, Kimlik Numarası üzerinden elde edillir. Pasaport numarasına ilişkin kontroller HHS'nin halihazırda kullandığı veri, akış ve tabi olduğu diğer düzenlemelerdeki işleyiş ile aynı şekilde ele alınmalıdır. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik verisi bu alanda gönderilebilmesi zorunludur. \n GonKimN / Psp \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur. Duzenli Ödeme Emri Rizası Nesnesindeki Kurum Kimlik Türü verisi ile aynı olmalıdır. \n \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur. Duzenli Ödeme Emri Rizası Nesnesindeki Kurum Kimlik Verisi ile aynı olmalıdır. \n GonKimN / VKN \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n Kurum adına yapılan ödemelerde K değerini alır. Kurum Kimlik Türü ve Kurum Kimlik Verisi alanlarının giilmiş olduğu çapraz olarak kontrol edilir.  Duzenli Ödeme Emri Rizası Nesnesindeki ÖHK Türü ile aynı olmalıdır. \n \n \n \n >
16 Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderen kişinin ad soyad ya da ticari ünvan bilgisi. \n HHS ve ÖBHS verisi tutarlı olmalıdır.  ÖBHS verisi ile HHS verisinin farklılaşması durumunun ise risk değerlendirme sistemlerine girdi olarak kullanması tavsiye edilir. \n GonAd \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n ÖBHS'nin ön yüzünden seçtirdiği/kullanıcıya girdiği IBAN Hesap numarası ya da Hesap Referansı alanlarından en az birinin dolu olarak gelmesi gerekmektedir. \n Duzenli Ödeme Emri Rizası Yanıtı Nesnesindeki Gönderen Hesap Numarası verisi ile aynı olmalıdır. \n GonHesN \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n K \n ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başlatılabilir. GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir. Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari ünvan bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen ünvan bilgisidir. \n YÖS’ten alıcı ad soyad bilgisi geliyorsa ve HHS'nin kontrolünden başarılı bir şekilde geçti ise HHS'nin tekrar alıcı ad soyad bilgisi için giriş yaptırmasına gerek bulunmamaktadır. \n AlAd \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n Alıcının Hesap Numarası alanıdır (IBAN). Kolay Adres  sorgusunda dönülen adres kaydı yaptırmış olan alıcının maskeli IBAN bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen IBAN bilgisidir. Karekod akışında, FAST Karekod Veri Organizasyonundaki 30-01: alanında tanımlı İş Yeri IBAN verisi kullanılır. \n Duzenli Ödeme Emri Rizası Yanıtı Nesnesindeki Alıcı Hesap Numarası verisi ile aynı olmalıdır.  Kontroller başarıyla sonuçlanırsa, bilgi FAST/PÖS AlHesN alanına doğrudan aktarır ve FAST/PÖS Alan Katılımcı Kodu (AlKK) olarak Alıcı HHS Kodu kullanılır.  KOLAS sorgusu sonucunda düzenli ödeme emrinde iletilen maskeli bilgi ile HHS’nin kendi düzenli ödeme emri rızası isteğinde tuttuğu KOLAS sorgusundan dönülen bilgi maskelenerek karşılaştırılır. Eğer aynı değilse uygun hata kodu dönülerek işlem sonlandırılır. \n AlHesN \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n Müşterinin sorgulamak istediği Kolay Adres Tipi değeridir.  TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n Duzenli Ödeme Emri Rizası Yanıtı Nesnesindeki Kolay Adres Tipi verisi ile aynı olmalıdır. \n \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n Duzenli Ödeme Emri Rizası Yanıtı Nesnesindeki Kolay Adres Değeri verisi ile aynı olmalıdır. \n FAST (KolasRef) \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n KolasRef ( hem FAST hem de PÖS için aynı) \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı 
16sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  Kolay Adresi Sistemi ile birlikte kullanılmaz.  01: FAST katılımcısından dinamik doğrulama hizmeti alınan işyeri ödemesi  02: FAST katılımcısından statik doğrulama hizmeti alınan işyeri ödemesi 03: Kişiden kişiye ödemeler \n Duzenli Ödeme Emri Rizası Nesnesindeki Kare Kod Akış Türü verisi ile aynı olmalıdır. \n FAST: KrkdAksTur \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını gösterir.  Okunan karekodda referans değeri varsa kullanılması zorunludur. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n Duzenli Ödeme Emri Rizası Nesnesindeki Karekod Referansı verisi ile aynı olmalıdır.  Çevrimiçi doğrulama hizmeti alınmayan statik karekodlar için Referans numarasının bulunmadığı durumlarda HHS tarafından “NONREF” ifadesi girilir. \n FAST: Karekod Referansı (KrkdRef) \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR Karekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O” değeri atanarak iletilmelidir. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n Duzenli Ödeme Emri Rizası Nesnesindeki Ödeme Kaynağı verisi ile aynı olmalıdır. HHS tarafından ödeme mesajında (FAST/PÖS) aynen taşınmak durumundadır. \n FAST/PÖS: OdmKynk \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. \n Duzenli Ödeme Emri Rizası Nesnesindeki Ödeme Amacı verisi ile aynı olmalıdır. HHS tarafından ödeme mesajında (FAST/PÖS) aynen taşınmak durumundadır. \n FAST (OdmAmc)/PÖS(OdmAmaci) \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n Duzenli Ödeme Emri Rizası Nesnesindeki Referans Bilgisi verisi ile aynı olmalıdır. \n RefBlg (Hem FAST hem de PÖS için aynı) \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n FAST/PÖS Acklm \n \n \n \n BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “DuzenliOdemeEmri” nesnesi Tablo-10’daki parametrelerden oluşur: \n Tablo 10: “DuzenliOdemeEmri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanıdır. \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n Z \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderen kişinin ad soyad ya da ticari ünvan bilgisi. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n ÖBHS tarafından iletilip doğrulanan veya HHS ekranında seçilen Gönderen Hesap Numarası dönülür. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n K \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid)  YÖS bazında farklılaşması gerekmez. ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir. GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir. Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.  Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı 
16sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari ünvan bilgisidir. Kolas’tan dönen “account owner” alanı kullanılmalıdır. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen ünvan bilgisidir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n Alıcının Hesap Numarası alanıdır (IBAN). Kolay Adres  sorgusunda dönülen adres kaydı yaptırmış olan alıcının maskeli IBAN bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen IBAN bilgisidir. Karekod akışında, FAST Karekod Veri Organizasyonundaki 30-01: alanında tanımlı İş Yeri IBAN verisi kullanılır. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n Müşterinin sorgulamak istediği Kolay Adres Tipi değeridir.  TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  Kolay Adresi Sistemi ile birlikte kullanılmaz.  01: FAST katılımcısından dinamik doğrulama hizmeti alınan işyeri ödemesi  02: FAST katılımcısından statik doğrulama hizmeti alınan işyeri ödemesi 03: Kişiden kişiye ödemeler \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını gösterir.  Okunan karekodda referans değeri varsa kullanılması zorunludur. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR Karekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O”  değerini alır. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  - İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n \n Talimat Bilgileri \n tlmtBlg \n Kompleks: TalimatBilgileri \n 
16- \n \n \n \n > Talimat Numarası \n tlmtNo \n AN1..128 \n Z \n Düzenli Ödeme Emri nesnesinin UID'sidir. Düzenli Ödeme Emri kaydı'na dair İlişkin sorgular bu ID üzerinden yapılır. \n \n \n > Talimat Oluşma Zamanı \n tlmtOlsZmn \n ISODateTime \n Z \n duzenliOdemeEmri nesnesinin oluşturulma zamanı, talimatın HHS'de oluşturulduğu zaman bilgisidir. \n \n \n > Talimat Tutarı \n tlmtTtr \n AN1..24 \n Z \n ÖBHS'nin HHS'de belirlediği tutar bilgisidir. Talimata ait ilk ödeme emri kaydının tutar bilgisi iletilmelidir.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n > İlk Ödeme Günü \n ilkOdmGn \n ISODate \n Z \n ÖBHS'nin HHS'de belirlediği ilk ödeme günü bilgisidir.   Alabileceği minimum tarih değeri düzenli ödemenin verildiği tarihin 1 gün sonrası olabilir. Maksimum değer ise 30 gün olacak şekilde seçilebilir.  \n \n \n > Son Ödeme Günü \n sonOdmGn \n ISODate \n Z \n ÖBHS'nin HHS'de belirlediği son ödeme günü bilgisidir. Alabileceği minimum gün değeri ilk ödeme gününün 1 gün sonrası olabilir. Maksimum değer ise 2 yıl olmalıdır.  \n \n \n > Ödeme Sayısı \n odmSayi \n N3 \n Z \n ÖBHS'nin HHS'de belirlediği ödeme sayısıdır. Minimum değer 2 adet olmalıdır. \n \n \n > Ödeme Periyodu \n odmPryt \n AN1 \n Z \n ÖBHS'nin HHS'de belirlediği ödeme periyot bilgisidir. TR.OHVPS.DataCode.OdemePeriyodu sıralı veri değerlerinden birini alır. \n \n \n > Talimat Rumuzu \n tlmtRmz \n AN1..180 \n İ \n ÖBHS'nin HHS'de belirlediği talimata dair rumuz açıklamasıdır. İlgili alan isteğe bağlı olup HHS'lerin inisiyatifindedir. \n 8.6.\tADIM 3.1- Duzenli Ödeme Emri Sorgusu (İsteğe bağlı) \n   \n Şekil 9: Duzenli Ödeme Emri Sorgusu \n GET /duzenli-odeme-emri/{tlmtNo} \n ÖBHS, bu erişim adresi aracılığıyla düzenli ödeme emrini sorgulayabilir. Maksimum talimata dair son ödeme gününün 5 gün sonrasına kadar sorgulama yapılabilir. Sonrasında yapılacak sorgulamalarda erişim belirtecinin yetki süresi sonlandığı için HHS  TR.OHVPS.Resource.ConsentRevoked  hatasını dönmelidir.\nİptal edilmiş talimatın bilgileri sorgulanmak istendiğinde de yine  TR.OHVPS.Resource.ConsentRevoked  hatası verilmelidir. \n YÖS sadece kendi uygulaması üzerinden verilmiş düzenli ödemeleri sorgulayabilir. Erişim izni olmayan bir ödeme emri numarası ile sorgulama yaptığında HHS'den  TR.OHVPS.Resource.NotFound  hatasını alır. \n BAŞARILI YANIT: \n GET /duzenli-odeme-emri/{tlmtNo} yanıtının (RESPONSE) gövdesinde (BODY)  “DuzenliOdemeEmri” nesnesi bulunur. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda Tablo-10’da yer alan parametreleri içeren “DuzenliOdemeEmri” nesnesi döner. \n 8.7.\tADIM 4- Düzenli Ödeme Planı Sorgulama \n \n Şekil 10: Düzenli Ödeme Planı Sorgulama \n GET /duzenli-odeme-emri/{talimatNo}/odeme-plani \n ÖBHS, bu erişim adresi aracılığıyla düzenli ödeme planını görüntüleyebilir. İptal edilen bir ödeme emri rızasına dair talimat ödeme planı görüntülenemeyecektir. İptal edilmiş bir talimata ait istek geldiğinde HHS tarafından  \"TR.OHVPS.Resource.ConsentRevoked\"  hatası dönülmelidir. \n BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan \"DuzenliOdemeEmriPlani\" nesnesi Tablo-11’deki parametrelerden oluşur: \n Tablo 11: DuzenliOdemeEmriPlani nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Ödeme Sıra Numarası \n odmSiraNo \n AN1..999 \
16n Z \n Ödeme planı içerisindeki sırayı belirten değerdir. \n \n \n Ödeme Tutarı \n odmTtr \n AN1..24 \n Z \n Ödeme planı içerisinde ödeme numarası kaydına ait ödenecek tutar bilgisi   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n Gerçekleşen Ödeme Tutarı \n grckOdmTtr \n AN1..24 \n K \n Ödeme planı içerisinde ödeme numarası kaydına ait ödenmiş  tutar bilgisi. Kısmi ödeme yapılan işlemlerde kısmi ödeme tutar bilgisi eklenmelidir. Kısmi ödeme yerine ödenecek tutarın tamamı ödenmesi durumunda ilgili tutar bilgisi iletilmelidir. Ödeme Durumu 01, 02 ve 06 olan kayıtlar için bu alanın gönderilmesi zorunludur.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n Ödeme Tutarı Para Birimi \n prBrm \n AN3 \n Z \n Tutara ait Para Birimi.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n Ödeme Talimat Tarihi \n odmTlmtTrh \n ISODate \n Z \n Ödeme planı içerisindeki ilgili ödemenin gerçekleşmesi beklenen tarih bilgisidir. \n \n \n Ödeme Gerçekleşme Zamanı \n odmGrckZmn \n ISODateTime \n K \n Ödeme planı içerisindeki ilgili ödemenin gerçekleştiği tarih bilgisidir. Ödeme durumu 01, 02 ve 06 olan kayıtlar için bu alanın gönderilmesi zorunludur. \n \n \n Ödeme Durumu \n odmDrm \n AN2 \n Z \n Ödeme planı içerisindeki ödemelere ait durumu belirten değerdir.  TR.OHVPS.DataCode.OdemeDurumu  sıralı veri değerlerinden birini alır. \n 8.8.\tADIM 5- Düzenli Ödeme Emri Rıza İptali \n \n Şekil 10: Düzenli Ödeme Emri Rızası İptali \n DELETE /duzenli-odeme-emri-rizasi/{rizaNo} \n ÖBHS, bu erişim adresi aracılığıyla düzenli ödeme emri rızasını iptal edebilir. \n DELETE /duzenli-odeme-emri-rizasi çağrısı, bir ÖBHS'nin önceden oluşturulmuş bir düzenli ödeme emri rızasını silmesine izin verir. Müşteri, rızasını HHS üzerinden iptal etmek yerine, ÖBHS üzerinden bu rızasını kaldırmak isteyebilir. \n \n Erişim belirteci kontrolü yapılır. Geçerli bir erişim belirteci yok ise HHS tarafından  ”TR.OHVPS.Connection.InvalidToken”  hatası dönülür. \n İstek başlığında yer alan X-Access-Token ile ilişkili rıza, iptal edilen rizaNo bilgisi ile aynı olup olmadığı kontrol edilir. Farklı olması durumunda  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n İptal edilmek istenen Düzenli Ödeme Emri Rızası HHS tarafında bulunmuyor ise  ”TR.OHVPS.ResourceNotFound”  hatası dönülür. \n Rıza durumu I ve S olmayan kayıtlar için rıza iptali sağlanacaktır. I ve S olan kayıtlar için rıza iptal edilmek istendiğinde HHS'ler tarafından  TR.OHVPS.Resource.ConsentRevoked  hatası dönülecektir. \n \n Yukarıda kontroller başarıyla tamamlandıktan sonra sırasıyla aşağıdaki işlemler yapılır. \n \n Düzenli ödeme talimat planı içerisinde yer alan odmDrm değeri 04 ve 05 olan kayıtlar 07 durum kodu ile güncellenecektir. Diğer durum kodları için 07 durum ko
16d güncellemesi yapılmayacaktır. \n İlişkili düzenli ödeme emri talimatı iptal edilmelidir. \n Rıza iptal edilmelidir. \n \n Bu API çağrısı, müşterinin ÖBHS üzerinden düzenli ödeme emri rızasını iptal etmesine ve HHS nezdindeki düzenli ödeme emri rızası nesnesinin silinmesini sağlar.\nMüşterinin ÖBHS’nin veri erişim iznini iptal etmesi durumunda ÖBHS, HHS’de mevcut olan DuzenliOdemeEmriRizasi'na dair rıza ve talimat bilgilerini pratik olarak mümkün olan en kısa sürede silmelidir. Bu ise, ilgili kaynağa\nDELETE /duzenli-odeme-emri-rizasi/{RizaNo}\nçağrısı aracılığı ile yerine getirilir. \n Servis istek parametresi olarak sadece path’de iletilen Rıza No bilgisine ihtiyaç duymaktadır.\nÖHK rızası başarı ile silindiğinde HTTP 204 response kodu ile işlem sonucu iletilir. Rıza tipi “I” yani “Yetki İptal” olarak ve gnclZmn zaman damgası vurularak güncellenir.\nÖHK ile rıza iptali sırasında kurulacak iletişimde (e-posta, sms gibi) aşağıdaki alanların iletilmesi tavsiye edilmektedir:\nYÖS Adı, HHS adı, Rıza Oluşturma Zamanı, Servis Tipi Bilgisi (ÖBHS) \n"},{title:"EK-1: İstek/Cevap Mesajlarında Kullanılacak Nesne Yapıları",frontmatter:{},regularPath:"/v2.0.0/contents/ekler.html",relativePath:"v2.0.0/contents/ekler.md",key:"v-e89e9b86",path:"/v2.0.0/contents/ekler.html",headers:[{level:2,title:"EK-1: İstek/Cevap Mesajlarında Kullanılacak Nesne Yapıları",slug:"ek-1-istek-cevap-mesajlarında-kullanılacak-nesne-yapıları"},{level:2,title:"EK-2: Sıralı Veri Türleri",slug:"ek-2-sıralı-veri-turleri"},{level:2,title:"EK-3: İstemci Sertifikalarının Tanım ve Yönetimi",slug:"ek-3-istemci-sertifikalarının-tanım-ve-yonetimi"},{level:2,title:"EK-4: Sunucu Sertifikaları",slug:"ek-4-sunucu-sertifikaları"},{level:2,title:"EK-5: Mesaj İmzalama Akışı",slug:"ek-5-mesaj-imzalama-akısı"},{level:3,title:"İmzalama Kuralları (YÖS)",slug:"imzalama-kuralları-yos"},{level:2,title:"EK-6: HHS/YÖS API Mimarisi",slug:"ek-6-hhs-yos-api-mimarisi"}],content:' EK-1: İstek/Cevap Mesajlarında Kullanılacak Nesne Yapıları \n Açık Bankacılık simülatör uygulaması üzerinde swagger dökümanlarının güncel sürümlerine erişim sağlanabilir. \n EK-2: Sıralı Veri Türleri \n \n \n \n Kod \n Açıklama \n \n \n \n \n TR.OHVPS.DataCode.BrcAlc \n İşlemin hesabı borçlandırdığı ya da alacaklandırdığı bilgisidir. B : Borç A : Alacak N : Finansal Olmayan \n \n \n TR.OHVPS.DataCode.EvetHayir \n E : Evet H : Hayır \n \n \n TR.OHVPS.DataCode.GkdTur \n GKD yapılmasını gerekli bulduğu durumda HHS, YÖS’ün belirlediği yöntemi dikkate alarak kendi belirlediği GKD yöntemini bildirir: Y: Yönlendirmeli GKD A: Ayrık GKD \n \n \n TR.OHVPS.DataCode.HHSDurumu \n A : Açık. Üretim Ortamında HHS’nin aktif bir şekilde hizmet vermesi durumu.  Y : Yaygınlaştırma. Üretim Ortamında HHS’nin kendisi tarafından tanımlanmış kısıtlı ÖHK’ya hizmet vermesi durumu.    G : Geçici Hizmet Veremiyor. HHS servislerinde teknik bir sorun olması nedeniyle HHS’nin hizmet verememesi durumu.  K: Kapalı. HHS’nin hizmet vermeme durumu. \n \n \n TR.OHVPS.DataCode.HHSYOSSrlmKrtr \n ‘kod’ : Kod ‘unv’ : Unvan \n \n \n TR.OHVPS.DataCode.HspDrm \n Hesabın durumunu belirtir: AKTIF PASIF KAPALI \n \n \n TR.OHVPS.DataCode.HspTip \n Hesap çeşidini belirtir: VADESIZ KREDILI_MEVDUAT_HESABI POS CEK YATIRIM \n \n \n TR.OHVPS.DataCode.HspTur \n Hesabın bireysel veya ticari nitelikte olduğunu belirtir: B: Bireysel T: Ticari \n \n \n TR.OHVPS.DataCode.IslemAmaci \n 01: Konut Kirası Ödemesi 02: İş yeri Kirası Ödemesi 03: Diğer Kira Ödemesi 04: E-Ticaret Ödemesi: Elektronik ticaret işlem amaçlı aktarımlar 05: Çalışan Ödemesi: Maaş, harcırah, prim gibi çalışan ödemeleri 06: Ticari ödeme: Ticari işletmelerin birbirlerine, kendi hesaplarına veya müşterilerine ödemeleri, borç, ithalat, ihracat, şirket satın alma, vb. kapsamında ödemeler 07: Bireysel Ödeme: Özel amaçlı (aile bireylerine, hediye, bağış, borç, alışveriş vs.) ödemeler 08: Yatırım: Mevduat, menkul kıymet, döviz, gayrı menkul, taşıt, varlık alımı, temettü ödeme, tahsilat vb. gibi yatırım amaçlı ödemeler 09: Finansal: Kredi, depo, repo, türev, finansal varlık alım/satımı vb. ödemeler 10: Eğitim ödemesi 11: Aid
16at ödemesi 12: Gayrimenkul alım ödemesi 13: Motorlu taşıt alım ödemesi 14: Borç verme/Borç ödeme 15: Hediye/bağış/yardım 16: Vergi/resim/harç ödemesi 17: Tazminat/sigorta ödemesi 18: Avukatlık/Danışmanlık/Müşavirlik Ödemesi 19: Sağlık ödemesi 20: Kripto/dijital varlık 21: Şans oyunları/bahis ödemesi 22: Eğlence/sosyal medya ödemesi 99: Diğer \n \n \n TR.OHVPS.DataCode.IslemTuru \n Hesap hareketleri (işlemler) sorgusunda dönülen İşlem Türü (islTur) parametresi aşağıdaki değerlerden birini alabilir: HAVALE EFT FAST PARA_YATIRMA PARA_CEKME YABANCI_PARA_HAVALE YATIRIM_HESABINA_AKTARIM YATIRIM_HESABINDAN_AKTARIM KURUM_FATURA_ODEMESI CEK SENET SIGORTA_ODEMESI UCRET_KOMISYON_FAIZ SGK_ODEMESI VERGI_ODEMESI DOVIZ_ALIM DOVIZ_SATIM KREDI_ODEMESI KREDI_KULLANIM KK_ODEMESI KK_NAKIT_AVANS SANS_OYUNU UYE_ISYERI_ISLEMLERI HGS_OGS_ISLEMLERI DOGRUDAN_BORCLANDIRMA_SISTEMI DIGER \n \n \n TR.OHVPS.DataCode.IzinTur \n 01: Temel Hesap Bilgisi 02: Ayrıntılı Hesap Bilgisi 03: Bakiye Bilgisi 04: Temel İşlem (Hesap Hareketleri) Bilgisi 05: Ayrıntılı İşlem Bilgisi 06: Anlık Bakiye Bildirimi 07: Temel Kart Bilgisi 08: Detaylı Kart Bilgisi 09: Ayrıntılı Kart İşlem Bilgisi \n \n \n TR.OHVPS.DataCode.KareKodAksTur \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  01: FAST katılımcısından dinamik doğrulamalı hizmet alınan işyeri ödemesi 02: FAST katılımcısından statik doğrulamalı işyeri ödemesi 03: Kişiden kişiye ödemeler \n \n \n TR.OHVPS.DataCode.KaynakTip \n HESAP_BILGISI_RIZASI  ODEME_EMRI_RIZASI   ODEME_EMRI   ILERI_TARIHLI_ODEME_EMRI_RIZASI   ILERI_TARIHLI_ODEME_EMRI   DUZENLI_ODEME_EMRI_RIZASI  DUZENLI_ODEME_PLANI  DUZENLI_ODEME_EMRI   BAKIYE    COKLU_ISLEM_TALEBI    HHS    YOS   KART_BILGILERI \n \n \n TR.OHVPS.DataCode.KimlikTur \n Kod, Tip, Format K , TCKN , N11 M , MNO , AN1..30 (HHS’ye özel bireysel veya kurum müşteri numarası) Y , YKN , N11 P , PNO , AN7..9 \n \n \n TR.OHVPS.DataCode.KolasHspTur \n Hesabın bireysel veya ticari nitelikte olduğunu belirtir: B: Bireysel T: Ticari \n \n \n TR.OHVPS.DataCode.KolasTur \n Müşterinin sorgulama istediği Kolay Adres Tipi değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır: T: Telefon Numarası E: E-Posta K: TCKN V: VKN Y: YKN P: Pasaport Numarası \n \n \n TR.OHVPS.DataCode.KurumKimlikTur \n Kod, Tip, Format K , TCKN , N11 M , MNO , AN1..30 (HHS’ye özel bireysel veya kurum müşteri numarası) V , VKN , AN10 \n \n \n TR.OHVPS.DataCode.LogoArkaPlan \n B :  Logoların arka planının beyaz olması (Erkek Logo)   K : Logoların arka planının renkli/koyu olması (Dişi Logo) \n \n \n TR.OHVPS.DataCode.LogoFormat \n SVG :  Logonun svg formatında olmasını ifade eder. Logonun 1:2 oranında olması gerekmektedir.   PNG : Logonun png formatında olmasını ifade eder. Logonun 500 X 1000 px olması gerekmektedir. \n \n \n TR.OHVPS.DataCode.LogoTur \n FULL_LOGO   : Yazı ve ikon şekillerin bir arada olduğu logo   ICON_LOGO : İkon şekillerin olduğu ( Sadece görsel olan-yazısız ) logo \n \n \n TR.OHVPS.DataCode.OdemeAmaci \n Ödemenin Amacına yönelik olarak aşağıdaki değerlerden birini alır: 01: Konut Kirası Ödemesi 02: İş yeri Kirası Ödemesi 03: Diğer Kira Ödemesi 04: E-Ticaret Ödemesi: Elektronik ticaret işlem amaçlı aktarımlar 05: Çalışan Ödemesi: Maaş, harcırah, prim gibi çalışan ödemeleri 06: Ticari ödeme: Ticari işletmelerin birbirlerine, kendi hesaplarına veya müşterilerine ödemeleri, borç, ithalat, ihracat, şirket satın alma, vb. kapsamında ödemeler 07: Bireysel Ödeme: Özel amaçlı (aile bireylerine, hediye, bağış, borç, alışveriş vs.) ödemeler 08: Yatırım: Mevduat, menkul kıymet, döviz, gayrı menkul, taşıt, varlık alımı, temettü ödeme, tahsilat vb. gibi yatırım amaçlı ödemeler 09: Finansal: Kredi, depo, repo, türev, finansal varlık alım/satımı vb. ödemeler 10: Eğitim ödemesi 11: Aidat ödemesi 12: Gayrimenkul alım ödemesi* 13: Motorlu taşıt alım ödemesi* 14: Borç verme/Borç ödeme* 15: Hediye/bağış/yardım* 16: Vergi
16/resim/harç ödemesi* 17: Tazminat/sigorta ödemesi* 18: Avukatlık/Danışmanlık/Müşavirlik Ödemesi* 19: Sağlık ödemesi* 20: Kripto/dijital varlık* 21: Şans oyunları/bahis ödemesi* 22: Eğlence/sosyal medya ödemesi*   Liste içerisinde * ile işaretlenen \'Ödeme Amacı\' değişiklikleri, TCMB geçiş süreciyle senkronize şekilde, 02 Nisan 2026 gün sonu ile birlikte devreye alınacaktır. \n \n \n TR.OHVPS.DataCode.OdemeDurumu \n Ödemenin durumunu gösterir. Alabileceği değerler: 01: Gerçekleşti (Ödeme ilgili ödeme sistemine iletildi ve alıcı hesabına ulaştı.)  02: Gönderildi (Ödeme ilgili ödeme sistemine iletildi ancak alıcı hesabına ulaştığına dair teyit alınmadı.)İşlemin son durumunun teyidi için YÖS sorgulama yapmalıdır. 03- Gerçekleşmedi (Ödemenin ilgili ödeme sistemine işletiminde veya işlenmesi sırasında hata, zaman aşımı, sistemin gün sonu işlemlerine başlaması vb. durum oluştu ve ödeme gereçeklemedi veya iade edildi.) 04- Onayda bekliyor (Ö
16deme emri veya ileri tarihli ödeme emri alındı. Çoklu onay akışının tamamlanması bekleniyor.) 05- Ödeme Bekleniyor ( Ödeme Sistemine gönderilmeden önceki statüdür.) 06- Kısmen Gerçekleşti ( İleri tarihli ve düzenli ödeme talimatlarında kısmi ödeme yapılan işlemler için geçerli statüdür.) 07- İptal Edildi ( Ödeme sistemine gönderilmeden önce müşteri ya da herhangi bir sebepten iptal edilen durumlarda kullanılabilir.) \n \n \n TR.OHVPS.DataCode.OdemeKaynak \n I: İnternet bankacılığından gönderilen ödemelerde kullanılır. A: Otomatik para makineleri (ATM) ile gönderilen ödemelerde kullanılır. T: Telefon bankacılığı ile gönderilen ödemelerde kullanılır. K: Kiosklar aracılığıyla gönderilen ödemelerde kullanılır. S: Şubeden girilen ödemelerde kullanılır. M: Mobil uygulamadan gönderilen ödemelerde kullanılır. D: Yukarıdakiler dışındaki ödeme kaynaklarından gönderilen ödemelerde kullanılır.  O: Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır. \n \n \n TR.OHVPS.DataCode.OdemeSistemi \n İşlemin yönlendirildiği Ödeme Sistemine göre aşağıdaki değerlerden birini alabilir: H: Havale F: FAST E: EFT (PÖS) değerlerinden birini alabilir. \n \n \n TR.OHVPS.DataCode.OhkTur \n B: Bireysel  K: Kurumsal \n \n \n TR.OHVPS.DataCode.OhkTanimTip \n TCKN: TCKN   (ohkTanimDeger N11 olarak gönderilmelidir.)  MNO:        HHS’ye özel bireysel veya kurum müşteri numarası (OHKTanimDeger AN1..30 olarak gönderilmelidir. )   YKN:      Yabancı Kimlik Numarası (OHKTanimDeger N11 olarak gönderilmelidir.)    PNO:      Pasaport numarsı (ohkTanimDeger AN7..9 olarak gönderilmelidir.)    GSM:       Cep telefonu numarası (ohkTanimDeger N10 olarak gönderilmelidir.)   IBAN:    IBAN numarası (OHKTanimDeger AN26 olarak gönderilmelidir.) \n \n \n TR.OHVPS.DataCode.OlayTip \n KAYNAK_GUNCELLENDI  AYRIK_GKD_BASARILI AYRIK_GKD_BASARISIZ HHS_YOS_GUNCELLENDI \n \n \n TR.OHVPS.DataCode.YOSDurumu \n A : Açık. Üretim Ortamında YÖS’ün aktif bir şekilde hizmet vermesi durumu.   G : Geçici Hizmet Veremiyor. YÖS servislerinde teknik bir sorun olması nedeniyle YÖS\'ün hizmet verememesi durumu.   K: Kapalı. YÖS\'ün hizmet vermeme durumu. \n \n \n TR.OHVPS.DataCode.PSUInitiated \n ‘E’ : Evet  ‘H’ : Hayır   ‘O’ : Olay Bildirim \n \n \n TR.OHVPS.DataCode.RizaDurumu \n B: Yetki Bekleniyor Y: Yetkilendirildi K: Yetki Kullanıldı E: Yetki Ödeme Emrine/Talimata Dönüştü S: Yetki Sonlandırıldı I :Yetki Iptal \n \n \n TR.OHVPS.DataCode.RizaIptDtyKod \n ‘01’ :Yeni Rıza Talebi ile İptal ‘02’ :Kullanıcı İsteği ile HHS üzerinden İptal ‘03’ :Kullanıcı İsteği ile YÖS üzerinden İptal ‘04’ :Süre Aşımı : Yetki Bekleniyor ‘05’ :Süre Aşımı : Yetkilendirildi ‘06’ :Süre Aşımı : Yetki Ödemeye Dönüşmedi ‘07’ :GKD iptali : Aynı rıza no ile mükerrer çağrımı ‘08’ :GKD iptali : Rızano ile TCKN uyuşmaması ‘09’ :GKD iptali : Uygun ürünü bulunmuyor ‘10’ :GKD iptali : HHS Açık Bankacılık kanalı işleme kapalı ’11’ :GKD iptali : Hesap Yetki Sorunu ‘12’ :GKD iptali : ÖHK HHS kontrollerini aşamadı ‘13’ :GKD iptali : ÖHK isteği ile GKD’den vazgeçildi ‘14’ :GKD iptali : Fraud Şüphesi ‘15’ :Hesap Rıza Güncelleme Talebi ile İptal  ‘99’ :GKD iptali : Diğer \n \n \n TR.OHVPS.DataCode.RizaTip \n H: Hesap Bilgisi Rızası O: Ödeme Emri Rızası  I: İleri Tarihli Ödeme Emri Rızası D: Düzenli Ödeme Emri Rızası \n \n \n TR.OHVPS.DataCode.SrlmYon \n ‘A’: Azalan değerle sıralama ‘Y’: Artan değerle sıralama \n \n \n TR.OHVPS.DataCode.VarYok \n 0 : Kayıt Yok   1 : Kayıt Var \n \n \n TR.OHVPS.DataCode.YetTip \n Alabileceği değerlere göre hangi belirtecin döneceğine karar verilir. yet_kod yenileme_belirteci \n \n \n TR.OHVPS.DataCode.ZmnAralik \n 0 : Kayıt Yok  1 : 0-2 saat 2 : 2 saat 1 dakika-24 saat  3 : 1-3 gün   4 : 4-15 gün\t  5 : 16 gün ve üstü \n \n \n TR.OHVPS.DataCode.HizmetTipi \n 01 :  Ayrık GKD  02 : İleri Tarihli Ödeme 03 : Düzenli Ödeme \n \n \n TR.OHVPS.DataCode.OdemePeriyodu \n G :  Günlük  H : Haftalık A : Aylık D : Diğer \n \n \n TR.OHVPS.DataCode.KartTip \n B 
16: Banka Kartı  K : Kredi Kartı P : Ön Ödemeli(Prepaid) Kart \n \n \n TR.OHVPS.DataCode.AltKartTip \n A : Asıl  E : Ek Kart S : Sanal Kart \n \n \n TR.OHVPS.DataCode.KartStatu \n A : Açık/Aktif  P : Pasif I : İptal \n \n \n TR.OHVPS.DataCode.IslemPuanDurumu \n 01 : Puan Kazanımı  02: Puan Kullanımı  03: Puan İade  04: Puan İptal \n \n \n TR.OHVPS.DataCode.KartSema \n T : TROY  M : Mastercard V : Visa U : UnionPay A : American Express J : JCB \n \n \n TR.OHVPS.DataCode.KartTuru \n B : Bireysel  T :Ticari \n \n \n TR.OHVPS.DataCode.KartFormu \n F : Fiziksel  D :Dijital \n \n \n TR.OHVPS.DataCode.EkstreStatu \n A : Aktif  P : Pasif \n EK-3: İstemci Sertifikalarının Tanım ve Yönetimi \n Tüm katılımcıların GEÇİT\'e erişebilmesi için, BKM tarafından yapılan istemci sertifika doğrulamasından geçmesi gerekmektedir. İstemci sertifikası üretilmeden önce katılımcıların CSR üretme akışını tamamlaması gerekmektedir. \n OpenSSL ile CSR (Certificate Signing Request) Oluşturma \nAşağıdaki komut ile 2048-bit RSA private key ve CSR oluşturulur. \nopenssl req -new -newkey rsa:2048 -nodes -keyout PRIVATEKEY.key -out CSR.csr \n CSR ile ilgili detay bilgilerin girişinde; \nCommon Name (CN) olarak 4 karakterli hhsKod ya da yosKod değeri ile, \ndiğer alanlar için de kurum bilgileriniz ile giriş yapılır. \n Tüm bilgilerin girilmesinden sonra oluşan private key dosyası kurumunuzda saklanır.\nCSR dosyası ise istemci sertifika üretmek üzere kullanılır. Bu aşamada takip edilmesi gereken adımlar şu şekildedir: \n Katılımcıların, TRIP ortamı üzerinden, BKM Tarafından yetki verilmiş kullanıcılarının görebileceği "İstemci Sertifika Talebi" menü adımına giriş yapmaları beklenir. Açılan ekranda,"CSR Dosyası Yükleme" alanı içerisine, katılımcının üretmiş olduğu csr dosyası yüklenir. Yaklaşık 1 dakika içerisinde kuruma özel olarak üretilmiş olan client sertifikası indirilmeye hazır hale gelecektir. "İndir" butonu ile client sertifika indirilir. İstemci tarafında web isteğinin ilgili sertifika ile ilişkilendirilerek oluşturulması gerekmektedir. \n Uzun dönemli olarak hazırlanacak olan sertifikalar sertifikasyon ve üretim ortamlarında kullanılacaktır. Sertifikaların işlevselliği ve geçerliliği bu aşamalarda sınanacaktır. \n GEÇİT\'in test ve üretim ortamları ayrımında istemci sertifikaları, HHS Listeleme API erişimleri ve Sertifikasyon bağlantıları Şekil 15-HHS/YÖS API Mimarisi Diagramında resmedilmiştir. \n EK-4: Sunucu Sertifikaları \n Sunucu sertifikalarının endpoint bilgisini (Fqdn) içerecek ve global bir Certification Authority tarafından imzalanmış olarak sunulması gerekmektedir.\nÖrneğin; entegrasyon formu içerinde yer alan URL bilgisinin (test.xbank.com.tr) sertifika içerisinde tanımlı olması ve bu sertifikanın global bir CA örneğin Verisign tarafından imzalanmış olarak sunulması gerekmektedir. \n Hizmet sağlayıcı olan HHS\'ler tarafından sunucu sertifikaları uygulanmalıdır. \n EK-5: Mesaj İmzalama Akışı \n Dijital imzalama yapısı, ÖHVPS API’de gerçekleştirilen işlemlerin ve taşınan verilerin bütünlük ve inkâr edilemezliğini sağlamak amacıyla kurgulanmıştır.  İmzaların kaynak bazında hangi istek ve yanıtlara uygulandığı belirlidir. \n API yalnızca TLS\'ye dayanırsa, dijital kayıtları ve inkâr edilemezlik kanıtlarını tutmak zor olur. Bu nedenle, TLS\'ye dayanmayan bir inkâr edilemezlik çözümü olarak API isteğinin HTTP başlığında bir JWS kullanılarak sağlanabilir. \n HTTP isteğinin gövdesinin hash fonksiyonu (SHA256) ile özeti alınacaktır. Elde edilen özet, asimetrik anahtarları destekleyen bir algoritma kullanılarak imzalanacak ve JWS elde edilecektir. İsteğin kendinize geldiği durumda body üzerinde hiç bir değişikliğe tabi tutmadan (serialize/deserialize, minify, trim, vb yapmadan) doğrulama yapmanız gerekmektedir. Aynı şekilde isteğin kendinizden çıktığı aşamada da response body üzerinde hiç bir değişikliğe tabi tutmadan (serialize/deserialize, minify, trim, vb yapmadan) mesaj imzalama yapılmalıdır. \n Bu kapsamda imzalama akışı aşağıdaki gibi olmalıdır: \n \n HHS ve YÖS öncelikle özel ve açık anahtarlarını oluşturmalıdır. Bu anahtarları oluşturmak için aşağıda “openssl” kullanılarak oluşturma örneği paylaşılmıştır. Bu anahtarlardan özel olan anahtar mesajı imzalamak için kullanılacak olup, açık anahtar ise mesajı doğrulamak amacıyla mesajın alıcısı tarafından kullanılacaktır. \n \n Özel anahtarın oluşturulması. private.pem => Özel anahtar  \n openssl genrsa -out private.pem 2048 \n Özel anahtardan açık anahtarın oluşturulması. public_key.pem => Açık anahtar (BKM ile paylaşılacak açık anahtar) \n openssl rsa -in private.pem -pubout -outform PEM -out public_key.pem \n Opsiyonel olarak özel anahtarın PCKS8 formatına çevrilmesi (Java açısından PCKS8 formatında olma ihtiyacı nedeniyle). private_key.pem => Özel anahtarın formatlanmış hali.  \n openssl pkcs8 -topk8 -inform PEM -in private.pem -out private_key.pem –nocrypt \n \n \n Açık ve Özel anahtarlar oluşturulduktan sonra Açık Anahtar BKM ile paylaşılır. BKM bu açık anahtarı diğer katılımcıların ulaşabilmesi ve alabilmesi için bir Anahtar Deposu yaklaşımı ile bünyesinde tutar. İlgili anahtarı iletebilmek ve alabilmek için kullanılacak HHS/YOS API ye erişim detayları EK-6 bölümünde detaylı olarak paylaşılmıştır.  Eğer kurumun ilgili anahtar çiftinin yenilenme durumu söz konusu ise yenilemenin hemen ardından açık anahtar yeni bir imzalama yapılmadan önce mutlaka BKM ile paylaşılmalıdır. \n \n \n İmzalı mesajı açacak olan kurum mesajı imzalayan kurumun açık anahtarını her sorguda yeniden almak durumunda değildir. Belirli periyodlarda kendi ortamındaki anahtarı yenileyerek sistemi işletebilir. Ancak imzalayan kurum anahtar çifti yenilemesi yaptığında BKM ile açık anahtarını paylaşsa dahi 
16imzalı mesajı doğrulayacak taraf eski açık anahtar ile doğrulama yapmaya çalıştığı için hata alacaktır. Bu ilk hata durumunda hızlıca BKM üzerinden yeni anahtarı alıp mesajı tekrar doğrulamayı denemelidir. Eğer yine hata alıyor ise doğrulama işlemini hata statüsüne almalıdır. Bu sebeple anahtar yenileyen kurum yeni açık anahtarını yeni bir mesaj imzalama yapmadan önce mutlaka BKM ile paylaşmalıdır. \n \n \n PSU-Fraud-Check alanı için de JWT formatında çıktı hazırlanması beklenmektedir. Örnek bir PSU-Fraud-Check payload değeri aşağıdaki gibidir; \n {"AnomalyFlag": "0", \n"LastPasswordChangeFlag": "1", \n"FirstLoginFlag": "1", \n"DeviceFirstLoginFlag": "1", \n"BlacklistFlag": "0", \n"MalwareFlag": "0", \n"UnsafeAccountFlag": "0", \n"exp": 1663424479, \n"iat": 1663338079, \n"iss": "[https://apigw.bkm.com.tr|https://apigw.bkm.com.tr/]" } \n İmzalama Kuralları (YÖS) \n Bir YÖS üzerinden başlayan akış örnek olarak paylaşılmıştır. \n \n \n YÖS, mesaj imzalama gerektiren her API isteğinin HTTP gövdesini (request body) kendi özel anahtarı ile şifreleyerek imza bilgisini oluşturur. \n \n \n Ardından bu imza verisini, göndereceği mesajın istek başlığında yer alan X-JWS-Signature alanında göndermelidir. \n \n \n X-JWS-Signature alanında gönderilecek olan bilgi aşağıdaki yöntem ile oluşturulmalıdır. \n \n \n Bu alana yazılacak olan bilgi JWT formatında oluşturulmalıdır. \n \n \n Bir JWT, header-payload-signature alanlarından oluşmaktadır. \n \n Header alanında JWT’yi imzalamak için kullanılacak algoritma belirtilmelidir.  Standartlar kapsamında RS256 kullanılacaktır. \n Payload kısmında özel olarak oluşturulacak olan “body” claim alanına istek gövdesi (request body) verisinin SHA256 hash değeri karşılığı yazılmalıdır. \n JSON payload oluşturulurken RFC 7519 baz alınmalıdır. "iss" (Issuer) Claim, "exp" (Expiration Time) Claim, "iat" (Issued At) Claim, “body” Claim alanlarının gönderilmesi zorunludur. ^RFC7519 \na.\t"iss" (Issuer) Claim : Kurumunuza özel bilgidir. \nb.\t"exp" (Expiration Time) Claim: Saniye cinsinden (Unix time) imzanın son geçerli olduğu tarih. Bu tarih  mevcut sunucu saatinizden 60 dakika sonra olacak şekilde kullanılmalıdır. \nc.\t"iat" (Issued At) Claim : Saniye cinsinden (Unix time) imzanın oluşturulduğu tarih. Bu tarih  mevcut sunucu saatinizden 5 dakika önce olacak şekilde kullanılmalıdır. \nd.\t“body” Claim : istek gövdesi (request body) verisinin SHA256 hash değeri karşılığı. \n Signature alanında da özel anahtar ile imzalanmış olan imza içeriği yer alacaktır. \n \n X-JWS-Signature:   JWS imzasını içeren üstbilgi. Bu başlığın ne zaman belirtilmesi gerektiği hususu ilgili endpoint için belirtilmiştir. \n Örnek X-JWS-Signature Payload Değeri \n { \n"iss": "https://apigw.bkm.com.tr", \n"exp": 1646832405, \n"iat": 1646746005, \n"body": "c543072f97a761a1d891dc81acc380bc1e6f61ca6541bd93ebfdece338457922" \n} \n \n \n \n \n YÖS, isteği gönderir. Sadece mesajın bütünlüğünü ve doğruluğunu teyit amacı ile istek gövdesi (request body) SHA256 hash değeri imzalanarak X-JWS-Signature alanında bu imza iletilir. İsteğin gövde (request body) kısmı açık ve şifresiz olarak gönderilmektedir. \n \n \n HHS, isteği alır, talebi gerçekleştirmeden önce aldığı API isteklerinin imzasını doğrulamalıdır. X-JWS-Signature alanındaki JWT aşağıdaki adımlarla doğrulanmalıdır. \n \n Header kısmındaki algoritmanin RS256 olduğu kontrol edilir. \n Gönderen kurumun açık anahtarı ile JWT verify (doğrulama) işlemi yapılır. \n Yukarıdaki işlemlerin doğruluğunun ardından JWT’nin payload kısmındaki “body” claim alanındaki bilginin, isteğin gövde verisinin SHA256 hash değerlerinin aynı olduğu kontrol edilir. \n Örnek checksum değeri   "a64b19f95eeb1fb0a0a3e2dbbc6e3d8472c52184d4543417ddc6d156fc5c5571" veya   "A64B19F95EEB1FB0A0A3E2DBBC6E3D8472C52184D4543417DDC6D156FC5C5571" şeklinde olabilir. İki hali de aynı değere sahiptir. Kontrollerde buna dikkat edilmesi gerekmektedir. \n \n \n \n Yukarıdaki işlemler ile doğruluğu teyit edilmiş olan isteğin talebi gerçekleştirir. \n \n \n Eğer istek doğrulanamıyor ise gönderen kurumun açık ve özel anahtar çifti yenilenmiş olabilir. \n \n \n BKM HHS API  üzerinden ilgili kurumun bilgilerini (kurum ko
16du vs) kullanarak kurumun detay bilgileri çeker ve kendi ortamında yeniler. \n \n \n Ardından imzayı tekrar açık anahtar ile doğrulayarak kontroller gerçekleştirilir. (Eğer halen doğrulama işlemi başarısız ise bu istek için hata akışı çalıştırılır.  TR.OHVPS.Resource.InvalidSignature  kodu ile hata üretilebilir.) \n \n \n İmza bilgisinin beklendiği (x-jws-signature) servislerde, bu bilginin iletilmediği durumlarda  TR.OHVPS.Resource.MissingSignature  hatası üretilebilir. \n \n \n HHS isteği işledikten sonra cevabı oluştururken de yukarıdaki akışlar ile göndereceği cevabı imzalamalıdır. \n \n \n İstek yanıt gövdesinin SHA256 checksum değeri için hexadecimal çıktı kullanılacaktır. Oluşacak çıktının 64 karakter olması beklenmektedir. Kontrol için "^[A-Fa-f0-9]{64}$" RegEx tarifini kullanabilirsiniz. \n \n \n Örnek bir gövde: \n {"katilimciBlg":{"hhsKod":"8000","yosKod":"8000"},"gkd":{"yetYntm":"Y","yonAdr":"https://boss-test.bkm.com.tr/boss/ab/yosSimulator/8000?drmKod=6021de9f-55e7-454a-94be-2044866b22e1"},"kmlk":{"kmlkTur":"M","kmlkVrs":"123456","ohkTur":"B"},"hspBlg":{"iznBlg":{"iznTur":["01","02","03","04","05"],"erisimIzniSonTrh":"2022-10-12T23:59:59+03:00","hesapIslemBslZmn":"2021-10-10T00:00:00+03:00","hesapIslemBtsZmn":"2023-10-10T23:59:59+03:00"}}}\n \n Bu gövdenin checksum\'ı: \n a64b19f95eeb1fb0a0a3e2dbbc6e3d8472c52184d4543417ddc6d156fc5c5571\n \n Bu checksum\'ın iletildiği x-jws-signature başlık değeri: \n eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FwaWd3LmJrbS5jb20udHIiLCJleHAiOjE2NjU0NzU1NjIsImlhdCI6MTY2NTM4OTE2MiwiYm9keSI6ImE2NGIxOWY5NWVlYjFmYjBhMGEzZTJkYmJjNmUzZDg0NzJjNTIxODRkNDU0MzQxN2RkYzZkMTU2ZmM1YzU1NzEifQ.Q65PI_1fTEzzBMirvmJvXgVX3orhhZ4_UqujtGdHkU7me-1ymIjvPrzy3kfyER1pedFb7HDCBuPvYoqjX8eUnpiiZsxfzCiEa0McIhoFeUOggq-O8VihItp8bLr2DWwQ9JHN1-WXB2mL31KAKFAL1VY9-DXuAdT-RfE_SLYsl2ycmNy4ti4XvfDvvlE56ZsieFZ727VuwR8wi7F0kKDc6UhjaMF9xcUeAM1fxX-bmcOaOo1NZGC0vvgjNZKz_OJrN-q8VhWYnQPiJ7wY7S9IG8bHIkBImKSVf8LuOEvl8u0BZzADLH1iOBd9x2l1plyI_NLPTrnOqhWhKlljkkJBCg\n \n Eğer PSU-Fraud-Check için başlık gönderilecekse, yine JWT formatında imza üretilmelidir. Örnek bir psu-fraud-check başlık değeri: \n eyJhbGciOiJSUzI1NiJ9.eyJBbm9tYWx5RmxhZyI6IjAiLCJMYXN0UGFzc3dvcmRDaGFuZ2VGbGFnIjoiMSIsIkZpcnN0TG9naW5GbGFnIjoiMSIsIkRldmljZUZpcnN0TG9naW5GbGFnIjoiMSIsIkJsYWNrbGlzdEZsYWciOiIwIiwiTWFsd2FyZUZsYWciOiIwIiwiVW5zYWZlQWNjb3VudEZsYWciOiIwIiwiZXhwIjoxNjY1NDc1NTU2LCJpYXQiOjE2NjUzODkxNTYsImlzcyI6Imh0dHBzOi8vYXBpZ3cuYmttLmNvbS50ciJ9.DhUh_nsXDuNIrvsQ3KOhOXdVcJg6fTDVW8K1oea8kLtmb7n-_hJHY3mWX5zzobu-Vh2VvFzIxPhHtol6gLHFktmIMiQ9TDHb_mRZFXgJB4ToNfqc3Fy9mi5bS8By2IYi1HxDaCStstaZDaunzXfHCtqybfZXyk6teDrf-iIf6lqX9Keo7GZO-Y7mP7C13-c_QwyNKrZK4TZwUQbecRqXYn1DcEHM7kukQHTar_hKBWkXPmNpScY0J2rKksr4ejR1uLhdQm-Pdwoe9y6qrNEB79vMLBkRNtbuV0vc1GYHp_YKkzBKBI_58uuB2GD9877CsrcRnHMQb88xpxiPKh6-ew\n EK-6: HHS/YÖS API Mimarisi \n HHS/YÖS API Uygulama Mimarisinde Test ve Üretim ortamlarında aşağıdaki alanda yer almaktadır. \n \n Şekil 15: HHS/YÖS API Mimarisi \n'},{title:"Güçlü Kimlik Doğrulama",frontmatter:{},regularPath:"/v2.0.0/contents/erisim-belirteci.html",relativePath:"v2.0.0/contents/erisim-belirteci.md",key:"v-14ad9962",path:"/v2.0.0/contents/erisim-belirteci.html",headers:[{level:2,title:"Yetkilendirme Kodu API",slug:"yetkilendirme-kodu-api"},{level:2,title:"Erişim Belirteci API",slug:"erisim-belirteci-api"}],content:' Güçlü Kimlik Doğrulama  \n \n ÖHK\'nın YÖS uygulamasından HHS uygulamasına yönlendirilmesi ile başlanan güçlü kimlik doğrulama süreci,  Oauth 2.0 standartları gereği öncelikle yetkod değerinin YÖS\'e iletilmesi ile başlar ve erişim belirtecinin alınması sonucunda başarı ile sonuçlanmış olur. \n Güçlü Kimlik Doğrulama için Erişim Adresleri (Endpoints) \n Etki Alanı (Scope) =“hesap_bilgisi”  "odeme_emri" \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu (Z)/ İsteğe Bağlı(İ) \n Yetkilendirme Türü \n İmzalama \n Parametre \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n yetkilendirme-kodu \n GET \n /yetkilendirme-kodu \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n \n \n yetkilendirmeKodu \n \n \n 2 \n erisim-belirteci \n POST \n /erisim-belirteci \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n ErisimBelirteciIstegi \n ErisimBelirteci \n Yetkilendirme Kodu API \n GET /yetkilendirme-kodu \n Ayrık GKD sürecinde kullanılacak olan Yetkilendirme Kodu API\'nin  HHS tarafından sunulması gerekmektedir. \n Ayrık GKD akışında; HHS, YÖS\'ün olay dinleme servisine "AYRIK_GKD_BASARILI" olay tipi ile olay bildirimi yapar. Böylece ÖHK\'nın kendi sistemine başarı ile login olduğunu ve yetKod değerinin ÖHK ile ilişkilendirildiğinin bilgisini Y
16ÖS\'e iletmiş olur.  \nHHS olay bildirimi için retry policy süreçleri kapsamında 1 dakikada 3 kez deneme yapabilir. YÖS\'e olay bildirimi yapılmamış ise, kendisine gelmeyen olay bildirimi için yetkod\'un geçerli olduğu 5 dakika boyunca yetkilendirme-kodu endpointi ile sorgulama yaparak yetkod değerini alabilir. \n YÖS, "ODEME_EMRI_RIZASI" kaynağı için bildirim yapıldı ise; GET /yetkilendirme-kodu endpointi ile yetkod sorgusu yapılır. \nÖrnek çağrım :\n GET /yetkilendirme-kodu?rizaNo=123&rizaTip=O \n YÖS, "ILERI_TARIHLI_ODEME_EMRI_RIZASI" kaynağı için bildirim yapıldı ise; GET /yetkilendirme-kodu endpointi ile yetkod sorgusu yapılır. \nÖrnek çağrım :\n GET /yetkilendirme-kodu?rizaNo=123&rizaTip=I \n YÖS, "DUZENLI_TEKRARLI_ODEME_EMRI_RIZASI" kaynağı için bildirim yapıldı ise; GET /yetkilendirme-kodu endpointi ile yetkod sorgusu yapılır. \nÖrnek çağrım :\n GET /yetkilendirme-kodu?rizaNo=123&rizaTip=D \n YÖS, "HESAP_BILGISI_RIZASI" kaynağı için bildirim yapıldı ise; GET /yetkilendirme-kodu endpointi ile yetkod sorgusu yapılır. \nÖrnek çağrım :\n GET /yetkilendirme-kodu?rizaNo=123&rizaTip=H \n İSTEK: \n YÖS, rıza numarasını ve isteğin ÖBH ya da HBH olmasına göre değişen rıza tipini parametre olarak istek talebine ekler. Rıza tipinin alabileceği değerler  TR.OHVPS.DataCode.RizaTip  sıralı veri tiplerinde belirtilmiştir. \n HHS\'nin, yetkilendirme yöntemi "Ayrık Gkd" ise  rıza numarası ile yetki kodu değerini dönmesi beklenmektedir. Yönlendirmeli GKD için bu endpoint "yetKod" değerini dönmemelidir. Yönlendirmeli GKD’ye ait bir rıza no ile yetkilendirme kodu API kullanılarak yet_kod alınmak istendiğinde HHS tarafından  TR.OHVPS.Resource.NotFound  hatası verilmelidir. \n YANIT: \n HHS yanıt nesnesi içerisinde, ÖHK\'ya ait yetki kodunu, rıza no ve rıza durumu ile birlikte YÖS\'e iletir. \n \n \n \n Alan Adı \n JSON Alan Adı \n Format:Veri modeli İsmi \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Yetki Kodu \n yetKod \n AN1..255 \n Z \n GKD sürecinde üretilen yetkilendirme kodudur. Tek kullanımlık olup, aynı yetKod ile birden fazla token alınamaz. yetKod Parametresinin yaşam ömrü 5 dakika olmalıdır. \n \n \n RızaNo \n rizaNo \n AN1..128 \n Z \n Rıza nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n \n Ayrık GKD sürecinde, yetkod değerini alan YÖS; erişim belirteci API ile GKD sürecini tamamlar. \n Erişim Belirteci API \n POST /erisim-belirteci \n İSTEK: \n YÖS erisim-belirteci erişim adresini 2 amaçla kullanır: \n \n \n Bir önceki adımdan aldığı rizaNo, rizaTip (ödeme emri başlatma hizmetinde “O”, hesap bilgisi hizmetinde “H”, ileri tarihli ödeme emri başlatma hizmetinde "I") ve GKD sonrası dönülen yetKod bilgilerini kullanarak HHS nezdinde ErisimBelirteci nesnesi oluşturmak üzere istekte bulunur. YÖS’ün istekte bulunabilmesi için GKD adımının başarılı bir şekilde tamamlanması rizaDrm bilgisinin ‘yetkilendirildi’ olması gerekir. Erişim Belirteci nesnesi ile rızası nesnesi (Ödeme Emri Rızası, Hesap Bilgisi Rızası veya İleri Tarihli Ödeme Emri Rızası) arasındaki ilişki rıza numarası üzerinden sağlanır. \n \n \n Aldığı erişim belirtecinin Geçerlilik Süresinin dolduğu durumda, yenileme belirteci karşılığında yeni bir erişim belirteci alması gerekmektedir. \n \n \n POST /erisim-belirteci isteğinin (REQUEST) gövdesinde (BODY)  “ErisimBelirteciIstegi” nesnesi (Tablo-23) kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “ErisimBelirteci” nesnesi (Tablo 24) oluşturulur veya (Yenileme Belirteci için) güncellenir. Rıza durumu “Yetki Kullanıldı” olarak güncellenir. \n Erişim Belirteci POST işlemi sonucunda HTTP 200 dönülmesi gerekmektedir. \n “ErisimBelirteciIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format:Veri modeli İsmi \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n RızaNo \n rizaNo \n AN1..128 \n Z \n Rıza nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n Rıza Tipi \n rizaTip \n AN1 \n Z \n O,H,I,D (TR.OHVPS.DataCode.RizaTip) \n \n \n Yetki Tipi \n yetTip \n AN1..50 \n Z \n “yet_kod” yada “yenileme_belirteci” değerini alabilir.  (TR.OHVPS.DataCode.YetTip) \n \n \n Yetki Kodu \n yetKod \n AN1..255 \n K \n GKD işleminden dönen yetkilendirme kodudur. Tek kullanımlık olup, aynı yetKod ile birden fazla token alınamaz. yetKod Parametresinin yaşam ömrü 5 dakika olmalıdır. yetTip = “yet_kod” ise zorunludur. \n \n \n Yenilenme Belirteci \n yenilemeBelirteci \n AN1..4096 \n K \n Erişim belirtecinin yenilenmesi amacıyla kullanılır. yetTip = “yenileme_belirteci” ise kullanımı zorunludur. \n \n \n \n BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “erisimBelirteci” nesnesinde bulunan erişim belirteci değeri ödeme emrinin başlatılması esnasında kullanılır. \n "
16ErisimBelirteci" nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format:Veri modeli İsmi \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Erişim Belirteci \n erisimBelirteci \n AN1..4096 \n Z \n Yetkilendirme Kodu karşılığında HHS tarafından dönülen ve sonraki hesap bilgisi ve ödeme emri servislerine erişimde kullanılan bilgidir. Bölüm 3.6 Karakter Kodlama   bölümünde açıklanan karakter formatında gönderilmesi beklenmektedir. Yenileme belirteci ile birden fazla erişim belirteci alınması durumunda verilen tüm erişim belirteçlerinin süreleri bitene kadar geçerli olmalıdır. \n \n \n Geçerlilik Süresi \n gecerlilikSuresi \n N1..9 \n Z \n Erişim Belirtecini saniye cinsinden geçerlilik süresidir.  Erişim belirteci geçerli olduğu son tarih ; Hesap Bilgisi Rızası için en fazla 30 gün en az ise 1 gün olmalıdır.  Erişimin Geçerli Olduğu Son Tarih(erisimIzniSonTrh); Erişim Belirteci Geçerlilik Süresi\'nden küçük ise Erişimin Geçerli Olduğu Son Tarih değeri ile sınırlıdır. Ödeme Emri Rızası ,İleri Tarihli Ödeme Emri Rızası ve Düzenli Tekrarlı Ödeme Emri Rızası için 5 dakika olmalıdır. \n \n \n Yenileme Belirteci \n yenilemeBelirteci \n AN1..4096 \n Z \n Erişim belirtecinin yenilenmesi amacıyla kullanılır.   Bölüm 3.6 Karakter Kodlama  bölümünde açıklanan karakter formatında gönderilmesi beklenmektedir.  Yenileme Belirteci ile Erişim Belirteci isteği yapıldığında HHS\'nin döndüğü yanıt içerisindeki yenilemeBelirteci değerini kesinlikle değiştirmemesi gerekmektedir.Yenileme belirteci rıza süresi boyunca güncellenmemelidir. \n \n \n Yenileme Belirteci Geçerlik Süresi \n yenilemeBelirteciGecerlilikSuresi \n N1..9 \n Z \n Yenileme belirtecinin saniye cinsinden geçerlilik süresidir. Yenileme belirtecinin geçerli olduğu son tarih ; Hesap Bilgisi için Erişimin Geçerli Olduğu Son Tarih ile sınırlı olmalıdır. Bu tarih geldiği zaman Hesap Bilgisi Rıza Durumunu ”Yetki Sonlandırıldı” statüsüne çekilmesi gerekir. Ödeme Başlatma için Rıza Oluşturma Zamanından 15 gün sonrası olmalıdır. 15 gün süresi sorgulama servislerinin çağrımını destekleyecek şekilde uzun tutulmuştur. Ödeme emri 5 dakika içinde gerçekleştirilmelidir. Gerçekleşmediğinde 4.2.8 bölümünde aktarılan rıza statü güncellemesi yapılmalıdır.  Yenileme belirteci geçerlilik süresi, İleri Tarihli Ödeme Emri Başlatma için talimatın gerçekleşeceği zamandan 15 gün sonrası olmalıdır. Talimat gerçekleştikten sonrası için 15 gün süreyle sorgulama servislerinin çağrımını destekleyecek şekilde uzun tutulmuştur. Yenileme belirteci geçerlilik süresi, Düzenli Tekrarlı Ödeme Emri Başlatma için talimatın gerçekleşeceği  son ödeme günü  zamanından 5 gün sonrası olmalıdır. Son talimat gerçekleştikten sonrası için 5 gün süreyle sorgulama servislerinin çağrımını destekleyecek şekilde uzun tutulmuştur. \n \n \n \n erisim-belirteci erisim noktasından elde edilen erisimBelirteci, ilişkilendirildiği nesne veya işlem için gönderilen POST isteği başlığında x-access-token alanında iletilir. \n Yenilenme Belirteci (refreshToken) kullanılarak Erişim Belirteci (accessToken) alındığında, dönen yanıttaki Yenileme Belirteci Geçerlik Süresi (yenilemeBelirteciGecerlilikSuresi) geçen süre eksiltilerek, kalan zamanın saniye cinsinden hesaplanmasıyla iletilmelidir. \n Erişim Belirteci API çağrımı sırasında rıza durumları kontrol edilmelidir. Bu kontrollerin nasıl yapılması gerektiği 4-Rıza Durumları bölümünde aktarılmıştır. \n Yenileme belirteci karşılığında yeni bir erişim belirteci alınması sırasında HHS\'nin döndüğü hata yanıtında httpCode = 401 ve errorCode = "TR.OHVPS.Connection.InvalidToken" gelirse YÖS önce rızanın durumu sorgulamalıdır.  \nEğer geçerli bir rıza ise; HHS veya YÖS tarafında bir sorun olduğu anlaşılmalıdır. Sistem tarafından hata üretilmeli ve sorun incelenmelidir. \nEğer geçerli bir rıza değil ise YÖS tarafındaki rıza durumu güncellenmelidir. \n'},{title:"HHS ve YÖS API",frontmatter:{},regularPath:"/v2.0.0/contents/hhs-yos-api.html",relativePath:"v2.0.0/contents/hhs-yos-api.md",key:"v-2b71dd9d",path:"/v2.0.0/contents/hhs-yos-api.html",headers:[{level:2,title:"HHS API",slug:"hhs-api"},{level:2,title:"YOS API",slug:"yos-api"}],content:" HHS ve YÖS API \n HHS API, HHS’lerin detay bilgilerini sunan servistir. Bu servis ile aşağıdaki istek/yanıt yapıları ile ihtiyaç duyulabilecek ilgili bilgiler temin edilebilir. HHS API için “hhs_read” scope bilgisi kullanılır. \n Production ortamında HHS / YOS API içerisinde sisteme dahil olmuş, sertifikasyonu başarı ile tamamlamış paydaşlar listelenecektir. HHS tarafından desteklenen API sürümleri listelenecektir. \n YÖS’ler HHS API’sini sorgulayabilir ancak YÖS API’sini sorgulayamazlar. \nBenzer şekilde HHS’ler YÖS API’sini sorgulayabilir, HHS API’sini sorgulayamazlar. \n HHS API \n GET /hhs/{hhsKod} \n İşlem Sorgu Örneği =  /hhs  ⇨  bu sorgu yöntemi ile tüm HHS’lerin dizi şeklinde verileri listelenir. \nİşlem Sorgu Örneği =  /hhs/2001   ⇨ bu sorgu yöntemi ile gönderilmiş olan hhsKodu’na ait bilgiler listelenir. Ya da “404 Not Found” hatası alır. \nHHS ve YÖS API Tablo 20’deki istek parametrelerine göre sorgulanabilir. \nİşlem Sorgu Örneği (Belirli Bir Hesap) =  /hhs?srlmKrtr=kod&srlmYon=A \n Tablo 20: HHS ve YÖS API Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek işlemlerin sıralama kriterini belirtir. Alabileceği değerler: {“kod”, “unvâ€
16} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, sıralama kriteri “unv” olarak belirlenmelidir. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler: A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 21: HHS Bilgileri Sorgulama Yanıtı “Hhs” nesnesi \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n hhs kodu \n kod \n AN4 \n Z \n HHS nin kod bilgisi \n \n \n hhs unvanı \n unv \n AN3..140 \n Z \n HHS nin unvan bilgisi \n \n \n hhs markası \n marka \n AN1..140 \n Z \n ÖHK'nın kolaylıkla algılayabileceği kısa unvan bilgisi. HHS tarafından belirlenecektir. \n \n \n Açık anahtar \n acikAnahtar \n AN1..1024 \n Z \n HHS’nin mesaj imzalama için paylaştığı açık anahtar \n \n \n HHS Api Bilgileri \n apiBilgileri \n Kompleks: HhsApiBilgi[Array][0..N] \n Z \n Desteklenen Api ve sürüm bilgileri dönülecektir. \n \n \n > api \n api \n AN1..20 \n Z \n Api İsmi Örnek :obh, hbh,gkd \n \n \n > surum \n surum \n AN1..10 \n Z \n Api Sürüm Kodu Örnek: s1.0, s1.0, s2.0 \n \n \n HHS Hizmet Bilgileri \n hizmetBilgileri \n Kompleks: HhsHizmetBilgi[Array][0..N] \n Z \n Desteklenen hizmet ve sürüm bilgileri dönülecektir. \n \n \n > hizmetTipi \n hizmetTipi \n AN1..20 \n Z \n Hizmet Tipi bilgileri.TR.OHVPS.DataCode.HizmetTipi sıralı veri türü değerlerinden birini alır. \n \n \n > surum \n surum \n AN1..10 \n Z \n Api Sürüm Kodu Örnek: s1.0, s1.1, s2.0 \n \n \n Logo Bilgileri \n logoBilgileri \n Kompleks: LogoBilgisi [Array][1..N] \n Z \n HHS'ye ait logo bilgileri. \n \n \n > logoTur \n logoTur \n AN3..50 \n Z \n Logonun türünü belirler. TR.OHVPS.DataCode.LogoTur sıralı veri türü değerlerlerinden birini alır. \n \n \n > logoAdr \n logoAdr \n AN1..255 \n Z \n HHS tarafında tutulan ve YÖS'lerle paylaşılacak olan url adres bilgisidir.  Örnek: https://via.placeholder.com/150?text=0001 \n \n \n > logoArkaPlan \n logoArkaPlan \n AN1 \n Z \n TR.OHVPS.DataCode.LogoArkaPlan sıralı veri türü değerlerlerinden birini alır. \n \n \n > logoFormat \n logoFormat \n AN3 \n Z \n TR.OHVPS.DataCode.LogoFormat sıralı veri türü değerlerlerinden birini alır. \n \n \n Durum \n durum \n AN1 \n Z \n HHS'nin durum bilgisidir.  TR.OHVPS.DataCode.HHSDurumu sıralı veri tipinde alabileceği değerler belirtilmiştir. \n \n \n \n HHS API'de; Açık, Yaygınlaştırma, Geçici Hizmet Veremiyor, Kapalı durumlarındaki HHS'ler listelenecektir.  \nSertifikasyon onayı alan HHS'ler, üretim ortamına geçişte \"Yaygınlaştırma\" durumuna sahip olabilir.  HHS'nin, hangi YÖS'ler ile \"Yaygınlaştırma\" kontrollerini yapacağı, HHS yönetiminde olacaktır. Böylece Üretim Ortamında HHS’nin kendisi tarafından tanımlanmış kısıtlı ÖHK’ya hizmet vermesi ve servislerini test etmesi sağlanabilir olacaktır. HHS'ler kendi kurum kontrollerini yapana kadar, \"Yaygınlaştırma\" durumunda kalabilirler. HHS'nin BKM'ye yapacağı talep ile, HHS \"Yaygınlaştırma\" durumundan \"Açık\" durumuna geçebilecektir. \n Aşağıdaki durumlarda HHS'nin statüsü Geçici Kapalı olarak güncellenebilecektir: \n \n HHS'nin talebi ile uzun süreli (minimum 1 saati aşan) yaşanan teknik sorunlarda ve BKM’ye en az 3 iş günü öncesinde bildirilen planlı kesintilerde G statüsüne alınabilecektir. \n İlgili resmi kurumlardan gelen talep üzerine HHS G statüsüne alınabilir. \n \n YÖS'ler hem A hem G statüsünde olan HHS'leri listeleyebilir. Ancak YÖS uygulamasında G statüsünde olan bir HHS müşteri tarafından seçilirse müşteriye gerekli hata mesajının verilmesi ve ilgili HHS'ye istek atılmaması sağlanmalıdır. \n Hem YOS hem de HHS API için geçerli olacak; logo gönderiminde dikkat edilmesi gerekenler şu şekilde tariflenmiştir: \n \n Logoların ham dosya yerine kurumun yayınlayacağı bir URL üzerinden sunulması gerekmektedir. (Örn: logoURL = https://kurumadi.com.tr/logo.png) Logo BKM tarafında host edilmeyecektir. \n Logo url’in public erişilebilir url olması gereklidir. \n Logo, yatayda veya dikeyde taşma paysız tam oturacak, sınır boyutlarını geçmeyecek ve ortalanmış yerleşime sahip olmalıdır. \n YÖS uygulamasında gösterim esnasında logoların hızlı yüklenmesi ve düşük veri tüketmesi açısından; logo boyutu 250 KB’ın altında olmalıdır. \n HHS ve YÖS’lerin tüm logo türlerini (8 farklı tipte logoyu) zorunlu olarak dönmesi beklenmektedir. \n Circle logo kullanılması gerektiğinde ICON_LOGO logo türü kullanılmalıdır. \n Logolarını güncellemek isteyen kurumların en az 3 iş günü öncesinde BKM’ye bu değişikliği GEÇİT Test/Üretim Ortamı Entegrasyon formu ile bildirmesi gereklidir.  BKM de katılımcılara HHS/YÖS API aracılığı ile güncel logonun çekilmesi gerektiğine dair bilgilendirme yapar. \n Logoları anlık çeken katılımcıların, herhangi bir teknik nedenden dolayı güncel logoyu alamadığı durum olabilir. Bu durumda sistemlerine kaydetmiş olduğu kuruma ait ikon logoyu göstermesi gereklidir. \n HHS ve YÖS’ler API aracılığı ile almış oldukları logoların formatı üzerinde değişiklik (kare, yuvarlak hale getirip resize etmek gibi) yapabilirler. Ancak logonun görsel ve yazılarını etkileyecek bir  değişiklik yapmamalıdırlar. \n YÖS/HHS mobil uygulamasındaki dark mode ve light mode kullanımlarında, hangi logonun kullanılacağına uygulama sahibi karar verecektir. \n YOS API \n YÖS API, YÖS statüsundeki kurumların detay bilgilerini sunan servistir. Bu servis ile aşağıdaki istek/yanıt yapıları ile ihtiyaç duyulabilecek ilgili bilgiler temin edilebilir. YÖS API için “yos_read” scope bilgisi kullanılır. \n YÖS API yanıtında, listelenen yönlendirme ve bildirim adresleri bulunmaktadır. HHS, işlem anında iletilen yonAdr ya da bldrAdr alanlarında gönderilen adreslere yetKod değerini iletmelidir. YÖS API içerisinde yer alan adresleri, rıza isteğinde gönderilen adreslerin doğruluğunu kontrol etme amacıyla kullanılmalıdır. Bu nedenle YÖS API içerisinde listelenen adreslerin hostname seviyesinde yer alması yeterlidir. \n YÖS API içerisinde yer alan YÖS rol bilgileri ve aktiflik/pasiflik durumları birbiriyle ilişkili değildir. \n YÖS'ün sahip olduğu öbhs,hbhs rolleri için herhangi bir fraud ya da teknik sebeplerden ötürü geçici süreyle geri alınabilir. \n YÖS'lerin hizmet verememesi durumunda rollerinin ger
16i alınması yapılmayacaktır. YÖS rolleri sadece ilgili resmi kurumlardan gelen talep üzerine alınabilecektir. \n YÖS aktifliğini korurken problem çözülene kadar geçici olarak alınan roller(öbhs,hbhs) tekrardan aktif hale getirilir. \n GET /yos/{yosKod} \n İşlem Sorgu Örneği =  /yos  ⇨  bu sorgu yöntemi ile tüm YÖS'lerin dizi şeklinde verileri listelenir. \n İşlem Sorgu Örneği =  /yos/2501  ⇨  bu sorgu yöntemi ile gönderilmiş olan yosKodu’na ait bilgiler listelenir ya da “404 Not Found” hatası alır.\nYÖS API Tablo 20’deki istek parametrelerine göre sorgulanabilir.\nİşlem Sorgu Örneği (Belirli Bir Hesap)=  /yos?srlmKrtr=kod&srlmYon=A \n Tablo 22: YOS Bilgileri Sorgulama Yanıtı “Yos” nesnesi \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Yös kodu \n kod \n AN4 \n Z \n YÖS'ün kod bilgisi \n \n \n Yös unvanı \n unv \n AN3..140 \n Z \n YÖS unvan bilgisi \n \n \n Yös markası \n marka \n AN1..140 \n Z \n ÖHK'nın kolaylıkla algılayabileceği kısa unvan bilgisi. YÖS tarafından belirlenecektir. \n \n \n YÖS rolleri \n roller \n Array[AN4] \n Z \n YÖS’un rollerini belirten değer. Örnek: [ \"obhs\", \"hbhs\" ]  - obhs - Ödeme Bilgisi Hizmet Sağlayıcı Rolü  - hbhs - Hesap Bilgisi Hizmet Sağlayıcı Rolü \n \n \n Adresler \n adresler \n Kompleks:Adres[Array] [1..N] \n Z \n --- \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur sıralı veri türü değerlerlerinden birini alır. Adres detaylarının hangi GKD türüne ait olduğunu belirtir. \n \n \n > Adres Detayları \n adresDetaylari \n adresDetaylari\tKompleks: AdresDetayi[Array] [1..N] \n Z \n \n \n \n >> Temel Adres \n tmlAdr \n AN1..1024 \n Z \n yetYntm değeri “Y” olarak iletildiğinde Yönlendirmeli GKD sürecinde HHS’nin YOS’e authorizasyon kodunu hangi url e göndereceği bilgisini tutar. yetYntm değeri “A” olarak iletildiğinde Ayrık GKD sürecinde HHS’nin YOS’e authorizasyon kodunu hangi url e göndereceği bilgisini tutar. Riza isteklerinde bu değer ile uyumluluğu kontrol edilmelidir. Örnek: https://example.com https://example2.com/path deepLink://example/test deepLink://example2/test \n \n \n >> Açıklama \n aciklama \n AN1..1024 \n İ \n YÖS’ün gönderdiği adrese yönelik vermek istediği açıklama Örnek: WEB bireysel , WEB kurumsal  , APP \n \n \n Açık anahtar \n acikAnahtar \n AN1..1024 \n Z \n YÖS’ün mesaj imzalama için paylaştığı açık anahtar \n \n \n YÖS Api Bilgileri \n apiBilgileri \n Kompleks: YosApiBilgi[Array][0..N] \n Z \n Desteklenen Api ve sürüm bilgileri dönülecektir. \n \n \n > api \n api \n AN1..20 \n Z \n Api İsmi Örnek :ods \n \n \n > surum \n surum \n AN1..10 \n Z \n Api Sürüm Kodu Örnek: s1.0, s2.0 s1.0 \n \n \n Logo Bilgileri \n logoBilgileri \n Kompleks: LogoBilgisi [Array][1..N] \n Z \n YOS’e ait logo bilgileri. \n \n \n > logoTur \n logoTur \n AN3..50 \n Z \n Logonun türünü belirler. TR.OHVPS.DataCode.LogoTur sıralı veri türü değerlerlerinden birini alır. \n \n \n > logoAdr \n logoAdr \n AN1..255 \n Z \n YÖS tarafında tutulan ve HHS’lerle paylaşılacak olan url adres bilgisidir.  Örnek: https://via.placeholder.com/150?text=0001 \n \n \n > logoArkaPlan \n logoArkaPlan \n AN1 \n Z \n TR.OHVPS.DataCode.LogoArkaPlan sıralı veri türü değerlerlerinden birini alır. \n \n \n > logoFormat \n logoFormat \n AN3 \n Z \n TR.OHVPS.DataCode.LogoFormat sıralı veri türü değerlerlerinden birini alır. \n \n \n Durum \n durum \n AN1 \n Z \n YÖS'ün durum bilgisidir.  TR.OHVPS.DataCode.YOSDurumu sıralı veri tipinde alabileceği değerler belirtilmiştir. \n \n \n \n"},{title:"9.\tHesap Bilgisi Hizmeti",frontmatter:{},regularPath:"/v2.0.0/contents/hesap-bilgisi-hizmeti.html",relativePath:"v2.0.0/contents/hesap-bilgisi-hizmeti.md",key:"v-2c81f446",path:"/v2.0.0/contents/hesap-bilgisi-hizmeti.html",headers:[{level:2,title:"Genel Bilgiler",slug:"genel-bilgiler"},{level:2,title:"Hesap Bilgisi Hizmeti İçin Erişim Adresleri",slug:"hesap-bilgisi-hizmeti-icin-erisim-adresleri"}
16,{level:2,title:"ADIM 0: ÖHK'nın hesap/kart bilgilerine erişim için talepte bulunması:",slug:"adim-0-ohk-nın-hesap-kart-bilgilerine-erisim-icin-talepte-bulunması"},{level:2,title:"9.1 ADIM 1: Hesap Bilgisi Rızasının Hazırlanması",slug:"_9-1-adim-1-hesap-bilgisi-rızasının-hazırlanması"},{level:3,title:"POST /hesap-bilgisi-rizasi",slug:"post-hesap-bilgisi-rizasi"},{level:3,title:"Başarılı İstek:",slug:"basarılı-istek"},{level:3,title:"Başarılı Yanıt:",slug:"basarılı-yanıt"},{level:2,title:"İzinler",slug:"izinler"},{level:2,title:"9.2 ADIM 2: Hesap Bilgisi Hizmeti Rızasının Tesisi",slug:"_9-2-adim-2-hesap-bilgisi-hizmeti-rızasının-tesisi"},{level:2,title:"9.3 ADIM 2.1: Hesap Bilgisi Rızasının Sorgulanması",slug:"_9-3-adim-2-1-hesap-bilgisi-rızasının-sorgulanması"},{level:2,title:"9.4 ADIM 2.2: Hesap Bilgisi Rızasının İptali",slug:"_9-4-adim-2-2-hesap-bilgisi-rızasının-iptali"},{level:2,title:"9.5 ADIM 3: Hesap Bilgilerinin Alınması",slug:"_9-5-adim-3-hesap-bilgilerinin-alınması"},{level:2,title:"9.6 ADIM 3.1 ve 3.2: Hesap Bilgilerinin Sorgulanması",slug:"_9-6-adim-3-1-ve-3-2-hesap-bilgilerinin-sorgulanması"},{level:2,title:"9.7 ADIM 3.3 ve 3.4: Hesap Bakiyesinin Sorgulanması",slug:"_9-7-adim-3-3-ve-3-4-hesap-bakiyesinin-sorgulanması"},{level:2,title:"9.8 ADIM 3.5 ve 3.6: İşlemlerin Sorgulanması",slug:"_9-8-adim-3-5-ve-3-6-islemlerin-sorgulanması"},{level:2,title:"9.9 ADIM 4: Kart Bilgilerinin Sorgulanması",slug:"_9-9-adim-4-kart-bilgilerinin-sorgulanması"},{level:2,title:"9.10 ADIM 4.1: Kart Detay Bilgilerinin Sorgulanması",slug:"_9-10-adim-4-1-kart-detay-bilgilerinin-sorgulanması"},{level:2,title:"9.11 ADIM 4.2: Kart Hareket Bilgilerinin Sorgulanması",slug:"_9-11-adim-4-2-kart-hareket-bilgilerinin-sorgulanması"}],content:" 9.\tHesap Bilgisi Hizmeti  \n Genel Bilgiler \n Bu dokümanda belirtilen \"Hesap Bilgisi Hizmeti\" ibaresi hem hesap hem de kart rıza süreçlerini kapsamaktadır. \n Hesap bilgisi sorgulama için HBHS tarafından müşteri rızası tesisinin HHS tamamlanmış olması gerekir. Müşteri rızası tesisi tamamlandıktan sonra, HBHS sorgulamak istediği hesaba ait verileri ilgili erişim adresi üzerinden sorgular. \n \n \n Şekil 10: Hesap Bilgisi Hizmeti Üst Düzey Akışı \n Şekil-10’da sunulan hesap bilgisi hizmeti 5 temel akıştan oluşur: \n 0.\tMüşterinin hesap bilgilerine erişim için talepte bulunması:  ÖHK ÖBHS mobil uygulama ya da web sitesinden hesap bilgilerine erişim işlemini başlatır. \n 1.\tHesap Bilgisi müşteri rızasının hazırlanması: \n HBHS, “hesap/kart bilgilerine erişim” için müşteri rızası tesisi amacıyla HHS’deki hesap bilgisi rızası erişim adresine bir POST isteğinde bulunur ve bir hesap bilgisi rızası nesnesi oluşturur. HHS hesap bilgisi rızası nesnesi için biricik tanımlayacı döner (RızaNo). Hesap bilgisi rızası, müşterinin HBHS’nin hesap/kart bilgilerine erişim izin verdiği alanları için 9.1 ADIM 1: Hesap Bilgisi Rızasının Hazırlanması başlığında incelenebilir. \n 2.\tHesap bilgisi hizmeti müşteri rızasının tesisi: \n HHS, Hesap Bilgisi Rızası servisi ile ÖHK özelinde “Yetki bekleniyor” statüsünde bir rıza nesnesi hazırlar. HHS, GKD’nin başarıyla tamamlanması sonrasında hesap bilgisi rızası nesnesinin yetkilendirildiğini belirtmek için Rıza Durumunu “Rıza Yetkilendirildi” olarak günceller. Nesne yetkilendirildikten sonra HHS nesne ile bir erişim belirteci (access token) ilişkilendirir, Rıza Durumunu “Yetki Kullanıldı” yapar ve bu belirteci HBHS’ye geri döner.  Böylece müşteri rıza tesisi sağlanmış olur. \n Hesap bilgisi rızasına ilişkin temel ilkeler şunlardır: \n \n 1 ÖHK'nın 1 YÖS için 1HHS'de Yetki Bekleniyor, Yetkilendirildi, Yetki Kullanıldı statüsünde 1 rızası olabilir. \n Müşteri rızasının ayrıntıları ÖHK ile HBHS arasında belirlenir. Bu nedenle müşteri rızasının ayrıntıları HHS ekranında değiştirilmemelidir. \n ÖHK, hesap ve kart erişim izni ayrıntılarını yalnızca bir bütün olarak yetkilendirebilir veya geri alabilir. \n Müşteri rızası tesisi esnasında, müşteri HHS arayüzünde erişim için yetkilendirecek hesapları ve kartları seçer. \n Ödeme Sistemine doğrudan katılımcı olmayan HHS'ler, müşterilerine IBAN hizmeti sunmayabildikleri için hesap referansı ile akışlarını kurgulayabilirler. YÖS önyüzlerinde yapılan bilgilendirmelerde, IBAN harici hesap referansı ile işlem yapılabilmesine dikkat edilmelidir. \n \n 2.1\tHesap bilgisi rızasının sorgulanması:  Müşteri rızası  GET/hesap-bilgisi-rizasi/{RizaNo}  çağrısı yapılarak sorgulanır. \n 2.2\tHesap bilgisi müşteri rızasının iptali:  Müşteri rızası  DELETE/hesap-bilgisi-rizasi/{RizaNo}
16  çağrısı yapılarak iptal edilir. \n 3.1\tHesap bilgilerinin alınması:  Hesap bilgileri ilgili kaynağa (hesaplar, bakiye, işlemler) GET isteği yapılarak gerçekleştirilir. HBHS, müşteri rızasının tesisinden sonrasında (geçerli bir erişim belirticine sahip olduğunda) öncelikle  GET/hesaplar  çağrısı yapacaktır. \n Nezdinde ödeme hesabı bulunduran hesap hizmeti sağlayıcılar(Banka, EPK, Ödeme Kuruluşları) müşterilerine ait hesapları hesap referansı ya da hesap numarası üzerinden takip etmektedir. YÖS'lerin HBH servisleri için hesap referansı veya hesap numarası üzerinden işlem yapılabileceğini bilmeleri, sistemlerini API dokümanında belirtilen akışlara göre uyumlandırmaları ve müşteri bilgilendirmesini (önyüzlerinde hesap no ve hesap referansı ayrımını gözeterek) buna paralel yapmaları beklenmektedir. \n 4.\tKart bilgilerinin alınması:   Kart bilgileri ilgili kaynağa (kartlar, kart detayı, kart hareketleri) GET isteği yapılarak gerçekleştirilir. HBHS, müşteri rızasının tesisinden sonrasında (geçerli bir erişim belirticine sahip olduğunda) öncelikle  GET/kartlar  çağrısı yapacaktır. \n Hesap Bilgisi Hizmeti İçin Erişim Adresleri \n Etki Alanı (Scope) =“hesap_bilgisi” \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu / İsteğe Bağlı \n Yetkilendirme Türü \n İmzalama \n Parametre \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n hesap-bilgisi-rizasi \n POST \n /hesap-bilgisi-rizasi \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n HesapBilgisiRizasiIstegi \n HesapBilgisiRizasi \n \n \n 2 \n erisim-belirteci  (GKD için) \n POST \n /erisim-belirteci \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n ErisimBelirteciIstegi \n ErisimBelirteci \n \n \n 2.1 \n hesap-bilgisi-rizasi \n GET \n /hesap-bilgisi-rizasi/{RizaNo} \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n \n \n HesapBilgisiRizasi \n \n \n 2.2 \n hesap-bilgisi-rizasi \n DELETE \n /hesap-bilgisi-rizasi/{RizaNo} \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD-Koşullu) \n \n \n \n \n \n \n 3.1 \n hesaplar \n GET \n /hesaplar \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama \n \n HesapBilgileri(birden çok hesap) \n \n \n 3.2 \n hesaplar \n GET \n /hesaplar/{hspRef} \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n \n \n HesapBilgileri(tek  hesap) \n \n \n 3.3 \n bakiye \n GET \n /hesaplar/{hspRef}/bakiye \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n \n \n BakiyeBilgileri(tek  hesap) \n \n \n 3.4 \n bakiye \n GET \n /bakiye \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama \n \n BakiyeBilgileri(birden çok hesap) \n \n \n 3.5 \n islemler \n GET \n /hesaplar/{hspRef}/işlemler \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama Filtreleme \n \n IslemBilgileri (tek hesap) \n \n \n 4 \n kartlar \n GET \n /kartlar \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama Filtreleme \n \n KartBilgileri(birden çok kart) \n \n \n 4.1 \n kartlar \n GET \n /kartlar/{kartRef} \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama Filtreleme \n \n KartBilgileri(tek kart) \n \n \n 4.2 \n kart-detay \n GET \n /kartlar/{kartRef}/kart-detay \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Filtreleme \n \n KartDetayBilgileri \n \n \n 4.3 \n kart-hareketleri \n GET \n /kartlar/{kartRef}/kart-hareketleri \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama Filtreleme \n \n KartHareketleri \n \n \n \n Tablo 11: Hesap/Kart Bilgisi Hizmeti İçin Erişim Adresleri \n ADIM 0: ÖHK'nın hesap/kart bilgilerine erişim için talepte bulunması: \n ÖHK, HBHS uygulamasında (web arayüzü/mobil uygulama) hesap/kart bilgilerine erişim için talepte bulunur. \n 9.1 ADIM 1: Hesap Bilgisi Rızasının Hazırlanması \n Bu dokümanda belirtilen hesap bilgisi hizmeti ibaresi hem hesap hem de kart rıza süreçlerini kapsamaktadır. \n Bu API çağrısı HBHS'nin HHS'de yeni bir “HesapBilgisiRizasi” nesnesi oluşturmasını ve nesneye erişmek için benzersiz bir rıza numarası ({rizaNo}) dönülmesini sağlar. \n API çağrısının başarıyla sonuçlanması için HBHS'nin istemci kimlik bilgileri yetkisi kullanması yeterlidir.\nBaşarıyla oluşturulan hesap bilgisi rıza kaynağının rıza durumu “Yetki Bekleniyor” olarak düzenlenir.\nÖHK daha önce aldığı rızaya ilişkin er
16işim tarihleri, izin türlerini ve hesap bilgilerini güncellemek isterse, HBHS önce HHS nezdindeki rızayı iptal etmeli ve sonrasında yeni bir rıza talebinde bulunmalıdır.\n \n \n Şekil 11: Hesap/Kart Bilgisi Müşteri Rızasının Hazırlanması \n \n POST /hesap-bilgisi-rizasi isteğinin (REQUEST) gövdesinde (BODY)  “HesapBilgisiRizasıIstegi” nesnesi (Tablo-12) kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “HesapBilgisiRizasi” (Tablo-13) nesnesi oluşturulur. \n  POST /hesap-bilgisi-rizasi \n Bu dokümanda belirtilen hesap bilgisi rızası ibaresi hem hesap hem de kart rıza süreçlerini kapsamaktadır. \n Başarılı İstek: \n İSTEK: \n HBHS, bu API erişim adresinden HHS’ye yeni bir HesapBilgisiRizasi oluşturulması için istekte bulunur: \n \n HBHS, ÖHK’nın hesap/kart bilgilerine yönelik rıza başlatma isteği olduğunu HHS’ye bildirir. YÖS'ler sürüm 2.0 için Hesap Bilgisi Rızası isteği gönderdiğinde HHS'nin ÖHK'yı yönlendireceği mobil uygulama içerisinde sürüm 2.0 değişikliklerini içeren, kart bilgilerinin seçimini yapacakları sürümün yüklü olmaması durumunda HHS'ler tarafından  TR.OHVPS.Business.CustomerMobileApplicationHasOlderVersion  hatası verilebilir. \n HBHS, ÖHK’nın, HBHS arayüzünden verdiği rızanın (“Ön Onay”) bir kopyasının HHS nezdinde müşteri tarafından onaylanması için HHS’ye gönderilmesini sağlar. \n HHS; istek mesajında yer alan alanların API dökümanında belirtilen şartları sağlayacak şekilde zorunluluk ve uzunluk kontrollerini yapar.(Zorunlu) Kontrollere istinaden hata oluşması durumunda  ”TR.OHVPS.Resource.InvalidFormat”  hata kodu iletilmeli ve fieldErrors dolu olacak şekilde hatalı alanı belirten detaylı açıklama gönderilmelidir. InvalidFormat hata kodlarında fieldErrors içeriği gönderilmeli ve anlaşılır açıklama ile message, messageTr alanları doldurulması zorunludur. \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidTPP”  hatası dönülür. \n HHS; YÖS API ile alınan temel adres bilgilerinde yer alan yönlendirme adresleri ile hesap bilgisi rızası nesnesi içerisinde yer alan YÖS  adreslerin uyumlu olup olmadığının kontrollerini yapar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  ”TR.OHVPS.Business.TPPRedirectionAddressMismatch”  hatası dönülür. \n HHS; kimlik bilgileri nesnesinde iletilen kimlik bilgileri ile ÖHK’nın HHS müşterisi olup olmadığının kontrollerini yapar. Bu kontrol hem bireysel hem de kurumsal ÖHK’lar için yapılmalıdır.(Zorunlu) Kontrollere istinaden hata oluşması durumunda  ”TR.OHVPS.Business.CustomerNotFound”  hatası dönülür. Kurumsal müşteri ile başlatılan rızada yer alan müşteri bilgisinin karşı kurumda Kurumsal müşteri değil; bireysel müşteri olduğu durumda “TR.OHVPS.Business.BusinessCustomerMismatch” hatası dönülür. \n Bir ÖHK'nın 1 YÖS için aktif tek bir rızası olabilir. ÖHK’nın  “Yetkilendirildi” ve “Yetki Kullanıldı” statüsünde rızası varken yeni bir rıza isteği gönderdiğinde HHS tarafından  TR.OHVPS.Business.ConsentAlreadyExists  hatası dönülür.  Güncelleme isteği göndermesi durumunda ise işletilmesi gereken akışlar “Rıza Durumları” başlığından kontrol edilmelidir. \n Hesap bilgi hizmeti rıza isteğinde bulunan ÖHK’nın “Açık Bankacılık Kanal Yetki” tanımı yok ise  ”TR.OHVPS.Business.OpenBankingChannelClosed”  hatası dönülür. HHS insiyatifinde olup HHS bu kontrolü GKD sonrası gerçekleştirebilir. \n Hesap bilgi hizmeti rıza isteğinde 01 ya da 07 izin türü olmak zorundadır. HHS tarafından izin türü içerisinde 01 ya da 07 varlık durumu kontrol edilir. Olmaması durumunda  \"TR.OHVPS.Business.IncorrectPermissionType”  hatası dönülür. \n Hesap bilgi hizmeti rıza isteğinde 01 izin türü bulunmuyor ise 02, 03, 04, 05 ya da 06 izin türü olmamalıdır. 01 izin türü bulunmadığında 02, 03, 04, 05 ya da 06 izin türlerinden biri ya da birkaçı gönderildiğinde  \"TR.OHVPS.Business.IncorrectPermissionType”  hatası dönülür. \n Hesap bilgi hizmeti rıza isteğinde 07 izin türü bulunmuyor ise 08 ya da 09 izin türü olmamalıdır. 07 izin türü bulunmadığında 08 ya da 09 izin türlerinden biri ya da ikisi gönderildiğinde  \"TR.OHVPS.Business.IncorrectPermissionType”  hatası dönülür. \n ÖHK, HHS'de olacak bakiye değişikliklerinden anlık haberdar olmak istiyor ise 06-Anlık Bakiye Bildirimi izin türü seçimi ile rıza başlatması gereklidir. 03-Bakiye Bilgisi izin türü ile birlikte seçilmesi gereklidir. 06 izin türü seçilip 03 izin türü seçilmediği durumda  ”TR.OHVPS.Business.IncorrectPermissionType”  hatası dönülür. \n İzin türü “06: Anlık Bakiye Bildirimi” seçilmiş ise HHS, YÖS'ün KAYNAK_GUNCELLENDI olay tipinde olay aboneliğinin varlığını kontrol eder. Olay abonelik kaydı bulunmuyor ise  ”TR.OHVPS.Business.EventSubscriptionNotFound”  hatası dönülür. \n Hesap bilgi hizmeti rıza isteğinde bulunan ÖHK’nın izin verecek hesap ya da kartı yok ise  ”TR.OHVPS.Business.ProductNotSuitable”  hatası dönülür. İki üründen biri var ise başarılı yanıt dönülür. HHS insiyatifinde olup HHS bu kontrolü GKD sonrası gerçekleştirebilir. \n Erişimin Geçerli Olduğu Son Tarih bilgisi müşteri bağımsız alabileceği minimum değer : Rıza tarihi + 1 gündür. Maksimum rıza süresi bireysel müşteriler için 6 ay, Kurumsal/Tüzel müşteriler için 12 ay olacaktır. Bireysel müşteriler için 6 aydan fazla, kurumsal müşteriler için ise 12 aydan fazla iletildiği durumda  ”TR.OHVPS.Resource.InvalidFormat”  hatası dönülür. \n İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmiş ise; İşlem Sorgulama Başlangıç Zamanı, hesap bilgisi rızası verilmesinden  geçmişe  dönük en fazla 12 ay olabilmektedir. 12 aydan fazla gönderilmesi durumunda  ”TR.OHVPS.Resource.InvalidFormat”  hatası dönülür. \n İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmiş ise; İşlem Sorgulama Başlangıç Zamanı, hesap bilgisi rızası verilmesinden  geleceğe  dönük en fazla 12 ay sonrası olabilmektedir. 12 aydan fazla gönderilmesi durumunda  ”TR.OHVPS.Resource.InvalidFormat”  hatası dönülür. \n Ayrık GKD desteklemeyen HHS'ye Ayrık GKD yöntemiyle rıza başlatma isteği yapılması durumunda HHS tarafından  ”TR.OHVPS.Business.DecoupledAuthenticationNotSupported”  hatası dönülür. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n HHS \"gkd\" nesnesi için alan kontrollerini gerçekleştirir. \"yetYntm\" = \"A\" gönderilmiş ise \"ayrikGkd\" nesnesinin dolu gönderilmesi zorunludur. Gönderilmemesi durumunda HHS tarafından  ”TR.OHVPS.Resource.InvalidFormat”  hatası dönülür. \n Ayrık GKD ile başlatılan hesap bilgi hizmeti rıza isteğinde HHS, YÖS’ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder. YÖS iki olay tipine de abone olmak zorundadır. Eğer olay aboneliği yoksa HHS tarafından  ”TR.OHVPS.Business.EventSubscriptionNotFound”  hatası dönülür. \n ÖHK'ya ait kimlik verisi(kmlk.kmlkVrs) ile ayrık GKD içerisinde yer alan OHK Tanım Değer alanı (ayrikGkd.ohkTanimDeger) birebir aynı olmalıdır. Aynı olmadığı durumda HHS tarafından  ”TR.OHVPS.Business.CustomerInfoMismatch”  hatası dönülür. \n HHS tarafında ÖHK'nın mobil uygulaması bulunmaması durumu tespit edilebildiği durumda Ayrık GKD ile başlatılan rıza akışlarında hata mesajı vermelidir. HHS tarafından  ”TR.OHVPS.Business.CustomerMobileApplicationNotFound”  hatası dönülür. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n \n Yukarıdaki kontroller tamamlandıktan sonra HHS, benzersiz “RizaNo” ile “HesapBilgisiRizasi” nesnesi oluşturur ve HBHS’ye döner. \n HHS, HesapBilgisiRizasi oluşturduğu anda durumunu “Yetki Bekleniyor” olarak düzenler. \n Tablo 12: “HesapBilgisiRizasiIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Önceki Rıza No \n oncekiRizaNo \n AN1..128 \n K \n HesapBilgisiRızasiIstegi nesnesinin güncelleme sebebiyle oluşturulması esnasında ÖHK'nın güncelleme yapmak istediği mevcut rıza no bilgisi. Rıza güncelleme yapılmak istendiğinde gönderilmesi zorunludur. \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Hata durumunda TR.OHVPS.Connection.InvalidASPSP hata kodunu döner. \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder.  Hata durumunda TR.OHVPS.Connection.InvalidTPP hata kodunu döner. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n >Yetkilendirme Yöntemi \n yetYntm \n AN1 \n İ \n TR.OHVPS.DataCode.GkdTur sıralı veri türü değerlerinden birini alır.   Yetkilendirme yöntemi, HBHS tarafından belirtilmeyebilir. \n HHS, HBHS’nin belirlediği yöntemi dikkate alarak süreci ilgili akışa uygun olarak devam ettirir. Desteklemediği yöntem için (örn: Ayrık GKD) ayrıca hata mesajı verilmelidir. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu.  YÖS’ün ileteceği adrestir.   Durum kodu(drmKod), yönlendirme adresine parametre olarak eklenmelidir. \n HHS, müşteri uygulama / tarayıcısını bu alanda belirtilen adrese yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n yetYntm = A gönderilmiş ise ayrikGkd nesnesinin dolu gönderilmesi zorunludur.   HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder.  Bknz: Ayrık GKD \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir.  TR.OHVPS.DataCode.OHKTanimTip  sıralı veri tiplerinden birini alır. \n \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir. \n \n \n \n Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n > Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur sıralı veri türü değerlerinden birini alır.   Kurum adına yapılan(ticari) işlemlerde kurum kullanıcısının bilgisi iletilmelidir. \n \n \n \n > Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır.   TR.OHVPS.DataCode.KimlikTur değerine göre uzunluk ve formatı değişir.   Kurum adına yapılan(ticari) işlemlerde kurum kullanıcısının bilgisi iletilmelidir. \n \n \n \n > Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür.  TR.OHVPS.DataCode.KurumKimlikTur sıralı veri türü değerlerinden birini alır. \n \n \n \n > Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.  TR.OHVPS.DataCode.KurumKimlikTur değerine göre uzunluk ve formatı değişir. \n \n \n \n > Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur sıralı veri türü değerlerinden birini alır (B: Bireysel, K:Kurumsal) \n \n \n \n Hesap/Kart Bilgisi \n hspBlg \n Kompleks: HesapBilgisi \n Z \n \n \n \n \n >İzin Bilgisi \n iznBlg \n Kompleks: IzinBilgisi \n Z \n \n \n \n \n >> İzin Türü \n iznTur \n Array[AN2] \n Z \n ÖHK tarafından HHS önyüzünde belirlenen izin tipleridir. Bir istekte birden fazla değer bulunabilir, TR.OHVPS.DataCode.IzinTur sıralı veri türü değerlerinden birini alır. \n \n \n \n >> Erişimin Geçerli Olduğu Son Tarih \n erisimIzniSonTrh \n ISODateTime \n Z \n Hesap bilgisi rızasının geçerli olduğu son tarih.   Müşteri YÖS ekranından bu değeri belirleyebilir. Bireysel müşteriler için rıza süresi 6 ay, Kurumsal/Tüzel müşteriler için 12 ay olacaktır.    Bireysel Müşteriler için varsayılan değer : Rıza verilen tarih + 6 ay   Kurumsal Müşteriler için varsayılan değer : Rıza verilen tarih + 12 ay  Bireysel Müşteriler için alabileceği maksimum değer : Rıza tarihi + 6 ay  Kurumsal Müşteriler için alabileceği maksimum değer : Rıza tarihi + 12 ay    Müşteri bağımsız alabileceği minimum değer : Rıza tarihi + 1 gün    Örneğin  04/02/2023’de minimum 05/02/2023 seçilebilir. Bu durumda yeni günün başlangıç saati 00:00:00 olduğu kabul edildiği için; erisimIzniSonTrh değeri 2023-02-06T00:00:00+03:00 olmalıdır.  HHS rıza onay ekranlarında YÖS'ten iletilen erişim izni son tarihi yeni günün başlangıç saati olarak iletildiğinden ÖHK'ya gösterilecek tarih erişim izninin biteceği gün olarak gösterilmelidir.  Örneğe istinaden; ÖHK YÖS’de 05/02/2023 seçmiş ise HHS rıza onay ekranında 06/02/2023 görmemeli, bu iki tarihin aynı, yani 05/02/2023 olacak şekilde gösterilmesi gerekmektedir.      Örnek rıza oluş zamanı  : 2023-02-04T21:20:20+03:00    1 günlük rıza verildiğinde erisimIzniSonTrh değeri:    2023-02-06T00:00:00+03:00 (26 saat 40 sakikalık rıza vermiş oluyor.)    7 günlük rıza verildiğinde erisimIzniSonTrh değeri:  2023-02-12T00:00:00+03:00    1 aylık rıza verildiğinde erisimIzniSonTrh değeri :   2023-03-05-T00:00:00+03:00 \n Bu alanda bir değer bulunmadığı durumda HHS hata dönmelidir. \n \n \n >> İşlem Sorgulama Başlangıç Zamanı \n hesapIslemBslZmn \n ISODateTime \n K \n Hesap bilgisi rızası verilmesinden geçmişe dönük en fazla 12 ay olabilir, daha eski olmaması gerekir.   Varsayılan değeri rıza verilen tarih (işlem zamanı) – 12 aydır.   ÖHK bu alana bir değer girişi sağlamış ise zaman bilgisi üretilirken ekrandan girilen tarihe 00:00:00 zaman bilgisi eklenmelidir. ÖHK değer girişi sağlamamış ise ÖBHS varsayılan değerlerle bu alanı doldurarak, HHS’ye iletir.   Minimum tarihi : Rızanın veriliş tarihi  - 12 ay    Maksimum tarih: Rızanın veriliş tarihi +  12 ay    İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur.  İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ise gönderilmemelidir. \n ÖHK tarafından izin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ve  İşlem Sorgulama Başlangıç Zamanı ÖBHS tarafından dolu olarak gönderilmiş ise HHS tarafından işlemin devamına izin verilmez. İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmiş ise; HHS bu alanın alabileceği minimum ve maksimum değerlerin sınırlar içerisinde olduğunu kontrol eder. \n \n \n >> İşlem Sorgulama Bitiş Zamanı \n hesapIslemBtsZmn \n ISODateTime \n K \n Hesap bilgisi rızası verilmesinden geleceğe dönük en fazla 12 ay sonrası olabilir, daha ileri bir tarih olmaması gerekir.   Varsayılan değeri: Rıza verilen tarih + 12 aydır. ÖHK bu alana bir değer girişi sağlamış ise girdiği tarihe 1 gün eklenir ve yeni günün ilk saati kabul edilen 00:00:00 saat bilgisini ekler.  ÖHK bu alana bir değer girişi sağlamamış ise ÖBHS varsayılan değerlerle bu alanı doldurarak, HHS’ye iletir.  Minimum tarihi : Rızanın veriliş tarihi  – 12 ay  Maksimum tarihi :  Rızanın veriliş tarihi + 12 ay   İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur.  İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ise gönderilmemelidir. Eğer dolu gönderilirse HHS tarafından uygun hata mesajı iletilmelidir. \n ÖHK tarafından izin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ve İşlem Sorgulama Bitiş Zamanı ÖBHS tarafından dolu olarak gönderilmiş ise HHS tarafından işlemin devamına izin verilmez.   İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmiş ise; HHS bu alanın alabileceği minimum ve maksimum değerlerin sınırlar içerisinde olduğunu kontrol eder. \n Başarılı Yanıt: \n Tablo 13: HesapBilgisiRizasi nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Önceki Rıza No \n oncekiRizaNo \n AN1..128 \n K \n HesapBilgisiRızasiIstegi nesnesinin güncelleme sebebiyle oluşturulması esnasında ÖHK'nın güncelleme yapmak istediği mevcut rıza no bilgisi. Rıza güncelleme yapılmak istendiğinde gönderilmesi zorunludur. İstekte gönderilen değer aynı şekilde yanıtta dönülmelidir. \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n HesapBilgisiRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n HesapBilgisiRızası nesnesinin oluşturulma zamanı \n \n \n > Güncellenme Zamanı \n gnclZmn \n ISODateTime \n Z \n HesapBilgisiRızası nesnesinin güncellenme zamanı \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu sıralı veri tipini değerlerinden birini alır. Örn; hesap bilgi rızasının tesisine dair ilk istek mesajına dönüşte “B: Yetki Bekleniyor” değerini alması beklenir. \n \n \n > Rıza Iptal Detay Kodu \n rizaIptDtyKod \n AN2 \n K \n Rıza durumunun iptal olduÄ
16Ÿu durumda zorunludur. \n \n \n Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n > Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur sıralı veri türü değerlerinden birini alır. \n \n \n > Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur değerine göre uzunluk ve formatı değişir. \n \n \n > Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür.  TR.OHVPS.DataCode.KurumKimlikTur sıralı veri türü değerlerinden birini alır. \n \n \n > Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.  TR.OHVPS.DataCode.KurumKimlikTur değerine göre uzunluk ve formatı değişir. \n \n \n > Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur sıralı veri türü değerlerinden birini alır (B: Bireysel, K:Kurumsal) \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n HHS, HBHS’nin belirlediği yöntemi dikkate alarak süreci ilgili akışa uygun olarak devam ettirir. Desteklemediği yöntem için (örn: Ayrık GKD) ayrıca hata mesajı verilmelidir.  TR.OHVPS.DataCode.GkdTur sıralı veri türü değerlerinden birini alır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde\tGKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.  HHS tarafından maksimum 5 dk içinde işlem tamamlanacak şekil zaman damgası oluşturulur. Zaman aşımı olduğunda HHS’nin GKD’ye izin vermeyecek şekilde hata mesajı vermesi gerekmektedir. Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Hesap/Kart Bilgisi \n hspBlg \n Kompleks: HesapBilgisi \n Z \n \n \n \n > İzin Bilgisi \n iznBlg \n Kompleks: IzinBilgisi \n Z \n \n \n \n >> İzin Türü \n iznTur \n Array[AN2] \n Z \n ÖHK tarafından HBHS önyüzünde belirlenen izin tipleridir. Bir istekte birden fazla değer bulunabilir, TR.OHVPS.DataCode.IzinTur sıralı veri türü değerlerinden birini alır. \n \n \n >> Erişimin Geçerli Olduğu Son Tarih \n erisimIzniSonTrh \n ISODateTime \n Z \n Hesap bilgisi rızasının geçerli olduğu son tarih \n \n \n >> İşlem Sorgulama Başlangıç Zamanı \n hesapIslemBslZmn \n ISODateTime \n K \n Hesap hareketlerinin sorgunabileceği başlangıç zamanı. İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur. \n \n \n >> İşlem Sorgulama Bitiş Zamanı \n hesapIslemBtsZmn \n ISODateTime \n K \n Hesap hareketlerinin sorgunabileceği bitiş zamanı. İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur. \n \n \n > Ayrıntı Bilgi \n ayrBlg \n Kompleks: AyrintiBilgi \n İ \n \n \n \n > ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n İzinler \n Bir hesap bilgisi rızası kaynağı çağrısına yanıt olarak döndürülen verileri sınırlamak için izin kodları kullanılır. \n Hesap ve karta dair tüm bilgiler hesap bilgisi rızası altında alınacaktır. İzin türleri hesap ve karta göre ayrışmaktadır. \n \n Temel Hesap Bilgisi \n Ayrıntılı Hesap Bilgisi \n Bakiye Bilgisi \n Temel İşlem (Hesap Hareketleri) Bilgisi \n Ayrıntılı İşlem Bilgisi \n Anlık Bakiye Bildirimi \n Temel Kart Bilgisi \n Detaylı Kart Bilgisi \n Ayrıntılı Kart İşlem Bilgisi \n \n ÖHK’ya sunulacak seçimler ve kuralları aşağıdaki gibi olmalıdır. \n \n \n \n Seçim \n Kural \n \n \n \n \n Temel Hesap Bilgisi \n ÖHK seçim yapabilir. Temel Kart Bilgisi seçilmediyse bu izin türünün seçimi zorunludur. \n \n \n Ayrıntılı Hesap Bilgisi \n ÖHK seçim yapabilir. \n \n \n Bakiye Bilgisi \n ÖHK seçim yapabilir. \n \n \n Temel İşlem (Hesap Hareketleri)  Bilgisi \n ÖHK seçim yapabilir. \n \n \n Ayrıntılı İşlem Bilgisi \n ÖHK seçim yapabilir. Ayrıntılı İşlem Bilgisi seçimi Temel İşlem Bilgisi seçimini kapsar. (Ayrıntılı İşlem bilgisi seçildiğinde Temel İşlem Bilgisi de seçili olmalıdır.) \n \n \n Anlık Bakiye Bildirimi \n Bakiye Bilgisi izin türü ile birlikte seçilmesi gereklidir. ÖHK, HHS'de olacak bakiye değişikliklerinden anlık haberdar olmak istiyor ise bu izin türü seçimi ile rıza başlatması gereklidir. \n \n \n Temel Kart Bilgisi \n ÖHK seçim yapabilir. Temel Hesap Bilgisi seçilmediyse bu izin türünün seçimi zorunludur. \n \n \n Detaylı Kart Bilgisi \n ÖHK seçim yapabilir. \n \n \n Ayrıntılı Kart İşlem Bilgisi \n ÖHK seçim yapabilir. \n \n \n \n Aşağıdaki durumlarda, izin kombinasyonlarına izin verilmez. HHS, bu hesap erişim onaylarını 400 (Hatalı İstek) yanıt ko
16duyla reddetmelidir: \n \n İzin dizisinin herhangi bir izin türü içermemesi durumu, \n İzin dizisinde HHS tarafından desteklenmeyen bir izin kodunun yer alması durumu \n 9.2 ADIM 2: Hesap Bilgisi Hizmeti Rızasının Tesisi \n \n \n Şekil 12: Hesap Bilgisi ÖHK Rızasının Tesisi \n Rıza tesisinin başarıyla sonuçlanması için HBHS'nin istemci kimlik bilgileri yetkisi kullanması ve ardından müşterinin HHS tarafından yönlendirmeli veya ayrık GKD ile doğrulanması gerekir. HHS'de oluşturulan ve rıza durumu “Yetki Bekleniyor” olan bir hesap bilgisi rızası, GKD sonrası “Yetkilendirildi” statüsüne güncellenir. HBHS, erişim sağlayacağı hesapları ve kartları hesap bilgisi rızasının tesisinden önce seçer. \n \n \n Yönlendirmeli doğrulama akışında, HBHS ÖHK’yı HHS’ye yönlendirir. \n \n \n HBHS tarafından yönlendirme, bir önceki adımdaki RizaNo’yu içerir. \n \n \n HHS, ÖHK için GKD sürecini işletir. \n ÖHK’yı doğrularsa, \n \n \n ÖHK HBHS üzerinden işlem yapılmasına izin vereceği hesap/kart seçimini y
16apar. HBHS üzerinden ÖHK’nın verdiği izin bilgilerini ve erişim izninin başlangıç/bitiş tarihi bilgilerini, HHS'ler bilgilendirme amaçlı ÖHK’ya gösterir. \n \n \n Rıza güncelleme akışı ile başlatılan rıza isteklerinde mevcut rıza içerisinde seçili olan hesap/kart bilgileri ÖHK'ya HHS ekranlarında aynı şekilde seçili olarak getirilmelidir. ÖHK'lar mevcut rıza içerisinde izin vermiş olduğu hesap/kart bilgilerini seçili olarak görüntüleyip yeni rıza için izin vermek istediği hesap/kartların seçimini güncelleyebilmelidir. \n Rıza güncelleme sürecinde;  ÖHK’nın HHS’deki mevcut rızası kapsamında YÖS’ten gelen rıza izin türlerine göre listeleme yapılmalıdır. 01,02,03,04,05,06 seçildiyse hesapların; 07,08,09 seçildiyse kartların HHS’de listelenmesi gerekmektedir. Örneğin: ÖHK’nın mevcut rızasında hesaplar (01,02,03 rıza türlerinin seçili olsun) için hesap bilgisi rızası verilmiş olsun eğer YÖS’ten rıza güncelleme kapsamında 01,02, 07,08 rıza türleri geldiği durumda HHS’nin mevcut hesap rızasını ve doğal olarak hesapları listelemesi ek olarak da karta ait rıza türleri seçildiğinde kartların listelenmesi gerekecektir. Ancak, ÖHK’nın mevcut rızasında hesaplar (01,02,03 rıza türlerinin seçili olsun) için hesap bilgisi rızası verilmiş olsun eğer YÖS’ten rıza güncelleme kapsamında  07,08, 09 rıza türleri geldiği farz edildiğinde HHS’nin mevcut hesap rızasını göstermemesi ve sadece karta ait rıza türleri seçildiği için kartları listelemesi gerekecektir. \n \n \n HHS hesap bilgisi rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n HHS, ÖHK’yı “olumlu yönlendirme akışı” ile HBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=Y&yetKod=xx&rizaNo=yy&rizaTip=H&drmKod=zzz\n \n \n \n ÖHK’yı doğrulayamazsa, \n \n \n HHS, hesap bilgisi rıza kaynağının durumunu “Yetki İptal” olarak günceller. \n \n \n HHS, ÖHK’yı “olumsuz yönlendirme akışı” ile HBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=I &rizaNo=yy&rizaTip=H&rizaIptDtyKod=11&drmKod=zzz\n \n \n \n \n \n \n \n Ayrık doğrulama akışında, HHS, ÖHK’nın hesap bilgisi hizmetini başlattığı uygulamadan farklı olabilecek bir “doğrulama” uygulamasında işlemi doğrulamasını ister. \n \n Ayrık akış HBHS’nin farklı bir kanal kullanarak yetkilendirme isteği göndermesiyle başlatılır. \n Bu yetkilendirme isteği, yetkilendirilecek hesap bilgisi rızasının eşleştirileceği ÖHK’nın bulunması için ilgili veriyi taşır. \n HHS, ödeme hizmeti kullanıcısını doğrular. \n ÖHK verdiği izin tipi dahilinde bilgileri paylaşılacak olan hesapları seçer. Rıza güncelleme akışı ile başlatılan isteklerde ÖHK mevcutta vermiş olduğu hesap ve kartları seçili olarak görüntüler. İlgili seçimler üzerinde güncelleme sağlayarak onay verir. \n HHS, hesap bilgisi rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n \n Başarılı GKD sonrasında (rizaDrm=’Y’) ilgili rıza nesnesi için (belirli bir rizaNo) yetkilendirme kodunun (yetKod) alınmasının ardından erişim belirteci erişim adresine POST çağrısı yapılarak yetkilendirme kodu karşılığında erişim belirteci ve yenileme belirteci alınır. POST /erişim-belirteci erişim noktası EK-3’te açıklanmıştır. \n Erişim belirteci alındıktan sonra; HHS,  hesap bilgisi rızasının durumunu “Yetki Kullanıldı” olarak günceller. Rıza tesisi sağlanmış olur. \n 9.3 ADIM 2.1: Hesap Bilgisi Rızasının Sorgulanması \n GET /hesap-bilgisi-rizasi/{rizaNo} \n ÖHK, HHS üzerinden rıza iptali yapmış olabilir veya ÖHK’nın verdiği rıza süresi dolmuş olabilir.  Bu durumlarda HBHS, rıza alma akışına başlamadan önce, daha önce oluşturulmuş bir HesapBilgisiRizasi kaynağının durumunu, isteğe bağlı olarak alabilir. \n \n YÖS sadece kendi uygulaması üzerinden verilmiş hesap bilgi rızasını sorgulayabilir. YÖS'e ait olmayan bir rıza ile sorgulama yapıldığında HHS tarafından  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n YÖS'e ait rıza sorgulama yapılırken ilgili rıza kaydı bulunamaz ise  ”TR.OHVPS.Resource.NotFound”  hatası dönülür. \n \n Servis başarılı yanıtında Tablo 13’de belirtilen “HesapBilgisiRizasi” nesnesini dönmektedir. \n Durum \nHesapBilgisiRizasi kaynağı için kullanılabilecek durum göstergeleri şu şekildedir: \n \n \n Yetki Bekleniyor \n \n \n Yetkilendirildi \n \n \n Yetki Kullanıldı \n \n \n Yetki S
16onlandırıldı \n \n \n Yetki İptal \n \n \n Hesap bilgisi rızası sonlandırıldı ve iptal statüsünde olan rıza'ların güncellenme zamanından(gnclZmn) 6 ay sonrasına kadar sorgulanabilir olması beklenmektedir. HHS'ler ilgili süre sonrasında yapılacak rıza sorgularına  \"TR.OHVPS.Resource.NotFound\"  uyarısı verebilir. YÖS'ler tarafından iptal ve sonlandırıldı statüsünde olan rızalar için sorgulama yapmamalıdır. \n 9.4 ADIM 2.2: Hesap Bilgisi Rızasının İptali \n \n \n \n Şekil 13: Hesap Bilgisi Müşteri Rızasının Geri Alınması \n DELETE /hesap-bilgisi-rizasi/{RizaNo} \n DELETE /hesap-bilgisi-rizasi çağrısı, bir HBHS'nin önceden oluşturulmuş bir hesap erişim rızasını (yetkili olsun veya olmasın) silmesine izin verir. Müşteri, rızasını HHS üzerinden iptal etmek yerine, HBHS üzerinden bu rızasını kaldırmak isteyebilir. \nBu API çağrısı, müşterinin HBHS üzerinden hesap bilgisi rızasını iptal etmesine ve HHS nezdindeki hesap bilgisi rızası nesnesinin silinmesini sağlar. \n \n Rıza durumunun K olduğu durumlarda erişim belirteci kontrolü yapılır. Geçerli bir erişim belirteci yok ise HHS tarafından  ”TR.OHVPS.Connection.InvalidToken”  hatası dönülür. \n İstek başlığında yer alan X-Access-Token ile ilişkili rıza, silinen rizaNo bilgisi ile aynı olup olmadığı kontrol edilir. Farklı olması durumunda  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n Rıza İptali API'sinde ilgili rıza kaydı bulunamaz ise  ”TR.OHVPS.Resource.NotFound”  hatası dönülür. \n Rıza durumu Yetki Sonlandırıldı - S veya Yetki İptal - I ise  \"TR.OHVPS.Resource.ConsentRevoked\"  hatası dönülür. \n \n Müşterinin HBHS’nin veri erişim iznini iptal etmesi durumunda HBHS, HHS’de mevcut olan HesapBilgisiRizasi kaynağını pratik olarak mümkün olan en kısa sürede silmelidir. Bu ise, ilgili kaynağa \n DELETE /hesap-bilgisi-rizasi/{RizaNo} \nçağrısı aracılığı ile yerine getirilir. HBHS ayrıca, sisteminden Hesap/Kart Erişim İzni kaynaklarını da temizlemelidir. \nSöz konusu silme işlemi, kayıtların statüsünün pasife çekilmesi ile gerçekleştirilmelidir. Söz konusu kayıtlar, denetim izlerinin oluşturulması ve saklanmasına ilişkin ikincil düzenleme hükümleri kapsamında güvenli şekilde tutulmalıdır. \nServis istek parametresi olarak sadece path’de iletilen Rıza No bilgisine ihtiyaç duymaktadır. \nÖHK rızası başarı ile silindiğinde HTTP 204 response kodu ile işlem sonucu iletilir. Rıza tipi “I” yani “Yetki İptal” olarak güncellenir ve gnclZmn zaman damgası vurularak güncellenir. \nÖHK ile rıza iptali sırasında kurulacak iletişimde (e-posta, sms gibi) aşağıdaki alanların iletilmesi tavsiye edilmektedir: \nYÖS Adı, HHS adı, Rıza Oluşturma Zamanı, Servis Tipi Bilgisi (HBHS) \n 9.5 ADIM 3: Hesap Bilgilerinin Alınması \n    \n \n   \n Şekil 14: Hesap Bilgilerinin Alınması \n İSTEK: \nMüşteri rızası tesis edilmiş kullanıcı için HBHS API erişim adresinden HHS’ye erişilebilir hesap bilgilerini GET isteği ile sorgular: \n \n Parametrede yer alan değerlerin doğru gönderildiği kontrol edilir. Hatalı gönderilmesi durumunda HHS tarafından  ”TR.OHVPS.Resource.InvalidFormat”  hatası dönülür. Parametrede yer alan değerler gönderilmediği durumda parametredeki varsayılan değerler ile hesap bilgileri dönülür. Varsayılan değerler Tablo 14'de belirtilmiştir. \n Erişim belirteci kontrolü yapılır. Geçerli bir erişim belirteci yok ise HHS tarafından  ”TR.OHVPS.Connection.InvalidToken”  hatası dönülür. \n /hesaplar/{hspRef} ile yapılan istekte;\n \n İstek başlığında yer alan X-Access-Token ile ilişkili rızada, izin verilen hspRef'ler için, hesap bilgisi sorgulanan hspRefe ait rıza ile aynı olup olmadığı kontrol edilir. Farklı olması durumunda  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n İlgili hspRef bulunamaz  ”TR.OHVPS.Resource.NotFound”  hatası dönülür. \n \n \n Rıza durumu kontrol edilir.\n \n RizaDurumu B: Yetki Bekleniyor ya da Y: Yetkilendirildi ise  “TR.OHVPS.Resource.ConsentMismatch”  hatası dönülür. \n YÖS'ün;
16 Rıza İptal - I ya da Yetki Sonlandırıldı - S rıza durumlarında hesap bilgileri servisini çağırmaması beklenir. Bu rıza durumları ile yapılmış çağrılar olduğunda HHS tarafından  ”TR.OHVPS.Resource.ConsentRevoked”  hatası dönülür. \n RizaDurumu “Yetki Kullanıldı” ise kontrollere devam edilir. \n \n \n HHS tarafından ÖHK’nın “01: Temel Hesap Bilgisi” izin türüne sahipliği kontrol edilir. 01 izin türüne sahip değil ise  ”TR.OHVPS.Business.PermissionTypeNotSupported”  hatası dönülür. \n \n Yukarıdaki kontroller tamamlandıktan sonra HHS, \"HesapBilgileri\" nesnesini oluşturur ve HBHS’ye döner. \n \n Hesap bilgisi rızası alınmış ve erişim izni devam eden hesaplar içerisinden herhangi bir hesabın kapatılması ya da pasife alınması durumunda YÖS tarafından yapılan hesap isteğine HHS tarafından hesap bilgisi dönülmelidir. Rıza içerisinde tek bir hesap olması halinde ilgili hesabın kapatılması durumunda rıza 09 iptal detay kodu ile iptal edilmelidir.\nKapalı hesap için TR.OHVPS.DataCode.HspDrm veri türünden KAPALI değeri ile, pasif hesap için TR.OHVPS.DataCode.HspDrm veri türünden PASIF değeri ile dönülmelidir. \n 9.6 ADIM 3.1 ve 3.2: Hesap Bilgilerinin Sorgulanması \n GET /hesaplar ve GET /hesaplar/{hspRef} \n Bu erişim noktalarından tüm hesapların veya belirli bir hesabın bilgileri sorgulanır. Hesap bilgisi için daha önce tanımlanmış izin türüne göre (Temel Hesap Bilgisi veya Detaylı Hesap Bilgisi) yanıtında dönülen HesapBilgileri nesnesinin içeriği değişir. Tablo 15’te HesapBilgileri nesnesinin içeriği verilmiştir. \n Hesap Bilgisi Sorgu Örneği (Tüm Hesaplar) =  /hesaplar \nHesap Bilgisi Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef} \nİşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar?\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= hspRef &\nsrlmYon=A \n Tablo 14: Hesap Bilgileri Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den büyük olamaz. \n Bu veri gönderildiği durumda, HHS listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarası \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek kayıtların sıralama kriterini belirtir. Alabileceği değerler: { “hspRef”} \n Bu veri gönderildiği durumda, HHS listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama kriterini hspRef olarak belirler. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler:  A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 15: “HesapBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Rıza No \n rizaNo \n AN1..128 \n Z \n HesapBilgisiRızası nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n Hesap Temel \n hspTml \n Kompleks: HesapTemel \n Z \n Temel Hesap Bilgileri (Temel Hesap Bilgisi varsayılan izin türü olduğundan Hesap Temel nesnesi zorunlu olarak yanıtta bulunur) \n \n \n > Hesap Referansı \n hspRef \n AN5..40 \n Z \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez. Bir hesap (IBAN) tek bir hs
16pRef'e karşılık gelmelidir, benzer şekilde bir hspRef tek bir IBAN'a karşılık gelmelidir. Aynı hesap için alınan tüm rızalarda hesap referans bilgisinin değişmemesi gerekmektedir. \n \n \n > Hesap Numarası \n hspNo \n AN26 \n K \n Eğer varsa ödeme hesabına ait IBAN bilgisi \n \n \n > Hesap Sahibi Ünvanı \n hspShb \n AN3..140 \n Z \n Hesap sahibi ya da hesap sahiplerinin ad-soyadı, ticari ünvanı \n \n \n > Şube Adı \n subeAdi \n AN3..50 \n K \n Eğer varsa ödeme hesabının bağlı olduğu şubenin adı \n \n \n > Kısa Ad \n kisaAd \n AN3..50 \n K \n Eğer hesap sahibi hesaba ait bir ad tanımladıysa, tanımlanan hesap adı \n \n \n > Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi. \n \n \n > Hesap Türü \n hspTur \n AN1 \n Z \n Hesabın türü (bireysel veya ticari). TR.OHVPS.DataCode.HspTur sırali veri değerlerinden birini alır. \n \n \n > Hesap Tipi \n hspTip \n AN1..32 \n Z \n Hesabın tipi (VADESİZ, KREDİLİ vb.).TR.OHVPS.DataCode.HspTip sıralı veri değerlerinden birini alır. \n \n \n >Hesap Ürün Adı \n hspUrunAdi \n AN1..140 \n İ \n HHS tarafından atanmış olan ürün adı bilgisidir. HBHS tarafından ÖHK’ya gösterilmesi kullanım kolaylığı sağlayacaktır. \n \n \n > Hesap Durumu \n hspDrm \n AN5..50 \n Z \n Hesabın durumunu belirtir. TR.OHVPS.DataCode.HspDrm sıralı veri türlerinden birini alır. \n \n \n Hesap Detay \n hspDty \n Kompleks: HesapDetay \n K \n Detay Hesap Bilgileri (Temel Hesap Bilgisine ek olarak Detay Hesap Bilgisi izin türü de seçilmişse Hesap Detay nesnesi koşullu olarak yanıtta bulunur) \n \n \n > Açılış Tarihi \n hspAclsTrh \n ISODateTime \n Z \n Belirtilen hesabın açılış tarihi. \n 9.7 ADIM 3.3 ve 3.4: Hesap Bakiyesinin Sorgulanması \n GET /bakiye ve GET /hesaplar/{hspRef}/bakiye \nBu erişim noktalarından tüm hesapların veya belirli bir hesabın bakiyesi sorgulanır.   İstek çağrısına dönülen “BakiyeBilgileri” nesnesi Tablo 17’de verilmiştir. \n \n Erişim belirteci kontrolü yapılır. Geçerli bir erişim belirteci yok ise HHS tarafından  ”TR.OHVPS.Connection.InvalidToken”  hatası dönülür. \n /hesaplar/{hspRef}/bakiye ile yapılan istekte;\n \n İstek başlığında yer alan X-Access-Token ile ilişkili rızada, izin verilen hspRef'ler için, bakiye sorgusundaki hspRefe ait rıza ile aynı olup olmadığı kontrol edilir. Farklı olması durumunda  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n İlgili hspRef bulunamaz  ”TR.OHVPS.Resource.NotFound”  hatası dönülür. \n \n \n Rıza durumu kontrol edilir.\n \n RizaDurumu B: Yetki Bekleniyor ya da Y: Yetkilendirildi ise  “TR.OHVPS.Resource.ConsentMismatch”  hatası dönülür. \n YÖS'ün; Rıza İptal - I ya da Yetki Sonlandırıldı - S rıza durumlarında hesap bakiye servisini çağırmaması beklenir. Bu rıza durumları ile yapılmış çağrılar olduğunda HHS tarafından  ”TR.OHVPS.Resource.ConsentRevoked”  hatası dönülür. \n RizaDurumu “Yetki Kullanıldı” ise kontrollere devam edilir. \n \n \n Hesap Bakiye Sorgulanması yapılırken HHS tarafından ÖHK’nın “03: Bakiye Bilgisi” izin türü sahipliği kontrol edilir. 03 izin türüne sahip değil ise  ”TR.OHVPS.Business.PermissionTypeNotSupported”  hatası dönülür. \n \n Yukarıdaki kontroller tamamlandıktan sonra HHS, \"BakiyeBilgileri\" nesnesini oluşturur ve HBHS’ye döner. \n \n Hesap Bilgisi Rızası alınmış ve erişim izni devam eden hesaplar içerisinde yer alan hesaplardan kapatılmış ya da pasif duruma alınmış olan hesaplar için bakiye isteği yapıldığında HHS tarafından bakiye bilgisi dönülmelidir. \n \n Hesap bakiyelerinin gösterilmesi sırasında aşağıda verilen örnekler gözönünde bulundurulmalıdır. \n Örnek 1 : ÖHK  Hesap Bakiye Tutarı  0 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL. ÖHK 1000 TL para çıkışı gerçekleştirdi. Bakiye API'si yanıtı içerisinde iletilen  Kredi Dahil Göstergesi  0 değerini içeriyorsa,  Hesap Bakiye Tutarı  -1000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL olmalıdır. \n Örnek 2 : ÖHK  Hesap Bakiye Tutarı  0 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL. ÖHK 1000 TL para çıkışı gerçekleştirdi. Bakiye API'si yanıtı içerisinde iletilen  Kredi Dahil Göstergesi  1 değerini içeriyorsa,  Hesap Bakiye Tutarı  2000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL olmalıdır. \n Örnek 3 : ÖHK  Hesap Bakiye Tutarı  1000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL. ÖHK 1000 TL para çıkışı gerçekleştirdi. Bakiye API'si yanıtı içerisinde iletilen  Kredi Dahil Göstergesi  0 değerini içeriyorsa,  Hesap Bakiye Tutarı  0 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL olmalıdır. \n Örnek 4 : ÖHK  Hesap Bakiye Tutarı  1000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL. ÖHK 1000 TL para çıkışı gerçekleştirdi. Bakiye API'si yanıtı içerisinde iletilen  Kredi Dahil Göstergesi  1 değerini içeriyorsa,  Hesap Bakiye Tutarı  3000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL olmalıdır. \n İşlem Sorgu Örneği (Belirli Bir Hesap)=  /bakiye?\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= hspRef &\nsrlmYon=A \n Tablo 16: “BakiyeBilgileri” Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den bü
16yük olamaz. \n Bu veri gönderildiği durumda, HHS listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarasi \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek kayıtların sıralama kriterini belirtir. Alabileceği değerler: { “hspRef”} \n Bu veri gönderildiği durumda, HHS listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama kriterini hspRef olarak belirler. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler:  A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 17: “BakiyeBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Hesap Referansı \n hspRef \n AN5..40 \n Z \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez. Bir hesap (IBAN) tek bir hspRef'e karşılık gelmelidir, benzer şekilde bir hspRef tek bir IBAN'a karşılık gelmelidir. Aynı hesap için alınan tüm rızalarda hesap referans bilgisinin değişmemesi gerekmektedir. \n \n \n Bakiye \n bky \n Kompleks:Bakiye \n Z \n \n \n \n > Hesap Bakiye Tutarı \n bkyTtr \n AN1..25 \n Z \n Hesabın bakiyesi. Bloke tutar düşülmeden iletilmelidir.   Tutar alanı regex patterni şu şekildedir:  '^-?\\d{1,18}$|^-?\\d{1,18}\\.\\d{1,5}$' \n \n \n > Blokeli Tutar \n blkTtr \n AN1..24 \n K \n Varsa hesapta blokeli tutar bilgisi.     Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Para Birimi \n prBrm \n AN3 \n Z \n Para birimi. \n \n \n > Bakiye İletilme Zamanı \n bkyZmn \n ISODateTime \n Z \n Bakiyenin iletildiği zaman bilgisi. \n \n \n > KrediliHesap \n krdHsp \n Kompleks: KrediliHesap \n K \n \n \n \n >> Kredili Mevduat Hesabı Bakiyesi \n kulKrdTtr \n AN1..24 \n Z \n Kredili mevduat tutarı. Kredili bir hesap ise zorunlu.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n >> Kredi Dahil Göstergesi \n krdDhlGstr \n AN1 \n Z \n Kredili bir hesap ise zorunlu. Bakiye tutarının kredi tutarı dahil edilerek ya da edilmeden iletildiğini gösterir.   0: Kredi tutarı dahil edilmeden bakiye bilgisi iletilmesi durumu   1: Kredi tutarı dahil edilerek bakiye bilgisi iletilmesi durumu \n 9.8 ADIM 3.5 ve 3.6: İşlemlerin Sorgulanması \n GET /hesaplar/{hspRef}/islemler \n Servis başarılı yanıtında Tablo 19’da belirtilen \"IslemBilgileri\" nesnesini dönmektedir. \n \n Belirli bir hesaba ilişkin işlem bilgileri Tablo 18’deki istek parametrelerine göre sorgulanır. Parametrede yer alan değerlerin doğru gönderildiği kontrol edilir. Hatalı gönderilmesi durumunda  ”TR.OHVPS.Resource.InvalidFormat”  hatası dönülür. \n Erişim belirteci kontrolü yapılır. Geçerli bir erişim belirteci yok ise HHS tarafından  ”TR.OHVPS.Connection.InvalidToken”  hatası dönülür. \n İstek başlığında yer alan X-Access-Token ile ilişkili rızada, izin verilen hspRef'ler için, işlemler sorgusundaki hspRefe ait rıza ile aynı olup olmadığı kontrol edilir. Farklı olması durumunda  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n İlgili hspRef bulunamaz  ”TR.OHVPS.Resource.NotFound”  hatası dönülür. \n Rıza durumu kontrol edilir.\n \n RizaDurumu B: Yetki Bekleniyor ya da Y: Yetkilendirildi ise  “TR.OHVPS.Resource.ConsentMismatch”  hatası dönülür. \n YÖS'ün;
16 Rıza İptal - I ya da Yetki Sonlandırıldı - S rıza durumlarında işlemler servisini çağırmaması beklenir. Bu rıza durumları ile yapılmış çağrılar olduğunda HHS tarafından  ”TR.OHVPS.Resource.ConsentRevoked”  hatası dönülür. \n RizaDurumu “Yetki Kullanıldı” ise kontrollere devam edilir. \n \n \n HHS tarafından ÖHK’nın “04: Temel İşlem (Hesap Hareketleri) Bilgisi” veya \"05: Ayrıntılı İşlem Bilgisi\" izin türüne sahipliği kontrol edilir. 04 veya 05 izin türüne sahip değil ise  ”TR.OHVPS.Business.PermissionTypeNotSupported”   hatası dönülür. \n \n Hesap Bilgisi Rızası alınmış ve erişim izni devam eden hesaplar içerisinde yer alan hesaplardan kapatılmış ya da pasif duruma alınmış olan hesaplar için işlemler isteği yapıldığında HHS tarafından işlemler bilgisi dönülmelidir. \nİşlem bilgisi için daha önce tanımlanmış izin türüne göre yanıtta dönen IslemBilgileri nesnesinin (Temel İşlem Bilgisi veya Temel İşlem Bilgisi ve Detaylı İşlem Bilgisi) içeriği değişir. \nİşlemler servisi hem ÖHK’nın talebi ile YÖS uygulaması üzerinden çağrılabileceği gibi, YÖS’ün ÖHK’sız başlatabileceği otomatik çağrıları ile de yanıt dönebilmektedir. \nHHS, işlemin sistemsel yapılıp yapılmadığını, istek parametreleri içerisinde yer alan PSU-Initiated parametresi ile anlar. Bu parametre “E” ise ÖHK’lı, “H” ise sistemsel yapılmış bir sorgu anlamına gelmektedir.\nÖHK’nın başlattığı sorgular için HHS tarafından belirlenen üst rate limitler dahilinde çağrım yapılabilir. \nYÖS, otomatik yapacağı sorgularda; \n \n Bireysel ÖHK’lar için hesap bazında günde en fazla 4 adet başarı ile sonuçlanan sorgulama yapabilir. 4 adetten fazla yapılması durumunda  ”TR.OHVPS.Connection.ExceededRate”  hatası dönülür. \n Kurumsal ÖHK’lar için hesap bazında saatte en fazla 12 adet başarı ile sonuçlanan sorgulama yapabilir. 12 adetten fazla yapılması durumunda  ”TR.OHVPS.Connection.ExceededRate”  hatası dönülür. \n \n HHS, tutacağı sayaç bilgisi ile bu sayıları kontrol ederek daha fazla sorgulama yapılmasına izin vermeyebilir. \n Aynı istek parametreleri ile yapılan sorgu sonucunda dönecek toplam kayıt sayısı 100’ü aştığında, sayfalama yöntemi ile HHS’nin cevap dönmesi beklenmektedir.  Her bir sayfa için işlemler servisi tekrar çağrılsa da, bu çağrım HHS’nin tuttuğu sayaç değerini arttırmaz. HHS’nin tutacağı sayaçın kontrol parametreleri YÖS kodu, hesap numarası ya da referansı olmalıdır. Sayfa no parametresi varsa ve 1'den büyük ise işlem sayacını arttırmamalıdır. \n ÖHK’nın YÖS uygulaması üzerinden tetiklediği işlemlerde ise;\nbireysel ÖHK’lar  için en fazla 1 aylık,\nkurumsal ÖHK’lar için ise en fazla 1 haftalık bir pencere aralığında sorgulama yapılabilir. Belirtilen tarih aralığından farklı değer ile sorgulama yapıldığında  ”TR.OHVPS.Business.InvalidStartEndTime”  hatası dönülür. \n YÖS, otomatik yapacağı sorgularda hem bireysel hem de kurumsal ÖHK’lar için 24 saatlik bir pencere aralığında sorgulama yapabilir. Belirtilen tarih aralığından farklı değer ile sorgulama yapıldığında  ”TR.OHVPS.Business.InvalidStartEndTime”  hatası dönülür. \n Yeni günün başlangıç saatinin 00:00:00 olduğu kabul edilmiştir. \n Sorgu örnekleri aşağıdaki gibidir:  \n 1 günlük İşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-06-01T00:00:00+03:00&\nhesapIslemBtsTrh=2020-06-02T00:00:00+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n \n 1 haftalık İşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-06-01T00:00:00+03:00&\nhesapIslemBtsTrh=2020-06-08T00:00:00+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n \n 1 Aylık İşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-02-01T00:00:00+03:00&\nhesapIslemBtsTrh=2020-03-01T00:00:00+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n 1 Aylık İşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-01-31T00:00:00+03:00&\nhesapIslemBtsTrh=2020-02-28T00:00:00+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n 1 Aylık İşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-02-28T00:00:00+03:00&\nhesapIslemBtsTrh=2020-03-28T00:00:00+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n 24 saatlik pencerede yapacağı sistemsel sorgu örneği (Son sorgusunun üzerine 24 saat eklenmesi)  =\n/hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-06-01T14:10:08+03:00&\nhesapIslemBtsTrh=2020-06-02T14:10:08+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n Önyüzden alınan sorgu parametreleri ile oluşturulan sorgu örneği (Örnek sorgu tarih aralığı 20.02.2023- 25.02.2023 arasındadır)  =\n/hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2023-02-20T00:00:00+03:00&\nhesapIslemBtsTrh=2023-02-26T00:00:00+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n Tablo 18: İşlem Listesi Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n İşlem Sorgulama Başlangıç Zamanı \n hesapIslemBslTrh \n ISODateTime \n Z \n Sorgulanacak işlemlerin başlangıç tarihi. \n HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. ÖHK tarafından tetiklenen sorgularda;hesapIslemBslTrh ve hesapIslemBtsTrh arası fark bireysel ÖHK’lar için en fazla 1 ay,kurumsal ÖHK’lar için ise en fazla 1 hafta olabilir. YÖS tarafından sistemsel yapılan sorgulamalarda hem bireysel, hem de kurumsal ÖHK’lar için;son 24 saat sorgulanabilir. Bu yüzden hesapIslemBtsTrh-24 saat’ten daha uzun bir aralık sorgulanamaz olmalıdır. İstek başlığında yer alan PSU-Initiated alanı “E” ise ÖHK’lı, “H” ise sistemsel yapılmış bir sorgu anlamına gelmektedir. \n \n \n İşlem Sorgulama Bitiş Zamanı \n hesapIslemBtsTrh \n ISODateTime \n Z \n Sorgulanacak işlemlerin bitiş tarihi. \n HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. YÖS tarafından sistemsel yapılan sorgulamalarda hem bireysel, hem de kurumsal ÖHK’lar için;İleri vadeli işlem emirleri dahil olmadığı için (Sürüm 1.0.2 kapsamında); İşlem Sorgulama Bitiş Zamanı, her zaman, sorgulama zaman damgasını iletecek şekilde (datetime (now)) iletilebilir. \n \n \n En Düşük İşlem Tutarı \n minIslTtr \n AN1..24 \n İ \n Sorgulanacak işlemlerin alabileceği en düşük işlem tutarı.      Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n Bu veri gönderildiği durumda HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. \n \n \n En Yüksek İşlem Tutarı \n mksIslTtr \n AN1..24 \n İ \n Sorgulanacak işlemlerin alabileceği en yüksek işlem tutarı.    Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n Bu veri gönderildiği durumda HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. \n \n \n Borç Alacak Göstergesi \n brcAlc \n AN1 \n İ \n TR.OHVPS.DataCode.BrcAlc sıralı veri tipi değerlerinden birini alır. Sorgulanacak işlemlerin borç / alacak kriteri B: Hesaba borç yaratan işlem.A: Hesaba alacak yaratan işlem.{“B”,”A”} \n Bu veri gönderildiği durumda HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den bü
16yük olamaz. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarasi \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek işlemlerin sıralama kriterini belirtir. Alabileceği değerler: {“islGrckZaman”} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama kriterini islGrckZaman olarak belirler. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler: A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 19: “IslemBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Hesap Referans Numarası \n hspRef \n AN5..40 \n Z \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez. Bir hesap (IBAN) tek bir hspRef'e karşılık gelmelidir, benzer şekilde bir hspRef tek bir IBAN'a karşılık gelmelidir. Aynı hesap için alınan tüm rızalarda hesap referans bilgisinin değişmemesi gerekmektedir. \n \n \n Islemler \n isller \n Kompleks:Islem[Array] \n K \n Hesaba ilişkin hareketler varsa İşlemler nesnesi dizisi olarak dönülür. İşlemler nesnesi Temel İşlem Bilgileri ve Detay İşlem Bilgileri nesnesinden meydana gelir. İzin türü varsayılan olarak Temel İşlem Bilgilerini içerir. Detay İşlem Bilgileri izin türü de seçildi ise Temel İşlem Bilgilerine ek olarak Detay İşlem Bilgileri de gönderilir. \n \n \n > Temel İşlem Bilgileri \n islTml \n Kompleks:IslemTemel \n Z \n Temel İşlem Bilgileri varsayılan olarak dönülür. \n \n \n >> İşlem Numarası \n islNo \n AN3..50 \n Z \n Hesap hareketinin oluşturulması sırasında atanan ve borç (veya alacak) hareketini tekilleştiren HHS bazında tekil tanımlayıcıdır. Bu değer tek başına tekil olabileceği gibi birden fazla değerin bir araya getirilmesiyle de tekilliği sağlanmış olabilir. Bu değerin en azından hesap numarası (hesNo) bazında tekil olması beklenir. Genellikle kullanılan örnekleri; Instance_Id, Transaction_Id, Transaction_Num, Transaction_TimeStamp,dekont numarası \n \n \n >> İşlem Referans Numarası \n refNo \n AN3..50 \n Z \n İşlemi uçtan uca tanımlayan tekil tanımlayıcıdır. Borç ve alacak hareketinden oluşan bir veya birden fazla işlemler bütünü için atanmış olan ve bu bütünü tekilleştiren (bir biri ile ilişkisini tutan) değerdir.Bu değer hem YÖS’ten gelen değer olabilir (ödeme işlemlerinde kullanılan kkodRef ya da refBlg alanı) hem de HHS içinde takip edilmek için üretilmiş bir değer olabilir. HHS sisteminde 2 değerin de bulunması durumunda;refNo alanını doldurmak için, HHS’nin YÖS’ten gelen değere öncelik vermesi beklenmektedir. YÖS’ten gelen veri örneği: Sipariş Numarası, Fatura Numarası, Karekod Referansı vb. HHS’te üretilen veri örneği: Masraflı havale işleminde hem havale işleminin hem de masraf işleminin aynı referans numarasına sahip olması da örnek olarak gösterilebilir. \n \n \n >> İşlem Tutarı \n islTtr \n AN1..24 \n Z \n İşlem tutarı.    Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n >> Güncel Bakiye Tutarı \n gnclBky \n AN1..25 \n Z \n İşlem sonrası güncel bakiye bilgisi tutarı.    Tutar alanı regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi. \n \n \n >> İşlem Gerçekleşme Zamanı \n islGrckZaman \n ISODateTime \n Z \n İşlemin gerçekleşme zamanı. \n \n \n >> İşlem Kanalı \n kanal \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeKaynak sıralı veri türü değerlerinden birini alır. \n \n \n >> Borçlandırma Alacaklandırma Göstergesi \n brcAlc \n AN1 \n Z \n TR.OHVPS.DataCode.BrcAlc sıralı veri türü değerlerinden birini alır. İşlemin hesabı borç ya da alacaklandırdığı bilgisidir. \n \n \n >> İşlem Türü \n islTur \n AN3..50 \n Z \n HHS’nin işleme ait ilişkilendirdiği işlem türü değeri. TR.OHVPS.DataCode.IslemTuru sıralı veri türü değerlerinden birini alır. \n \n \n >> İşlem Amacı \n islAmc \n AN2 \n Z \n TR.OHVPS.DataCode.IslemAmaci sırali veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n \n \n >> Ödeme Sistemi No \n odmStmNo \n AN10..50 \n K \n Ödeme başarılı başlatıldıysa, ödemenin başlatıldığı sistemdeki referans numarası. Gerektiğinde ilgili ödeme sisteminde/HHS’de söz konusu ödemeye karşılık gelen mesajla bağlantı kurmada kullanılır.   Ödeme Hizmeti kullanıcısına işlemin takibi için gösterilebilir.  İşlemin yönlendirildiği ödeme sistemi FAST ya da PÖS ise sistemdeki ilgili mesajın Tarih, GönderenKatilimKodu ve SorguNumarasi değerlerinin birleşiminden oluşur. Bu 3 alan mevcutta kullanıldığı formatta aralarına dikey çizgi (Unicode U+2223) işareti koyularak, birleştirmeli ve iletilmelidir. Örn : Tarih|GönderenKatilimKodu|SorguNumarasi   Ödeme Havale/Virman işlemi ise HHS’nin üretmiş olduğu havale/virman numarasını içerir. Buradaki format da Tarih|GönderenKatilimKodu|Havale-virman numarası şeklinde olmalıdır. Havale/FAST/PÖS  ödeme yöntemleri için tarih alanı yyyy-aa-gg formatında 10 karakter olarak 
16iletilmelidir. \n \n \n > Detay İşlem Bilgileri \n islDty \n Kompleks: IslemDetay \n K \n Detay İşlem Bilgileri dizi olarak gönderilmelidir. \n \n \n >> İşlem Açıklaması \n islAcklm \n AN1..200 \n Z \n HHS tarafından atanan işlem açıklaması. HHS kendi işlem hareketlerine yansıttığı açıklamayı buraya yansıtmalıdır.  HHS'ler tüm hesap hareketlerini YÖS'ler ile paylaşmakla yükümlü olup, hassas veri içeren(örn: faiz, komisyon bilgisi içeren vb.) işlem hareketleri de bu kapsamda değerlendirilerek işlem açıklamasının maskeli olarak iletilmesi sağlanır. Kelimelerin ilk 3 hanesi maskeli olacak şekilde, ancak sakıncalı bulunan kelimeler varsa; (örn: faiz, komiyon vb.) kelimelerin tamamı maskeli olacak şekilde gösterilebilir. \n \n \n >> Karşı Taraf \n krsTrf \n Kompleks:  KarsiTaraf \n K \n Kullanımı işlem bazında değişmektedir. Örnek: FAST işleminde karşı taraf alıcının bilgileridir. Vergi ödemesinde kurum IBAN bilgisi müşteriye gösterilemeyebileceğinden bu alanın boş gelmesi HHS insiyatifindedir. \n \n \n >>> Karşı Maskeli IBAN \n krsMskIBAN \n AN26 \n K \n İlgili hesap hareketinin karşı tarafının maskeli IBAN bilgisi. \n \n \n >>> Karşı Ünvan \n krsUnvan \n AN3..140 \n K \n İlgili hesap hareketinin karşı tarafının ad-soyad ya da ticari ünvan bilgisi. Ünvan bilgisi maskelenmeden iletilmelidir. \n \n \n >>> Karşı Taraf Kimlik Bilgisi \n krsKimlikVrs \n AN1..11 \n İ \n HHS sorumluluğunda YÖS ile paylaşılan Karşı Taraf Kimlik Bilgisi(Kimlik/Kurum Kimlik - TCKN/VKN) \n 9.9 ADIM 4: Kart Bilgilerinin Sorgulanması \n    \n GET /kartlar ve GET /kartlar/{kartRef} \n Bu erişim noktalarından tüm kartların veya belirli bir kartın bilgileri sorgulanır ve kart listesi elde edilir. İlgili sorgu için 07 izin türünün verilmesi yeterlidir. HHS ekranlarında kart seçimi yapılırken sadece aktif/açık statüde olan kartlar listelenecek ve ÖHK'ya seçtirilecektir. Kartın ilgili kanalda listelenme yetkisi bulunmuyorsa ÖHVPS kapsamında listelenmeyebilir. Listelendiği durumda; asıl kart sahibi ile sanal/ek kart sahiplerinin aynı kişi olduğu düşünüldüğünde HHS ekranlarında kart seçimi yapılarak rıza verilirken asıl kart seçilmeden ilgili asıl karta bağlı sanal ve ek kartların ayrıca seçilerek rıza verilmesine izin verilmemelidir. HHS mevcut kanallarında ek ve sanal kart hareketlerini asıl karttan ayırt etmeden müşterisine gösteriyor ise asıl kart seçimi ile birlikte asıl karta bağlı sanal ve/veya ek kart seçimini zorunlu kılmalıdır. Asıl kart hamili dışında bir kişi için ek kart çıkartıldığı durumda ek kart sahibi HHS'de asıl kartı görmeyecek olduğundan sadece kendisine çıkartılan ek kartı listelenecek ve seçerek rıza vermesi sağlanacaktır. Ek kart hamilinin asıl kart hamilinden farklı olduğu durumda asıl karta ait bir rıza olmasa da ek karta rıza verilebilir. \n Her durumda onay ekranında rıza verilen tüm kartların listesini ÖHK'ya göstermesi zorunludur. Kapalı devre çalışan kartlar kapsama dahil değildir. \n YÖS tarafından başlatılan rıza isteklerinde hesap ve kart izin türlerinin seçili olması durumunda HHS ekranlarında hem hesapların hem de kartların listelenmesi sağlanacaktır. Ancak hesap ya da kart bilgilerinden en az birinin seçilmesi yeterlidir. Hem hesap hem kart bilgisi için seçim yapılması zorunluluğu bulunmamaktadır. YÖS üzerinden hem hesap hem kart izin türü seçilerek başlatılan rıza akışında, müşteri HHS ekranında yalnızca hesap seçimi yapmış ise, kartlar servisine yapılan isteklerde HHS tarafından hata yerine boş liste dönülmelidir. \n \n Parametrede yer alan değerlerin doğru gönderildiği kontrol edilir. Hatalı gönderilmesi durumunda HHS tarafından  ”TR.OHVPS.Resource.InvalidFormat”  hatası dönülür. Parametrede yer alan değerler gönderilmediği durumda parametredeki varsayılan değerler ile kart bilgileri dönülür. Varsayılan değerler Tablo 20'de belirtilmiştir. \n Erişim belirteci kontrolü yapılır. Geçerli bir erişim belirteci yok ise HHS tarafından  ”TR.OHVPS.Connection.InvalidToken”  hatası dönülür. \n Rıza durumu kontrol edilir.\n \n RizaDurumu B: Yetki Bekleniyor ya da Y: Yetkilendirildi ise  “TR.OHVPS.Resource.ConsentMismatch”  hatası dönülür. \n YÖS'ün;
16 Rıza İptal - I ya da Yetki Sonlandırıldı - S rıza durumlarında kartlar servisini çağırmaması beklenir. Bu rıza durumları ile yapılmış çağrılar olduğunda HHS tarafından  ”TR.OHVPS.Resource.ConsentRevoked”  hatası dönülür. \n RizaDurumu “Yetki Kullanıldı” ise kontrollere devam edilir. \n \n \n İlgili rıza numarasının “07: Temel Kart Bilgisi” izin türüne sahipliği kontrol edilir. 07 izin türüne sahip değil ise  ”TR.OHVPS.Business.PermissionTypeNotSupported”  hatası dönülür. \n \n Yukarıdaki kontroller tamamlandıktan sonra HHS tarafından istek başlığında yer alan X-Access-Token ile ilişkili rıza içerisindeki kart bilgileri dönülür. Kart bilgileri için KartBilgileri nesnesinin içeriği Tablo 21'de verilmiştir. \n Kart Bilgisi Sorgu Örneği (Tüm Kartlar) = /kartlar?syfKytSayi=25&syfNo=1?kartTipi=K\nKart Bilgisi Sorgu Örneği (Belirli Bir Kart) = /kartlar/{kartRef} \n İptal statüsünde olan banka ve ön ödemeli kart tipleri HHS tarafından kartlar sorgusunda dönülmeyecek olup YÖS'ler tarafından ÖHK'ya da gösterilemeyecektir. İptal statülü kredi kart tipi için borç/taksit bilgisi veya artı bakiye olması durumunda kartlar listesinde HHS'ler tarafından dönüş sağlanacak olup YÖS'ler tarafından ÖHK'ya gösterilecektir. İptal statüsünde olup herhangi bir bakiye ve borç olmaması durumunda ilgili kart bilgisi kartlar listesinde HHS tarafından iletilmeyecektir. \n HHS'de açık/aktif statüde yer alan kartlar seçilip rıza tahsis edildikten sonra kartın statüsünün pasif olması durumunda HHS tarafından mevcut kanallarında gösterilen bilgiler kart liste, detay ve hareket sorgulamalarında dönülmelidir. HHS'de kart seçimi yapıp rıza tahsis edildikten sonra ilgili kartın gösterimi özelinde HHS'de kısıtlama getirilmesi durumları için örnekler aşağıda detaylandırılmıştır. \n \n Rıza içerisinde sadece kart olması durumunda ilgili rızanın 09 iptal detay kodu ile iptal edilmesi sağlanacaktır. \n Rıza içerisinde ilgili kartın dışında hesap/kart olması durumunda rıza iptal edilmeyecektir. İlgili kart haricinde kart listesinde farklı bir kart yoksa kart listesi, sorgulandığında  TR.OHVPS.Business.RestrictedChannelAccess  hata kodu dönülecektir. \n \n Tablo 20: Kart Bilgileri Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den büyük olamaz. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarasi \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Kart Tipi \n kartTipi \n AN1 \n İ \n Kart tipleri özelinde Banka, Kredi ve Ön Ödemeli kartların ayrıca soruglanması sağlanır. \n Bu veri gönderildiği durumda, HHS kart tipine uygun olarak kart bilgilerini döner. \n \n \n \n Tablo 21: “KartBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Rıza No \n rizaNo \n AN1..128 \n Z \n HesapBilgisiRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n Kart Referans Numarası \n kartRef \n AN5..40 \n Z \n HHS tarafından her bir kart için atanan biricik değerdir (uuid). Bir kart tek bir kartRef'e karşılık gelmelidir, benzer şekilde bir kartRef tek bir karta karşılık gelmelidir. Aynı kart için alınan tüm rızalarda kart referans bilgisinin değişmemesi gerekmektedir. \n \n \n Kart Numarası \n kartNo \n AN15..16 \n Z \n Karta ait numara maskeli olarak iletilmelidir. Maskeleme kuralı kart'ın ilk 6 ve son 4 hanesi açık olarak görünecek şekilde maskelenmelidir. Sanal kart bilgisi için de ilgili numara maskeli olarak iletilmelidir. Örn: 123456******5678 \n \n \n Asıl Kart Numarası \n asilKartNo \n AN15..16 \n K \n Asıl kartlar için ilgili alan iletilmemelidir. Sanal ve ek kartlar için bağlı oldukları asıl kart numaraları iletilmelidir. Ek karta ait sanal kart için asıl kart numarası olarak ek kart numarası iletilmelidir. Kart numarası maskeli iletilmelidir. \n \n \n Kart Tipi \n kartTipi \n AN1 \n Z \n Kartın tipini belirten değerdir. Kart tipleri olarak alabileceği değerler  TR.OHVPS.DataCode.KartTip  sıralı veri türlerinden biridir. \n \n \n Alt Kart Tipi \n altKartTipi \n AN1 \n Z \n Kart Tipleri altında yer alan alt kart tipleridir. Alt kart tipleri olarak alabileceği değerler  TR.OHVPS.DataCode.AltKartTip  sıralı veri türlerinden biridir.  Asıl banka kartı, sanal banka kartı, ek kredi kartı, asıl kredi kartı gibi tüm kart tiplerini ayrıştırmak için asıl ve alt kart tipleri kullanılmaktadır. \n \n \n Kart Formu \n kartFormu \n AN1 \n Z \n Kartın fiziksel ve dijital olduÄ
16Ÿunu belirten değerdir. Alabileceği değerler  TR.OHVPS.DataCode.KartFormu  sıralı veri türlerinden biridir. \n \n \n Kart Türü \n kartTuru \n AN1 \n Z \n Kartın tipinin bireysel ya da ticari olmasına yönelik olan değerdir.  B:Bireysel, T:Ticari \n \n \n Kart Statüsü \n kartStatu \n AN1 \n Z \n TR.OHVPS.DataCode.KartStatu  sıralı veri türü değerlerinden birini alır.  Kart statüsü için güncelleme yapılamayacak durumda ise iptal statüsü olarak değerlendirilmelidir. Kart statüsü güncellenebilir durumda ise açık ve pasif olarak değerlendirilmelidir. \n \n \n Kart Sahibi Ad/Soyad \n kartSahibi \n AN3..140 \n Z \n Kart sahibi ya da kart sahiplerinin ad-soyadı. \n \n \n Kart Ticari Unvan \n kartTicariUnvan \n AN3..140 \n K \n Kart türü ticari ise ilgili alanda ticari unvan iletilmesi zorunludur. \n \n \n Kart Ürün Adı \n kartUrunAdi \n AN3..140 \n Z \n Kart bilgilerinin ürün adı. Örn : TROY Business Kart \n \n \n Ekstre Türleri \n ekstreTurleri \n Kompleks:EkstreTurleri[Array] \n Z \n Ekstre türleri dizi içerisinde iletilmelidir. \n \n \n > Ekstre Statüsü \n ekstreStatu \n AN1 \n Z \n TR.OHVPS.DataCode.EkstreStatu  sıralı veri türü değerlerinden birini alır.Ekstre türünün durumu iletilmelidir. Pasif olan ekstre türleri de iletilmelidir. A: Aktif : ilgili kartın ekstre türünün kullanıma açık olmasıdır. P: Pasif : İlgili kartın esktre türünün eskiden kullanıldığı ancak şu an devre dışı durumda olmasıdır.  Örnek olarak: İlgili kredi kartının TRY, USD, EUR ekstre türleri açık olduğu durumda üç ekstre türünün de aktif olarak dönmesi beklenmektedir. ÖHK, USD ekstre türünü kapattığı durumda USD pasif ; TRY ve EUR aktif olarak dönmesi beklenmektedir. Böylece ÖHK’nın şu an pasif ama önceden aktif olan esktre türlerinin sorgulanması sağlanabilecektir. Eğer bir ekstre türü için hiç ekstre üretilmemişse, bu durumda HHS’nin ilgili ekstre türünü hiç dönmemesi gerekmektedir. \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n İlgili karta ait ekstre türleri para birimi.(TRY, USD, EUR, GBP) Yurtdışı ekstre olan kartlar için TRY haricinde de değer dönülmesi gerekmektedir. Banka kartlarında ise karta bağlı olan hesap para birimleri iletilmelidir. \n \n \n Kart Rumuz \n kartRumuz \n AN3..140 \n İ \n Kart için rumuz bilgisi var ise gönderilebilir. \n \n \n Kart Şeması \n kartSema \n AN1 \n Z \n TR.OHVPS.DataCode.KartSema  sıralı veri türü değerlerinden birini alır. \n 9.10 ADIM 4.1: Kart Detay Bilgilerinin Sorgulanması \n GET /kartlar/{kartRef}/kart-detay \n KartBilgileri nesnesi ile elde edilen kart listesinde yer alan kartların detayı sorgulanır. Detay ile birlikte KartDetayBilgileri nesnesinin içeriği Tablo 23'de verilmiştir. \n \n Parametrede yer alan ekstreTuru bilgisi Ekstre Türleri haricinde uygun olmayan bir değer gönderildiğinde  ”TR.OHVPS.Business.InvalidCurrencyCode”  hatası dönülür. Bu alan gönderilmiyorsa TRY olarak değerlendirilmelidir. \n Erişim belirteci kontrolü yapılır. Geçerli bir erişim belirteci yok ise HHS tarafından  ”TR.OHVPS.Connection.InvalidToken”  hatası dönülür. \n İstek başlığında yer alan X-Access-Token ile ilişkili rızada, izin verilen kartRef'ler için, kart detay bilgileri sorgulanan kartRefe ait rıza ile aynı olup olmadığı kontrol edilir. Farklı olması durumunda  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n İlgili kartRef bulunamaz  ”TR.OHVPS.Resource.NotFound”  hatası dönülür. \n Rıza durumu kontrol edilir.\n \n B: Yetki Bekleniyor ya da Y: Yetkilendirildi ise  “TR.OHVPS.Resource.ConsentMismatch”  hatası dönülür. \n I: Rıza İptal ya da S: Yetki Sonlandırıldı ise  ”TR.OHVPS.Resource.ConsentRevoked”  hatası dönülür. \n RizaDurumu “K: Yetki Kullanıldı” ise kontrollere devam edilir. \n \n \n İlgili rıza numarasının “08: Detaylı Kart Bilgisi” izin türüne sahipliği kontrol edilir. 08 izin türüne sahip değil ise  ”TR.OHVPS.Business.PermissionTypeNotSupported\"”  hatası dönülür. \n Alt kart tipi Sanal Kart olanlar için detay bilgisi görüntülenmeyecektir.  Sanal kart özelinde detay bilgi sorgulaması yapılması durumunda HHS tarafından  \"TR.OHVPS.Business.CardTypeNotSupported\"  hatası dönülür. \n Kart tipi olarak; iptal statüsünde olan banka ve ön ödemeli kartlar için detay sorgulaması yapılamayacaktır. Kart tipi kredi kartı olup iptal statüsünde olan ve  borcu olmayan bir  kart için de kart detay sorgulaması yapılamayacaktır. Detay sorgulaması yapılamayacak bir kart tipi için HHS'ler tarafından  \"TR.OHVPS.Business.InvalidCardStatus\"  hatası dönülür. \n Rıza içerisinde kanal görüntüleme yetkisi kapatılan kart için detay bilgisi sorgulandığında  TR.OHVPS.Business.RestrictedChannelAccess  hata kodu dönülecektir. \n İlk kredi kartı oluşan ÖHK'lar henüz ekstre oluşmadığı sebebiyle tarih ve borç bilgileri de oluşmamış olabilir. Bu sebeple ilgili tutar bilgileri sıfır olacak şekilde dönülmelidir. Tarih bilgileri ise varsayılan tarih bilgisi olarak dönülebilir.(Örn:01/01/1900) Bu şekilde gelen bir tarih bilgisi YÖS'ler tarafından ÖHK'ya boş olarak gösterilebilir. \n \n Yukarıdaki kontroller tamamlandıktan sonra HHS tarafından  “KartDetayBilgileri”  nesnesi dönülür. \n HHS'ler kart tipi kredi kartı ise ve karta ait borç/taksit tutar bilgisi bulunuyorsa KartDetayBilgileri nesnesi için başarılı yanıt dönmek zorundadır. Borç bilgisi için tutarlar eksi(-) olacak şekilde iletilmesi beklenmektedir. \n Kart Detay Bilgisi Sorgu Örneği (Tek Bir Kart) = /kartlar/{kartRef}/kart-detay \n Parametre içeren Kart Detay Bilgisi Sorgu Örneği (Tek Bir Kart) =  /kartlar/{kartRef}/kart-detay?ekstreTuru=USD \n Tablo 22: Kart Bilgileri Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Ekstre Türü \n ekstreTuru \n AN3 \n K \n Kart bilgileri yanıtında dönülen ekstre türleri değerlerini almaktadır. Para birimine uygun olarak kart detay bilgileri sorgulanmaktadır. Ekstre parametresi TRY,USD,EUR,GBP olarak gönderilebilir. Bu alan gönderilmiyorsa TRY değerlendirilmelidir. İlgili para birimine özel ekstre içindeki harcama değeri dönülecektir. \n Ekstre türleri haricinde uygun olmayan bir değer gönderildiğinde hata verilmelidir. \n \n \n \n Tablo 23: “KartDetayBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n 
16Kart Tiplerine İstinaden Detaylı Açıklama \n \n \n \n \n Rıza No \n rizaNo \n AN1..128 \n Z \n HesapBilgisiRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n \n Kart Referans Numarası \n kartRef \n AN5..40 \n Z \n HHS tarafından her bir kart için atanan biricik değerdir (uuid). Bir kart tek bir kartRef'e karşılık gelmelidir, benzer şekilde bir kartRef tek bir karta karşılık gelmelidir. Aynı kart için alınan tüm rızalarda kart referans bilgisinin değişmemesi gerekmektedir. \n \n \n \n Ekstre Türü \n ekstreTuru \n AN3 \n Z \n Ekstre türü TRY,USD,EUR,GBP olarak gönderilebilir. İstek paremetresinde iletilen değer ile aynı değer olmalıdır. \n \n \n \n Toplam Kart Limiti \n toplamLimit \n Kompleks:ToplamLimit \n K \n Karta ait toplam TL limit bilgisi. Toplam kart limiti (+) değerde gönderilmelidir. Negatif değer gönderilmemelidir. \n Kart tipi kredi kartı ve ön ödemeli kart olanlar için ilgili alanın dönülmesi zorunludur. Kart tipi banka olan kartlar için ilgili alan dönülmemelidir. Ön ödemeli kartlarda, bağlı bulundukları bir hesap olsa bile, sadece üzerlerine yüklenen tutarın gösterilmesi gerekmektedir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Tutar Bilgisi. Limit tutarı için regex patterni şu şekildedir: ' ^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Kullanılabilir Kart Limiti \n kullanilabilirLimit \n Kompleks:KullanılabilirLimit \n K \n Karta ait kullanılabilir TL limit bilgisi. Kullanılabilir kart limiti (+) değerde gönderilmelidir. Herhangi bir sebeple (kart limitinin aşılması vb.)  (-) olması durumunda değerin (-) olarak gönderilmesi beklenmektedir. \n Kart tipi banka olan kartlar için ilgili alan dönülmemelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Tutar Bilgisi. Limit tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Dönem İçi Hareket Toplamı \n donemIciHareketToplami \n Kompleks:DonemIciHareketToplami \n Z \n Dönem içi hareket toplamı ve kalan ekstre borcunun toplamı dönülmelidir. Müşterinin borcu olduğu durumda (-) değer gönderilmelidir. Müşterinin alacağı olduğu durumda (iade/fazla ödeme vb(+) değer ile tutar bilgisi gönderilmelidir. \n Kart tipi kredi kartı olanlar için ilgili döneme ait hareketlerin toplam tutar bilgisidir. Kart tipi banka ve ön ödemeli kartlar için ilgili dönem içerisinde ay başından itibaren yapılan hareketlerin toplam tutar bilgisi iletilmelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Tutar Bilgisi.  Tutar için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Ekstre Borcu \n ekstreBorcu \n Kompleks:EkstreBorcu \n K \n İlgili ekstre türüne uygun olarak ekstre borcu iletilmelidir. Müşterinin alacağı olduğu durumda (iade/fazla ödeme vb(+) değer ile tutar bilgisi gönderilmelidir. \n Kart tipi kredi kartı olanlar için ilgili alanın dönülmesi koşulludur. Ek kredi kartı için ilgili alan varsa dönülmelidir . Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Borç tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Kalan Ekstre Borcu \n kalanEkstreBorcu \n Kompleks:KalanEkstreBorcu \n K \n İlgili ekstre türüne uygun olarak kalan ekstre borcu iletilmelidir. Müşterinin kalan ekstre borcu olduğu durumda (-) değer gönderilmelidir. Kalan ekstre borcu yoksa veya herhangi bir sebeple ektresinde alacak tutarı varsa 0(sıfır) değeri gönderilmelidir. Pozitif değer gönderilmemelidir. \n Kart tipi kredi kartı olanlar için ilgili alanın dönülmesi koşulludur. Alt kart tipi ; Asıl ve Dijital kredi kartı için ilgili alanın dönülmesi zorunludur. Ek kredi kartı için ilgili alan varsa dönülmelidir. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Borç tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Asgari Ödeme Tutarı \n asgariOdemeTutari \n Kompleks:AsgariOdemeTutari \n K \n İlgili ekstre türüne uygun olarak ekstreye ait asgari ödeme tutarı iletilmelidir. Ekstre Borcu (-) ise; asgari ödeme tutarı da (-) değer olarak gönderilmelidir. Müşterinin alacağı olduğu durumda (iade/fazla ödeme vb.)  \"0\" (sıfır) değeri gönderilmelidir. \n Kart tipi kredi kartı olanlar için ilgili alanın dönülmesi koşulludur. Alt kart tipi ; Asıl ve Dijital kredi kartı için ilgili alanın dönülmesi zorunludur. Ek kredi kartı için ilgili alan varsa dönülmelidir. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Ödeme tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Kalan Asgari Ödeme Tutarı \n kalanAsgariOdemeTutari \n Kompleks:KalanAsgariOdemeTutari \n K \n İlgili ekstre türüne uygun olarak ekstreye ait kalan asgari ödeme tutarı iletilmelidir. Ekstre Borcu (-) ise; asgari ödeme tutarı da (-) değer olarak gönderilmelidir. Müşterinin alacağı olduğu durumda (iade/fazla ödeme vb.)  \"0\" (sıfır) değeri gönderilmelidir. \n Kart tipi kredi kartı olanlar için ilgili alanın dönülmesi koşulludur. Alt kart tipi ; Asıl ve Dijital kredi kartı için ilgili alanın dönülmesi zorunludur. Ek kredi kartı için ilgili alan varsa dönülmelidir. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Ödeme tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Hesap Kesim Tarihi \n hesapKesimTarihi \n ISODate \n Z \n Karta ait hesap kesim tarihi iletilmelidir. Hesap kesim tarihi olarak son kesilmiş ekstrenin tarihi iletilmelidir. Örneğin; günün tarihi 09/01/2026 olduğu durumda her ayın 23'ünde kesilen ekstre için hesap kesim tarihi 2025-12-23 şeklinde olacaktır. \n Kart tipi kredi kartı olanlar için hesap kesim tarihi iletilmelidir. Ek kart için asıl kartın hesap kesim tarihi dönülmelidir. Kart tipi banka ve ön ödemeli kart olan kartlar için sorgulama yapılan ayın son takvim günü dönülmelidir. \n \n \n Sonraki Hesap Kesim Tarihi \n sonrakiHesapKesimTarihi \n ISODate \n Z \n Kesilecek olan ekstrenin hesap kesim tarihi tarihi iletilmelidir. Örneğin; günün tarihi 09/01/2026 olduğu durumda her ayın 23'ünde kesilen ekstre için sonraki hesap kesim tarihi 2026-01-23 şeklinde olacaktır. \n Kart tipi kredi kartı olanlar için sonraki hesap kesim tarihi iletilmelidir. Ek kart için asıl kartın sonraki hesap kesim tarihi dönülmelidir. Kart tipi banka ve ön ödemeli kart olan kartlar için sorgulama yapılan aydan bir sonraki ayın son takvim günü dönülmelidir \n \n \n Son Ödeme Tarihi \n sonOdemeTarihi \n ISODate \n K \n Kesilmiş olan ekstre için kart borcunun ödeneceği son ödeme tarih bilgisi dönülmelidir. Örneğin; kesilmiş olan ekstreye ait  hesap kesim tarihi 2025-12-23 şeklinde olan bir kredi kartı için son ödeme tarihi 2026-01-03 olacaktır. \n Kart tipi kredi kartı olanlar için ilgili alan dönülmesi zorunludur. Ek kart için asıl kartın son ödeme tarih bilgisi dönülmelidir. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n Sonraki Son Ödeme Tarihi \n sonrakiSonOdemeTarihi \n ISODate \n K \n Kesilecek olan ekstre için kart borcunun ödeneceği son ödeme tarih bilgisi dönülmelidir.  Örneğin; kesilecek olan ekstreye ait  hesap kesim tarihi 2026-01-23 şeklinde olan bir kredi kartı için son ödeme tarihi 2026-02-03 olacaktır. \n Kart tipi kredi kartı olanlar için ilgili alan dönülmesi zorunludur. Ek kart için asıl kartın sonraki son ödeme tarih bilgisi dönülmelidir. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n Puan Bilgisi \n puanBilgisi \n Kompleks:PuanBilgisi[Array] \n \n Karta ait puan bilgileri dizi içerisinde iletilmelidir. \n \n \n \n > Puan Değeri \n puanDegeri \n AN1..25 \n K \n Kart için mevcutta yer alan puan değeri varsa iletilmelidir. HHS özelinde puan değeri puan tipine göre birim olarak tutuluyorsa ilgili değer iletilmelidir. Örn: 100 Plus puan bilgisi varsa puan değeri alanında 100 iletilmelidir. Puan değeri eksi değer alabilir. \n Tüm kart tipleri için puan bilgisi varsa dönülmelidir. \n \n \n > Puan Tipi \n puanTipi \n AN1..50 \n K \n Puan Tipi olarak HHS özelinde bir puanTipi varsa o bilgi iletilmelidir. Örn: 100 Plus puan bilgisi varsa puan tipi alanında Plus değeri iletilmelidir. \n Tüm kart tipleri için puan bilgisi varsa dönülmelidir. \n \n \n Nakit Çekim Limiti \n nakitCekimLimiti \n Kompleks:NakitCekimLimiti \n K \n Karta ait nakit çekim limit değeri iletilmelidir. Ekstre türü TRY dışında olan kartlar için de TRY para biriminde geçerli olan limit iletilmelidir. Nakit Çekim Limiti (+) değerde gönderilmelidir. Negatif değer gönderilmemelidir. \n Kart tipi kredi kartı olanlar için ilgili alan dönülmesi zorunludur. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Limit tutarı için regex patterni şu şekildedir: ' ^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Kullanılabilir Nakit Çekim Limiti \n kullanilabilirNakitCekimLimiti \n Kompleks:KullanilabilirNakitCekimLimiti \n K \n Karta ait kullanılabilir nakit çekim limit değeri iletilmelidir. Ekstre türü TRY dışında olan kartlar için de TRY para biriminde geçerli olan limit iletilmelidir. Kullanılabilir Nakit Çekim Limiti (+) değerde gönderilmelidir. Herhangi bir sebeple (nakit limitinin aşılması vb.)  (-) olması durumunda değerin (-) olarak gönderilmesi beklenmektedir. \n Kart tipi kredi kartı olanlar için ilgili alan dönülmesi zorunludur. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Limit tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Kalan Toplam Taksit Tutarı \n kalanToplamTaksitTutari \n Kompleks:KalanToplamTaksitTutari \n K \n Karta ait tüm kalan taksitlerin toplam değeri iletilmelidir.Müşterinin Taksit borcu olduğu durumda (-) değer gönderilmelidir. Taksit iadesi veya benzeri nedenlerle oluşan müşterinin alacaklı olduğu durumda tutar (+) değer gönderilmelidir. \n Kart tipi kredi kartı olanlar için ilgili alan dönülmesi zorunludur. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Taksit tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Dönem Taksit Tutar Bilgisi \n donemTaksitTutarBilgisi \n Kompleks:DonemTaksitTutarBilgisi[array] \n K \n Kart Tipi kredi kartı olanlar için taksit bilgisi varsa taksit içeren dönemlerin dizi halinde iletilmesi zorunludur. \n \n \n \n >
16 Dönem Değeri \n donemDegeri \n N3 \n Z \n Taksitli işlemler dönülmesi sebebiyle dönem değeri minimum 1 olacak şekilde dönülmelidir. \n \n \n \n > Dönem Taksit Tutarı \n donemTaksitTutari \n Kompleks:DonemTaksitTutari \n Z \n İlgili dönem değeri içerisindeki toplam taksit tutar bilgisi iletilmelidir. Müşterinin Dönem Taksit Tutar borcu olduğu durumda (-) değer gönderilmelidir. Dönem Taksit Tutar iadesi veya benzeri nedenlerle oluşan müşterinin alacaklı olduğu durumda tutar (+) değer gönderilmelidir. \n \n \n \n >> Tutar \n tutar \n AN1..25 \n Z \n Taksit tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n >> Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n 9.11 ADIM 4.2: Kart Hareket Bilgilerinin Sorgulanması \n GET /kartlar/{kartRef}/kart-hareketleri \n KartBilgileri nesnesi ile elde edilen kart listesinde yer alan kartların işlem/hareket bilgileri sorgulanır. Kart hareketleri için \"KartHareketleri\" nesnesinin içeriği Tablo 25'de verilmiştir. \n \n Bir karta ilişkin işlem bilgileri Tablo 24’deki istek parametrelerine göre sorgulanır. Parametrede yer alan değerlerin doğru gönderildiği kontrol edilir. Hatalı gönderilmesi durumunda HHS tarafından  ”TR.OHVPS.Resource.InvalidFormat”  hatası dönülür. Parametrede yer alan isteğe bağlı alanlar gönderilmediği durumda parametredeki varsayılan değerler ile kart hareketleri dönülür. \n Parametrede yer alan ekstreTuru bilgisi Ekstre Türleri haricinde uygun olmayan bir değer gönderildiğinde  ”TR.OHVPS.Business.InvalidCurrencyCode”  hatası dönülür. Bu alan gönderilmiyorsa TRY olarak değerlendirilmelidir. \n Erişim belirteci kontrolü yapılır. Geçerli bir erişim belirteci yok ise HHS tarafından  ”TR.OHVPS.Connection.InvalidToken”  hatası dönülür. \n İstek başlığında yer alan X-Access-Token ile ilişkili rızada, izin verilen kartRef'ler için, kart hareket bilgileri sorgusunda yer alan kartRefe ait rıza ile aynı olup olmadığı kontrol edilir. Farklı olması durumunda  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n İlgili kartRef bulunamaz ise  ”TR.OHVPS.Resource.NotFound”  hatası dönülür. \n Rıza durumu kontrol edilir.\n \n B: Yetki Bekleniyor ya da Y: Yetkilendirildi ise  “TR.OHVPS.Resource.ConsentMismatch”  hatası dönülür. \n I: Rıza İptal ya da S: Yetki Sonlandırıldı ise  ”TR.OHVPS.Resource.ConsentRevoked”  hatası dönülür. \n RizaDurumu “K: Yetki Kullanıldı” ise kontrollere devam edilir. \n \n \n Kart Hareket Bilgilerinin Sorgulanması yapılırken HHS tarafından ÖHK’nın “09:  Ayrıntılı Kart İşlem Bilgisi” izin türüne sahipliği kontrol edilir. 09 izin türüne sahip değil ise  ”TR.OHVPS.Business.PermissionTypeNotSupported”  hatası dönülür. \n Kart tipi olarak; iptal statüsünde olan banka ve ön ödemeli kartlar için hareket sorgulaması yapılamayacaktır. Kart tipi kredi kartı olup iptal statüsünde olan ve borcu olmayan bir kart için de kart hareket sorgulaması yapılamayacaktır. Hareket sorgulaması yapılamayacak bir kart tipi için HHS'ler tarafından  \"TR.OHVPS.Business.InvalidCardStatus\"  hatası dönülmelidir. \n -Rıza içerisinde kanal görüntüleme yetkisi kapatılan kart için hareket bilgisi sorgulandığında  TR.OHVPS.Business.RestrictedChannelAccess  hata kodu dönülecektir. \n İptal statüsünde olan kart tipleri için geçmişe dönük hareket sorgulaması yapılamayacaktır. Örneğin; Kredi Kartı için -12 ile 18 arası olan dönem değeri iptal statüsünde olan kredi kartı için 0 ile 18 arasında yapılabilecektir. Tüm kart tipleri için belirtilen parametrede yer alan dönem değerinin uygun gönderilmediği durumda  ”TR.OHVPS.Business.InvalidPeriodValue”  hatası dönülür. \n Ekstre bilgisi bulunmayan sanal ve ek kredi kart bilgileri için ekstre dönemlerine özgü kart hareketleri sorgulandığında HHS'ler tarafından  TR.OHVPS.Business.NoStatementForCard  hatası dönülmelidir. \n Kartın yeni oluşması/aktif edilmesi gibi süreçlerler sonucunda ekstre bilgisi hiç oluşmamış dönem değerleri için kart hareketleri sorgulandığında HHS'ler tarafından  TR.OHVPS.Business.StatementNotCreated  hatası dönülmelidir. \n \n Yukarıdaki kontroller tamamlandıktan sonra HHS tarafından \"K
16artHareketleri\" nesnesi dönülür. \n \n HHS'ler kart tipi kredi kartı ise ve karta ait borç/taksit tutar bilgisi bulunuyorsa KartHareketleri nesnesi için başarılı yanıt dönmek zorundadır. \n Kart tipi Banka Kartı olanlarda dönem içi olarak sorgulama yapılan aya ait ilgili banka kartı ile yapılan kart hareketleri görüntülenecektir. (Banka kartı ile yapılan Para Çekme/Yatırma, banka kartı ile yapılan POS'tan Alışveriş vb.). Banka kartında dönem değerinin \"-1\" gönderilmesi durumunda bir önceki aya ait kart hareketleri görüntülenecektir. \n Kart hareketleri yanıtında hareket bilgileri işlem tarihinine göre sıralı olarak iletilmelidir. İşlem tarihi en güncel tarihten geriye dönük olacak şekilde listelenmelidir. \n Kart hareketlerinde ekstre türleri dışında yapılan bir işlem varsa hangi ekstre türüne dahil edilerek gösteriliyorsa gönderilmelidir.\n \n Örn: 100 JPY'lik bir harcama işlemi TRY biriminde çevirilip 23 TRY olarak TRY ekstre türünde gösteriliyorsa ilgili işlem için işlem tutarı 23 TRY, orijinal işlem tutarı ise 100 JPY olarak değerlendirilmelidir. \n \n \n \n Tablo 24: Kart Hareket Bilgileri Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Dönem Değeri \n donemDegeri \n N3 \n Z \n Kart hareketlerinin sorgulanacağı döneme ait değerdir.  Dönem içi : 0 Geçmiş Ay/Ekstre : -1 ile -12 arası Taksit : 1 ile 18 arası  Provizyon : 99  Kart tipine göre alabileceği dönem değerleri ise ;  Banka Kartı : 0 ve -1 Kredi Kartı : -12 ile 18 arası ve 99 (Sanal alt kart tipi hariç diğer tüm alt kart tiplerinde bu değerler geçerlidir.)  Alt kart tipi sanal kart tipinde ise alabileceği değerler 0 ve 99'dur. Ön Ödemeli Kart : 0 ve -1 \n İptal statüsünde olan kart tipleri için geçmişe dönük hareket sorgulaması yapılamayacaktır. Örneğin; Kredi Kartı için -12 ile 18 arası olan dönem değeri iptal statüsünde olan kredi kartı için 0 ile 18 arasında yapılabilecektir.  Tüm kart tipleri için belirtilen dönem değerinin uygun gönderilmediği durumda hata verilmelidir. \n \n \n Ekstre Turu \n ekstreTuru \n AN3 \n K \n Kart bilgileri yanıtında dönülen ekstre türleri değerlerini almaktadır. Para birimine uygun olarak kart detay bilgileri sorgulanmaktadır. Ekstre parametresi TRY,USD,EUR,GBP olarak gönderilebilir. Bu alan gönderilmiyorsa TRY değerlendirilmelidir. İlgili para birimine özel ekstre içindeki harcama değeri dönülecektir. \n Ekstre türleri haricinde uygun olmayan bir değer gönderildiğinde hata verilmelidir. \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den büyük olamaz. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarasi \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Borç Alacak Göstergesi \n brcAlc \n AN1 \n İ \n TR.OHVPS.DataCode.BrcAlc sıralı veri tipi değerlerinden birini alır. Sorgulanacak işlemlerin borç / alacak kriteri B: Karta borç yaratan işlem.A: Karta alacak yaratan işlem. N: Finansal olmayan işlem {“B”,”A”,”N”} \n Bu veri gönderildiği durumda HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler: A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS kart hareketlerini  sıralama kriteri işlem tarihi  olacak şekilde ilgili yöne uygun olarak sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 25: “KartHareketleri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n 
16Kart Tiplerine İstinaden Detaylı Açıklama \n \n \n \n \n Kart Referans Numarası \n kartRef \n AN5..40 \n Z \n HHS tarafından her bir kart için atanan biricik değerdir (uuid). Bir kart tek bir kartRef'e karşılık gelmelidir, benzer şekilde bir kartRef tek bir karta karşılık gelmelidir. Aynı kart için alınan tüm rızalarda kart referans bilgisinin değişmemesi gerekmektedir. \n \n \n \n Dönem Değeri \n donemDegeri \n N3 \n Z \n Kart hareketlerinin sorgulanacağı döneme ait değerdir. \n \n \n \n Dönem Başlangıç Tarihi \n donemBaslangicTarihi \n ISODate \n Z \n Sorgulama yapılan ekstre dönemine göre ilgili döneme ait başlangıç tarih bilgisidir. Kart tipi kredi kartı olanlar için ilgili döneme ait başlangıç tarihi iletilmelidir. Kart tipi banka kartı ve ön ödemeli kart olanlar için sorgulama yapılan ayın başlangıç tarihi iletilmelidir. \n \n \n \n Dönem Bitiş Tarihi \n donemBitisTarihi \n ISODate \n Z \n Sorgulama yapılan ekstre dönemine göre ilgili döneme ait bitiş tarih bilgisidir. Kart tipi kredi kartı olanlar için ilgili döneme ait bitiş tarihi iletilmelidir. Kart tipi banka kartı ve ön ödemeli kart olanlar için sorgulama yapılan ayın bitiş tarihi iletilmelidir. \n \n \n \n Ekstre Türü \n ekstreTuru \n AN3 \n Z \n Ekstre türü TRY,USD,EUR,GBP olarak gönderilebilir. İstek paremetresinde iletilen değer ile aynı değer olmalıdır. \n \n \n \n Ekstre Borcu \n ekstreBorcu \n Kompleks:EkstreBorcu \n K \n Sorgulama yapılan geçmiş döneme için ekstre türüne uygun olarak ekstre borcu iletilmelidir. Müşterinin borcu olduğu durumda (-) değer gönderilmelidir.  Müşterinin alacağı olduğu durumda (iade/fazla ödeme vb(+) değer ile tutar bilgisi gönderilmelidir. \n Kart tipi kredi kartı olanlar için sadece geçmiş dönem değerine istinaden ilgili alan iletilmelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Borç tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Asgari Ödeme Tutarı \n asgariOdemeTutari \n Kompleks:AsgariOdemeTutari \n K \n İlgili geçmiş dönem için ekstre türüne uygun olarak ekstreye ait asgari ödeme tutarı iletilmelidir. Ekstre Borcu (-) ise; asgari ödeme tutarı da (-) değer olarak gönderilmelidir. Müşterinin alacağı olduğu durumda (iade/fazla ödeme vb.)  \"0\" (sıfır) değeri gönderilmelidir. \n Kart tipi kredi kartı olanlar için sadece geçmiş dönem değerine istinaden ilgili alan iletilmelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Ödeme tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Dönem Taksit Tutarı \n donemTaksitTutari \n Kompleks:DonemTaksitTutari \n K \n İstek parametresinde iletilen ilgili dönem değeri içerisindeki toplam taksit tutar bilgisi iletilmelidir. Müşterinin Dönem Taksit Tutar borcu olduğu durumda (-) değer gönderilmelidir. Dönem Taksit Tutar iadesi veya benzeri nedenlerle oluşan müşterinin alacaklı olduğu durumda tutar (+) değer gönderilmelidir. \n Kart tipi kredi kartı olanlar için taksit bilgisi varsa ilgili alan iletilmelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Dönem taksit tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Hesap Kesim Tarihi \n hesapKesimTarihi \n ISODate \n K \n Karta ait sorgulanan döneme ait hesap kesim tarihi iletilmelidir. Tarih formatında iletilmelidir. Örn : 2024-11-23 \n Kart tipi kredi kartı olanlar için sadece geçmiş dönem değerine istinaden ilgili alan iletilmelidir. \n \n \n Son Ödeme Tarihi \n sonOdemeTarihi \n ISODate \n K \n Karta ait sorgulanan dönem için son ödeme tarih bilgisi dönülmelidir. Örn : 2024-12-02 \n Kart tipi kredi kartı olanlar için sadece geçmiş dönem değerine istinaden ilgili alan iletilmelidir. \n \n \n Hareket Bilgileri \n hareketBilgileri \n Kompleks Alan: HareketBilgileri[array] \n K \n Dizi halinde liste olacaktır. \n \n \n \n > İşlem Numarası \n islemNo \n AN3..50 \n Z \n Kart hareketinin oluşturulması sırasında atanan ve borç (veya alacak) hareketini tekilleştiren HHS bazında tekil tanımlayıcıdır. Bu değer tek başına tekil olabileceği gibi b
16irden fazla değerin bir araya getirilmesiyle de tekilliği sağlanmış olabilir. Bu değerin en azından kart referans numarası bazında tekil olması beklenir. Genellikle kullanılan örnekleri; Instance_Id, Transaction_Id, Transaction_Num, Transaction_TimeStamp \n \n \n \n > İşlem Tutarı \n islemTutari \n Kompleks:IslemTutari \n Z \n Yapılan işleme ait tutar bilgisi. Taksitli bir işlem ise ilgili dönemdeki taksit tutarı iletilecektir. ÖHK, HHS'de ilgili dönem sorguladığında hangi tutarı görüntülüyorsa ilgili tutar dönülecektir. İşleme ait sadece puan bilgisiyle kazanım, kullanım, iade veya iptal varsa ve tutar bilgisi yoksa ilgili tutar değeri sıfır gönderilmelidir. Puana dair değerler ise PuanBilgileri alanı içerisinde gönderilmelidir. \n \n \n \n >> Tutar \n tutar \n AN1..24 \n Z \n İşlem tutarı için regex patterni şu şekildedir: ' ^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n >> Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi. Ekstre türü ile aynı olması gerekmektedir. \n \n \n \n > Orijinal İşlem Tutarı \n orijinalIslemTutari \n Kompleks:OrijinalIslemTutari \n K \n Ekstre türü dışında yapılan işleme ait tutar bilgisi. Örneğin; ekstre türü TRY gönderildiği durumda işlem 100 JPY ise işlem tutarı alanında 100 değeri iletilmelidir. \n \n \n \n >> Tutar \n tutar \n AN1..24 \n Z \n İşlem tutarı için regex patterni şu şekildedir: ' ^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n >> Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi. Örneğin; 100 JPY ise işlem tutar para birimi alanında JPY değeri iletilmelidir. \n \n \n \n > İşlem Tarihi \n islemTarihi \n ISODateTime \n Z \n İşlemin gerçekleştiği zaman bilgisi. Taksitli işlemlerde içinde bulunulan dönem özelinde ilgili taksitin yansıyacağı tarih değeri dönülmelidir. \n \n \n \n > Borç Alacak Göstergesi \n borcAlacak \n AN1 \n Z \n TR.OHVPS.DataCode.BrcAlc sıralı veri tipi değerlerinden birini alır. Sorgulanacak işlemlerin borç / alacak kriteri B: Karta borç yaratan işlem.A: Karta alacak yaratan işlem. N: Finansal olmayan işlem {“B”,”A”,”N”} \n \n \n \n > İşlem Açıklaması \n islemAciklamasi \n AN1..200 \n Z \n Alışveriş işlemi olması durumunda sadece işyeri adını içeren açıklama, diğer işlemler için mevcut işlem açıklaması iletilir. HHS'ler tüm kart hareketlerini YÖS'ler ile paylaşmakla yükümlü olup, hassas veri içeren(örn: faiz, komisyon bilgisi içeren vb.) işlem hareketleri de bu kapsamda değerlendirilerek işlem açıklamasının maskeli olarak iletilmesi sağlanır. Kelimelerin ilk 3 hanesi maskeli olacak şekilde, ancak sakıncalı bulunan kelimeler varsa; (örn: faiz, komiyon vb.) kelimelerin tamamı maskeli olacak şekilde gösterilebilir. \n \n \n \n > İşlem Puan Bilgileri \n islemPuanBilgileri \n Kompleks: IslemPuanBilgileri[Array] \n K \n İlgili işlem sonrası kazanılan veya kullanılan bir puan değeri varsa iletilmesi gerekmektedir. İlgili puan bilgi veya bilgileri dizi içerisinde iletilmelidir. \n İlgili alanda koşula uygun olarak değer dönülecekse; kart tipi kredi, banka ve ön ödemeli kartı olanlar için dönülmesi zorunludur. \n \n \n >> İşlem Puanı \n islemPuani \n AN1..24 \n K \n İşleme dair kazanılan veya kullanılan puan değeri iletilmelidir. Örn: 100 Plus kazanılmış bir işlem için 100 değeri iletilmelidir. \n \n \n \n >> İşlem Puan Birimi \n islemPuanBirimi \n AN1..50 \n K \n İşleme dair kazanılan veya kullanılan puan birimi iletilmelidir. Örn: 100 Plus kazanılmış bir işlem için Plus değeri iletilmelidir. \n \n \n \n >> İşlem Puan Durumu \n islemPuanDurumu \n AN2 \n K \n İlgili işlem sonucunda puan bilgisinin bir kazanım, kullanım, iade ve iptal durumlarına yönelik değer iletilmelidir. TR.OHVPS.DataCode.IslemPuanDurumu değerlerinden birini alır. 01: Puan Kazanımı 02: Puan Kullanımı 03: Puan İade 04: Puan İptal \n \n \n \n > Toplam Taksit Tutarı \n toplamTaksitTutari \n Kompleks:ToplamTaksitTutari \n K \n İlgili işlem taksitli bir işlem ise o işleme ait toplam taksit tutarı iletilmelidir. İlgili işlem tek çekim bir işlem ise o işlemde ilgili alan iletilmemelidir. \n Kart tipi kredi kartı olanlar için ilgili alan dönülmesi zorunludur. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n >> Tutar \n tutar \n AN1..25 \n Z \n Taksit Tutar Bilgisi. Taksit tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n >> Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n > Toplam Taksit Sayısı \n toplamTaksitSayisi \n N2 \n K \n İlgili işlem taksitli bir işlem ise o işleme ait toplam taksit sayısı iletilmelidir. İlgili işlem tek çekim bir işlem ise o işlemde ilgili alan iletilmemelidir. \n Kart tipi kredi kartı olanlar için ilgili alan dönülmesi zorunludur. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n > İlgili Taksit Dönemi \n taksitDonemi \n N2 \n K \n Taksitli işlem olması durumunda işleme ait ilg
16ili taksit dönem bilgisi. Örneğin: 3 taksitli bir işlemde 2. taksit yansımışsa 2 olarak gönderilmelidir. \n Kart tipi kredi kartı olanlar için ilgili alan dönülmesi zorunludur. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n > Satıcı Kategori Kodu \n saticiKategoriKodu \n AN4 \n K \n Satıcı Kategori Kodu(MCC) varsa iletilmesi zorunludur. Alışveriş işlemlerinde gönderimi zorunludur. \n İlgili alanda koşula uygun olarak değer dönülecekse; kart tipi kredi ve banka kartı olanlar için dönülmesi zorunludur. \n \n \n \n"},{title:"2.Kapsam ve Dayanak",frontmatter:{},regularPath:"/v2.0.0/contents/kapsam-ve-dayanak.html",relativePath:"v2.0.0/contents/kapsam-ve-dayanak.md",key:"v-143b3106",path:"/v2.0.0/contents/kapsam-ve-dayanak.html",content:" 2.Kapsam ve Dayanak \n 12 Kasım 2019’da güncellenen “ 6493 sayılı Ödeme ve Menkul Kıymet Mutabakat Sistemleri, Ödeme Hizmetleri ve Elektronik Para Kuruluşları Hakkında Kanun ”un (Kanun) 12’nci maddesine yeni eklenen ve  Ödeme Hizmetleri Direktifi 2 'de (Payment Services Directive 2, PSD2) bulunan iki yeni ödeme hizmeti aşağıdaki gibi tanımlanmıştır (Şekil-1: Ödeme Hizmetleri Veri Paylaşım Servisleri): \n \n Ödeme Emri Başlatma Hizmeti : ÖHK’nın isteği üzerine başka bir ödeme hizmeti sağlayıcısında bulunan  ödeme hesabıyla  ilgili sunulan ödeme emri başlatma hizmeti [Madde 12, birinci fıkra, (f) bendi] \n Hesap Bilgisi Hizmeti : ÖHK’nın onayının alınması koşuluyla, ÖHK’nın ödeme hizmeti sağlayıcıları nezdinde bulunan bir veya daha fazla  ödeme hesabına  ilişkin konsolide edilmiş bilgilerin çevrim içi platformlarda sunulması hizmeti [Madde 12, birinci fıkra, (g) bendi] \n \n   \n Şekil 1: Ödeme Hizmetleri Veri Paylaşım Servisleri (ÖHVPS)- tanıtım \n Kanunun 14/A maddesinin ikinci fıkrasına göre , Kanunun 12’nci maddesinin birinci fıkrasının (f) veya (g) bentlerinde yer alan ödeme hizmetleri ile ilgili işlemlerin yürütülmesine ilişkin usul ve esaslar ile taraflarca uyulması gereken teknik ve operasyonel gereklilikler ikincil düzenlemeler uyarınca Türkiye Cumhuriyet Merkez Bankası (TCMB) tarafından belirlenir. Kanunun 12’nci maddesinin birinci fıkrasının (f) veya (g) bentlerinde yer alan ödeme hizmetlerinde kullanılan veri paylaşım servisleri  ödeme hizmetleri veri paylaşım servisleri (ÖHVPS)  olarak adlandırılmaktadır. \n Ödeme Hizmetleri ve Elektronik Para İhracı ile Ödeme Hizmeti Sağlayıcıları Hakkında Yönetmelik’in (Yönetmelik) 59’uncu maddesinin birinci fıkrası uyarınca hazırlanan bu belgede söz konusu ödeme hizmetlerini sunacak ödeme hizmeti sağlayıcısının, ödeme hesabının bulunduğu ödeme hizmeti sağlayıcısının, varsa ilgili diğer tarafların ve bu hizmetlerin sunulması için taraflar arasında kurulacak bağlantının teknik ve operasyonel gereklilikleri açıklanmaktadır. \n Düzenlemeler kapsamında yetkilendirilen üçüncü taraf hizmet sağlayıcısı  (Yetkili Ödeme Hizmeti Sağlayıcısı, YÖS) , ödeme hizmeti kullanıcılarının  Hesap Hizmeti Sağlayıcıları (HHS)  nezdindeki ödeme hesaplarına ulaşarak ödeme emri başlatma ve hesap bilgisi sağlama hizmetlerinden (ödeme hizmetleri veri paylaşım servislerinden) faydalanmasına aracılık eder. Ödeme hizmetleri veri paylaşım servisleri kapsamında iki tip YÖS bulunmaktadır:  1) Hesap Bilgisi Hizmeti Sağlayıcısı (HBHS) ve 2) Ödeme Emri Başlatma Hizmeti Sağlayıcısı (ÖBHS). \n Hesap Bilgisi Hizmeti Sağlayıcısı (HBHS) ÖHK’nın farklı Hesap Hizmeti Sağlayıcıları (HHS) nezdindeki hesaplarının bilgilerini derleyerek çevrim içi platformlarda  toplu şekilde  sunar. Ödeme Emri Başlatma Hizmeti Sağlayıcısı (ÖBHS) ise talebi üzerine ÖHK’nın HHS’de bulunan ödeme hesabından ödeme işlemi başlatır. \n ÖHVPS’nin üst düzey gösterimi Şekil-2’de verilmiştir. \n   \n Şekil 2: Ödeme Hizmetleri Veri Paylaşım Servisleri (ÖHVPS) -üst düzey gösterim \n Ödeme Hizmetleri Veri Paylaşım Servislerinin HHS’ler tarafından  GEÇİT  vasıtasıyla sunulduğu uygulama mimarisi ise Şekil-3’te sunulmuştur. \n  \n Şekil 3: ÖHVPS'nin GEÇİT vasıtasıyla sunumu \n"},{title:"7.\tİleri Tarihli Ödeme Emri Başlatma Hizmeti",frontmatter:{},regularPath:"/v2.0.0/contents/ileri-tarihli-odeme-emri-hizmeti.html",relativePath:"v2.0.0/contents/ileri-tarihli-odeme-emri-hizmeti.md",key:"v-c07c3efa",path:"/v2.0.0/contents/ileri-tarihli-odeme-emri-hizmeti.html",headers:[{level:2,title:"İleri Tarihli Ödeme Emri Başlatma Hizmeti için Erişim Adresleri (Endpoints)",slug:"ileri-tarihli-odeme-emri-baslatma-hizmeti-icin-erisim-adresleri-endpoints"},{level:2,title:"7.1.\tADIM 0 - İleri Tarihli Ödeme Emri Rızası Başlatma Isteği",slug:"_7-1-adim-0-ileri-tarihli-odeme-emri-rızası-baslatma-istegi"},{level:2,title:"7.2.\tADIM 1 - İleri Tarihli Ödeme Emri Rızasının Hazırlanması",slug:"_7-2-adim-1-ileri-tarihli-odeme-emri-rızasının-hazırlanması"},{level:2,title:"7.3.\tADIM 2- İleri Tarihli Ödeme Emri Rızasının Yetkilendirilmesi",slug:"_7-3-adim-2-ileri-tarihli-odeme-emri-rızasının-yetkilendirilmesi"},{level:2,title:"7.4.\tADIM 2.1 – İleri Tarihli Ödeme Emri Rızasının Sorgulanması (isteğe bağlı)",slug:"_7-4-adim-2-1-ileri-tarihli-odeme-emri-rızasının-sorgulanması-istege-baglı"},{level:2,title:"7.5.\tADIM 3- İleri Tarihli Ödeme Emrinin Oluşturulması",slug:"_7-5-adim-3-ileri-tarihli-odeme-emrinin-olusturulması"},{level:2,title:"7.6.\tADIM 3.1- İleri Tarihli Ödeme Emri Sorgusu (İsteğe bağlı)",slug:"_7-6-adim-3-1-ileri-tarihli-odeme-emri-sorgusu-istege-baglı"},{level:2,title:"7.7.\tADIM 4- İleri Tarihli Ödeme Emri Rıza İptali",slug:"_7-7-adim-4-ileri-tarihli-odeme-emri-rıza-iptali"}],content:" 7.\tİleri Tarihli Ödeme Emri Başlatma Hizmeti \n Ödeme hizmeti kullanıcısının ileri bir tarihte gerçekleşmesini istediği ödeme emirlerinde bu hizmeti kullanabilir. Ödemenin Havale / PÖS / FAST ödeme sistemlerinden hangisi ile gerçekleşeceğine, ödeme günü geldiğinde HHS karar verir. \n İleri tarihli ödeme hizmetini online bankacılık sistemlerinde sunan HHS'lerin, ÖHVPS üzerinden bu hizmetleri sunması zorunludur. Mevcutta online kanallarından bu hizmeti sundukları müşteri segmentine (bireysel,kurumsal vb.), ÖHVPS üzerinden hizmet sunmaya devam etmeleri gerekmektedir. YÖS, bireysel müşteri özelinde ileri tarihli ödeme hizmeti vermeyen HHS'ye ileri tarihli bir ödeme emri rızası isteği yapması durumunda HHS tarafından  TR.OHVPS.Business.IndividualCustomerNotSupported\"  hatası , kurumsal müşteri özelinde ileri tarihli ödeme emri rızası isteği yapıldığında HHS tarafından  TR.OHVPS.Business.CorporateCustomerNotSupported  hatası verilmelidir. \n HHS'ler ileri tarihli ödeme emri hizmetini sunuş bilgilerini HHS API aracılığı ile yayınlayacaklardır. YÖS, ileri tarihli ödeme hizmeti başlatabileceği HHS'lerin listesini HHS API'de yer alan \"hizmetTipi\":\"02\" parametresi ile alabilir. YÖS, ileri tarihli ödeme hizmeti sunmayan HHS'ye ileri tarihli bir ödeme emri rızası isteği yapması durumunda HHS tarafından  TR.OHVPS.Business.ScheduledPaymentNotSupported  hatası 
16iletilmelidir. \n İleri tarihli ödeme emri hizmetinde TRY dışındaki yabancı para birimleri için HHS tarafından destek verilmemesi durumunda  TR.OHVPS.Business.InvalidCurrencyCode  hataası verilmelidir. \n İleri tarihli ödeme emri güncelleme hizmeti YÖS üzerinden yapılamayacaktır. ÖHK aktif olan düzenli ödeme talimat rızasını iptal ederek, yeniden oluşturabilecektir. \n HHS üzerinden ilgili güncelleme hizmeti sağlanabilir. İleri tarihli talimat içerisinde yapılan güncelleme sonucunda olay bildirim ile YÖS'e bildirim sağlanacaktır. HHS üzerinden güncelleme yapılırken talimat tarihine dair ileri bir tarihe güncelleme adımı olmamalıdır. Sadece ilk oluşturulan talimat tarihinden öncesi olacak şekilde güncelleme yapılmasına izin verilmelidir. \n İleri Tarili Ödeme Emri Başlatma Hizmeti 5 temel akışdan oluşur: \n \n İleri Tarihli Ödeme Emri Rıza Başlatma İsteğinin tetiklenmesi:  ÖHK ÖBHS mobil uygulama ya da websitesinden ileri tarihli ödeme emrini başlatır. \n İleri Tarihli Ödeme Emri Rıza Hazırlanması:  ÖBHS, “İleri Tarihli Ödeme Emri Başlatma” işlemi için izin oluşturulması isteğini HHS’ye iletir. \n İleri Tarihli Ödeme Emri Rızasının Yetkilendirilmesi:  HHS, gerekli gördüğü durumlarda ÖHK’yı GKD ile doğrular ve ileri tarihli ödeme emri rızasına erişim için erişim belirteci tanımlanmasını temin eder. \n İleri Tarihli Ödeme Emrinin Başlatılması:  ÖBHS, “ileri tarihli ödeme emri”ni HHS’ye iletir. \n İleri Tarihli Ödeme Emri Rıza Durumu, İleri Tarihli Ödeme Emri Durumu, İleri Tarihli Ödeme Emri Detayı Sorguları:  ÖBHS, İleri Tarihli Ödeme Emri Rıza Durumu, İleri Tarihli Ödeme Emri Durumu, İleri Tarihli Ödeme Emri Detayı bilgilerini isteğe bağlı olarak sorgulayabilir. \n \n Nezdinde ödeme hesabı bulunduran hesap hizmeti sağlayıcılar(Banka, EPK, Ödeme Kuruluşları)  müşterilerine ait hesapları hesap referansı ya da hesap numarası üzerinden takip etmektedir. YÖS'lerin hem HBH hem de ÖBH servisleri için hesap referansı veya hesap numarası üzerinden işlem yapılabileceğini bilmeleri, sistemlerini API dokümanında belirtilen akışlara göre uyumlandırmaları ve müşteri bilgilendirmesini(önyüzlerinde hesap no ve hesap referansı ayrımını gözeterek) buna paralel yapmaları beklenmektedir. \n YÖS'ler gönderen hesap seçimini aşağıdaki yöntemlerden biri ya da birkaçı ile sağlayabilirler: \n \n YÖS, müşterisinin ödeme hesabını HHS ekranından seçtirebilir. \n YÖS, müşterisinden Hesap Bilgisi rızası alır. Rıza aldığı hesaplar üzerinden hesap referansı aracılığı ile ileri tarihli ödeme emri başlatabilir. \n YÖS, müşterisinin ödeme hesabını elle girmesine olanak tanıyabilir. IBAN'ı olmayan HHS'ler ileri tarihli ödeme emri rızası adımında  TR.OHVPS.Business.IBANNotSupported  hatasını vermelidir. IBAN'ı olan HHS'lerin bu akışı desteklemesi zorunludur. \n YÖS; müşterisinin hesap referansını elle girmesini sağlayabilir. Hesap Referansı bilgisi ile başlatılan ileri tarihli ödeme emri işlemlerinde HHS seçimi zorunludur. \n \n Ödeme Sistemine doğrudan katılımcı olmayan HHS'ler, müşterilerine IBAN sunmadıkları için, YÖS'ler hesap referansı ile ödeme başlatabilirler. Bunların dışındaki HHS'lerin, gönderen IBAN veya hesap referansı ile ödeme akışını desteklemesi zorunludur. \n İleri Tarihli Ödeme Emri Başlatma Hizmeti için Erişim Adresleri (Endpoints) \n İleri Tarihli Ödeme Emri Başlatma Hizmeti İçin Erişim Adreslerinin Etki Alanı (Scope) = “odeme_emri” olarak belirtilmelidir. Ödeme Emri Hizmeti ile aynı etki alanı(scope) kullanılmaktadır. \n Tablo : İleri Tarihli Ödeme Emri Başlatma Hizmeti İçin Erişim Adresleri \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu / İsteğe Bağlı \n Yetkilendirme Türü \n İmzalama \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n ileri-tarihli-odeme-emri-rizasi \n POST \n /ileri-tarihli-odeme-emri-rizasi \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n IleriTarihliOdemeEmriRizasiIstegi \n Iler
16iTarihliOdemeEmriRizasi \n \n \n 2 \n erisim-belirteci (GKD için) \n POST \n /erisim-belirteci \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n ErisimBelirteciIstegi \n ErisimBelirteci \n \n \n 3 \n ileri-tarihli-odeme-emri-rizasi \n GET \n /ileri-tarihli-odeme-emri-rizasi/{rizaNo} \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n - \n IleriTarihliOdemeEmriRizaYaniti \n \n \n 4 \n ileri-tarihli-odeme-emri \n POST \n /ileri-tarihli-odeme-emri \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı İstek ve Yanıt \n IleriTarihliOdemeEmriIstegi \n IleriTarihliOdemeEmri \n \n \n 5 \n ileri-tarihli-odeme-emri \n GET \n /ileri-tarihli-odeme-emri/{odmEmriNo} \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı Yanıt \n - \n IleriTarihliOdemeEmri \n \n \n 6 \n ileri-tarihli-odeme-emri-rizasi-iptal \n DELETE \n /ileri-tarihli-odeme-emri-rizasi/{rizaNo} \n Z \n İstemci Kimlik Bilgileri \n - \n - \n - \n 7.1.\tADIM 0 - İleri Tarihli Ödeme Emri Rızası Başlatma Isteği \n \n ÖHK, ÖBHS uygulamasında (web arayüzü/mobil uygulama) ileri tarihli ödeme emri rızası sürecini başlatır. \n Gönderen hesap detaylarının bu aşamada belirtilmesi zorunlu değildir. \n 7.2.\tADIM 1 - İleri Tarihli Ödeme Emri Rızasının Hazırlanması \n   \n Şekil : İleri Tarihli Ödeme Emri Rızasının Hazırlanması \n \n \n ÖBHS, ödeme hizmeti kullanıcı hesabının bulunduğu HHS’ye bağlanarak ileri tarihli ödeme emri rıza kaynağının oluşturulmasını (ileriTarihliOdemeEmriRizasi) sağlar. \n \n \n POST isteği TLS protokolü tesis edilen iletişim katmanı üzerinden gerçekleştirilir. TLS için nitelikli sertifikalar kullanılır. \n \n \n POST isteğinin başlığındaki alanlar ve istemcinin sertifikasındaki özel alanlar kullanılarak istemcinin yetkilendirilmesi sağlanır: \n \n İstekte bulunan ÖBHS yetkilendirilmiş olduğu geçit tarafından kontrol edilir. \n İstekte bulunan yetkilendirilmiş ödeme hizmeti sağlayıcısı ÖBHS rolüne sahipliği geçit tarafından kontrol edilir. \n HHS tarafından, istek başlığındaki x-aspsp-code ile katilimciBlg içerisinde yer alan hhsKod değeri ile aynı olduğunu kontrol edilir. Farklı olması durumunda  “TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n \n \n \n POST başarılı olursa, HHS, ileri tarihli ödeme emri için içeride rıza olup olmamasına bakılmaksızın yeni bir rıza tanımlayıcısı RizaNo içeren ileriTarihliOdemeEmriRizasi  yanıt olarak döner. \n \n \n 1 ÖHK'nın 1 YÖS için 1HHS'de istediği kadar rızası olabilir. \n \n \n HHS tarafında RizaDurumu değişkeninin durumu “Yetki Bekleniyor” olarak güncellenir. \n \n \n YÖS’ün doğrulama ekranı olarak ÖHK’ya açacağı URL adresini de ilgili rıza numarasına göre oluşturur. Burada 2 farklı yöntemle URL oluşturabilir. \n \n Statik URL  : \nHHS’nin base pathi/alt-dizin/{rızaNo} \nÖrnek hhsYonAdr : https://xbank.com.tr/ohvps/cb54834e36f742d09af3d534ece3352a \nBu adres için ilgili doğrulama sayfası önden hazırlanmalı ve ÖHK’nın doğrulama sayfasına erişimi için yayınlanmış olmalıdır (publish edilmelidir). \n Dinamik URL : \nHHS’nin base pathi/alt-dizin/GKD Karşılama Ekranı?rizano={rızano} \nÖrnek: https://xbank.com.tr/ohvps/gkd?rizano=cb54834e36f742d09af3d534ece3352a \n \n \n \n POST /ileri-tarihli-odeme-emri-rizasi \n İSTEK: \n ÖBHS, bu API erişim adresinden HHS’ye yeni bir IleriTarihliOdemeEmriRizasi oluşturulması için istekte bulunur: \n \n ÖBHS, ileri tarihli ödeme emri başlatma isteği olduğunu HHS’ye bildirir. \n ÖBHS, ÖHK’nın, ÖBHS arayüzünden verdiği rızanın (“Ön Onay”) bir kopyasının HHS nezdinde müşteri tarafından onaylanması için HHS’ye gönderilmesini sağlar. \n HHS'ler ileri tarihli ödeme emri hizmetini sunuş bilgilerini HHS API aracılığı ile yayınlayacaklardır. YÖS, ileri tarihli ödeme hizmeti başlatabileceği HHS'lerin listesini HHS API'de yer alan \"hizmetTipi\":\"02\" parametresi ile alabilir. YÖS, ileri tarihli ödeme hizmeti sunmayan HHS'ye ileri tarihli bir ödeme emri rızası isteği yapması durumunda HHS tarafından  TR.OHVPS.Business.ScheduledPaymentNotSupported  hatası 
16iletilmelidir. \n HHS; istek mesajında yer alan alanların ÖHVPS API İlke ve Kuralları dökümanında belirtilen şartları sağlayacak şekilde zorunluluk, uzunluk ve içerik kontrollerini yapar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Resource.InvalidFormat\"  hata kodu iletilmeli ve fieldErrors dolu olacak şekilde hatalı alanı belirten detaylı açıklama gönderilmelidir. InvalidFormat hata kodlarında fieldErrors içeriği gönderilmeli ve anlaşılır açıklama ile message, messageTr alanları doldurulması zorunludur. \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidTPP”  hatası dönülür. \n HHS, bireysel müşteri özelinde ileri tarihli ödeme hizmetini kendi kanallarında sunmuyor ise HHS'ye ileri tarihli bir ödeme emri rızası isteği yapması durumunda HHS tarafından  \"TR.OHVPS.Business.IndividualCustomerNotSupported\"  hatası ,\nkurumsal müşteri özelinde ileri tarihli ödeme emri rızası isteği yapıldığında HHS tarafından  \"TR.OHVPS.Business.CorporateCustomerNotSupported\"  hatası dönülür. \n HHS; YÖS API ile alınan ÖBHS bilgilerinin içerisinde yer alan yönlendirme adresleri ile ileri tarihli ödeme emri rızası nesnesi request mesajında paylaşılan adreslerin uyumlu olup olmadığının kontrollerini yapar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Business.TPPRedirectionAddressMismatch\"  hatası dönülür. \n HHS; kimlik bilgileri nesnesinde yer alan kimlik bilgisi ile ÖHK’nın HHS müşterisi olup olmadığının kontrollerini yapar. Bu kontrol hem bireysel hem de kurumsal ÖHK’lar için yapılmalıdır.  (Koşullu Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Business.CustomerNotFound\"  hatası dönülür. \n İleri Tarihli Ödeme Emri Başlatma Hizmeti rıza isteğinde bulunan ÖHK’nın “Açık Bankacılık Kanal Yetki” tanımı yok ise  \"TR.OHVPS.Business.OpenBankingChannelClosed\"  hatası dönülür. HHS insiyatifinde olup HHS bu kontrolü GKD sonrası gerçekleştirebilir. \n İleri tarihli ödeme emri rızasında alıcı hesap bilgileri Karekod ya da Kolas ile belirlenebilir. HHS online kanallarında ileri tarihli ödeme hizmetini Karekod ve Kolas aracılığı ile kabul ediyorsa, ÖHVPS servisleri ile de kabul etmek zorundadır. YÖS tarafından ileri tarihli ödeme emri rızası isteği içerisinde alıcı bilgisi için karekod ya da kolas kompleks alanları yer alması durumunda , destek vermeyen HHS'ler tarafından  TR.OHVPS.Business.RecipientAccountTypeNotSupported  hatası dönülür. \n HHS \"gkd\" nesnesi için alan kontrollerini gerçekleştirir. \"yetYntm\" = \"A\" gönderilmiş ise \"ayrikGkd\" nesnesinin dolu gönderilmesi zorunludur. Gönderilmemesi durumunda HHS tarafından  \"TR.OHVPS.Resource.InvalidFormat\"  hatası dönülür. \n Ayrık GKD desteklemeyen HHS'ye Ayrık GKD yöntemiyle rıza başlatma isteği yapılması durumunda HHS tarafından  \"TR.OHVPS.Business.DecoupledAuthenticationNotSupported\"  hatası dönülür. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n Ayrık GKD ile başlatılan rıza akışlarında HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder. YÖS iki olay tipine de abone olmak zorundadır. Eğer olay aboneliği yoksa HHS tarafından  \"TR.OHVPS.Business.EventSubscriptionNotFound\"  hatası dönülür. \n Rıza başlatma akışı içerisinde kimlik bilgisinin, ÖHK'ya ait kimlik verisi(kmlk.kmlkVrs) ile ayrık GKD içerisinde yer alan OHK Tanım Değer alanı (ayrikGkd.ohkTanimDeger) birebir aynı olmalıdır. Aynı olmadığı durumda HHS tarafından  \"TR.OHVPS.Business.CustomerInfoMismatch\"  hatası dönülür. \n HHS tarafında ÖHK'nın mobil uygulaması bulunmaması durumu tespit edilebildiği durumda Ayrık GKD ile başlatılan rıza akışlarında HHS tarafından  \"TR.OHVPS.Business.CustomerMobileApplicationNotFound\"  hatası dönülür. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n HHS kimlik bilgisi ile gönderen ünvanının uyumlu olduğunu kontrol eder. HHS'ler EFT/FAST işlemlerinde kabul ettikleri kontrol kriterleri ile işleme izin verebilirler. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Business.IncorrectSenderTitle\"  hatası dönülür. \n Gönderen Hesap Numarası ÖBHS tarafından iletildiği durumda;\n \n IBAN’ın doğruluğu (kontrol basamağı doğrulaması) kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.InvalidAccount\"  hatası dönülür. \n IBAN içerisindeki HHS kodunun istek başlığındaki HHS kodu ile aynı olduğu (hesabın HHS’ye aitliğinin kontrolü) kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.AccountCodeMismatch\"  hatası dönülür. \n Hesap numarasının ÖHK’ya ait olduğu kontrol edilir.Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.CustomerAccountMismatch\"  hatası dönülür. \n HHS’ye özel ödeme izni verilmeyen farklı statülerin bulunması durumu kontrol edilir. (İlgili hesabın para transfer işlemine yetkisi olmaması) Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.AccountUnauthorized\"  hatası dönülür. \n HHS’de gönderen hesabın aktifliği kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.AccountInactive\"  hatası dönülür. \n \n \n Gönderen Hesap Numarası için, He
16sap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir. Hesap referansı ile ileri tarihli ödeme emri rızası başlatılacak ise HHS hesap referansı değeri ile ilişkilendirilmiş mevcut bir hesap bilgisi rızası var mı kontrol etmelidir. Eğer aktif bir rızası yok ise  \"TR.OHVPS.Business.ActiveConsentNotFound\"  hatası dönülür. \n Talimat tarihi, talimat verilen günün tarihinden minimum 1 gün sonrası, maksimum ise 1 yıl sonrası olacak şekilde seçilebilir. Belirtilen tarih aralığı dışında ÖBHS tarafından talimat tarihi iletilmesi durumunda HHS tarafından  \"TR.OHVPS.Business.InvalidOrderDateRange\"  hatası dönülür. \n Talimati tarih bilgisi için ödeme gününün iş gününe gelmediği ve HHS'nin FAST/Havale ile anlık ödeme başlatamadığı durumda,  HHS tarafıdan  \"TR.OHVPS.Business.OrderDateNotWorkDay\"  hata mesajı ile işlemi kesmelidir. YÖS, ÖHK'ya tarih bilgisini güncelletebilir ya da kendisi otomatik atama yapabilir. Sonrasında tekrar rıza talebinde bulunmalıdır. \n Alıcı ve gönderen hesabın aynı olması durumunda  “TR.OHVPS.Business.SenderRecipientSame”  hatası dönmesi beklenmektedir. Bu hata HHS insiyatifindedir. \n Müşterinin kendi hesapları arasında talimat veremeyeceği durumların kontrolü için  “TR.OHVPS.Business.SameAccountTransferRestricted”  hatası dönmesi beklenmektedir. Bu hata HHS insiyatifindedir. \n \n Yukarıdaki kontroller tamamlandıktan sonra HHS, ödeme için benzersiz “RizaNo” ile “IleriTarihliOdemeEmriRizasi” nesnesi oluşturur ve ÖBHS’ye döner. \n HHS, IleriTarihliOdemeEmriRizasi oluşturduğu anda durumunu “Yetki Bekleniyor” olarak düzenler. \n Hesap bakiye kontrolünün rıza aşamasında yapılmaması gerekmektedir. Çünkü ÖHK ileri tarihli ödeme emri gerçekleşene kadar hesabına para eklemesi yapabilir. \n  BAŞARILI İSTEK: \n Tablo : “IleriTarihliOdemeEmriRizasiIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n HHS tarafından ileri tarihli ödeme emri rızası oluşturulması sırasında yapılması gereken kontrol ve işlemler \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n İ \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. Yetkilendirme yöntemi, ÖBHS tarafından belirtilmeyebilir. \n HHS, HBHS’nin belirlediği yöntemi dikkate alarak süreci ilgili akışa uygun olarak devam ettirir. Desteklemediği yöntem için (örn: Ayrık GKD) ayrıca hata mesajı verilmelidir. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu.  YÖS’ün ileteceği adrestir.  Durum kodu(drmKod), yönlendirme adresine parametre olarak eklenmelidir. \n HHS, müşteri uygulama / tarayıcısını bu alanda belirtilen adrese yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n yetYntm = A gönderilmiş ise ayrikGkd nesnesinin dolu gönderilmesi zorunludur.   HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder.  Bknz: Ayrık GKD \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir.  TR.OHVPS.DataCode.ohkTanimTip  sıralı veri tiplerinden birini alır. \n \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir. \n \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS geçerli bir Kimlik Numarası Türü olduğunu kontrol eder. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS, ÖBHS tarafından iletilmesi durumunda Kimlik Verisi üzeriden çapraz kontroller uygulamalı ve Kimlik Verisini temel alarak GKD gerçekleştirmelidir.  Pasaport numarasına ilişkin kontroller HHS'nin halihazırda kullandığı veri, akış ve tabi olduğu diğer düzenlemelerdeki işleyiş ile aynı şekilde ele alınmalıdır.  Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n Z \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur.  HHS geçerli bir Kurum Kimlik Numarası Türü olduğunu kontrol eder. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n Z \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur.  HHS, ÖBHS tarafından iletilmesi durumunda Kurum Kimlik Verisi üzeriden çapraz kontroller uygulamalıdır. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n Kurum adına yapılan ödemelerde K değerini alır. Kurum Kimlik Türü ve Kurum Kimlik Verisi alanlarının girilmiş olduğu çapraz olarak kontrol edilir. \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n \n >>
16 Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n HHS geçerli bir para birimi olduğu kontrol eder. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderenin ünvanıdır.  HHS, bu bilgiyi ÖBHS sisteminden gelen veri yerine FAST’a iletirken kendi sisteminden alabilir. \n HHS’nin bu veri ile kendi sistemlerindeki verinin farklı olması ve Kimlik Numarası ile eşleşmemesi durumunda ileri tarihli ödeme emri başlatma isteği reddedilir.  ÖBHS verisi ile HHS verisinin farklılaşması durumunun ise risk değerlendirme sistemlerine girdi olarak kullanması tavsiye edilir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n İ \n ÖBHS'nin ön yüzünden daha önce kayıt altına alınmış hesaplar arasından seçtirdiği veya müşteriye girdiği IBAN’dır.  ÖBHS tarafından iletilmediği durumda, gönderen hesap bilgisini müşteri tarafından HHS’nin dijital kanalında GKD sonrasında seçilebilir. Bu amaçla ÖBHS arayüzünde HHS seçtirilmelidir.  Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir. Hesap referansı ile ileri tarihli ödeme emri rızası başlatılacak ise HHS hesap referansı değeri ile ilişkilendirilmiş mevcut bir hesap bilgisi rızası var mı kontrol etmelidir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n ÖBHS tarafından iletildiği durumda; IBAN içerisindeki HHS kodunun istek başlığındaki HHS kodu ile aynı olduğu (hesabın HHS’ye aitliğinin kontrolü), IBAN’ın doğruluğu (kontrol basamağı doğrulaması), Hesap numarasının ÖHK’ya ait olduğu, HHS’ye özel ödeme izni verilmeyen farklı statülerin bulunması durumu kontrol edilir. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n İ \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez.  ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir.  Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan HHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n HspRef'e bağlı IBAN değiştiğinde yeni IBAN'ın da ilgili HspRef ile ilişkilendirilmesi beklenmektedir. Bu durumda, HBHS, HspRef ile sorguya geldiğinde HHS'nin yeni IBAN ve hesap hareketlerini dönebilmesi mümkün olacaktır. HspRef’in, IBAN değiştiğinde değiştirilmemesi tavsiye edilmektedir. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n K \n Kolay Adres Sistemi  kullanılmıyorsa zorunludur.  Alıcının ünvanıdır. ÖBHS ekranlarından girişi yapılabileceği gibi ÖBHS’nin kayıtlı alıcılarından yapılan seçimle de doldurup gönderebildiği bilgi olabilir.  FAST-TR Karekod Veri Organizasyonunda;  İşyeri tarafından sunulan uzun karekod yapısının  59:  alanında tanımlı İşyeri adı alanıdır, Kişiden Kişiye Ödeme Karekod Yapısının  07:  alanında tanımlı    Ödeme Alıcısının Adı ve Soyadı  alanıdır. \n \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n Alıcının Hesap Numarası (IBAN)  alanıdır.   Kolay Adres Sistemi  kullanılmıyorsa zorunludur.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  30-01:  alanında tanımlı İş Yeri IBAN verisi kullanılır.  Alıcının birden fazla hesabının kullanılabilir olduğu durumlarda (özellikle işyeri ödemelerinde HHS nezdindeki hesap (on-us havale akışı) tercih edilmelidir. \n HHS (Gönderen Katılımcı) tarafından IBAN doğrulaması (kontrol basamağı doğrulaması) yapılır. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n Talimatın gerçekleşeceği ana kadar KOLAS tanımınında değişiklik olabileceği için,  KOLAS ile yapılan ileri tarihli işlemler, talimatın verildiği anda çözülen IBAN'a yapılacaktır. \n Kolas ile ileri tarihli ödeme emri hizmeti desteklenmiyorsa; HHS tarafından hata dönülmelidir. \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n HHS (Gönderen FAST katılımcısı) tarafından KOLAS Servisine yapılan sorguda girdi olarak kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n HHS (Gönderen FAST katılımcısı) tarafından KOLAS Servisine yapılan sorguda girdi olarak kullanılır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n Karekod ile yapılan ileri tarihli işlemler, talimatın verildiği anda çözülen IBAN'a yapılacaktır. \n Karekod ile ileri tarihli ödeme emri hizmeti desteklenmiyorsa; HHS tarafından hata dönülmelidir. \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n TR.OHVPS.DataCode.KareKodAksTur  sıralı veri değerlerinden birini alır. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını  gösterir. Okunan karekodda referans değeri varsa kullanılması zorunludur.  Karekod ilke ve kurallar belgesinde tanımlandığı şekilde kullanılması gerekmektedir.  Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri veri değerlerinden “O” değeri atanarak iletilmelidir. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n HHS, YÖS'ün API deseninde \"O\" kodunu ilettiğini kontrol eder. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n HHS geçerli bir Ödeme Amacı kodu olduğunu kontrol eder. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarında: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.   -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -\tİşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n YÖS bu değeri ÖHK’yı HHS’ye yönlendirmeden önceki ekranda göstermeli, ve HHS bu değeri GKD için kullandığı önyüzünde “işlem doğrulama kodunun” bir unsuru olarak yine ÖHK’ya göstermelidir. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n \n \n >> Talimat Tarihi \n tlmtTrh \n ISODate \n Z \n ÖHK tarafından talep edilen, ödeme gerçekleşme zamanıdır. \n Talimat verilen günün tarihinden minimum 1 gün sonrası,maksimum ise 1 yıl sonrası olacak şekilde seçilebilir. \n  BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “IleriTarihliOdemeEmriRizasi” nesnesi Tablo’da parametrelerden oluşur: \n Tablo : “IleriTarihliOdemeEmriRizasi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n >
16 Rıza No \n rizaNo \n AN1..128 \n Z \n IleriTarihliOdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n IleriTarihliOdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n > Güncellenme Zamanı \n gnclZmn \n ISODateTime \n Z \n IleriTarihliOdemeEmriRizasi nesnesinin güncellenme zamanı \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n > Rıza Iptal Detay Kodu \n rizaIptDtyKod \n AN2 \n K \n Rıza durumunun iptal olduğu durumda zorunludur. Alabileceği değerler 4. Bölümde detaylandırılmıştır. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır.  HHS, ÖBHS’nin belirlediği yöntemi dikkate alarak kendi belirlediği yöntemi kullanır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   HHS tarafından maksimum 5 dk içinde işlem tamamlanacak şekil zaman damgası oluşturulur. Zaman aşımı olduğunda HHS’nin GKD’ye izin vermeyecek şekilde hata mesajı vermesi gerekmektedir.  Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n Z \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n Z \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n >>
16 Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderenin ünvanıdır.  HHS, bu bilgiyi ÖBHS sisteminden gelen veri yerine FAST’a iletirken kendi sisteminden alabilir.   Tek seferlik ödeme dışında YÖS'ün gönderen ünvanını göndermesi zorunludur. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n İ \n ÖBHS'nin ön yüzünden daha önce kayıt altına alınmış hesaplar arasından seçtirdiği veya müşteriye girdiği IBAN’dır.  ÖBHS tarafından iletilmediği durumda, gönderen hesap bilgisini müşteri tarafından HHS’nin dijital kanalında GKD sonrasında seçilebilir. Bu amaçla ÖBHS arayüzünde HHS seçtirilmelidir.   GKD sonrası HHS ekranında seçilen Hesap Numarası POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir.    Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n İ \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez.  ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir.   GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir.    Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.    Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari ünvan bilgisidir. Kolas’tan dönen “account owner” alanı kullanılmalıdır. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen ünvan bilgisidir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n ÖBHS tarafından istek mesajında iletilip doğrulanan veya Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen alıcı maskeli IBAN bilgisidir. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n TR.OHVPS.DataCode.KareKodAksTur  sıralı veri değerlerinden birini alır. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını  gösterir. \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O” değerini alır. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  - İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n >> Talimat Tarihi \n tlmtTrh \n ISODate \n Z \n ÖHK tarafından talep edilen, ödeme gerçekleşme zamanıdır. Talimat verilen günün tarihinden minimum 1 gün sonrası,maksimum ise 1 yıl sonrası olacak şekilde seçilebilir. Belirtilen tarih aralığı dışında ÖBHS tarafından talimat tarihi iletilmesi durumunda HHS tarafından  TR.OHVPS.Business.InvalidOrderDateRange  hatası verilmelidir. \n 7.3.\tADIM 2- İleri Tarihli Ödeme Emri Rızasının Yetkilendirilmesi \n   \n Şekil : İleri Tarihli Ödeme Emri Rızasının Yetkilendirilmesi \n ÖBHS, ÖHK’nın ileri tarihli ödeme emrini yetkilendirmesi isteğini iletir. Ödeme emrinin yetkilendirilmesi, HHS tarafından gerçekleştirilen Yönlendirme veya Ayrık GKD yöntemiyle yapılır. \n \n \n Yönlendirmeli doğrulama akışında , ÖBHS ÖHK’yı HHS’ye yönlendirir. \n \n ÖBHS tarafından yönlendirme, bir önceki adımdaki RizaNo’yu içerir. \n Yönlendirmenin RizaNo’yu içermesi sayesinde, HHS hangi ödeme emriyle ilişkili olarak yönlendirme yapıldığını ilişkilendirebilir. \n HHS, ÖHK için GKD sürecini işletir. \n \n ÖHK’yı doğrularsa, \n \n ÖHK -bir önceki adımda seçmediyse- borçlu hesabını seçer. \n HHS, ileri tarihli ödeme emri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n HHS, ÖHK’yı “olumlu yönlendirme akışı” ile ÖBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n \n \n \n yonAdr?rizaDrm=Y&yetKod=xx&rizaNo=yy&rizaTip=I&drmKod=zzz\n \n ÖHK’yı doğrulayamazsa, \n1. HHS, ileri tarihli ödeme emri rıza kaynağının durumunu “Yetki İptal” olarak günceller. \n2. HHS, ÖHK’yı “olumsuz yönlendirme akışı” ile ÖBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=I&rizaNo=yy&rizaTip=I&drmKod=zzz\n \n HHS tarafında oluşabilecek bir hata durumunun YÖS’e aktarılması gerektiği durumlar olabilir. Bu durumda yonlendirme adresinde hata kodu parametresi zorunlu olarak 
16iletilmelidir. \nHata açıklamalarının neler olabileceği ve YÖS’ün kendi uygulamasında bu hatayı ne şekilde göstereceği aşağıda tariflenmiştir. \n yonAdr?rizaDrm=I&rizaNo=yy&rizaTip=I&rizaIptDtyKod=11&drmKod=zzz\n \n URL’de iletilen “Rıza İptal Detay Kodu” Rıza durumları bölümünde (4. Bölüm) belirtilen hata kodları ile aynı olacak şekilde tasarlanmıştır. GKD sırasında yapılması gereken kontroller 5.3 bölümünde detaylandırılmıştır. \n \n Ayrık doğrulama akışında , HHS, ÖHK’nın ileri tarihli ödeme emri rızasını başlattığı uygulamadan farklı olabilecek bir “doğrulama” uygulamasında işlemi doğrulamasını ister.\n \n Ayrık akış ÖBHS’nin farklı bir kanal kullanarak yetkilendirme isteği göndermesiyle başlatılır. \n Bu yetkilendirme isteği, yetkilendirilecek ödeme emri rızasının eşleştirileceği ÖHK’nın bulunması için ilgili veriyi taşır. \n HHS, ÖHK’yı doğrular. \n ÖHK, bir önceki adımda seçmediyse- borçlandırılacak hesabını seçer. \n HHS, ileri tarihli ödeme emri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n \n Başarılı GKD sonrasında (rizaDrm=’Y’) ilgili rıza nesnesi için (belirli bir rizaNo) yetkilendirme kodunun (yetKod) alınmasının ardından erişim belirteci erişim adresine POST çağrısı yapılarak yetkilendirme kodu karşılığında erişim belirteci ve yenileme belirteci alınır. POST /erişim-belirteci erişim noktası EK-3’te açıklanmıştır. \n Erişim belirteci alındıktan sonra; HHS, ileri tarihli ödeme emri rıza kaynağının durumunu “Yetki Kullanıldı” olarak günceller. \n 7.4.\tADIM 2.1 – İleri Tarihli Ödeme Emri Rızasının Sorgulanması (isteğe bağlı) \n   \n Şekil 7: “IleriTarihliOdemeEmriRizasi” nesnesinin sorgulanması (isteğe bağlı) \n GKD işleminin başarıyla tamamlanıp İleri Tarihli Ödeme Emri Rızasının yetkilendirilmesi esnasında, gönderen hesap seçiminin HHS ekranında yapıldığı durumlar olabilir. Bu durumlarda ileri tarihli ödeme emri isteğinde gönderen hesap bilgileri alanının zorunlu olması nedeniyle,  IleriTarihliOdemeEmriRizasi  nesnesi sorgulanarak gönderen hesap bilgileri (hesap numarası ve/veya hesap referansı) alınmalıdır. HHS, “ ADIM 2 -Ileri Tarihli Ödeme Emri Rızasının Yetkilendirilmesi ” akışında ÖHK’nın hesapları arasında seçim yapmasını ve seçilen hesap bilgisinin  IleriTarihliOdemeEmriRizasi  nesnesine işler. \n \n Sorgulama yapılan İleri Tarihli Ödeme Emri HHS tarafında bulunmuyor ise  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n \n GET /ileri-tarihli-odeme-emri-rizasi/{RizaNo} \n ÖBHS, mevcut durumunu kontrol etmek için, oluşturulan bir  IleriTarihliOdemeEmriRizasi  kaynağının durumunu isteğe bağlı olarak alabilir. \n Durum \n IleriTarihliOdemeEmriRizasi  kaynağı için kullanılabilecek durum göstergeleri şu şekildedir: \n \n Yetki Bekleniyor \n Yetkilendirildi \n Yetki Kullanıldı \n Yetki Ödeme Emrine/Talimata Dönüştü \n Yetki Sonlandırıldı \n Yetki İptal \n \n İleri Tarihli Ödeme emri rıza durum değişiklikleri 4.2 bölümünde detaylandırılmıştır. \n BAŞARILI YANIT: \n GET /ileri-tarihli-odeme-emri-rizasi/{rizaNo}  yanıtının (RESPONSE) gövdesinde (BODY)  “IleriTarihliOdemeEmriRizasiİstegi” nesnesi kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “IleriTarihliOdemeEmriRizasi” nesnesi oluşturulur. \n Gönderen Hesap Bilgisinin, ADIM 2 (İleri Tarihli Ödeme Emri Rızasının Yetkilendirilmesi) sonrasında HHS ekranından seçildiği akışta “IleriTarihliOdemeEmriRizasi” nesnesi güncellenir ve ÖBHS  GET /ileri-tarihli-odeme-emri-rizasi/{rizaNo}  isteği yaparak güncel gönderen hesap bilgisi bilgisini de içeren “IleriTarihliOdemeEmriRizasi” nesnesini çekmelidir. \n 7.5.\tADIM 3- İleri Tarihli Ödeme Emrinin Oluşturulması \n   \n Şekil 8: İleri Tarihli Ödeme Emrinin Oluşturulması \n POST /ileri-tarihli-odeme-emri \n ÖHK’nın Güçlü Kimlik Doğrulama ile işlemi yetkilendirmesi sonrasında, ÖBHS OdemeEmri kaynağını oluşturur. \n İleri Tarihli Ödeme emri (IleriTarihliOdemeEmri) uygun ödeme kaynağına POST isteği yapılarak başlatılır. \n \n Erişim Belirteci kontrolü yapılır. Geçerli bir Erişim Belirteci yok ise  \"TR.OHVPS.Connection.InvalidToken\"  hatası dönülür. \n HHS; istek mesajında yer alan alanların ÖHVPS API İlke ve Kuralları dökümanında belirtilen şartları sağlayacak şekilde zorunluluk, uzunluk ve içerik kontrollerini y
16apar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Resource.InvalidFormat\"  hatası dönülür. \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidTPP”  hatası dönülür. \n Rıza durumu kontrol edilir.\n \n B: Yetki Bekleniyor, Y: Yetkilendirildi  ya da E: Yetki Ödeme Emrine Dönüştü ise  “TR.OHVPS.Resource.ConsentMismatch”  hatası dönülür. \n I: Rıza İptal ya da S: Yetki Sonlandırıldı ise  ”TR.OHVPS.Resource.ConsentRevoked”  hatası dönülür. \n RizaDurumu “K: Yetki Kullanıldı” ise kontrollere devam edilir. \n \n \n POST /ileri-tarihli-odeme-emri-rizasi ile POST /ileri-tarihli-odeme-emri isteklerinde istek alanların aynı olması beklenmektedir. HHS tarafından kontrolü sağlanmalıdır. İleri Tarihli Ödeme Emri rızasında gönderilen değerlerden farklı bir değer gönderildiği durumda  “TR.OHVPS.Business.FieldMismatch”  hatası dönülür. \n \n Yukarıdaki kontroller tamamlandıktan sonra, içerisinde odmEmriNo ve odmDrm değişkenleri de bulunan IleriTarihliOdemeEmri nesnesi ÖBHS’ye döner ve RizaDurumu değişkenin değeri “Yetki Ödeme Emrine/Talimata Dönüştü” olarak güncellenir. \n \n POST verisindeki Gönderen Hesap Numarası ve Alıcı Hesap Numarasının aynı bankaya aitse HAVALE değilse FAST veya PÖS iş akışına geçilir. \n \n BAŞARILI İSTEK: \n Tablo 9: “IleriTarihliOdemeEmriIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n HHS tarafından ileri tarihli ödeme emri oluşturulması sırasında yapılması gereken kontrol ve işlemler \n FAST A01 PÖS M01 mesaj mapping \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. \n Gönderen katılımcı kodu (yani bankanın FAST/PÖS’teki Katılımcı kodu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. \n YosKod \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n \n >Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n \n \n >Yönlendirme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunludur. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n \n \n >Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n yetYntm = A gönderilmiş ise ayrikGkd nesnesinin dolu gönderilmesi zorunludur. yetYntm = Y için bu nesne iletilmemelidir. \n \n \n \n >>OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n \n \n >>OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n \n \n >HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n \n \n >Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. İleri Tarihli Ödeme Emri Rizası Nesnesindeki Kimlik Numarası Türü verisi ile aynı olmalıdır. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS, ÖBHS tarafından iletilmesi durumunda Kimlik Verisi üzeriden çapraz kontroller uygulamalı ve Kimlik Verisini temel alarak GKD gerçekleştirmelidir. İleri Tarihli Ödeme Emri Rizası Nesnesindeki Kimlik Numarası verisi ile aynı olmalıdır. Gerçek kişi tarafından yapılan ödemelerde, 
161. HHS, Gönderen Adı ve Gönderen Hesap Numarasını ileri tarihli ödeme emri isteğinde (Havale/FAST/PÖS) gönderir. - Gönderen Adı ve diğer tüm müşteri bilgileri, Kimlik Numarası üzerinden elde edillir. Pasaport numarasına ilişkin kontroller HHS'nin halihazırda kullandığı veri, akış ve tabi olduğu diğer düzenlemelerdeki işleyiş ile aynı şekilde ele alınmalıdır. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik verisi bu alanda gönderilebilmesi zorunludur. \n GonKimN / Psp \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur. İleri Tarihli Ödeme Emri Rizası Nesnesindeki Kurum Kimlik Türü verisi ile aynı olmalıdır. \n \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur. İleri Tarihli Ödeme Emri Rizası Nesnesindeki Kurum Kimlik Verisi ile aynı olmalıdır. \n GonKimN / VKN \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n Kurum adına yapılan ödemelerde K değerini alır. Kurum Kimlik Türü ve Kurum Kimlik Verisi alanlarının giilmiş olduğu çapraz olarak kontrol edilir.  İleri Tarihli Ödeme Emri Rizası Nesnesindeki ÖHK Türü ile aynı olmalıdır. \n \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n İleri Tarihli Ödeme Emri Rizası Nesnesindeki Para Birimi verisi ile aynı olmalıdır. \n \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n İleri Tarihli Ödeme Emri Rizası Nesnesindeki İşlem Tutarı verisi ile aynı olmalıdır. HHS işlem tutarı ödeme mesajında (Havale/FAST/PÖS) aynen taşınmak durumundadır. \n Ttr \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderen kişinin ad soyad ya da ticari ünvan bilgisi. \n HHS ve ÖBHS verisi tutarlı olmalıdır.  ÖBHS verisi ile HHS verisinin farklılaşması durumunun ise risk değerlendirme sistemlerine girdi olarak kullanması tavsiye edilir. \n GonAd \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n ÖBHS'nin ön yüzünden seçtirdiği/kullanıcıya girdiği IBAN Hesap numarası ya da Hesap Referansı alanlarından en az birinin dolu olarak gelmesi gerekmektedir. \n İleri Tarihli Ödeme Emri Rizası Yanıtı Nesnesindeki Gönderen Hesap Numarası verisi ile aynı olmalıdır. \n GonHesN \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n K \n ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başlatılabilir. GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir. Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı 
16sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari ünvan bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen ünvan bilgisidir. \n YÖS’ten alıcı ad soyad bilgisi geliyorsa ve HHS'nin kontrolünden başarılı bir şekilde geçti ise HHS'nin tekrar alıcı ad soyad bilgisi için giriş yaptırmasına gerek bulunmamaktadır. \n AlAd \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n Alıcının Hesap Numarası alanıdır (IBAN). Kolay Adres  sorgusunda dönülen adres kaydı yaptırmış olan alıcının maskeli IBAN bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen IBAN bilgisidir. Karekod akışında, FAST Karekod Veri Organizasyonundaki 30-01: alanında tanımlı İş Yeri IBAN verisi kullanılır. \n İleri Tarihli Ödeme Emri Rizası Yanıtı Nesnesindeki Alıcı Hesap Numarası verisi ile aynı olmalıdır.  Kontroller başarıyla sonuçlanırsa, bilgi FAST/PÖS AlHesN alanına doğrudan aktarır ve FAST/PÖS Alan Katılımcı Kodu (AlKK) olarak Alıcı HHS Kodu kullanılır.  KOLAS sorgusu sonucunda ileri tarihli ödeme emrinde iletilen maskeli bilgi ile HHS’nin kendi ileri tarihli ödeme emri rızası isteğinde tuttuğu KOLAS sorgusundan dönülen bilgi maskelenerek karşılaştırılır. Eğer aynı değilse uygun hata kodu dönülerek işlem sonlandırılır. \n AlHesN \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n Müşterinin sorgulamak istediği Kolay Adres Tipi değeridir.  TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n İleri Tarihli Ödeme Emri Rizası Yanıtı Nesnesindeki Kolay Adres Tipi verisi ile aynı olmalıdır. \n \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n İleri Tarihli Ödeme Emri Rizası Yanıtı Nesnesindeki Kolay Adres Değeri verisi ile aynı olmalıdır. \n FAST (KolasRef) \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n KolasRef ( hem FAST hem de PÖS için aynı) \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  Kolay Adresi Sistemi ile birlikte kullanılmaz.  01: FAST katılımcısından dinamik doğrulama hizmeti alınan işyeri ödemesi  02: FAST katılımcısından statik doğrulama hizmeti alınan işyeri ödemesi 03: Kişiden kişiye ödemeler \n İleri Tarihli Ödeme Emri Rizası Nesnesindeki Kare Kod Akış Türü verisi ile aynı olmalıdır. \n FAST: KrkdAksTur \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını gösterir.  Okunan karekodda referans değeri varsa kullanılması zorunludur. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n İleri Tarihli Ödeme Emri Rizası Nesnesindeki Karekod Referansı verisi ile aynı olmalıdır.  Çevrimiçi doğrulama hizmeti alınmayan statik karekodlar için Referans numarasının bulunmadığı durumlarda HHS tarafından “NONREF” ifadesi girilir. \n FAST: Karekod Referansı (KrkdRef) \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O” değeri atanarak iletilmelidir. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n İleri Tarihli Ödeme Emri Rizası Nesnesindeki Ödeme Kaynağı verisi ile aynı olmalıdır. HHS tarafından ödeme mesajında (FAST/PÖS) aynen taşınmak durumundadır. \n FAST/PÖS: OdmKynk \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. \n İleri Tarihli Ödeme Emri Rizası Nesnesindeki Ödeme Amacı verisi ile aynı olmalıdır. HHS tarafından ödeme mesajında (FAST/PÖS) aynen taşınmak durumundadır. \n FAST (OdmAmc)/PÖS(OdmAmaci) \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n İleri Tarihli Ödeme Emri Rizası Nesnesindeki Referans Bilgisi verisi ile aynı olmalıdır. \n RefBlg (Hem FAST hem de PÖS için aynı) \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n FAST/PÖS Acklm \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n \n \n >> Talimat Tarihi \n tlmtTrh \n ISODate \n Z \n ÖHK tarafından talep edilen, ödeme gerçekleşme zamanıdır. Talimat verilen günün tarihinden minimum 1 gün sonrası,maksimum ise 1 yıl sonrası olacak şekilde seçilebilir. \n \n \n \n \n \n BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “IleriTarihliOdemeEmri” nesnesi Tablo-10’daki parametrelerden oluşur: \n Tablo 10: “IleriTarihliOdemeEmri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanıdır. \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n Z \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Emir Bilgileri \n emrBlg \n Kompleks: EmirBilgileri \n Z \n \n \n \n >
16 Ödeme Emri Numarası \n odmEmriNo \n AN1..128 \n Z \n IleriTarihliOdemeEmri nesnesinin UID'sidir. IleriTarihliOdemeEmri İlişkin sorgular bu ID üzerinden yapılır. \n \n \n > Ödeme Emri Zaman \n odmEmriZmn \n ISODateTime \n Z \n IleriTarihliOdemeEmri nesnesinin oluşturulduğu zaman bilgisi. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.    Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Gerçekleşen İşlem Tutarı \n grckIslTtr \n Kompleks:GerceklesenTutar \n K \n odmDrm:01 ,02 ve 06 olduğu durumda gönderilmesi zorunludur. Ödeme durumu 01 ve 02 durumlarında gerçekleştirilen tutarın tamamı bu alanda iletilmelidir. Ödeme durumu: 06 olan kısmi ödeme işlemlerinde ise gerçekleşen tutar bilgisi iletilmelidir. \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n Talimat gerçekleştiğinde ödeme yapılan tutar bilgisi.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.    Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderen kişinin ad soyad ya da ticari ünvan bilgisi. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n ÖBHS tarafından iletilip doğrulanan veya HHS ekranında seçilen Gönderen Hesap Numarası dönülür. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n K \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid)  YÖS bazında farklılaşması gerekmez. ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir. GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir. Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.  Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari ünvan bilgisidir. Kolas’tan dönen “account owner” alanı kullanılmalıdır. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen ünvan bilgisidir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n Alıcının Hesap Numarası alanıdır (IBAN). Kolay Adres  sorgusunda dönülen adres kaydı yaptırmış olan alıcının maskeli IBAN bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen IBAN bilgisidir. Karekod akışında, FAST Karekod Veri Organizasyonundaki 30-01: alanında tanımlı İş Yeri IBAN verisi kullanılır. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n Müşterinin sorgulamak istediği Kolay Adres Tipi değeridir.  TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>>
16 Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  Kolay Adresi Sistemi ile birlikte kullanılmaz.  01: FAST katılımcısından dinamik doğrulama hizmeti alınan işyeri ödemesi  02: FAST katılımcısından statik doğrulama hizmeti alınan işyeri ödemesi 03: Kişiden kişiye ödemeler \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını gösterir.  Okunan karekodda referans değeri varsa kullanılması zorunludur. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR Karekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O”  değerini alır. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n \n \n >> Ödeme Durumu \n odmDrm \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeDurumu  sıralı veri değerlerinden birini alır.      Ödeme Durumu alanı ile ilgili olarak HHS’ler tarafından YÖS’lere  IleriTarihliOdemeEmri servisi yanıtında  04:Onayda Bekliyor, 05:Ödeme Bekleniyor yanıtları gönderilebilir. 04:Onayda Bekliyor  ve  05:Ödeme Bekleniyor  durumları oluştuktan sonra YÖS tarafından ileri tarihli ödeme emri sorgulaması yapılarak ödeme durumunun güncel değeri öğrenilir. Güncel değerler  01:Gerçekleşti,03:Gerçekleşmedi , 06:Kısmen Gerçekleşti  ve  07:İptal Edildi  durumları olabilir. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  - İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n >> Ödeme Sistemi \n odmStm \n AN1 \n K \n TR.OHVPS.DataCode.OdemeSistemi  sıralı veri değerlerinden birini alır. odmDrm:01, 02 ve 06 olduğu durumda gönderilmesi zorunludur. \n \n \n >> Ödeme Sistem Numarası \n odmStmNo \n AN10..50 \n K \n Ödeme başarılı başlatıldıysa, ödemenin başlatıldığı sistemdeki referans numarası. Gerektiğinde ilgili ödeme sisteminde/HHS’de söz konusu ödemeye karşılık gelen mesajla bağlantı kurmada kullanılır.   Ödeme Hizmeti kullanıcısına işlemin takibi için gösterilebilir.  İşlemin yönlendirildiği ödeme sistemi FAST ya da PÖS ise sistemdeki ilgili mesajın Tarih, GönderenKatilimKodu ve SorguNumarasi değerlerinin birleşiminden oluşur. Bu 3 alan mevcutta kullanıldığı formatta aralarına dikey çizgi (Unicode U+2223) işareti koyularak, birleştirmeli ve iletilmelidir. Örn : Tarih|GönderenKatilimKodu|SorguNumarasi   Ödeme Havale/Virman işlemi ise HHS’nin üretmiş olduğu havale/virman numarasını içerir. Buradaki format da Tarih|GönderenKatilimKodu|Havale-virman numarası şeklinde olmalıdır. Havale/FAST/PÖS  ödeme yöntemleri için tarih alanı yyyy-aa-gg formatında 10 karakter olarak 
16iletilmelidir. odmDrm:01, 02 ve 06 olduğu durumda gönderilmesi zorunludur. \n \n \n >> Talimat Tarihi \n tlmtTrh \n ISODate \n Z \n ÖHK tarafından talep edilen, ödeme gerçekleşme zamanıdır. Talimat verilen günün tarihinden minimum 1 gün sonrası,maksimum ise 1 yıl sonrası olacak şekilde seçilebilir. \n \n \n >> Gerçekleşen Ödeme Zamanı \n grckOdmZmn \n ISODateTime \n K \n Gerçekleşen ödeme işlemine ait zaman bilgisi. odmDrm:01, 02 ve 06 olduğu durumda gönderilmesi zorunludur. \n 7.6.\tADIM 3.1- İleri Tarihli Ödeme Emri Sorgusu (İsteğe bağlı) \n   \n Şekil 9: İleri Tarihli Ödeme Emri Sorgusu \n GET /ileri-tarihli-odeme-emri/{odmEmriNo} \n ÖBHS, bu erişim adresi aracılığıyla ileri tarihli ödeme emrini sorgulayabilir. Maksimum ödemenin gerçekleşeceği günün 15 gün sonrasına kadar sorgulama yapılabilir. Sonrasında yapılacak sorgulamalarda erişim belirtecinin yetki süresi sonlandığı için HHS  \"TR.OHVPS.Resource.ConsentRevoked\"  hatasını dönmelidir.\nİptal edilmiş talimatın bilgileri sorgulanmak istendiğinde de yine  \"TR.OHVPS.Resource.ConsentRevoked\"  hatası verilmelidir. \n YÖS sadece kendi uygulaması üzerinden verilmiş ileri tarihli ödemeleri sorgulayabilir. Erişim izni olmayan bir ödeme emri numarası ile sorgulama yaptığında HHS'den  \"TR.OHVPS.Resource.NotFound\"  hatasını alır. \n Kısmi ödemelerde, kısmen gerçekleşen ödeme tutarı, \"gerçekleşen işlem tutarı\"(grckIslTtr) alanında gönderilirken, gönderilmesi talep edilen tutar alanı(rıza başlatma isteğinde ki tutar) da \"işlem tutarı\"(islTtr) alanında gönderilmeye devam edilmelidir. \n Gerçekleşen işlem tutarı ve para birimi, ödeme gerçekleşme zamanı alanları, ödeme gününden itibaren dolu olarak gelir. \n BAŞARILI YANIT: \n GET /ileri-tarihli-odeme-emri/{odmEmriNo} yanıtının (RESPONSE) gövdesinde (BODY)  “IleriTarihliOdemeEmri” nesnesi bulunur. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda Tablo-10’da yer alan parametreleri içeren “IleriTarihliOdemeEmri” nesnesi döner. \n 7.7.\tADIM 4- İleri Tarihli Ödeme Emri Rıza İptali \n \n Şekil 10: İleri Tarihli Ödeme Emri Rızası İptali \n DELETE /ileri-tarihli-odeme-emri-rizasi/{rizaNo} \n ÖBHS, bu erişim adresi aracılığıyla ileri tarihli ödeme emri rızasını iptal edebilir. \n DELETE /ileri-tarihli-odeme-emri-rizasi çağrısı, bir ÖBHS'nin önceden oluşturulmuş bir ileri tarihli ödeme emri rızasını silmesine izin verir. Müşteri, rızasını HHS üzerinden iptal etmek yerine, ÖBHS üzerinden bu rızasını kaldırmak isteyebilir. \n \n Erişim belirteci kontrolü yapılır. Geçerli bir erişim belirteci yok ise HHS tarafından  ”TR.OHVPS.Connection.InvalidToken”  hatası dönülür. \n İstek başlığında yer alan X-Access-Token ile ilişkili rıza, silinen rizaNo bilgisi ile aynı olup olmadığı kontrol edilir. Farklı olması durumunda  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n İptal edilmek istenen İleri Tarihli Ödeme Emri Rızası HHS tarafında bulunmuyor ise  ”TR.OHVPS.ResourceNotFound”  hatası dönülür. \n Rıza durumu Yetki Sonlandırıldı - S veya Yetki İptal - I ise  \"TR.OHVPS.Resource.ConsentRevoked\"  hatası dönülür. \n İptal edilmek istenen İleri Tarihli Ödeme Emri Rızası’nın ödeme durumu 04 ya da 05 değil ise  ”TR.OHVPS.Business.TransactionCompleted”  hatası dönülür. \n \n Yukarıda kontroller başarıyla tamamlandıktan sonra sırasıyla aşağıdaki işlemler yapılır. \n \n odmDrm değeri 04 ve 05 olan kayıtlar 07 durum kodu ile güncellenmelidir. \n İlişkili ileri tarihli ödeme emri talimatı iptal edilmelidir. \n Rıza iptal edilmelidir. \n \n Bu API çağrısı, müşterinin ÖBHS üzerinden ileri tarihli ödeme emri rızasını iptal etmesine ve HHS nezdindeki ileri tarihli ödeme emri rızası nesnesinin silinmesini sağlar.\nMüşterinin ÖBHS’nin veri erişim iznini iptal etmesi durumunda ÖBHS, HHS’de mevcut olan IleriTarihliOdemeEmriRizasi'na dair rıza ve talimat bilgilerini pratik olarak mümkün olan en kısa sürede silmelidir. Bu ise, ilgili kaynağa\nDELETE /ileri-tarihli-odeme-emri-rizasi/{RizaNo}
16\nçağrısı aracılığı ile yerine getirilir. \n Servis istek parametresi olarak sadece path’de iletilen Rıza No bilgisine ihtiyaç duymaktadır.\nÖHK rızası YÖS üzerinden başarı ile silindiğinde HTTP 204 response kodu ile işlem sonucu iletilir. Rıza tipi “I” yani “Yetki İptal” ve durum kodu \"03\" olarak güncellenir ve gnclZmn zaman damgası vurularak güncellenir.\nÖHK ile rıza iptali sırasında kurulacak iletişimde (e-posta, sms gibi) aşağıdaki alanların iletilmesi tavsiye edilmektedir:\nYÖS Adı, HHS adı, Rıza Oluşturma Zamanı, Servis Tipi Bilgisi (ÖBHS) \n"},{title:"6.\tÖdeme Emri Başlatma Hizmeti",frontmatter:{},regularPath:"/v2.0.0/contents/odeme-emri-baslatma-hizmeti.html",relativePath:"v2.0.0/contents/odeme-emri-baslatma-hizmeti.md",key:"v-29ce59bd",path:"/v2.0.0/contents/odeme-emri-baslatma-hizmeti.html",headers:[{level:3,title:"Ödeme Emri Başlatma Hizmeti için Erişim Adresleri (Endpoints)",slug:"odeme-emri-baslatma-hizmeti-icin-erisim-adresleri-endpoints"},{level:2,title:"6.1.\tADIM 0 - Ödeme Emri Başlatma Isteği",slug:"_6-1-adim-0-odeme-emri-baslatma-istegi"},{level:2,title:"6.2.\tADIM 1 - Ödeme Emri Rızasının Hazırlanması",slug:"_6-2-adim-1-odeme-emri-rızasının-hazırlanması"},{level:2,title:"6.3.\tADIM 2- Ödeme Emri Rızasının Yetkilendirilmesi",slug:"_6-3-adim-2-odeme-emri-rızasının-yetkilendirilmesi"},{level:2,title:"6.4.\tADIM 2.1 – Ödeme Emri Rızasının Sorgulanması (isteğe bağlı)",slug:"_6-4-adim-2-1-odeme-emri-rızasının-sorgulanması-istege-baglı"},{level:2,title:"6.5.\tADIM 3- Ödeme Emrinin Oluşturulması",slug:"_6-5-adim-3-odeme-emrinin-olusturulması"},{level:2,title:"6.6.\tADIM 3.1- Ödeme Emri Sorgusu (İsteğe bağlı)",slug:"_6-6-adim-3-1-odeme-emri-sorgusu-istege-baglı"},{level:3,title:"GET /odeme-emri/{odemeEmriNo}",slug:"get-odeme-emri-odemeemrino"}],content:" 6.\tÖdeme Emri Başlatma Hizmeti \n Ödeme emri başlatma işlemi havale, FAST ya da PÖS ödemesiyle sonuçlanabilir. Ödeme işleminin amacı kişiden kişiye para transferi, e-ticaret ödemesi gibi farklı ödeme türleri olabilir. Ödemenin amacına göre ÖBHS’nin ileteceği veri setinde farklılaşmalar olabilir. \n Ödeme Emri Başlatma Hizmeti 5 temel akışdan oluşur: \n \n Ödeme Emri Başlatma İsteğinin tetiklenmesi:  ÖHK ÖBHS mobil uygulama ya da websitesinden ödeme emrini başlatır. \n Ödeme Emri Rıza Hazırlanması:  ÖBHS, “Ödeme Emri Başlatma” işlemi için izin oluşturulması isteğini HHS’ye iletir. \n Ödeme Emri Rızasının Yetkilendirilmesi:  HHS, gerekli gördüğü durumlarda ÖHK’yı GKD ile doğrular ve ödeme emri rızasına erişim için erişim belirteci tanımlanmasını temin eder. \n Ödeme Emrinin Başlatılması:  ÖBHS, “ödeme emri”ni HHS’ye iletir. \n Ödeme Emri Rıza Durumu, Ödeme Emri Durumu, Ödeme Emri Detayı Sorguları:  ÖBHS, Ödeme Emri Rıza Durumu, Ödeme Emri Durumu, Ödeme Emri Detayı bilgilerini isteğe bağlı olarak sorgulayabilir. \n \n Nezdinde ödeme hesabı bulunduran hesap hizmeti sağlayıcılar(Banka, EPK, Ödeme Kuruluşları)  müşterilerine ait hesapları hesap referansı ya da hesap numarası üzerinden takip etmektedir. YÖS'lerin hem HBH hem de ÖBH servisleri için hesap referansı veya hesap numarası üzerinden işlem yapılabileceğini bilmeleri, sistemlerini API dokümanında belirtilen akışlara göre uyumlandırmaları ve müşteri bilgilendirmesini(önyüzlerinde hesap no ve hesap referansı ayrımını gözeterek) buna paralel yapmaları beklenmektedir. \n YÖS'ler gönderen hesap seçimini aşağıdaki yöntemlerden biri ya da birkaçı ile sağlayabilirler: \n \n YÖS, müşterisinin ödeme hesabını HHS ekranından seçtirebilir. \n YÖS, müşterisinden Hesap Bilgisi rızası alır. Rıza aldığı hesaplar üzerinden hesap referansı aracılığı ile ödeme emri başlatabilir. \n YÖS, müşterisinin ödeme hesabını elle girmesine olanak tanıyabilir. IBAN'ı olmayan HHS'ler ödeme emri rızası adımında  TR.OHVPS.Business.IBANNotSupported  hatasını vermelidir. IBAN'ı olan HHS'lerin bu akışı desteklemesi zorunludur. \n YÖS; müşterisinin hesap referansını elle girmesini sağlayabilir. Hesap Referansı bilgisi ile başlatılan ödeme emri işlemlerinde HHS seçimi zorunludur. \n \n Ödeme Sistemine doğrudan katılımcı olmayan HHS'ler, müşterilerine IBAN sunmadıkları için, YÖS'ler hesap referansı ile ödeme başlatabilirler. Bu
16nların dışındaki HHS'lerin, gönderen IBAN veya hesap referansı ile ödeme akışını desteklemesi zorunludur. \n \n Şekil 4: Ödeme Emri Başlatma Hizmeti Üst Düzey İş Akışı \n Ödeme Emri Başlatma Hizmeti için Erişim Adresleri (Endpoints) \n Ödeme Emri Başlatma Hizmeti İçin Erişim Adreslerinin Etki Alanı (Scope) = “odeme_emri” olarak belirtilmelidir. \n Tablo 6: Ödeme Emri Başlatma Hizmeti İçin Erişim Adresleri \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu / İsteğe Bağlı \n Yetkilendirme Türü \n İmzalama \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n odeme-emri-rizasi \n POST \n /odeme-emri-rizasi \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n OdemeEmriRizasiIstegi \n OdemeEmriRizasi \n \n \n 2 \n erisim-belirteci (GKD için) \n POST \n /erisim-belirteci \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n ErisimBelirteciIstegi \n ErisimBelirteci \n \n \n 2.1 \n odeme-emri-rizasi \n GET \n /odeme-emri-rizasi/{rizaNo} \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n - \n OdemeEmriRizaYaniti \n \n \n 3 \n odeme-emri \n POST \n /odeme-emri \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı İstek ve Yanıt \n OdemeEmriIstegi \n OdemeEmri \n \n \n 3.1 \n odeme-emri \n GET \n /odeme-emri/{odemeEmriNo} \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı Yanıt \n - \n OdemeEmri \n 6.1.\tADIM 0 - Ödeme Emri Başlatma Isteği \n \n ÖHK, ÖBHS uygulamasında (web arayüzü/mobil uygulama) ödeme emri başlatma işlemine onay verir. \n Gönderen hesap detaylarının bu aşamada belirtilmesi zorunlu değildir. \n 6.2.\tADIM 1 - Ödeme Emri Rızasının Hazırlanması \n   \n Şekil 5: Ödeme Emri Rızasının Hazırlanması \n \n \n ÖBHS, ödeme hizmeti kullanıcı hesabının bulunduğu HHS’ye bağlanarak ödeme emri rıza kaynağının oluşturulmasını (odemeEmriRizasi) sağlar. \n \n \n POST isteği TLS protokolü tesis edilen iletişim katmanı üzerinden gerçekleştirilir. TLS için nitelikli sertifikalar kullanılır. \n \n \n POST isteğinin başlığındaki alanlar ve istemcinin sertifikasındaki özel alanlar kullanılarak istemcinin yetkilendirilmesi sağlanır: \n \n İstekte bulunan ÖBHS yetkilendirilmiş olduğu geçit tarafından kontrol edilir. \n İstekte bulunan yetkilendirilmiş ödeme hizmeti sağlayıcısı ÖBHS rolüne sahipliği geçit tarafından kontrol edilir. \n HHS tarafından, istek başlığındaki x-aspsp-code ile katilimciBlg içerisinde yer alan hhsKod değeri ile aynı olduğunu kontrol edilir. Farklı olması durumunda  “TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n \n \n \n POST başarılı olursa, HHS, ödeme emri için içeride rıza olup olmamasına bakılmaksızın yeni bir rıza tanımlayıcısı RizaNo içeren odemeEmriRizasi  yanıt olarak döner. \n \n \n 1 ÖHK'nın 1 YÖS için 1HHS'de istediği kadar rızası olabilir. \n \n \n HHS tarafında RizaDurumu değişkeninin durumu “Yetki Bekleniyor” olarak güncellenir. \n \n \n YÖS’ün doğrulama ekranı olarak ÖHK’ya açacağı URL adresini de ilgili rıza numarasına göre oluşturur. Burada 2 farklı yöntemle URL oluşturabilir. \n \n Statik URL  : \nHHS’nin base pathi/alt-dizin/{rızaNo} \nÖrnek hhsYonAdr : https://xbank.com.tr/ohvps/cb54834e36f742d09af3d534ece3352a \nBu adres için ilgili doğrulama sayfası önden hazırlanmalı ve ÖHK’nın doğrulama sayfasına erişimi için yayınlanmış olmalıdır (publish edilmelidir). \n Dinamik URL : \nHHS’nin base pathi/alt-dizin/GKD Karşılama Ekranı?rizano={rızano} \nÖrnek: https://xbank.com.tr/ohvps/gkd?rizano=cb54834e36f742d09af3d534ece3352a \n \n \n \n POST /odeme-emri-rizasi \n İSTEK: \n ÖBHS, bu API erişim adresinden HHS’ye yeni bir OdemeEmriRizasi oluşturulması için istekte bulunur: \n \n ÖBHS, ödeme emri başlatma isteği olduğunu HHS’ye bildirir. \n ÖBHS, ÖHK’nın, ÖBHS arayüzünden verdiği rızanın (“Ön Onay”) bir kopyasının HHS nezdinde müşteri tarafından onaylanması için HHS’ye gönderilmesini sağlar. \n HHS; istek mesajında yer alan alanların ÖHVPS API İlke ve Kuralları dökümanında belirtilen şartları sağlayacak şekilde zorunluluk, uzunluk ve içerik kontrollerini y
16apar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Resource.InvalidFormat\"  hata kodu iletilmeli ve fieldErrors dolu olacak şekilde hatalı alanı belirten detaylı açıklama gönderilmelidir. InvalidFormat hata kodlarında fieldErrors içeriği gönderilmeli ve anlaşılır açıklama ile message, messageTr alanları doldurulması zorunludur. \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidTPP”  hatası dönülür. \n HHS; YÖS API ile alınan ÖBHS bilgilerinin içerisinde yer alan yönlendirme adresleri ile ödeme emri rızası nesnesi request mesajında paylaşılan adreslerin uyumlu olup olmadığının kontrollerini yapar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Business.TPPRedirectionAddressMismatch\"  hatası dönülür. \n HHS; kimlik bilgileri nesnesinde eğer kimlik bilgileri iletilmiş ise; bu veri ile ÖHK’nın HHS müşterisi olup olmadığının kontrollerini yapar. Bu kontrol hem bireysel hem de kurumsal ÖHK’lar için yapılmalıdır. (Koşullu Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Business.CustomerNotFound\"  hatası dönülür. Kurumsal müşteri ile başlatılan rızada yer alan müşteri bilgisinin karşı kurumda Kurumsal müşteri değil; bireysel müşteri olduğu durumda  TR.OHVPS.Business.BusinessCustomerMismatch  hatası dönülür. \n Ödeme Emri Başlatma Hizmeti rıza isteğinde bulunan ÖHK’nın “Açık Bankacılık Kanal Yetki” tanımı yok ise  \"TR.OHVPS.Business.OpenBankingChannelClosed\"  hatası dönülür. HHS insiyatifinde olup HHS bu kontrolü GKD sonrası gerçekleştirebilir. \n HHS \"gkd\" nesnesi için alan kontrollerini gerçekleştirir. \"yetYntm\" = \"A\" gönderilmiş ise \"ayrikGkd\" nesnesinin dolu gönderilmesi zorunludur. Gönderilmemesi durumunda HHS tarafından  \"TR.OHVPS.Resource.InvalidFormat\"  hatası dönülür. \n Ayrık GKD desteklemeyen HHS'ye Ayrık GKD yöntemiyle rıza başlatma isteği yapılması durumunda HHS tarafından  \"TR.OHVPS.Business.DecoupledAuthenticationNotSupported\"  hatası dönülür. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n Ayrık GKD ile başlatılan rıza akışlarında HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder. YÖS iki olay tipine de abone olmak zorundadır. Eğer olay aboneliği yoksa HHS tarafından  \"TR.OHVPS.Business.EventSubscriptionNotFound\"  hatası dönülür. \n Rıza başlatma akışı içerisinde kimlik bilgisinin olduğu durumlarda; ÖHK'ya ait kimlik verisi(kmlk.kmlkVrs) ile ayrık GKD içerisinde yer alan OHK Tanım Değer alanı (ayrikGkd.ohkTanimDeger) birebir aynı olmalıdır. Aynı olmadığı durumda HHS tarafından  \"TR.OHVPS.Business.CustomerInfoMismatch\"  hatası dönülür. Kimlik alanı içermeyen tek seferlik ödeme emri akışlarında bu kural geçerli değildir. GSM ve IBAN değerleri sadece tek seferlik ödemelerde kullanılabilir. \n HHS tarafında ÖHK'nın mobil uygulaması bulunmaması durumu tespit edilebildiği durumda Ayrık GKD ile başlatılan rıza akışlarında HHS tarafından  \"TR.OHVPS.Business.CustomerMobileApplicationNotFound\"  hatası dönülür. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n HHS kimlik bilgisi ile gönderen ünvanının uyumlu olduğunu kontrol eder. HHS'ler EFT/FAST işlemlerinde kabul ettikleri kontrol kriterleri ile işleme izin verebilirler. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Business.IncorrectSenderTitle\"  hatası dönülür. \n Gönderen Hesap Numarası ÖBHS tarafından iletildiği durumda;\n \n IBAN’ın doğruluğu (kontrol basamağı doğrulaması) kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.InvalidAccount\"  hatası dönülür. \n IBAN içerisindeki HHS kodunun istek başlığındaki HHS kodu ile aynı olduğu (hesabın HHS’ye aitliğinin kontrolü) kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.AccountCodeMismatch\"  hatası dönülür. \n Hesap numarasının ÖHK’ya ait olduğu kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.CustomerAccountMismatch\"  hatası dönülür. \n HHS’ye özel ödeme izni verilmeyen farklı statülerin bulunması durumu kontrol edilir. (İlgili hesabın para transfer işlemine yetkisi olmaması) Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.AccountUnauthorized\"  hatası dönülür. \n HHS’de gönderen hesabın aktifliği kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.AccountInactive\"  hatası dönülür. \n \n \n Gönderen Hesap Numarası için, He
16sap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir. Hesap referansı ile ödeme emri rızası başlatılacak ise HHS hesap referansı değeri ile ilişkilendirilmiş mevcut bir hesap bilgisi rızası var mı kontrol etmelidir. Eğer aktif bir rızası yok ise  \"TR.OHVPS.Business.ActiveConsentNotFound\"  hatası dönülür. \n Hesap bakiye kontrolünün rıza aşamasında yapılmaması gerekmektedir. Çünkü ÖHK ödeme emri gerçekleşene kadar hesabına para eklemesi yapabilir. \n Alıcı ve gönderen hesabın aynı olması durumunda  “TR.OHVPS.Business.SenderRecipientSame”  hatası dönmesi beklenmektedir. Bu hata HHS insiyatifindedir. \n Müşterinin kendi hesapları arasında talimat veremeyeceği durumların kontrolü için  “TR.OHVPS.Business.SameAccountTransferRestricted”  hatası dönmesi beklenmektedir. Bu hata HHS insiyatifindedir. \n \n Tek Seferlik Ödeme \n \n Tek seferlik ödeme akışı YÖS'ten HHS'ye giden istekte, gönderen kimlik bilgilerinin olmadığı durumda gerçekleşir. Gönderen kimlik bilgisi olmadığında, KOLAS sorgusu yapılamayacağından ötürü, HHS tarafından  \"TR.OHVPS.Resource.OneTimePaymentNotSupport\"  hatası dönülmelidir. ÖHK'nın YÖS'ün müşterisi olmadığı durumda tek seferlik ödeme başlatılabilir. \n Tek seferlik ödeme akışı hem işyeri ödemelerinde hem de kişiden kişiye para transferlerinde kullanılabilen bir akıştır. İşyeri tarafından başlatılan tek seferlik ödeme işlemlerinde katılımcılar gönderen ÖHK'dan ücret alınamaz. \n Tek seferlik ödeme akışı sadece bireysel müşteriler için kullanılabilir. Kurumsal müşteri ile ödeme emri başlatılması durumunda  \"TR.OHVPS.Resource.OneTimePaymentNotSupport\"  hatası dönülür.\nTek seferlik ödeme akışında hem yönlendirmeli hem de ayrık GKD akışı ile müşteri yetkilendirmesi sağlanabilir. \n Aşağıdaki senaryolar tek seferlik ödemeye örnek olarak gösterilebilir. \nİşyeri Ödemesi akışı örneği: Bir e-ticaret sitesinde, üye olmadan alışveriş yapılması ve ödemenin YÖS tarafından kimlik bilgisi olmadan başlatılması \nKişiden kişiye para transferi akışı örneği: QR veya diğer yöntemler ile alıcı bilgilerinin gönderici ile paylaşılması ve YÖS üzerinden gönderici bilgileri olmadan alıcıya para transferi yapılması için rıza verilmesi \n \n Yukarıdaki kontroller tamamlandıktan sonra HHS, ödeme için benzersiz “RizaNo” ile “OdemeEmriRizasi” nesnesi oluşturur ve ÖBHS’ye döner.  HHS, OdemeEmriRizasi oluşturduğu anda durumunu “Yetki Bekleniyor” olarak düzenler. \n Tek seferlik ödeme işlemlerinde (gönderen kimlik bilgilerinin boş olduğu durumda) ileri tarihli ve düzenli ödeme emri rızası başlatılabilir; ancak bu iş modelleri hizmete sunulmadan önce BKM ile paylaşılmalı ve onayı alınmalıdır. \n POST /odeme-emri-rizasi  isteğinin (REQUEST) gövdesinde (BODY)  “odemeEmriRizasiIstegi” nesnesi (Tablo-7) kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “odemeEmriRizasi” (Tablo-8) nesnesi oluşturulur. \n  BAŞARILI İSTEK: \n Tablo 7: “OdemeEmriRizasiIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n HHS tarafından ödeme emri rızası oluşturulması sırasında yapılması gereken kontrol ve işlemler \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n İ \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. Yetkilendirme yöntemi, ÖBHS tarafından belirtilmeyebilir. \n HHS, HBHS’nin belirlediği yöntemi dikkate alarak süreci ilgili akışa uygun olarak devam ettirir. Desteklemediği yöntem için (örn: Ayrık GKD) ayrıca hata mesajı verilmelidir. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu.  YÖS’ün ileteceği adrestir.  Durum ko
16du(drmKod), yönlendirme adresine parametre olarak eklenmelidir. \n HHS, müşteri uygulama / tarayıcısını bu alanda belirtilen adrese yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n yetYntm = A gönderilmiş ise ayrikGkd nesnesinin dolu gönderilmesi zorunludur.   HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder.  Bknz: Ayrık GKD \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir.  TR.OHVPS.DataCode.ohkTanimTip  sıralı veri tiplerinden birini alır. \n \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir. \n \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n K \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS geçerli bir Kimlik Numarası Türü olduğunu kontrol eder. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n K \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS, ÖBHS tarafından iletilmesi durumunda Kimlik Verisi üzeriden çapraz kontroller uygulamalı ve Kimlik Verisini temel alarak GKD gerçekleştirmelidir.  Pasaport numarasına ilişkin kontroller HHS'nin halihazırda kullandığı veri, akış ve tabi olduğu diğer düzenlemelerdeki işleyiş ile aynı şekilde ele alınmalıdır.  Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur.  HHS geçerli bir Kurum Kimlik Numarası Türü olduğunu kontrol eder. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur.  HHS, ÖBHS tarafından iletilmesi durumunda Kurum Kimlik Verisi üzeriden çapraz kontroller uygulamalıdır. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n Kurum adına yapılan ödemelerde K değerini alır. Kurum Kimlik Türü ve Kurum Kimlik Verisi alanlarının girilmiş olduğu çapraz olarak kontrol edilir. \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n HHS geçerli bir para birimi olduğu kontrol eder. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n İ \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n K \n Gönderenin ünvanıdır.  HHS, bu bilgiyi ÖBHS sisteminden gelen veri yerine FAST’a iletirken kendi sisteminden alabilir.  Tek seferlik ödeme dışında YÖS'ün gönderen ünvanını göndermesi zorunludur. \n HHS’nin bu veri ile kendi sistemlerindeki verinin farklı olması ve Kimlik Numarası ile eşleşmemesi durumunda ödeme emri başlatma isteği reddedilir.  ÖBHS verisi ile HHS verisinin farklılaşması durumunun ise risk değerlendirme sistemlerine girdi olarak kullanması tavsiye edilir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n İ \n ÖBHS'nin ön yüzünden daha önce kayıt altına alınmış hesaplar arasından seçtirdiği veya müşteriye girdiği IBAN’dır.  ÖBHS tarafından iletilmediği durumda, gönderen hesap bilgisini müşteri tarafından HHS’nin dijital kanalında GKD sonrasında seçilebilir. Bu amaçla ÖBHS arayüzünde HHS seçtirilmelidir.  Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir. Hesap referansı ile ödeme emri rızası başlatılacak ise HHS hesap referansı değeri ile ilişkilendirilmiş mevcut bir hesap bilgisi rızası var mı kontrol etmelidir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n ÖBHS tarafından iletildiği durumda; IBAN içerisindeki HHS kodunun istek başlığındaki HHS kodu ile aynı olduğu (hesabın HHS’ye aitliğinin kontrolü), IBAN’ın doğruluğu (kontrol basamağı doğrulaması), Hesap numarasının ÖHK’ya ait olduğu, HHS’ye özel ödeme izni verilmeyen farklı statülerin bulunması durumu kontrol edilir. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n İ \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez.  ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir.  Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan HHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n HspRef'e bağlı IBAN değiştiğinde yeni IBAN'ın da ilgili HspRef ile ilişkilendirilmesi beklenmektedir. Bu durumda, HBHS, Hs
16pRef ile sorguya geldiğinde HHS'nin yeni IBAN ve hesap hareketlerini dönebilmesi mümkün olacaktır. HspRef’in, IBAN değiştiğinde değiştirilmemesi tavsiye edilmektedir. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n K \n Kolay Adres Sistemi  kullanılmıyorsa zorunludur.  Alıcının ünvanıdır. ÖBHS ekranlarından girişi yapılabileceği gibi ÖBHS’nin kayıtlı alıcılarından yapılan seçimle de doldurup gönderebildiği bilgi olabilir.  FAST-TR Karekod Veri Organizasyonunda;  İşyeri tarafından sunulan uzun karekod yapısının  59:  alanında tanımlı İşyeri adı alanıdır, Kişiden Kişiye Ödeme Karekod Yapısının  07:  alanında tanımlı    Ödeme Alıcısının Adı ve Soyadı  alanıdır.  FAST-TR Karekod dışındaki iş yeri ödemelerinde; yine ünvan alanında işyeri adı bilgisi gönderilmelidir. \n \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n Alıcının Hesap Numarası (IBAN)  alanıdır.   Kolay Adres Sistemi  kullanılmıyorsa zorunludur.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  30-01:  alanında tanımlı İş Yeri IBAN verisi kullanılır.  Alıcının birden fazla hesabının kullanılabilir olduğu durumlarda (özellikle işyeri ödemelerinde HHS nezdindeki hesap (on-us havale akışı) tercih edilmelidir. \n HHS (Gönderen Katılımcı) tarafından IBAN doğrulaması (kontrol basamağı doğrulaması) yapılır. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n Tek seferlik ödemelerde ( kimlik bilgileri boş iletildiğinde) KOLAS nesnesi dolu iletiliyorsa; HHS tarafından hata dönülmelidir \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n HHS (Gönderen FAST katılımcısı) tarafından KOLAS Servisine yapılan sorguda girdi olarak kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n HHS (Gönderen FAST katılımcısı) tarafından KOLAS Servisine yapılan sorguda girdi olarak kullanılır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n TR.OHVPS.DataCode.KareKodAksTur  sıralı veri değerlerinden birini alır. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını  gösterir. Okunan karekodda referans değeri varsa kullanılması zorunludur.  Karekod ilke ve kurallar belgesinde tanımlandığı şekilde kullanılması gerekmektedir.  Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR Karekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri veri değerlerinden “O” değeri atanarak iletilmelidir. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n HHS, YÖS'ün API deseninde \"O\" kodunu ilettiğini kontrol eder. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n HHS geçerli bir Ödeme Amacı kodu olduğunu kontrol eder. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarında: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.   -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -\tİşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n YÖS bu değeri ÖHK’yı HHS’ye yönlendirmeden önceki ekranda göstermeli, ve HHS bu değeri GKD için kullandığı önyüzünde “işlem doğrulama kodunun” bir unsuru olarak yine ÖHK’ya göstermelidir. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n K \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği 
16için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda istekte yer alır.  İşyeri Ödeme Bilgileri, YÖS uygulama önyüzünde ÖHK’nın bildiği ve girişi yapılması beklenen bir bilgi olmamalıdır. YÖS tarafından sistemsel olarak doldurulması gereklidir. \n \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n K \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir.  4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n K \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). 4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n K \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n  BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “OdemeEmriRizasi” nesnesi Tablo-8’deki parametrelerden oluşur: \n Tablo 8: “OdemeEmriRizasi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n > Güncellenme Zamanı \n gnclZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin güncellenme zamanı \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n > Rıza Iptal Detay Kodu \n rizaIptDtyKod \n AN2 \n K \n Rıza durumunun iptal olduğu durumda zorunludur. Alabileceği değerler 4. Bölümde detaylandırılmıştır. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır.  HHS, ÖBHS’nin belirlediği yöntemi dikkate alarak kendi belirlediği yöntemi kullanır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n \n \n \n \n \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   HHS tarafından maksimum 5 dk içinde işlem tamamlanacak şekil zaman damgası oluşturulur. Zaman aşımı olduğunda HHS’nin GKD’ye izin vermeyecek şekilde hata mesajı vermesi gerekmektedir.  Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n K \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n K \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n >>
16 Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n İ \n \n \n \n >> Ünvan \n unv \n AN3..140 \n K \n Gönderenin ünvanıdır.  HHS, bu bilgiyi ÖBHS sisteminden gelen veri yerine FAST’a iletirken kendi sisteminden alabilir.   Tek seferlik ödeme dışında YÖS'ün gönderen ünvanını göndermesi zorunludur. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n İ \n ÖBHS'nin ön yüzünden daha önce kayıt altına alınmış hesaplar arasından seçtirdiği veya müşteriye girdiği IBAN’dır.  ÖBHS tarafından iletilmediği durumda, gönderen hesap bilgisini müşteri tarafından HHS’nin dijital kanalında GKD sonrasında seçilebilir. Bu amaçla ÖBHS arayüzünde HHS seçtirilmelidir.   GKD sonrası HHS ekranında seçilen Hesap Numarası POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir.    Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n İ \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez.  ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir.   GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir.    Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.    Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari ünvan bilgisidir. Kolas’tan dönen “account owner” alanı kullanılmalıdır. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen ünvan bilgisidir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n ÖBHS tarafından istek mesajında iletilip doğrulanan veya Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen alıcı maskeli IBAN bilgisidir. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n TR.OHVPS.DataCode.KareKodAksTur  sıralı veri değerlerinden birini alır. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını  gösterir. \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O” değerini alır. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  - İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n >> Ödeme Sistemi \n odmStm \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeSistemi  sıralı veri değerlerinden birini alır. \n \n \n >> Beklenen Ödeme Zamanı \n bekOdmZmn \n ISODateTime \n K \n İşlemin yönlendirildiği ödeme sistemi PÖS ise ve PÖS işlem saatleri dışında ise işlemin yapılabileceği ilk zaman bilgisidir. Bu alan ileri vadeli ödemeler için düşünülmüştür. İlk fazda doldurulmasına gerek olmadığı düşünülmektedir. \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n K \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda yanıtta yer alır. \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n K \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir. \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n K \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n K \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n 6.3.\tADIM 2- Ödeme Emri Rızasının Yetkilendirilmesi \n   \n Şekil 6: Ödeme Emri Rızasının Yetkilendirilmesi \n ÖBHS, ÖHK’nın ödeme emrini yetkilendirmesi isteğini iletir. Ödeme emrinin yetkilendirilmesi, HHS tarafından gerçekleştirilen Yönlendirme veya Ayrık GKD yöntemiyle yapılır. \n \n \n Yönlendirmeli doğrulama akışında , ÖBHS ÖHK’yı HHS’ye yönlendirir. \n \n ÖBHS tarafından yönlendirme, bir önceki adımdaki RizaNo’yu içerir. \n Yönlendirmenin RizaNo’yu içermesi sayesinde, HHS hangi ödeme emriyle ilişkili olarak yönlendirme yapıldığını ilişkilendirebilir. \n HHS, ÖHK için GKD sürecini işletir. \n \n ÖHK’yı doğrularsa, \n \n ÖHK -bir önceki adımda seçmediyse- borçlu hesabını seçer. \n HHS, ödeme emri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n HHS, ÖHK’yı “olumlu yönlendirme akışı” ile ÖBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n \n \n \n yonAdr?rizaDrm=Y&yetKod=xx&rizaNo=yy&rizaTip=O&drmKod=zzz\n \n ÖHK’yı doğrulayamazsa, \n1. HHS, ödeme emri rıza kaynağının durumunu “Yetki İptal” olarak günceller. \n2. HHS, 
16ÖHK’yı “olumsuz yönlendirme akışı” ile ÖBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=I&rizaNo=yy&rizaTip=O&drmKod=zzz\n \n HHS tarafında oluşabilecek bir hata durumunun YÖS’e aktarılması gerektiği durumlar olabilir. Bu durumda yonlendirme adresinde hata kodu parametresi zorunlu olarak iletilmelidir. \nHata açıklamalarının neler olabileceği ve YÖS’ün kendi uygulamasında bu hatayı ne şekilde göstereceği aşağıda tariflenmiştir. \n yonAdr?rizaDrm=I&rizaNo=yy&rizaTip=O&rizaIptDtyKod=11&drmKod=zzz\n \n URL’de iletilen “Rıza İptal Detay Kodu” Rıza durumları bölümünde (4. Bölüm) belirtilen hata kodları ile aynı olacak şekilde tasarlanmıştır. GKD sırasında yapılması gereken kontroller 5.3 bölümünde detaylandırılmıştır. \n \n Ayrık doğrulama akışında , HHS, ÖHK’nın ödeme emrini başlattığı uygulamadan farklı olabilecek bir “doğrulama” uygulamasında işlemi doğrulamasını ister.\n \n Ayrık akış ÖBHS’nin farklı bir kanal kullanarak yetkilendirme isteği göndermesiyle başlatılır. \n Bu yetkilendirme isteği, yetkilendirilecek ödeme emri rızasının eşleştirileceği ÖHK’nın bulunması için ilgili veriyi taşır. \n HHS, ÖHK’yı doğrular. \n ÖHK -bir önceki adımda seçmediyse- borçlandırılacak hesabını seçer. \n HHS, ödeme emri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n \n Başarılı GKD sonrasında (rizaDrm=’Y’) ilgili rıza nesnesi için (belirli bir rizaNo) yetkilendirme kodunun (yetKod) alınmasının ardından erişim belirteci erişim adresine POST çağrısı yapılarak yetkilendirme kodu karşılığında erişim belirteci ve yenileme belirteci alınır. POST /erişim-belirteci erişim noktası EK-3’te açıklanmıştır. \n Erişim belirteci alındıktan sonra; HHS, ödeme emri rıza kaynağının durumunu “Yetki Kullanıldı” olarak günceller. \n 6.4.\tADIM 2.1 – Ödeme Emri Rızasının Sorgulanması (isteğe bağlı) \n   \n Şekil 7: “odemeEmriRizasi” nesnesinin sorgulanması (isteğe bağlı) \n GKD işleminin başarıyla tamamlanıp Ödeme Emri Rızasının yetkilendirilmesi esnasında, gönderen hesap seçiminin HHS ekranında yapıldığı durumlar olabilir. Bu durumlarda ödeme emri isteğinde gönderen hesap bilgileri alanının zorunlu olması nedeniyle,  OdemeEmriRizasi  nesnesi sorgulanarak gönderen hesap bilgileri (hesap numarası ve/veya hesap referansı) alınmalıdır. HHS, “ ADIM 2 -Ödeme Emri Rızasının Yetkilendirilmesi ” akışında ÖHK’nın hesapları arasında seçim yapmasını ve seçilen hesap bilgisinin  OdemeEmriRizasi  nesnesine işler. \n GET /odeme-emri-rizasi/{RizaNo} \n ÖBHS, mevcut durumunu kontrol etmek için, oluşturulan bir  OdemeEmriRizasi  kaynağının durumunu isteğe bağlı olarak alabilir. \n \n Sorgulama yapılan ödeme emri rızası HHS tarafında bulunmuyor ise  \"TR.OHVPS.ResourceNotFound\"  hatası dönülür. \n \n Servis başarılı yanıtında Tablo 8’de belirtilen \"OdemeEmriRizasi\" nesnesini dönmektedir. \n Durum \n OdemeEmriRizasi  kaynağı için kullanılabilecek durum göstergeleri şu şekildedir: \n \n Yetki Bekleniyor \n Yetkilendirildi \n Yetki Kullanıldı \n Yetki Ödeme Emrine Dönüştü \n Yetki Sonlandırıldı \n Yetki İptal \n \n Ödeme Emri Rızası sonlandırıldı ve iptal statüsünde olan rıza'ların güncellenme zamanından(gnclZmn) 6 ay sonrasına kadar sorgulanabilir olması beklenmektedir. HHS'ler ilgili süre sonrasında yapılacak rıza sorgularına \" TR.OHVPS.Resource.NotFound\"  uyarısı verebilir. YÖS'ler tarafından iptal ve sonlandırıldı statüsünde olan rızalar için sorgulama yapmamalıdır. \n Ödeme emri rıza durum değişiklikleri 4.2 bölümünde detaylandırılmıştır. \n BAŞARILI YANIT: \n GET /odeme-emri-rizasi/{RizaNo}  yanıtının (RESPONSE) gövdesinde (BODY)  “OdemeEmriRizasiİstegi” nesnesi kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda Tablo-8’de yer alan parametreleri içeren “OdemeEmriRizasi” oluşturulur. \n Gönderen Hesap Bilgisinin, ADIM 2 (Ödeme Emri Rızasının Yetkilendirilmesi) sonrasında HHS ekranından seçildiği akışta “OdemeEmriRizasi” nesnesi güncellenir ve ÖBHS  GET /odeme-emri-rizasi/{RizaNo}  isteği yaparak güncel gönderen hesap bilgisi bilgisini de içeren “OdemeEmriRizasi” nesnesini çekmelidir. \n Çerçeve sözleşme kapsamında olmayan tek seferlik ödeme işlemlerinde, Kimlik Türü ve Kimlik Verisi bilgilerinin ödeme emri rızası sırasında gönderimi zorunlu değildir. Başarılı GKD sonrası, yani erişim belirteci alındığında, ödeme emri oluşmadan önce, YÖS’ün ödeme emri rızasını sorgulayarak bu bilgileri alması ve ödeme emrini oluştururken Kimlik Türü, Kimlik Verisi ve Gönderen Ünvan alanlarını dolu olarak göndermesi beklenmektedir.  Ancak rıza durumu “Yetki Bekleniyor - B”, “Yetkilendirildi - Y” ve “Yetki İptal - I” statülerinde ise, ödeme emri rızası sorgulamasında, HHS’nin Kimlik Türü ve Kimlik Verisi bilgisini Y
16ÖS ile paylaşmaması gerekmektedir. \n 6.5.\tADIM 3- Ödeme Emrinin Oluşturulması \n   \n Şekil 8: Ödeme Emrinin Oluşturulması \n POST /odeme-emri \n ÖHK’nın Güçlü Kimlik Doğrulama ile işlemi yetkilendirmesi sonrasında, ÖBHS OdemeEmri kaynağını oluşturur. \n Ödeme emri (OdemeEmri) uygun ödeme kaynağına POST isteği yapılarak başlatılır. \n \n Erişim Belirteci kontrolü yapılır. Geçerli bir Erişim Belirteci yok ise  \"TR.OHVPS.Connection.InvalidToken\"  hatası dönülür. \n HHS; istek mesajında yer alan alanların ÖHVPS API İlke ve Kuralları dökümanında belirtilen şartları sağlayacak şekilde zorunluluk, uzunluk ve içerik kontrollerini yapar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Resource.InvalidFormat\"  hatası dönülür. \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidTPP”  hatası dönülür. \n Rıza durumu kontrol edilir.\n \n B: Yetki Bekleniyor, Y: Yetkilendirildi  ya da E: Yetki Ödeme Emrine Dönüştü ise  “TR.OHVPS.Resource.ConsentMismatch”  hatası dönülür. \n I: Rıza İptal ya da S: Yetki Sonlandırıldı ise  ”TR.OHVPS.Resource.ConsentRevoked”  hatası dönülür. \n RizaDurumu “K: Yetki Kullanıldı” ise kontrollere devam edilir. \n \n \n POST /odeme-emri-rizasi ile POST /odeme-emri isteklerinde istek alanların aynı olması beklenmektedir. HHS tarafından kontrolü sağlanmalıdır. Ödeme emri rızasında gönderilen değerlerden farklı bir değer gönderildiği durumda  “TR.OHVPS.Business.FieldMismatch”  hatası dönülür. \n HHS tarafından Ödeme Emrinin Oluşturulması API'sine istek yapıldığında müşterinin bakiyesi kontrol edilir. Bakiye yetersiz ise HHS tarafından  \"TR.OHVPS.Business.BalanceInsufficient\"  hatası dönülür. Müşterinin hesabında bakiye olması ancak günlük işlem limitine takılması durumunda ise  TR.OHVPS.Business.ExceededTransactionLimit  hatası dönülür. \n \n Yukarıdaki kontroller tamamlandıktan sonra, içerisinde OdemeEmriNo ve OdemeEmriDurumu değişkenleri de bulunan OdemeEmri nesnesi ÖBHS’ye döner ve RizaDurumu değişkenin değeri “Yetki Ödeme Emrine Dönüştü” olarak güncellenir. \n \n POST verisindeki Gönderen Hesap Numarası ve Alıcı Hesap Numarasının aynı bankaya aitse HAVALE değilse FAST veya PÖS iş akışına geçilir. \n OdemeEmriDurumu “Gerçekleşti” / “Gönderildi” / “Gerçekleşmedi” olarak güncellenir. \n \n BAŞARILI İSTEK: \n Tablo 9: “OdemeEmriIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n HHS tarafından ödeme emri oluşturulması sırasında yapılması gereken kontrol ve işlemler \n FAST A01 PÖS M01 mesaj mapping \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. \n Gönderen katılımcı kodu (yani bankanın FAST/PÖS’teki Katılımcı kodu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. \n YosKod \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n \n >Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n \n \n >Yönlendirme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunludur. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n \n \n \n \n \n \n \n \n \n \n \n >Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n yetYntm = A gönderilmiş ise ayrikGkd nesnesinin dolu gönderilmesi zorunludur. yetYntm = Y için bu nesne iletilmemelidir. \n \n \n \n >>OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n \n \n >>OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n \n \n >HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n \n \n >Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. Ödeme Emri Rizası Nesnesindeki Kimlik Numarası Türü verisi ile aynı olmalıdır. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS, ÖBHS tarafından iletilmesi durumunda Kimlik Verisi üzeriden çapraz kontroller uygulamalı ve Kimlik Verisini temel alarak GKD gerçekleştirmelidir. Ödeme Emri Rizası Nesnesindeki Kimlik Numarası verisi ile aynı olmalıdır. Gerçek kişi tarafından yapılan ödemelerde, 
161. HHS, Gönderen Adı ve Gönderen Hesap Numarasını ödeme emri isteğinde (Havale/FAST/PÖS) gönderir. - Gönderen Adı ve diğer tüm müşteri bilgileri, Kimlik Numarası üzerinden elde edillir. Pasaport numarasına ilişkin kontroller HHS'nin halihazırda kullandığı veri, akış ve tabi olduğu diğer düzenlemelerdeki işleyiş ile aynı şekilde ele alınmalıdır. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik verisi bu alanda gönderilebilmesi zorunludur. \n GonKimN / Psp \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur. Ödeme Emri Rizası Nesnesindeki Kurum Kimlik Türü verisi ile aynı olmalıdır. \n \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur. Ödeme Emri Rizası Nesnesindeki Kurum Kimlik Verisi ile aynı olmalıdır. \n GonKimN / VKN \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n Kurum adına yapılan ödemelerde K değerini alır. Kurum Kimlik Türü ve Kurum Kimlik Verisi alanlarının giilmiş olduğu çapraz olarak kontrol edilir.  Ödeme Emri Rizası Nesnesindeki ÖHK Türü ile aynı olmalıdır. \n \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n Ödeme Emri Rizası Nesnesindeki Para Birimi verisi ile aynı olmalıdır. \n \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n Ödeme Emri Rizası Nesnesindeki İşlem Tutarı verisi ile aynı olmalıdır. HHS işlem tutarı ödeme mesajında (Havale/FAST/PÖS) aynen taşınmak durumundadır. \n Ttr \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderen kişinin ad soyad ya da ticari ünvan bilgisi. \n HHS ve ÖBHS verisi tutarlı olmalıdır.  ÖBHS verisi ile HHS verisinin farklılaşması durumunun ise risk değerlendirme sistemlerine girdi olarak kullanması tavsiye edilir. \n GonAd \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n ÖBHS'nin ön yüzünden seçtirdiği/kullanıcıya girdiği IBAN Hesap numarası ya da Hesap Referansı alanlarından en az birinin dolu olarak gelmesi gerekmektedir. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Gönderen Hesap Numarası verisi ile aynı olmalıdır. \n GonHesN \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n K \n ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başlatılabilir. GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir. Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı 
16sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari ünvan bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen ünvan bilgisidir. \n YÖS’ten alıcı ad soyad bilgisi geliyorsa ve HHS'nin kontrolünden başarılı bir şekilde geçti ise HHS'nin tekrar alıcı ad soyad bilgisi için giriş yaptırmasına gerek bulunmamaktadır. \n AlAd \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n Alıcının Hesap Numarası alanıdır (IBAN). Kolay Adres  sorgusunda dönülen adres kaydı yaptırmış olan alıcının maskeli IBAN bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen IBAN bilgisidir. Karekod akışında, FAST Karekod Veri Organizasyonundaki 30-01: alanında tanımlı İş Yeri IBAN verisi kullanılır. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Alıcı Hesap Numarası verisi ile aynı olmalıdır.  Kontroller başarıyla sonuçlanırsa, bilgi FAST/PÖS AlHesN alanına doğrudan aktarır ve FAST/PÖS Alan Katılımcı Kodu (AlKK) olarak Alıcı HHS Kodu kullanılır.  KOLAS sorgusu sonucunda ödeme emrinde iletilen maskeli bilgi ile HHS’nin kendi ödeme emri rızası isteğinde tuttuğu KOLAS sorgusundan dönülen bilgi maskelenerek karşılaştırılır. Eğer aynı değilse uygun hata kodu dönülerek işlem sonlandırılır. \n AlHesN \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n Müşterinin sorgulamak istediği Kolay Adres Tipi değeridir.  TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Kolay Adres Tipi verisi ile aynı olmalıdır. \n \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Kolay Adres Değeri verisi ile aynı olmalıdır. \n FAST (KolasRef) \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n KolasRef ( hem FAST hem de PÖS için aynı) \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  Kolay Adresi Sistemi ile birlikte kullanılmaz.  01: FAST katılımcısından dinamik doğrulama hizmeti alınan işyeri ödemesi  02: FAST katılımcısından statik doğrulama hizmeti alınan işyeri ödemesi 03: Kişiden kişiye ödemeler \n Ödeme Emri Rizası Nesnesindeki Kare Kod Akış Türü verisi ile aynı olmalıdır. \n FAST: KrkdAksTur \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını gösterir.  Okunan karekodda referans değeri varsa kullanılması zorunludur. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n Ödeme Emri Rizası Nesnesindeki Karekod Referansı verisi ile aynı olmalıdır.  Çevrimiçi doğrulama hizmeti alınmayan statik karekodlar için Referans numarasının bulunmadığı durumlarda HHS tarafından “NONREF” ifadesi girilir. \n FAST: Karekod Referansı (KrkdRef) \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O” değeri atanarak iletilmelidir. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n Ödeme Emri Rizası Nesnesindeki Ödeme Kaynağı verisi ile aynı olmalıdır. HHS tarafından ödeme mesajında (FAST/PÖS) aynen taşınmak durumundadır. \n FAST/PÖS: OdmKynk \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. \n Ödeme Emri Rizası Nesnesindeki Ödeme Amacı verisi ile aynı olmalıdır. HHS tarafından ödeme mesajında (FAST/PÖS) aynen taşınmak durumundadır. \n FAST (OdmAmc)/PÖS(OdmAmaci) \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n Ödeme Emri Rizası Nesnesindeki Referans Bilgisi verisi ile aynı olmalıdır. \n RefBlg (Hem FAST hem de PÖS için aynı) \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n FAST/PÖS Acklm \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n \n \n >> Ödeme Sistemi \n odmStm \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeSistemi  sıralı veri değerlerinden birini alır. \n Ödeme Emri Rizası Nesnesindeki Ödeme Sistemi verisi ile aynı olmalıdır. \n \n \n \n >> Beklenen Ödeme Zamanı \n bekOdmZmn \n ISODateTime \n K \n İşlemin yönlendirildiği ödeme sistemi PÖS ise ve PÖS işlem saatleri dışında ise işlemin yapılabileceği ilk zaman bilgisi \n \n \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n K \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda istekte yer alır.  İşyeri Ödeme Bilgileri, YÖS uygulama önyüzünde ÖHK’nın bildiği ve girişi yapılması beklenen bir bilgi olmamalıdır. YÖS tarafından sistemsel olarak doldurulması gereklidir. \n \n \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n K \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir. 4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n K \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). 4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n K \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n \n \n \n \n \n BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “OdemeEmri” nesnesi Tablo-10’daki parametrelerden oluşur: \n Tablo 10: “OdemeEmri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanıdır. \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n Z \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Emir Bilgileri \n emrBlg \n Kompleks: EmirBilgileri \n Z \n \n \n \n > Ödeme Emri Numarası \n odmEmriNo \n AN1..128 \n Z \n odemeEmri nesnesinin UID'sidir. OdemeEmrine İlişkin sorgular bu ID üzerinden yapılır. \n \n \n > Ödeme Emri Zaman \n odmEmriZmn \n ISODateTime \n Z \n odemeEmri nesnesinin oluşturulma zamanıdır. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.    Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderen kişinin ad soyad ya da ticari ünvan bilgisi. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n ÖBHS tarafından iletilip doğrulanan veya HHS ekranında seçilen Gönderen Hesap Numarası dönülür. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n K \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid)  YÖS bazında farklılaşması gerekmez. ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir. GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir. Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.  Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı 
16sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari ünvan bilgisidir. Kolas’tan dönen “account owner” alanı kullanılmalıdır. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen ünvan bilgisidir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n Alıcının Hesap Numarası alanıdır (IBAN). Kolay Adres  sorgusunda dönülen adres kaydı yaptırmış olan alıcının maskeli IBAN bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen IBAN bilgisidir. Karekod akışında, FAST Karekod Veri Organizasyonundaki 30-01: alanında tanımlı İş Yeri IBAN verisi kullanılır. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n Müşterinin sorgulamak istediği Kolay Adres Tipi değeridir.  TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  Kolay Adresi Sistemi ile birlikte kullanılmaz.  01: FAST katılımcısından dinamik doğrulama hizmeti alınan işyeri ödemesi  02: FAST katılımcısından statik doğrulama hizmeti alınan işyeri ödemesi 03: Kişiden kişiye ödemeler \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını gösterir.  Okunan karekodda referans değeri varsa kullanılması zorunludur. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR Karekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O”  değerini alır. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n \n \n >> Ödeme Durumu \n odmDrm \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeDurumu  sıralı veri değerlerinden birini alır.      Ödeme Durumu alanı ile ilgili olarak HHS’ler tarafından YÖS’lere  OdemeEmri servisi yanıtında 02:Gönderildi, 04:Onayda Bekliyor,05:İşleme Alındı yanıtları gönderilebilir.   05:İşleme Alındı  durumu YÖS tarafından müşteriye gösterilmeyen bir koddur. Bu kod dönüldüğünde YÖS uygulamasında ÖHK’ya ödeme durumu  02:Gönderildi  olarak gösterilir. İşlemin son durumunun teyidi için YÖS ödeme emri sorgulaması yapmalıdır.   02:Gönderildi  durumu oluştuktan sonra YÖS tarafından ödeme emri sorgulaması yapılarak ödeme durumunun güncel değeri öğrenilir. Güncel değerler  01:Gerçekleşti,03:Gerçekleşmedi  durumları olabilir. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  - İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n >> Ödeme Sistemi \n odmStm \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeSistemi  sıralı veri değerlerinden birini alır. \n \n \n >> Ödeme Sistem Numarası \n odmStmNo \n AN10..50 \n K \n Ödeme başarılı başlatıldıysa, ödemenin başlatıldığı sistemdeki referans numarası. Gerektiğinde ilgili ödeme sisteminde/HHS’de söz konusu ödemeye karşılık gelen mesajla bağlantı kurmada kullanılır.   Ödeme Hizmeti kullanıcısına işlemin takibi için gösterilebilir.  İşlemin yönlendirildiği ödeme sistemi FAST ya da PÖS ise sistemdeki ilgili mesajın Tarih, GönderenKatilimKodu ve SorguNumarasi değerlerinin birleşiminden oluşur. Bu 3 alan mevcutta kullanıldığı formatta aralarına dikey çizgi (Unicode U+2223) işareti koyularak, birleştirmeli ve iletilmelidir. Örn : Tarih|GönderenKatilimKodu|SorguNumarasi   Ödeme Havale/Virman işlemi ise HHS’nin üretmiş olduğu havale/virman numarasını içerir. Buradaki format da Tarih|GönderenKatilimKodu|Havale-virman numarası şeklinde olmalıdır. Havale/FAST/PÖS  ödeme yöntemleri için tarih alanı yyyy-aa-gg formatında 10 karakter olarak 
16iletilmelidir. \n \n \n >> Beklenen Ödeme Zamanı \n bekOdmZmn \n ISODateTime \n K \n İşlemin yönlendirildiği ödeme sistemi PÖS ise ve PÖS işlem saatleri dışında ise işlemin yapılabileceği ilk zaman bilgisi \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n K \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda yanıtta yer alır. \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n K \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir. \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n K \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n K \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n 6.6.\tADIM 3.1- Ödeme Emri Sorgusu (İsteğe bağlı) \n   \n Şekil 9: Ödeme Emri Sorgusu \n GET /odeme-emri/{odemeEmriNo} \n ÖBHS, bu erişim adresi aracılığıyla ödeme emrini sorgulayabilir. \n BAŞARILI YANIT: \n GET /odeme-emri/{odemeEmriNo} yanıtının (RESPONSE) gövdesinde (BODY)  “OdemeEmri” nesnesi bulunur. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda Tablo-10’da yer alan parametreleri içeren “OdemeEmri” nesnesi döner. \n \n İstek başlığında yer alan X-Access-Token ile ilişkili rızada, yer alan odemeEmriNo için, ödeme emri sorgusundaki odemeEmriNo bilgisinin aynı olup olmadığı kontrol edilir. Farklı olması durumunda  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n Sorgulama yapılan ödeme emri numarası HHS tarafında bulunmuyor ise  \"TR.OHVPS.ResourceNotFound\"  hatası dönülür. \n \n"},{title:"12.\tOlay Bildirim",frontmatter:{},regularPath:"/v2.0.0/contents/olay-bildirim.html",relativePath:"v2.0.0/contents/olay-bildirim.md",key:"v-448b4d1d",path:"/v2.0.0/contents/olay-bildirim.html",headers:[{level:2,title:"Genel Bilgiler",slug:"genel-bilgiler"},{level:2,title:"Olay Abonelik Servisleri (OAS)",slug:"olay-abonelik-servisleri-oas"},{level:2,title:"ADIM 1: Olay Aboneliğinin gerçekleştirilmesi",slug:"adim-1-olay-aboneliginin-gerceklestirilmesi"},{level:2,title:"ADIM 2: Olay Aboneliğinin güncellenmesi",slug:"adim-2-olay-aboneliginin-guncellenmesi"},{level:2,title:"ADIM 3: Olay Aboneliğinin sorgulanması",slug:"adim-3-olay-aboneliginin-sorgulanması"},{level:2,title:"ADIM 4: Olay Aboneliğinin iptali",slug:"adim-4-olay-aboneliginin-iptali"},{level:2,title:"ADIM 5: Olay Aboneliğinin İletilemeyen Olayları",slug:"adim-5-olay-aboneliginin-iletilemeyen-olayları"},{level:2,title:"ADIM 6: Sistem Olay Dinleme",slug:"adim-6-sistem-olay-dinleme"},{level:2,title:"Olay Dinleme Servisleri (ODS)",slug:"olay-dinleme-servisleri-ods"},{level:2,title:"ADIM 1: Olay Dinleme",slug:"adim-1-olay-dinleme"},{level:2,title:"ADIM 2:  Sistem Olay Dinleme",slug:"adim-2-sistem-olay-dinleme"}],content:" 12.\tOlay Bildirim  \n Genel Bilgiler \n Olay Bildirim Abonelik API servisleri, HHS'lerin sunmuş oldukları olay bildirimlerini takip etmek amacıyla abonelik akışlarını tanımlar. \n YÖS'ler olay bildirimlerini takip edebilmek için talep ettikleri abonelik hizmetlerini belirterek HHS'ler özelinde bir abonelik kaydı oluştururlar. Bu abonelik kaydını okuyabilir, güncelleyebilir ya da silebilirler. \n Olay bildirimleri HHS'ler tarafından 2 yöntem ile sağlanır. İlki olay bildirimlerinin anlık olarak iletilmesi, diğeri ise anlık iletilemeyen olayların toplu olarak iletilmesidir. \n Olay Bildirimi 2 API ile yönetilecektir. \n 1 - Olay Abonelik Servisleri (OAS) \n2 - Olay Dinleme Servisleri  (ODS) \n Olay Abonelik ve Olay Dinleme API'lerinin istek ve yanıt başlığında beklenen parametreler ÖBH,HBH,GKD API'lerinden farklıdır.\n 3.15. İstek Başlığı  ve  3.16. Yanıt Başlığı  bölümlerinde zorunlu parametreler ve açıklamaları belirtilmiştir. \n Olay Abonelik Servisleri (OAS) \n Olay abonelik Servisleri; HHS'ler tarafından sunulacak olay bildirim abonelik servislerini ve iletilemeyen olaylar servisini içermektedir. \n HHS'nin sunacağı bu API ile YÖS'ler şu adımları gerçekleştirebilir. \n \n YÖS'ün olay bildirimlerini dinleyebilmek için öncelikle dinlemek istediği olaylara ait olay tipleri ve kaynak tiplerini belirlemesi gerekmektedir. \n Olay tipleri ve kaynak tiplerinin neler olacağı \"Olay Tipleri ve Kaynak Tipleri İlişkisi\" tablosunda belirtilmiştir. \n YÖS, belirlediği olaylar için HHS'ye olay abonelik endpointi aracılığı ile abonelik başlatır. \n YÖS, abonelik numarası aracılığı ile abonelik bilgilerini görüntüleyebilir, güncelleyebilir, silebilir. \n YÖS, olay bildirimlerini bu abonelik sayesinde kendisinin sunacağı Olay Dinleme API'si ile dinler. \n HHS anlık iletemediği olaylarını biriktirerek, iletilemeyen olaylar endpointi ile YÖS'e sunar. \n \n HHS'ler \"Olay Tipleri ve Kaynak Tipleri İlişkisi\" tablosunda belirlenen olay ve kaynak tiplerinin tümü için YÖS'lere bildirim sunmak zorundadır. \n Olay Abonelik Servislerinde Idempotency kurallarının işletilmesine gerek bulunmamaktadır. \n Nezdinde ödeme hesabı bulunduran bazı hesap hizmeti sağlayıcılar(EPK, Ödeme Kuruluşları) müşterilerine ait hesapları, diğer HHS'lerdeki havuz hesaplarını kullanarak yönetiyor olabilir. Bu durum ilgili hesap hizmeti sağlayıcılarının, ÖHVPS kapsamında HHS olduğu rolde sunması gereken olay bildirim servisleri ile ilgili uyması gereken kuralları değiştirmemektedir. İlgili hesap hizmeti sağlayıcılarının standartlara uygun şekilde YÖS'lere bildirimleri yapması gerekmektedir. \n YÖS'ler sahip oldukları rol özelinde olay abonelik servislerinden faydalanabilir. Bu yüzden olay bildirim etki alanı (scope) değerleri hesap_bilgisi ve/veya odeme_emri olarak belirlenmiştir. \n Olay Abonelik Servisine ait API Endpointleri aşağıdaki tabloda listelenmiştir. \n Olay Abonelik Servisleri için Erişim Adresleri (Endpoints) \n Etki Alanı (Scope) =“hesap_b
16ilgisi”  \"odeme_emri\" \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu (Z)/ İsteğe Bağlı(İ) \n Yetkilendirme Türü \n İmzalama \n Parametre \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n olay-abonelik \n POST \n /olay-abonelik \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n OlayAbonelikİstegi \n OlayAbonelik \n \n \n 2 \n olay-abonelik \n GET \n /olay-abonelik \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n \n - \n OlayAbonelik \n \n \n 3 \n olay-abonelik/{olayAbonelikNo} \n PUT \n /olay-abonelik/{olayAbonelikNo} \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n OlayAbonelik \n OlayAbonelik \n \n \n 4 \n olay-abonelik/{olayAbonelikNo} \n DELETE \n /olay-abonelik/{olayAbonelikNo} \n Z \n İstemci Kimlik Bilgileri \n - \n - \n - \n - \n \n \n 5 \n olay-abonelik/{olayAbonelikNo}/iletilemeyen-olaylar \n GET \n /olay-abonelik/{olayAbonelikNo}/iletilemeyen-olaylar \n Z \n İstemci Kimlik Bilgileri \n - \n Sayfalama \n \n Olaylar \n \n \n 6 \n sistem-olay-dinleme \n POST \n sistem-olay-dinleme \n Z \n İstemci Kimlik Bilgileri \n 
16- \n - \n Olaylar \n - \n ADIM 1: Olay Aboneliğinin gerçekleştirilmesi \n POST /olay-abonelik \n HHS'nin olay abonelik hizmeti sunduğu servistir.\nYÖS, seçeceği olay-kaynak tipleri için bu servis aracılığı ile abone olabilir. HHS POST işlemi sonucunda, YÖS adına bir olay abonelik kaynağı oluşturur ve tekil tanımlayıcı olan olayAbonelikNo değerini döner. olayAbonelikNo üretilirken farklı YÖS'ler için aynı değer kullanılamaz. olayAbonelikNo evrensel tekil olmalıdır. \n1 YÖS'ün 1 HHS'de 1 adet abonelik kaydı olabilir. \nBaşarılı POST isteği sonucu HTTP 201 cevabı ile iletilmelidir. \n YÖS tarafından daha önce oluşturulmuş olay abonelik kaydı varsa  \"HTTP 400 -TR.OHVPS.Business.EventSubscriptionAlreadyExists\"  hatasıyla uyarı mesajını döner. \n Olay Abonelik kaydı oluşturmak isteyen YÖS'ün ODS API tanımı HHS tarafından kontrol edilmelidir. YÖS'ün tanımı olmaması halinde  \"HTTP 400-TR.OHVPS.Business.InvalidContent\"  hatası verilmelidir. \n Olay Abonelik kaydı oluşturmak isteyen YÖS tarafından olay tipi ve kaynak tipi için iletilen değerler olması gereken sıralı veri tülerinden(TR.OHVPS.DataCode.OlayTip ve TR.OHVPS.DataCode.KaynakTip) farklı ise HHS tarafından   \"TR.OHVPS.Business.EventSubscriptionNotFound\"  hatası verilmelidir. \n Abonelik üzerinde görüntüleme, güncelleme, silme işlemlerini gerçekleştirebilir.\nYÖS'ün Aboneliği devam ettiği sürece; YÖS'ün açacağı Olay Dinleme API'sine, HHS tarafından abonelik kapsamında olay bildirimleri iletilir. \n BKM'nin sunacağı abonelik servisleri için HHS ve YÖS'lerin abonelik isteği yapmasına gerek bulunmamaktadır. BKM üretim ortamı tanımları yapılırken katılımcıları abonelik servislerine üye yapacaktır. BKM'nin sunacağı abonelik servislerinin olay tipi \"HHS_YOS_GUNCELLENDI\"dir. HHS ve YÖS API ile sunulan bilgilerde bir değişiklik olduğunda yapılacak olay bildirimlerini sağlar.\nÖrneğin; HHS logo bilgilerinde yapılacak bir değişiklik sonrasında, YÖS'lere yapılacak bildirim ile logo bilgisini değişen HHS'nin hhsKod değerini iletir. YÖS, HHS API'yi  hhsKod ile çağırarak HHS'nin güncel bilgilerini alır. Güncel bilgiler ile kendi sistemini günceller. \n Olay tipi ve kaynak tipine ekleme yapıldıkça YÖS'lerin olay abonelik kayıtlarını yeni tipleri içerecek şekilde güncel tutması gerekmektedir. \n OlayAbonelikIstegi nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n \n Abonelik Tipleri \n abonelikTipleri \n Kompleks: abonelikTipleri[Array][1..N] \n Z \n \n \n \n \n > Olay Tipi \n olayTipi \n AN1..36 \n Z \n YÖS abone olmak istediği olay tiplerini TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden değer ya da değerler ile doldurur. \n \"Olay Tipleri ve Kaynak Tipleri İlişkisi\" tablosunda \"Olay Bildirim Yapan\" kolonu \"HHS\" olan olay tipleri ile veri girişine izin verilir. \n \n \n > Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n Olay tiplerinin tanımlanabildiği kaynak listesi bulunmaktadır. Bu listeye uygun kaynak tipleri iletilmelidir. \n HHS, YÖS API üzerinden YÖS'ün rollerini alarak uygun kaynak tiplerine kayıt olmasını sağlar. \n \n \n \n OlayAbonelik nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Olay Abonelik Numarası \n olayAbonelikNo \n AN1..64 \n Z \n YÖS özelinde oluşturulan tekil tanımlayıcıdır. Farklı YÖS'ler için aynı değer kullanılamaz. \n \n \n Olay Abonelik Oluşturulma zamanı \n olusturmaZamani \n ISODateTime \n Z \n Olay Abonelik nesnesinin oluşturulma zaman damgası \n \n \n Olay Abonelik Güncelleme zamanı \n guncellemeZamani \n ISODateTime \n Z \n Olay Abonelik nesnesinin güncelleme zaman damgası iletilebilir. İlk değeri olay abonelik oluşturma zamanı bilgisidir. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n Abonelik Tipleri \n abonelikTipleri \n Kompleks: abonelikTipleri[Array][1..N] \n Z \n OlayAbonelikIstegi nesnesi içerisinde iletilen değerlerin yanıt içerisinde dönmesi beklenmektedir. \n \n \n > Olay Tipi \n olayTipi \n AN1..36 \n Z \n \n \n \n > Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n \n \n \n \n Olay Tipleri ve Kaynak Tipleri İlişkisi \n * Anlık : Olay gerçekleştikten sonra maksimum 5 saniye içerisindeki zaman \n \n \n \n Olay Tipleri \n YÖS Rolü \n Kaynak Tipleri \n Olay Oluşturulma durumu \n KaynakNo \n Asıl verinin elde edileceği API \n Olay Bildirimini Yapan \n Olay Bildirim Zamanı \n Retry Policy \n \n \n \n \n KAYNAK_GUNCELLENDI \n ÖBH \n ODEME_EMRI \n Tüm ödeme durum değişikliklerinde \n odmEmrNo \n GET /odeme-emri/{odemeEmriNo} \n HHS \n *Anlık \n 30 Dakika - 3 Deneme \n \n \n \n ÖBH \n ILERI_TARIHLI_ODEME_EMRI_RIZASI \n Rıza iptal detay kodu ‘02’ : Kullanıcı İsteği ile HHS üzerinden İptal durumunda \n rizaNo \n GET /ileri-tarihli-odeme-emri-rizasi/{rizaNo} \n HHS \n *Anlık \n 30 Dakika - 3 Deneme \n \n \n \n ÖBH \n ILERI_TARIHLI_ODEME_EMRI \n Tüm ödeme durum değişikliklerinde, ödeme emri içerisinde yer alan tutar, talimat tarihi değişikliklerinde \n odmEmrNo \n GET /ileri-tarihli-odeme-emri/{odemeEmriNo} \n HHS \n *Anlık \n 30 Dakika - 3 Deneme \n \n \n \n ÖBH \n DUZENLI_ODEME_EMRI_RIZASI \n Rıza iptal detay kodu ‘02’ : Kullanıcı İsteği ile HHS üzerinden İptal durumunda \n rizaNo \n GET /duzenli-odeme-emri-rizasi/{rizaNo} \n HHS \n *Anlık \n 30 Dakika - 3 Deneme \n \n \n \n ÖBH \n DUZENLI_ODEME_PLANI \n Düzenli ödeme planı içerisinde yer alan herhangi bir alan için değişiklik olduğu durumda \n tlmtNo \n /duzenli-odeme-emri/{tlmtNo}/odeme-plani \n HHS \n *Anlık \n 30 Dakika - 3 Deneme \n \n \n \n ÖBH \n DUZENLI_ODEME_EMRI \n Düzenli ödeme emri içerisinde gönderen hesap ve açıklama alanlarına dair değişiklik olduğu durumda \n tlmtNo \n /duzenli-odeme-emri/{tlmtNo} \n HHS \n *Anlık \n 30 Dakika - 3 Deneme \n \n \n \n HBH \n HESAP_BILGISI_RIZASI \n Rıza iptal detay kodu ‘02’ : Kullanıcı İsteği ile HHS üzerinden İptal durumunda ve Rıza iptal detay kodu ‘09’ : Uygun ürünü bulunmuyor durumunda \n rizaNo \n GET /hesap-bilgisi-rizasi/{rizaNo} \n HHS \n *Anlık \n 30 Dakika - 3 Deneme \n \n \n \n HBH \n BAKIYE \n Bakiye nesnesindeki tutarla ilgili bir bilgi değiştiğinde ve HBH rızası içerisinde \"06-Anlık Bakiye Bildirimi\" izin türü varsa oluşturulur. Mevcutta alınmış rızalar için  bakiye kaynak tipi özelinde 06 izin türü gerektiğinden; mevcut rızanın yenilenmesine dair müşteriye bilgilendirme yapılarak 06 izin türünü kapsayan yeni rıza alınması süreci YÖS tarafından gerçekleştirilebilir. Bloke tutar değişikliği için olay oluşturma ve bildirimi HHS inisiyatifindedir. KrdHsp içerisinde yer alan kulKrdTtr değerinin değiştiği durumda olay bildirim gönderilmesi gerekmektedir. \n hspRef \n GET /hesaplar/{hspRef}/bakiye, GET /hesaplar/{hspRef}/islemler \n HHS \n Maksimum 10 dakika içerisinde \n Retry policy uygulanmamalıdır. İlk istek gönderilemediği durumda İletilemeyen Olaylara eklenmelidir. \n \n \n \n HBH \n KART_BILGILERI \n Kart bilgileri nesnesindeki kart statüsü veya ekstre türleri içerisinde sadece yeni bir esktre türü eklendiğinde oluşturulur. Ekstre türünde azaltma yönünde güncelleme varsa olay bildirimi gönderilmemelidir. YÖS'e kart statüsünün veya ekstre türlerinin değiştiğine dair olay bildirimi gönderilir. \n kartRef \n GET /kartlar,  GET /kartlar/{kartRef},   GET /kartlar/{kartRef}/kart-detay,  GET /kartlar/{kartRef}/kart-hareketleri \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n \n HBH \n COKLU_ISLEM_TALEBI ( bulk-data) \n İlgili API İlke ve kurallarına eklendiğinde güncellenecektir. \n \n \n HHS \n \n 30 Dakika - 3 Deneme \n \n \n AYRIK_GKD_BASARILI \n ÖBH \n ODEME_EMRI_RIZASI \n HHS sisteminde ÖHK kendini doğruladığında rıza oluşturulur. YÖS'e rıza oluşturulduğuna dair bildirim yapılır. YÖS yetkod değerini sorgulama sonucunda elde eder. \n RizaNo \n GET /yetkilendirme-kodu?rizaNo={rizaNo}}&rizaTip=O \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n \n HBH \n HESAP_BILGISI_RIZASI \n HHS sisteminde ÖHK kendini doğruladığında rıza oluşturulur. YÖS'e rıza oluşturulduğuna dair bildirim yapılır. YÖS yetkod değerini sorgulama sonucunda elde eder. \n RizaNo \n GET /yetkilendirme-kodu?rizaNo={rizaNo}&rizaTip=H \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n \n ÖBH \n ILERI_TARIHLI_ODEME_EMRI_RIZASI \n HHS sisteminde ÖHK kendini doğruladığında rıza oluşturulur. YÖS'e rıza oluşturulduğuna dair bildirim yapılır. YÖS yetkod değerini sorgulama sonucunda elde eder. \n RizaNo \n GET /yetkilendirme-kodu?rizaNo={rizaNo}}&rizaTip=I \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n \n ÖBH \n DUZENLI_ODEME_EMRI_RIZASI \n HHS sisteminde ÖHK kendini doğruladığında rıza oluşturulur. YÖS'e rıza oluşturulduğuna dair bildirim yapılır. YÖS yetkod değerini sorgulama sonucunda elde eder. \n RizaNo \n GET /yetkilendirme-kodu?rizaNo={rizaNo}}&rizaTip=D \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n AYRIK_GKD_BASARISIZ \n ÖBH \n ODEME_EMRI_RIZASI \n HHS sisteminde ÖHK kendini doğruladıktan sonra yaptığı kontroller neticesinde logine izin vermez ise YÖS'e bildirim yapılır. YÖS rıza durumunu sorgulayarak işlemin neden iletilmediğine dair bilgi edinebilir. \n RizaNo \n GET /odeme-emri-rizasi/{RizaNo} \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n \n HBH \n HESAP_BILGISI_RIZASI \n HHS sisteminde ÖHK kendini doğruladıktan sonra yaptığı kontroller neticesinde logine izin vermez ise YÖS'e bildirim yapılır. YÖS rıza durumunu sorgulayarak işlemin neden iletilmediğine dair bilgi edinebilir. \n RizaNo \n GET /hesap-bilgisi-rizasi/{RizaNo} \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n \n ÖBH \n ILERI_TARIHLI_ODEME_EMRI_RIZASI \n HHS sisteminde ÖHK kendini doğruladıktan sonra yaptığı kontroller neticesinde logine izin vermez ise YÖS'e bildirim yapılır. YÖS rıza durumunu sorgulayarak işlemin neden iletilmediğine dair bilgi edinebilir. \n RizaNo \n GET /ileri-tarihli-odeme-emri-rizasi/{rizaNo} \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n \n ÖBH \n DUZENLI_ODEME_EMRI_RIZASI \n HHS sisteminde ÖHK kendini doğruladıktan sonra yaptığı kontroller neticesinde logine izin vermez ise YÖS'e bildirim yapılır. YÖS rıza durumunu sorgulayarak işlemin neden iletilmediğine dair bilgi edinebilir. \n RizaNo \n GET /duzenli-odeme-emri-rizasi/{rizaNo} \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n HHS_YOS_GUNCELLENDI \n \n \n BKM sistemi tarafından üretilecek olayları dinlemek için kullanılacak kaynak tipidir. YÖS ve HHS'lerin BKM'ye abonelik oluşturmasına gerek bulunmamaktadır. BKM HHS ve YÖS üretim ortamı tanımı yaparken abonelikler
16ini başlatacaktır.   (HHS yaygınlaştırma durumundayken de aboneliği başlatılacaktır.) \n \n \n HHS \n \n \n \n \n \n YÖS \n HHS \n HHS bilgilerinde değişiklik olduğunda, YÖS'ün hhsKod ile sorgulama yapması ve değişen bilgiyi güncellemesi beklenmektedir. \n hhsKod \n GET /hhs/{hhsKod} \n BKM \n *Anlık \n 5 Dakika - 3 Deneme \n \n \n \n HHS \n YOS \n YÖS bilgilerinde değişiklik olduğunda, HHS'nin yosKod ile sorgulama yapması ve değişen bilgiyi güncellemesi beklenmektedir. \n yosKod \n GET /yos/{yosKod} \n BKM \n *Anlık \n 5 Dakika - 3 Deneme \n \n \n \n * Anlık : Olay gerçekleştikten sonra maksimum 5 saniye içerisindeki zaman \n ADIM 2: Olay Aboneliğinin güncellenmesi \n PUT\tolay-abonelik/{olayAbonelikNo} \n YÖS'ün olay aboneliğine ait abonelik tiplerini güncelleyebildiği servistir. Olay aboneliği oluşturulduğu zaman HHS tarafından iletilen olayAbonelikNo aracılığı ile güncelleme işlemi yapılır. YÖS abone olmak istediği olay-kayıt tiplerininin son halini güncelleme servisi ile HHS'ye iletir. HHS bu bilgilerle eski abonelik tiplerinin yerini değiştirir. \n Başarılı PUT isteği sonucu HTTP 200 cevabı ile iletilmelidir. \n OlayAbonelikIstegi nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Olay Abonelik Numarası \n olayAbonelikNo \n AN1..64 \n Z \n YÖS özelinde oluşturulan tekil tanımlayıcıdır. Farklı YÖS'ler için aynı değer kullanılamaz. \n HHS geçerli bir olay abonelik numarası olduğunun kontrolünü yapar. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n \n Abonelik Tipleri \n abonelikTipleri \n Kompleks: abonelikTipleri[Array][1..N] \n Z \n HHS Sisteminde, YÖS'ün eski abonelikleri yeni aboneliklerle güncellenmelidir. \n \n \n \n > Olay Tipi \n olayTipi \n AN1..36 \n Z \n YÖS abone olmak istediği olay tiplerini TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden değer ya da değerler ile doldurur. \n \"Olay Tipleri ve Kaynak Tipleri İlişkisi\" tablosunda \"Olay Bildirim Yapan\" kolonu \"HHS\" olan olay tipleri ile veri girişine izin verilir.  Olay tipi AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ için, YÖS'ün ODS API'yi sunması zorunludur. HHS, bu olay tipleri özelinde YÖS API üzerinden YÖS'ün bu API'yi sunduğunu kontrol eder ve eğer sunmuyor ise TR.OHVPS.Business.InvalidContent hatası dönerek kayıt işlemini gerçekleştirmez. \n \n \n > Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n Olay tiplerinin tanımlanabildiği kaynak listesi bulunmaktadır. Bu listeye uygun kaynak tipleri iletilmelidir. \n HHS, YÖS API üzerinden YÖS'ün rollerini alarak uygun kaynak tiplerine kayıt olmasına izin verir. \n \n \n \n OlayAbonelik nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Olay Abonelik Numarası \n olayAbonelikNo \n AN1..64 \n Z \n YÖS özelinde oluşturulan tekil tanımlayıcıdır. Farklı YÖS'ler için aynı değer kullanılamaz. \n \n \n Olay Abonelik Oluşturulma zamanı \n olusturmaZamani \n ISODateTime \n Z \n Olay Abonelik nesnesinin oluşturulma zaman damgası \n \n \n Olay Abonelik Güncelleme zamanı \n guncellemeZamani \n ISODateTime \n Z \n Olay Abonelik nesnesinin güncelleme zaman damgası \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n Abonelik Tipleri \n abonelikTipleri \n Kompleks: abonelikTipleri[Array][1..N] \n Z \n OlayAbonelikIstegi nesnesi içerisinde iletilen değerlerin yanıt içerisinde dönmesi beklenmektedir. \n \n \n > Olay Tipi \n olayTipi \n AN1..36 \n Z \n OlayAbonelikIstegi nesnesi içerisinde iletilen değerlerin yanıt içerisinde dönmesi beklenmektedir. \n \n \n > Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n OlayAbonelikIstegi nesnesi içerisinde iletilen değerlerin yanıt içerisinde dönmesi beklenmektedir. \n ADIM 3: Olay Aboneliğinin sorgulanması \n GET /olay-abonelik \n YÖS olay abonelik bilgilerini sorgulamak isteyebilir. HHS, YÖS'e ait aktif durumdaki abonelik bilgisini iletir.\nBaşarılı GET sonucu HTTP 200 kodu ile iletilmelidir. \n OlayAbonelik nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Olay Abonelik Numarası \n olayAbonelikNo \n AN1..64 \n Z \n YÖS özelinde oluşturulan tekil tanımlayıcıdır. Farklı YÖS'ler için aynı değer kullanılamaz. \n \n \n Olay Abonelik Oluşturulma zamanı \n olusturmaZamani \n ISODateTime \n Z \n Olay Abonelik nesnesinin oluşturulma zaman damgası \n \n \n Olay Abonelik Güncelleme zamanı \n guncellemeZamani \n ISODateTime \n Z \n Olay Abonelik nesnesinin güncelleme zaman damgası \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n Abonelik Tipleri \n abonelikTipleri \n Kompleks: abonelikTipleri[Array][1..N] \n Z \n YÖS'ün abone olduğu olay - kaynak listesini döner. \n \n \n > Olay Tipi \n olayTipi \n AN1..36 \n Z \n TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden değerler içerir. \n \n \n > Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n TR.OHVPS.DataCode.KaynakTip sıralı veri tiplerinden değerler içerir. \n ADIM 4: Olay Aboneliğinin iptali \n DELETE /olay-abonelik/olayAbonelikNo \n YÖS'ün abonelik kaydını silmesi için HHS'nin sunduğu servistir.  Başarılı silme işlemi sonucu HTTP 204 ile YÖS'e iletilir. \n ADIM 5: Olay Aboneliğinin İletilemeyen Olayları \n GET /iletilemeyen-olaylar \n HHS kaynaklar üzerinde oluşacak olayları YÖS'e POST/olay-dinleme servisi ile gönderim sağlamaktadır. Bu gönderim belli bir yeniden gönderim politası (retry-policy) ile yapılmalıdır.  Ancak yine de iletilemeyen olaylar olursa (YÖS servisinden HTTP 202 alamama durumu) YÖS'e iletilemeyen-olaylar servisi üzerinden sunulmalıdır. Yani yeniden gönderim politikası sonunda gönderilemeyen olaylar bu servis ile sunulmalıdır. \n Aynı kaynak numarası ile aynı olay-kaynak tipinde, 1 YÖS’e ait, 1 adet iletilemeyen olay kaydı olabilir. \n Bu serviste 1 gün öncesinden sorgu anına kadar tüm kayıtlarına ait iletilemeyen olaylar listelenmelidir.\nÖrnek sorgu zamanı : 2023-04-06T15:14:00+03:00\nHHS'nin sunacağı veri 2023-04-05T00:00:00+03:00  ile 2023-04-06T15:14:00+03:00 arasında olmalıdır.\nSıralama yönü olay tarihine göre artan şekilde olmalıdır. Sayfalama 100'er kayıt dönülerek yapılmalıdır. \n YÖS tarafından iletilemeyen olaylar isteği 10 dakikada bir olacak şekilde yapılabilir. HHS bu limite uygun işlem kısıtı uygulayabilir. \n İşlem Sorgu Örneği GET İşlem Sorgu Örneği  : /iletilemeyen-olaylar?syfNo=1&olyZmnBslTrh=2024-01-08T16:42:00+03:00&olyZmnBtsTrh=2024-01-09T17:09:00+03:00 \n Örneğin; \n olyZmnBslTrh : 07/01/2024 10:00:00+03:00\n olyZmnBtsTrh : 09/01/2024 16:00:00+03:00\n Sorgu Zamanı : 09/01/2024 10:15:00+03:00 \n Yanıt içerisinde yer alan veriye ait tarih aralığı : 08/01/2024 00:00:00+03:00 - 09/01/2024 10:15:00+03:00 olmalıdır. \n Başlangıç ve bitiş zaman aralığı örnekte yer alan şekilde seçilse dahi ilgili servis yanıtı için öncelikle sorgu zamanına bakılıp 1 gün öncesinden sorgu anına kadar tüm kayıtların iletilemeyen olaylar içerisinde listelenmesi sağlanmalıdır. \n İlgili tarih aralığında uygun veri olmaması halinde yanıt gövdesi boş olacak şekilde dönülmelidir. \n İletilemeyen Olaylar Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n İstenen Sayfa Numarasi \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS İletilemeyen Olaylar listesine ait bu sayfadaki kayıtları göndermelidir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları göndermelidir. \n \n \n Olay Zamanı Başlangıç Tarihi \n olyZmnBslTrh \n ISODateTime \n İ \n Sorgulanacak Olay Zamanına ait başlangıç tarihi \n HHS'ler iletilemeyen olaylar listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. YÖS tarafından tetiklenen sorgularda; olyZmnBslTrh iletilmediği durumda ya da 1 gün öncesinin başlangıç saatine göre daha geri bir zaman dilimi gönderildiğinde, başlangıç zamanı(olyZmnBslTrh) değeri sorgu zamanından 1 gün öncesine ait günün başlangıç zamanı olarak kabul edilmelidir. \n \n \n Olay Zamanı Bitiş Tarihi \n olyZmnBtsTrh \n ISODateTime \n İ \n Sorgulanacak Olay Zamanına ait bitiş tarihi \n HHS'ler iletilemeyen olaylar listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. YÖS tarafından tetiklenen sorgularda;
16 olyZmnBtsTrh iletilmediği durumda ya da sorgu zamanından daha ileri bir zaman dilimi gönderildiğinde, bitiş zamanı(olyZmnBtsTrh) değeri sorgu zamanı olarak kabul edilmelidir. \n \n \n \n Tablo 17: Olaylar nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n Olaylar \n olaylar \n Kompleks: Olaylar \n Z \n \n \n \n >Olay No \n olayNo \n AN1..64 \n Z \n Olaya ait evrensel tekil numaradır. \n \n \n >Olay Zamani \n olayZamani \n ISODateTime \n Z \n Olayın oluştuğu tarih bilgisidir. \n \n \n >Olay Tipi \n olayTipi \n AN1..36 \n Z \n TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden birini alır. \n \n \n >Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n TR.OHVPS.DataCode.KaynakTip sıralı veri tiplerinden birini alır. \n \n \n >Kaynak Numarası \n kaynakNo \n AN1..128 \n Z \n Güncellenen kaynağa ait HHS sistemindeki tekil tanımlayıcı. \n \n \n \n Kaynak numarasında gönderilen değer ile ilgili kaynağı sorgulayarak almak YÖS'ün insiyatifindedir. \n ADIM 6: Sistem Olay Dinleme \n POST /sistem-olay-dinleme \n HHS'lerin sistem olaylarını dinleme amacıyla açması gereken endpoint bilgisidir. \n YÖS API içerisinde yapılan değişikliklerde, BKM tarafından HHS'lere olay bildirimlerini yapılır. \n Olaylar yanıt nesnesi içerisinde 1 adet kayıt yer almalıdır. \n Başarılı POST isteği sonucu HTTP 202 Accepted kodu ile dönülmelidir. \n HHS'den başarılı yanıt alınamadığı durumda, 5 dakika aralıklarla 3 kez deneme yapılacaktır. Hata alınmaya devam edilmesi durumunda başka bir aksiyon alınmayacaktır. \n Olay Dinleme Servisleri (ODS) \n YÖS sunacağı Olay Dinleme Servisi ile hem HHS'den hem de BKM'den gelen olayların bildirimini dinleyebilir. YÖS'ler HHS'de yer alan olay abonelik kayıtlarını iptal edebilir ancak BKM Sistem Olay Dinleme servisinin ileteceği bildirimlerin alınması zorunlu olduğundan ODS API her zaman aktif olmalıdır. \n HHS'den gelecek olay bildirimlerini olay-dinleme endpointi ile dinlerken, BKM'den gelecek olay bildirimlerini sistem-olay-dinleme endpointi ile dinlemelidir. \n Olay Dinleme Servislerinde Idempotency kurallarının işletilmesine gerek bulunmamaktadır. \n Olay Dinleme Servisine ait API Endpointleri aşağıdaki tabloda listelenmiştir. \n Olay Dinleme Servisleri için Erişim Adresleri (Endpoints) \n Etki Alanı (Scope) =“olay_dinleme” \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu (Z)/ İsteğe Bağlı(İ) \n Yetkilendirme Türü \n İmzalama \n Parametre \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n olay-dinleme \n POST \n /olay-dinleme \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek \n - \n Olaylar \n - \n \n \n 2 \n sistem-olay-dinleme \n POST \n /olay-dinleme \n Z \n İstemci Kimlik Bilgileri \n 
16- \n - \n Olaylar \n - \n ADIM 1: Olay Dinleme \n POST /olay-dinleme \n Olay abonelik servisi ile abone olunan olaylar, olay dinleme servisi ile YÖS'e iletilir.\nOlaylar yanıt nesnesi içerisinde en fazla 100 kayıt gönderilmelidir.\nBaşarılı POST isteği sonucu HTTP 202 Accepted ile dönülmelidir. \n HHS'nin işlem hata aldığında, başarılı işlem olana kadar 3 kez deneme yapılması gerekmektedir.\nİlk istekle son istek arasında 30 dakika olacak şekilde, zamana yayarak bu denemelerin yapılması gerekmektedir. (Exponential backoff policy uygulanması beklenmektedir. )\nHHS kendi sistemini yormayacak şekilde, belirleyeceği kurallar dahilinde bu geliştirmeyi yapmalıdır. \n Tablo 17: Olaylar nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n >Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >>Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n >> Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n >Olaylar \n olaylar \n Kompleks: Olaylar \n Z \n \n \n \n >>Olay Numarası \n olayNo \n AN1..64 \n Z \n Olaya ait atanmış tekil kimlik numarası \n \n \n >>Olay Zamanı \n olayZamani \n ISODateTime \n Z \n Olayın oluşma zamanı \n \n \n >>Olay Tipi \n olayTipi \n AN1..36 \n > \n TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden birini alır. \n \n \n >>Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n TR.OHVPS.DataCode.KaynakTip sıralı veri tiplerinden birini alır. \n \n \n >>Kaynak Numarası \n kaynakNo \n AN1..128 \n Z \n Güncellenen kaynağa ait HHS sistemindeki tekil tanımlayıcı. \n ADIM 2:  Sistem Olay Dinleme \n POST /sistem-olay-dinleme \n YÖS'lerin sistem olaylarını dinleme amacıyla açması gereken endpoint bilgisidir. \n HHS API içerisinde yapılan değişikliklerde, BKM tarafından YÖS'lere olay bildirimlerini yapılır. \n Olaylar yanıt nesnesi içerisinde 1 adet kayıt yer almalıdır. \n Başarılı POST isteği sonucu HTTP 202 Accepted kodu ile dönülmelidir. \n YÖS'ten başarılı yanıt alınamadığı durumda, 5 dakika aralıklarla 3 kez deneme yapılacaktır. Hata alınmaya devam edilmesi durumunda başka bir aksiyon alınmayacaktır. \n"},{title:"4. Rıza Durumları",frontmatter:{},regularPath:"/v2.0.0/contents/riza-durumlari.html",relativePath:"v2.0.0/contents/riza-durumlari.md",key:"v-64fc905e",path:"/v2.0.0/contents/riza-durumlari.html",headers:[{level:2,title:"4.1.\tHesap Bilgisi Hizmeti Rıza durum değişiklikleri",slug:"_4-1-hesap-bilgisi-hizmeti-rıza-durum-degisiklikleri"},{level:2,title:"4.2.\tÖdeme Bilgisi Hizmeti Rıza Durum Değişiklikleri",slug:"_4-2-odeme-bilgisi-hizmeti-rıza-durum-degisiklikleri"}],content:" 4. Rıza Durumları \n ÖHK, Ödeme Emri Başlatma Hizmetine ya da Hesap Bilgisi Hizmetine müşteri rızasının tesisi ile başlar. ÖHK’nın YÖS uygulaması üzerinden yaptığı işlemler neticesinde rıza durumları değişebilir.\nRıza’nın alabileceği durum kodları şu şekilde belirlenmiştir. \n B: Yetki Bekleniyor  – İlk rıza talebinde \n Y: Yetkilendirildi  – Başarılı GKD sonrası yetKod üretildiğinde \n K: Yetki Kullanıldı  – Erişim Belirteci alındığında \n E: Yetki ödeme emrine dönüştü  – ÖBHS için \n S: Yetki Sonlandırıldı \n    HBHS için : Erişimin Geçerli Olduğu Son Tarih geldiğinde \n    ÖBHS için : Yenileme belirteci Son Tarihi geldiğinde \n I :Yetki İptal \nRıza iptal durumu ise gerek raporlama gerekse müşteri deneyimi perspektifinden doğru   bilgilendirmeler yapılabilmesi açısından aşağıdaki gibi detay kodları ile zenginleştirilmiştir: \n \n Rıza İptal Detay Kodu: \n \n \n \n ‘01’ :\tYeni Rıza Talebi ile İptal \n ‘02’ :\tKullanıcı İsteği ile HHS üzerinden İptal \n ‘03’ :\tKullanıcı İsteği ile YÖS üzerinden İptal \n ‘04’ :\tSüre Aşımı : Yetki Bekleniyor \n ‘05’ :\tSüre Aşımı : Yetkilendirildi \n ‘06’ :\tSüre Aşımı : Yetki Ödemeye Dönüşmedi \n ‘07’ :\tGKD iptali : Aynı rıza no ile mükerrer çağrımı \n ‘08’ :\tGKD iptali : Rızano ile kimlik bilgileri uyuşmaması \n ‘09’ :\tGKD iptali : Uygun ürünü bulunmuyor \n ‘10’ :\tGKD iptali : HHS Açık Bankacılık kanalı işleme kapalı \n ’11’ :\tGKD iptali : Hesap Yetki S
16orunu \n ‘12’ :\tGKD iptali : ÖHK HHS kontrollerini aşamadı \n ‘13’ :\tGKD iptali : ÖHK isteği ile GKD’den vazgeçildi \n ‘14’ :\tGKD iptali : Fraud Şüphesi \n ‘15’ :\tHesap Rıza Güncelleme Talebi ile İptal \n ‘99’ :\tGKD iptali : Diğer \n \n \n 4.1 ve 4.2 bölümlerinde detaylandırılan rıza durum değişikliklerinde rıza iptal detay kodları kullanılmıştır. \n Örneğin B⇨ I/01 denildiğinde “Yetki Bekleniyor” rıza durumundan “Yetki İptal” rıza durumuna Rıza İptal Detay Kodu da ‘01’ yani ‘Yeni Rıza Talebi ile İptal’ olarak güncellenmelidir ifade edilmiştir. \n ÖHK verdiği rıza sırasında seçtiği hesaplarından/kartlarından biri kapatılırsa, diğer hesaplara/kartlara ait bilgileri görmeye devam eder. Ancak ÖHK’nın hesabına/kartına ait bilgilerinin YÖS'e iletilmesini istemediği durumda, rızasını tamamen iptal ederek yeni hesap/kart listesi ile yeni rıza vermesi gerekmektedir. Yani hesap/kart kapanması nedeniyle rıza geçerliliğini yitirmez. ÖHK'nın proaktif olarak bu hesabı/kartı rızadan çıkarması durumunda rıza iptali olur. \n Rıza iptal edilmediği ve geçerli olduğu sürece kapalı hesaplar/kartlar için diğer çevrimiçi kanallarda uygulanan yöntem izlenmelidir. Diğer çevrimiçi kanallarda kapalı hesaplara/kartlara ilişkin bilgi dönülmüyor ise ÖHVPS'den de dönüş yapılmaz. ÖHK’nın rıza onayı verdiği açık hesaplarının/kartlarının tümü HHS tarafında kapatıldığı durumda, yine aynı şekilde HHS çevrimiçi kanallarında koyduğu kurallara göre bu hesaplarının/kartlarının YÖS uygulamasında gösterilmesine karar verir. \n Hesap/kart kapama ve ticari kullanıcıların hesaplar/kartlar üzerindeki yetki değişiklikleri HHS'nin iç sistemleri tarafından yapılan kontrollerle yönetilir. Buradaki değişiklikler ile HHS sistemsel olarak rıza iptali gerçekleştiremez. ÖHK izni ve onayı dahilinde rıza iptal gerçekleştirilmesi gerekmektedir. \n HHS'ler sunmuş oldukları Rıza İptal ekranını (sadece Hesap Bilgisi Rızası için), hangi ortamlardan GKD yapılmasına izin veriliyorsa (web/mobil) aynı ortamdan ÖHK'ya sunmalıdır.  Örneğin bir HHS bireysel müşterileri için web ve mobil, kurumsal müşteriler için web üzerinden GKD imkanı sunuyor ise, minimumda bireysel müşteriler için web ve mobil ortamlarından, kurumsal müşteriler için web ortamından Rıza İptal ekranı aracılığı ile rıza iptaline izin vermelidir. Bunun dışında çağrı merkezi ya da şube gibi ortamlardan sunacağı Rıza İptal imkanı HHS inisiyatifindedir. Bahsi geçen zorunluluk Ödeme Emri Rıza İptal ekranı için geçerli değildir. \n Benzer şekilde YÖS'ler hangi ortamlardan (web/mobil) hizmet veriyorsa, aynı ortam üzerinden Rıza İptal ekranını sunmalıdır. \n 4.1.\tHesap Bilgisi Hizmeti Rıza durum değişiklikleri \n Kural : Bir ÖHK'nın, bir YÖS için, bir HHS'de aktif tek bir rızası olabilir.\nBir ÖHK hem kişisel olarak hem de bir kurumun kullanıcısı olabilir. Bu durumda kurum ve kişisel rıza aynı anda mevcut olabilmelidir. Rıza nesneleri, HHS tarafından uygun şekilde yönetilmelidir. \n \n \n Hesap Bilgisi Rızası isteği HHS’ye iletilir. \na.\tHHS ÖHK'ya ait içeride rıza var mı kontrol eder. Eğer yoksa  Yetki Bekleniyor - B  rıza durumu ile yeni rıza oluşturur. \nb.\tEğer içeride rıza varsa ; \n \n Yeni hesap bilgisi rızası talebi başlatılmışsa (oncekiRizaNo alanının hiç gönderilmediği durum):  \ni. Rıza durumu Yetki Bekleniyor - B ise; \n        HHS, sistemde Yetki Bekleniyor - B rıza durumuna sahip kayıt olduğu için, öncelikle eski kaydı Yetki İptal - I durumuna getirir.  Rıza İptal Detay Kodu “Yeni Rıza Talebi ile iptal” olmalıdır.  B ⇨ I / 01  Sonrasında,  Yetki Bekleniyor - B  rıza durumu ile yeni rıza oluşturur. \n \n      ii. Rıza durumu Yetkilendirildi - Y veya Yetki Kullanıldı - K ise; \n    ÖHK'nın halihazırda verilmiş bir rızası vardır. HHS, önce mevcut rızanın iptalinin yapılması gerektiğine dair   TR.OHVPS.Business.ConsentAlreadyExists  hatasını döner. YÖS, HHS ya da YÖS uygulaması üzerinden bu rızanın iptal edilmesi gerektiğine dair ÖHK'ya bilgilendirme yapar. \n      iii.\tRıza durumu Yetki Sonlandırıldı - S  ise Yetki Bekleniyor - B durumunda yeni rıza no oluşturur. \n      iv.\tRıza durumu Yetki İptal - I ise  Yetki Bekleniyor - B  durumunda yeni rıza no oluşturur. \n \n \n Başlatılan rıza isteği güncelleme akışı ile başlatılması durumunda oncekiRizaNo değeri rıza isteğinde bulunan ÖHK’ya ait olmalıdır. ÖHK’ya ait olmaması durumunda  TR.OHVPS.Business.CustomerNotFound  hatası dönülür. Aynı ÖHK olması durumunda ;
16 \n i. Önceki Rıza durumu B: Yetki Bekleniyor , Y: Yetkilendirildi ya da I :Yetki İptal  ise;  TR.OHVPS.Business.ConsentStatusNotforUpdate  hatası verilecektir. \n ii. Yetki Kullanıldı - K ise; hesap rızası başarılı gerçekleştiriliyor olup Yetki Bekleniyor - B durumunda yeni bir rıza oluşturulur. Önceki hesap bilgisi rızası durumunda bir güncelleme yapılmaz. \n iii. Yetki Sonlandırıldı - S ise; Rıza Güncelleme Zamanı kontrol edilir. \n •\tSonlandırıldı statüsüne geçmesiyle birlikte rıza güncelleme zamanı üzerinden 30 gün geçmiş ise  TR.OHVPS.Business.ConsentStatusNotforUpdate  hatası verilir. \n•\t30 gün geçmemiş ise; hesap rızası başarılı gerçekleştiriliyor olup Yetki Bekleniyor - B durumunda yeni bir rıza oluşturulur. Önceki hesap bilgisi rızası durumunda bir güncelleme yapılmaz. \n \n \n \n \n GKD başarılı bir şekilde tamamlandığında Rıza durumu Yetki Bekleniyor’dan Yetkilendirildi’ye güncellenir.  B ⇨ Y \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdar olmayabilir. \n ÖHK GKD yapmadan ayrılmış olabilir. (ÖR: Tarayıcıyı kapatmış olabilir) Rıza Yetki Bekleniyor - B rıza durumunda kalır.  5 dakika içerisinde sistem tarafından Yetki Bekleniyor - B rıza durumundaki kayıtlar Yetki İptal  : Yetki Bekleniyor Süre Aşımı olarak güncellenir.   B ⇨ I / 04  Bkz. 9. Madde. \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdardır. HHS yonlendirme adresinin query parametrelerine  rizaIptDtyKod  değerini ekleyerek bu durumu YÖS’e bildirmek zorundadır. \n \n \n Rıza durumunun  “Yetkilendirildi\" , “Yetki Kullanıldı” olduğu durum.  Yetki Bekleniyor ⇨ Yetki İptal   B ⇨  I / 07 \n \n \n Rızano ile kimlik bilgileri uyuşmazlığı.  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 08 \n \n \n ÖHK'nın HHS'de ilgili ürününün olmadığı durum (hesap/kart) Yetki Bekleniyor ⇨ Yetki İptal   B ⇨ I / 09 \n \n \n Açık bankacılık kanalınız işleme kapalıdır.Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 10 \n \n \n Kullanıcının HHS'deki hesaplarında/kartlarında yeterli yetkisinin olmama durumu  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 11 \n \n \n HHS’nin ÖHK için yaptığı kontrollerin başarısız olduğu durum Yetki Bekleniyor ⇨ Yetki İptal   B ⇨ I / 12 \n \n \n ÖHK isteği ile GKD’den vazgeçildiği durum Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 13 \n \n \n Fraud Şüphesi Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 14 \n \n \n Diğer Yetki Bekleniyor ⇨  Yetki İptal   B ⇨  I / 99 \n \n \n \n \n \n \n Erişim Belirteci API \n a. Erişim Belirteci'nin yetkilendirme kodu ile çağrımı yapıldığında; \n      i. Rıza durumu Yetki İptal - I ya da Yetki Sonlandırıldı - S ise   TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     ii. Rıza durumu Yetki Bekleniyor - B ya da Yetki Kullanıldı - K  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iii. Rıza durumu Yetkilendirildi - Y olduğunda erişim belirteci tahsis edilir.\nErişim belirteci alındığında rıza durumu K: Yetki Kullanıldı yapılır.  Y ⇨K \n •  Hesap Rızası Güncelleme akışı ile hesap bilgi rızası güncelleniyor ise yeni hesap bilgisi rızası K durumuna güncellendiğinde önceki rıza no durumu I – 15 (Hesap Rıza Güncelleme ile İptal) ile iptale çekilir. \n b. Yenileme belirteci karşılığı erişim belirteci alınması sırasında; yenileme belirteci kontrolü ve sonrasında rıza kontrolü yapılmalıdır. \n      i. Öncelikle Yenileme Belirteci Geçerlik Süresi kontrolü yapılmalıdır. Geçerli bir Yenileme Belirteci olmadığı görülür ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n     ii. Rıza durumu Yetki İptal - I  ya da Yetki Sonlandırıldı - S ise  TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     iii. Rıza durumu Yetki Bekleniyor - B ya da Yetkilendirildi - Y  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iv. Rıza durumu Yetki Kullanıldı - K olduğunda, yenileme belirteci karşılığı erişim belirteci tahsis edilir. \n \n \n Sorgulama: HBHS, rıza alma akışına başlamadan önce, daha önce oluşturulmuş bir hesap bilgisi-rizasi kaynağının durumunu, isteğe bağlı olarak alabilir. Rıza numarası ile sorgulama yapılır. \n \n \n Hesap Bilgisi Rızasının İptali: HBHS üzerinden ya da HHS üzerinden yapılan rıza iptallerinde Rıza durumu  Yetki İptal - I olarak güncellenir. Rıza numarası ile iptal sağlanır. \n a. HHS üzerinden rıza iptali yapmış olabilir.  Rıza durumu sorgulanır. \n Rıza numarası Yetki Bekleniyor - B ve Yetkilendirildi - Y ve Yetki Kullanıldı - K durumlarında ise Yetki İptal durumuna getirilir. Rıza gnclzmn timestamp ile güncellenir.\nHHS, Rıza iptalinde aynı zamanda erişim belirtecini de invalid hale getirmelidir. \n B ⇨ I / 02 \n Y ⇨ I / 02 \n K ⇨ I / 02 \n b.\tYÖS üzerinden yapılacak iptal işleminde yine Y ve B ve K rıza durumlarında ise iptal edilebilir. \n B ⇨ I / 03 \n Y ⇨ I / 03 \n K ⇨ I / 03 \n Rıza durumu Yetki Sonlandırıldı - S  ise iptal gerçekleşmez. “Rıza durumunuz iptal etmeye uygun değildir.” hatası ÖHK'ya yansıtılır.  TR.OHVPS.Resource.ConsentRevoked \n \n \n ÖHK’nın verdiği rıza süresi dolmuş olabilir.\nErişimin Geçerli Olduğu Son Tarih geldiğinde Rıza durumu Yetki Kullanıldı’dan Yetki S
16onlandırıldı durumuna çekilmelidir.   K ⇨ S \n \n \n Hesaplar, Bakiye ve İşlemler servislerinde erişim belirteci kontrolü ve sonrasında rıza kontrolü yapılmalıdır.\nGeçerli bir erişim belirteci yok ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n YÖS'ün; Rıza İptal - I ya da Yetki Sonlandırıldı - S rıza durumlarında Hesaplar, Bakiye ve İşlemler servislerini çağırmaması beklenir. HHS'nin bu rıza durumları ile yapılmış çağrılar olduğunda  TR.OHVPS.Resource.ConsentRevoked  hatasını dönmesi gereklidir. \n Rıza durumu Yetki Kullanıldı - K dışında ise  TR.OHVPS.Resource.ConsentMismatch  hatası verilmelidir. \n Rıza durumu Yetki Kullanıldı - K ise servis akışlarına devam edilir. \n Rıza sorgulama API'sinde ilgili rıza kaydı bulunamaz veya sorgulayan kurumun yetkisi yoksa (örn : YÖS’ün farklı bir YÖS’e ait rıza noyu sorgulaması) \n TR.OHVPS.Resource.NotFound hatası  verilmelidir. \n \n \n HHS/YÖS tarafında rıza bilgileri belirli aralıklarla sistem kullanıcısı tarafından taranır:\n5 dakikadan uzun süredir “Yetki Bekleniyor” durumunda kalan kayıtların durumları güncellenir.\nYetki Bekleniyor  ⇨ Rıza İptal  / Süre Aşımı : Yetki Bekleniyor  B ⇨ I / 04 \n 5 dakikadan uzun süredir “Yetkilendirildi” durumunda kalan kayıtlar güncellenir.\nYetkilendirildi     ⇨ Rıza İptal / Süre Aşımı: Yetkilendirildi  B ⇨ I / 05 \nYukarıda bahsedilen, YÖS Süre Aşımı nedeniyle rıza iptal durum güncellemelerini yapmadan önce HHS’yi sorgulayarak rıza durumunu öğrenmeli ve süre aşımı dışında bir kodu varsa aynı kodla kendi sistemini güncellemelidir. \nErişimin Geçerli Olduğu Son Tarih geldiğinde rıza durumu Yetki Kullanıldı’dan Yetki Sonlandırıldı’ya güncellenir.  K ⇨ S \n 4.2.\tÖdeme Bilgisi Hizmeti Rıza Durum Değişiklikleri \n Kural : Bir ÖHK'nın bir YÖS için bir HHS'de istediği kadar rızası olabilir. \n Kurum ve kişisel rıza aynı anda mevcut olabilmelidir. Rıza nesneleri, HHS tarafından uygun şekilde yönetilmelidir. \n \n \n Ödeme Emri Rızası isteği HHS’ye iletilir. İçeride rıza olup olmamasına bakılmaksızın  Yetki Bekleniyor - B  rıza durumu ile yeni rıza no oluşturur. \n \n \n GKD başarılı bir şekilde tamamlandığında rıza durumu Yetki Bekleniyor’dan Yetkilendirildi’ye güncellenir.   B ⇨ Y \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdar olmayabilir. \n ÖHK GKD yapmadan ayrılmış olabilir. (ÖR: Browserı kapatmış olabilir)\nRıza durumu Yetki Bekleniyor'dur. 5 dakika içerisinde sistem tarafından Yetki Bekleniyor - B durumundaki kayıtlar Rıza İptal : Yetki Bekleniyor Süre Aşımı olarak güncellenir. Bkz. 8. Madde. \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdardır. HHS yonlendirme adresinin query parametrelerine rizaIptDtyKod değerini ekleyerek bu durumu YÖS’e bildirmek zorundadır. \n \n \n Rıza durumunun  “Yetkilendirildi\" , “Yetki Kullanıldı” olduğu durum.  Yetki Bekleniyor ⇨ Yetki İptal   B ⇨  I / 07 \n \n \n Rızano ile kimlik bilgileri uyuşmazlığı.  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 08 \n \n \n ÖHK'nın HHS'de ilgili ürününün olmadığı durum (hesap/kart) Yetki Bekleniyor ⇨ Yetki İptal   B ⇨ I / 09 \n \n \n Açık bankacılık kanalınız işleme kapalıdır.Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 10 \n \n \n Kullanıcının HHS'deki hesaplarında yeterli yetkisinin olmama durumu  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 11 \n \n \n HHS’nin ÖHK için yaptığı kontrollerin başarısız olduğu durum Yetki Bekleniyor ⇨ Yetki İptal   B ⇨ I / 12 \n \n \n ÖHK isteği ile GKD’den vazgeçildiği durum Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 13 \n \n \n Fraud Şüphesi Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 14 \n \n \n Diğer Yetki Bekleniyor ⇨  Yetki İptal   B ⇨  I / 99 \n \n \n \n \n \n \n GKD muafiyeti olduğunda YÖS HHS’den arka planda onay alır. Bu onay sırasında rıza durumu  Yetkilendirildi  yapılır.  B ⇨ Y \n \n \n Erişim Belirteci API \na. Erişim Belirteci'nin yetkilendirme kodu ile çağrımı yapıldığında;
16 \n      i. Rıza durumu Yetki İptal - I  ya da Yetki Sonlandırıldı - S ise   TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     ii. Rıza durumu Yetki Bekleniyor - B , Yetki Kullanıldı - K  ya da Yetki ödeme emrine dönüştü - E  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iii. Rıza durumu Yetkilendirildi - Y olduğunda erişim belirteci tahsis edilir.\nErişim belirteci alındığında rıza durumu K: Yetki Kullanıldı yapılır.  Y ⇨K \n b. Yenileme belirteci karşılığı erişim belirteci alınması sırasında; yenileme belirteci kontrolü ve sonrasında rıza kontrolü yapılmalıdır. \n      i. Öncelikle Yenileme Belirteci Geçerlik Süresi kontrolü yapılmalıdır. Geçerli bir Yenileme Belirteci olmadığı görülür ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n     ii. Rıza durumu Yetki İptal - I  ya da Yetki Sonlandırıldı - S ise  TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     iii. Rıza durumu Yetki Bekleniyor - B ya da Yetkilendirildi - Y  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iv. Rıza durumu Yetki Kullanıldı - K veya Yetki Ödeme Emrine Dönüştü – E olduğunda, yenileme belirteci karşılığı erişim belirteci tahsis edilir. \n \n \n Ödeme Başlatma API önce erişim belirteci ve sonrasında rıza kontolü yapılarak gerçekleştirilmelidir \n \n Öncelikle Erişim Belirteci kontrolü yapılmalıdır. Geçerli bir Erişim Belirteci olmadığı görülür ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n Rıza durumu Yetki İptal - I  ya da Yetki Sonlandırıldı - S ise  TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n Rıza durumu Yetki Bekleniyor - B , Yetkilendirildi - Y, Yetki Ödeme Emrine Dönüştü - E  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n Rıza durumu Yetki Kullanıldı - K olduğunda ödeme emri gerçekleştirilir.  Rıza durumu Yetki Kullanıldı - K'dan Yetki Ödeme Emrine Dönüştü – E yapılmalıdır.   K ⇨E \n \n \n \n Sorgulama: GKD işleminin başarıyla tamamlanıp Ödeme Emri Rızasının yetkilendirilmesi esnasında, gönderen hesap seçiminin HHS ekranında yapıldığı durumlarda, ödeme emri isteğinde gönderen hesap bilgileri alanının zorunlu olması nedeniyle, ödemeEmriRizasi nesnesi sorgulanarak gönderen hesap bilgileri (hesap numarası ve/veya hesap referansı) alınmalıdır.\nRıza sorgulama, Ödeme Emri Sorgulama API'lerinde ilgili rıza kaydı bulunamaz veya sorgulayan kurumun yetkisi yoksa (örn : YÖS’ün farklı bir YÖS’e ait rıza noyu sorgulaması) \n TR.OHVPS.Resource.NotFound  hatası verilmelidir. \n \n \n Ödeme Emri Rızasının İptali bulunmamaktadır. \n \n \n HHS/YÖS tarafında rıza bilgileri belirli aralıklarla sistem kullanıcısı tarafından taranır:\n5 dakikadan uzun süredir Yetki Bekleniyor'da kalan kayıtların durumları güncellenir.\nYetki Bekleniyor ⇨ Rıza İptal / Süre Aşımı : Yetki Bekleniyor  B ⇨ I / 04 \n 5 dakikadan uzun süredir Yetkilendirildi'de kalan kayıtlar durumları güncellenir.\nYetkilendirildi     ⇨ Rıza İptal / Süre Aşımı : Yetkilendirildi  B ⇨ I / 05 \n 5 dakikadan uzun süredir Yetki kullanıldı'da kalan kayıtlar durumları güncellenir.\nYetki kullanıldı ⇨ Rıza İptal / Süre Aşımı : Yetki Ödemeye Dönüşmedi  B ⇨ I / 06 \n Yenileme belirteci Son Tarih geldiğinde rıza durumu Yetki ödeme emrine dönüştü’den Yetki Sonlandırıldı'ya güncellenir. \n E ⇨ S \n \n \n GKD muafiyeti sadece ödeme başlatma servislerinde bulunmaktadır. \n \n \n"},{frontmatter:{},regularPath:"/v2.0.0/contents/tanim-ve-kisitlamalar.html",relativePath:"v2.0.0/contents/tanim-ve-kisitlamalar.md",key:"v-bfbd2b46",path:"/v2.0.0/contents/tanim-ve-kisitlamalar.html",content:"  1.\tTanım ve Kısaltmalar   \n Tablo 1: Tanım ve Kısaltmalar \n \n \n \n Kısaltma \n Tanım \n Açıklama \n İngilizce Açıklama \n İngilizce Kısaltma \n \n \n \n \n ÇS \n Çerçeve Sözleşme \n Ödeme hizmeti sağlayıcısı ile müşteri arasında tekil veya süreklilik arz eden ödeme işlemlerinin yürütülmesine ve mümkün olan durumlarda ödeme hesabının açılmasına ilişkin usul ve esasları belirleyen sözleşme \n \n \n \n \n EPK \n Elektronik Para Kuruluşu \n Kanun kapsamında elektronik para ihraç etme yetkisi verilen tüzel kişi \n Electronic Money Institution \n EMI \n \n \n FAST \n Fonların Anlık ve Sürekli Transferi \n TCMB tarafından işletilen Fonların Anlık ve Sürekli Transferi Sistemi \n \n \n \n \n FAST TR-Karekod \n FAST-TR Karekod Teknik İlke ve Kurallar Rehberi \n TR Karekod’un FAST Sistemi aracılığıyla gerçekleşecek işlemlerde kullanılmasına ilişkin detaylı teknik ilke ve kurallarını içeren doküman \n \n \n \n \n GEÇİT \n BKM API Geçidi \n Bankalararası Kart Merkezi (BKM) tarafından geliştirilen ve taraflara standart Açık Bankacılık işlemleri sunulmasını sağlayan API Geçidi uygulaması \n \n \n \n \n GKD \n Güçlü Kimlik Doğrulama \n Kimlik doğrulamada kullanılan ve bir bileşenin ele geçirilmesinin diğer bileşenin güvenliğini tehlikeye atmayacağı en az iki bileşenden oluşan, bu iki bileşenin de müşterinin bildiği, sahip olduğu veya biyometrik bir karakteristiği olan bileşen sınıflarından farklı ikisine ait olacak şekilde seçildiği yöntem \n Strong Customer Authentication \n SCA \n \n \n İB \n İşlem Bilgisi \n Gerçekleştirilen işleme ilişkin işlem zamanını, işlemin niteliğini ve ödeme işlemi için ödeme emrinin masraf, komisyon ve ücretler de dahil hesabın borçlandırılacağı toplam tutarını ve ödemenin göndereni ile alıcısını veya toplu ödeme emrinin masraf, komisyon ve ücretler de dahil hesabın borçlandırılacağı toplam tutarını ve göndereni ile alıcılarını içeren bilgi \n \n \n \n \n İDK \n İşlem Doğrulama Kodu \n Kimlik doğrulama yöntemlerinden biriyle kendisini sisteme tanıtan bir müşterinin gerçekleştirmek istediği 
16işleme özgü olmak ve belirli bir geçerlilik süresi içinde işlem onayında kullanılmak üzere oluşturulan, finansal sonuç doğrunan işlemlerde kişiye onay anında ilgili işlem bilgisi (İB) ile birlikte gösterilen, alıcı veya tutarın değişmesiyle geçersiz hale gelen bilgi \n Authentication Code \n AC \n \n \n KOLAS \n Kolay Adresleme Servisi \n Fon transferlerinde hesap numarası ile ad soyad yerine kullanılan ve belirli bir hesap ile eşleştirilmiş telefon numarası, e-posta adresi, T.C. Kimlik Numarası (TCKN), Vergi Kimlik Numarası (VKN), Yabancı Kimlik Numarası veya Pasaport Numarası gibi Kolay Adres bilgilerinin kaydedilmesini, güncellenmesini ve sorgulamasını sağlayan katman servis \n \n \n \n \n HBHS \n Hesap Bilgisi Hizmeti Sağlayıcısı \n Kanunun 12 inci maddesinin birinci fıkrasının (g) bendinde tanımlanan ödeme hizmetini (hesap bilgisi hizmetini) sunan tüzel kişi \n Account Information Service Provider \n AISP \n \n \n HHS \n Hesap Hizmeti Sağlayıcısı \n Nezdinde ödeme hesabı bulunan ödeme hizmeti sağlayıcısı \n Account Servicing Payment Service Provider \n ASPSP \n \n \n ÖBHS \n Ödeme Emri Başlatma Hizmeti Sağlayıcısı \n Kanunun 12 inci maddesinin birinci fıkrasının (f) bendinde tanımlanan ödeme hizmetini (ödeme emri başlatma hizmetini) sunan tüzel kişi \n Payment Initiation Service Provider \n PISP \n \n \n ÖDK \n Ödeme Kuruluşu \n Ödeme hizmeti sağlamak ve gerçekleştirmek için Kanun kapsamında yetkilendirilmiş tüzel kişi \n Payment Institution \n PI \n \n \n ÖH \n Ödeme Hesabı \n Ödeme hizmeti kullanıcısı adına açılan ve ödeme işleminin yürütülmesinde kullanılan hesap \n Payment Account \n PA \n \n \n ÖHK \n Ödeme Hizmeti Kullanıcısı (Müşteri) \n Gönderen, alıcı veya her ikisi sıfatıyla belirli bir ödeme hizmetinden faydalanan gerçek veya tüzel kişi \n Payment Service User \n PSU \n \n \n ÖHS \n Ödeme Hizmeti Sağlayıcısı \n 5411 sayılı Kanun kapsamındaki bankalar, EPK, ÖDK ve Posta ve Telgraf Teşkilatı Anonim Şirketi(PTT) \n Payment Service Provider \n PSP \n \n \n ÖHVPS \n Ödeme Hizmetleri Veri Paylaşım Servisleri \n Kanunun 12’nci maddesinin birinci fıkrasının (f) veya (g) bentlerinde yer alan ödeme hizmetlerinde kullanılan veri paylaşım servisleri \n \n \n \n \n PÖS \n Perakende Ödeme Sistemi \n TCMB tarafından işletilen, işlemlerin Türk Lirası üzerinden gerçekleştiği Müşteriler Arası Türk Lirası Aktarım Sistemi \n \n \n \n \n TR-Karekod \n TR-Karekod İlke ve Kuralları \n Ulusal karekod (TR Karekod) ilke ve kurallarının belirlendiği belge \n \n \n \n \n YÖS \n Yetkili Ödeme Hizmeti Sağlayıcısı \n Ödeme emri başlatma hizmeti ve/veya hesap bilgisi hizmeti sunan tüzel kişi \n Third Party Payment Service Providers \n TPP \n \n \n \n"},{frontmatter:{},regularPath:"/v2.0.0/deneyalani/genel-bilgiler.html",relativePath:"v2.0.0/deneyalani/genel-bilgiler.md",key:"v-48365a59",path:"/v2.0.0/deneyalani/genel-bilgiler.html",content:" GENEL BiLGİLER: \n ÖHVPS API İlke ve Kuralları dokümanına istinaden geliştirmelerini yapan/yapacak olan katılımcılar geliştirdikleri sürüme ait API’lerin nasıl çalıştıklarını görmek istediklerinde “Deney Alanı” üzerinden gözlem yapabilirler. Bu kapsamda, Deney Alanı katılımcılara tarayıcı üzerinden statik verilerle işlem başlatarak, dönen yanıtı inceleme imkanı sunar. \n Deney Alanı ile sunulan imkanlar şu şekildedir: \n \n Servisler durum bilgisi içermeyecek şekilde (stateless) olarak sunulmaktadır. \n Güçlü Kimlik Doğrulama akışlarında kurum özelinde oluşturulan yetkilendirme kimlik bilgilerine ihtiyaç duyulmamaktadır. \n Yanıt veri kümesi statiktir. Servislere yapılan istekler, her zaman aynı yanıtı dönmektedir. \n Yeni oluşturma, güncelleme, silme işlemleri kaynak veri üzerinde değişiklik yapmamaktadır. \n Deney alanı genelin kullanımına açıktır. Üyelik kaydı olmaksızın Deney Alanı üzerinden API incelemeleri gerçekleştirilebilmektedir. \n API dokümanında yapılacak minor değişiklikler deney alanına yansıtılmayacaktır. \n \n Not: Deney Alanı’nın kapsamı genişletilmiş versiyonu – “BKM ÖHVPS Simülatör” uygulaması hem HHS hem de YÖS katılımcılarının; test uygulamalarını uçtan uca test edebilebileceği bir ortamdır. Simülatör uygulaması üzerinden dinamik veri girişi yaparak, geliştirilen servisler ile zorunlu senaryoların tümünün simülasyonu gerçekleştirilebilir. Simülatör ortamındaki API’ler, üretim ortamının bir kopyası olacak şekilde oluşturulmuştur ve kurumların üretim ortamına hazır hale gelmelerine aracılık eder. Bu uygulama, pürüzsüz bir üretim ortamı geçişi imkanı sağlar ve ÖHVPS BKM Teknik Sertifikasyonu geçmek için koşulması gereken sertifikasyon senaryoları BKM ÖHVPS Simülatör’ü üzerinden sunulmaktadır. BKM Simülatör kullanımı için ayrı bir süreç işletilmekte olup daha fazla detaylı bilgi almak için [email protected] adresine taleplerinizi iletmeniz gerekmektedir. \n Ödeme Emri Başlatma API Deney Alanı \n"},{frontmatter:{},regularPath:"/v2.0.0/deneyalani/duzenli-odeme-emri-api.html",relativePath:"v2.0.0/deneyalani/duzenli-odeme-emri-api.md",key:"v-e73a02ea",path:"/v2.0.0/deneyalani/duzenli-odeme-emri-api.html",content:" \n   \
16n "},{title:"5.\tGüçlü Kimlik Doğrulama",frontmatter:{},regularPath:"/v2.0.0/contents/gkd.html",relativePath:"v2.0.0/contents/gkd.md",key:"v-24f9d8c6",path:"/v2.0.0/contents/gkd.html",headers:[{level:2,title:"5.1.\tYönlendirmeli Güçlü Kimlik Doğrulama",slug:"_5-1-yonlendirmeli-guclu-kimlik-dogrulama"},{level:2,title:"5.2.\tAyrık Güçlü Kimlik Doğrulama",slug:"_5-2-ayrık-guclu-kimlik-dogrulama"},{level:3,title:"5.2.1\tStatik Model",slug:"_5-2-1statik-model"},{level:2,title:"5.3.\tYönlendirme/Bildirim Adresleri ve Durum Kodu Parametresi",slug:"_5-3-yonlendirme-bildirim-adresleri-ve-durum-kodu-parametresi"},{level:2,title:"5.4  Güçlü Kimlik Doğrulama Kontrolleri",slug:"_5-4-guclu-kimlik-dogrulama-kontrolleri"}],content:" 5.\tGüçlü Kimlik Doğrulama \n Müşteri için güçlü kimlik doğrulama, ÖHK’nın (müşterinin) kimliğinin doğrulamada kullanılan ve bir bileşenin ele geçirilmesinin diğer bileşenin güvenliğini tehlikeye atmayacağı en az iki bileşenden oluşan, bu iki bileşenin de müşterinin “bildiği”, “sahip olduğu” veya “biyometrik bir karakteristiği olan” bileşen sınıflarından farklı ikisine ait olacak şekilde seçildiği yöntemi tanımlar. \n Ödeme ve Elektronik Para Kuruluşlarının Bilgi Sistemleri ile Ödeme Hizmeti Sağlayıcılarının Ödeme Hizmetleri Alanındaki Veri Paylaşım Servislerine İlişkin Tebliğ uyarınca hesap bilgisi hizmetinde müşterinin onayının alınması esnasında ve ödeme emri başlatma hizmetinde her bir ödeme emri başlatma işleminde  HHS tarafından müşteriye güçlü kimlik doğrulama (GKD) uygulanması esastır.  Buna göre: \n \n \n Hesap bilgisi hizmetinde ÖHK’nın onayının alınması esnasında  Tebliğin 26 ncı maddesinin 1 inci fıkrası uyarınca  HHS tarafından ÖHK’ya GKD uygulanır. \n \n \n Ödeme emri başlatma hizmetinde,  Tebliğin 26 ncı maddesinin 2 nci fıkrası uyarınca  HHS tarafından ÖHK’ya güçlü kimlik doğrulama uygulanır ve işlem doğrulama kodu ile ÖHK’nın onayı alınır. \n \n \n Ödeme emri başlatma hizmetinde,  Tebliğin 26 ncı maddesinin 3 nci fıkrası uyarınca  HHS tarafından ÖHK’ya güçlü kimlik doğrulama uygulanmasına ilişkin istisna veya ilave güvenlik önlemleri işbu API İlke ve Kuralları belgesinde tanımlanır. \n \n \n HHS, güçlü kimlik doğrulama sürecinde ÖHK’nin sahip olduğu bileşen sınıfı olarak SMS OTP ya da SMS ile işlem doğrulama kodu kullanabilir. \n \n \n HHS, aşağıdaki hallerde veya  Tebliğin 10 uncu maddesinin ikinci fıkrasında  belirtilen risk değerlendirmesi sonucuna göre tek bileşen ile kimlik doğrulama yapabilir. \n \n Ödemenin göndereni ve alıcısının aynı olması, \n Daha önce tanımlanmış güvenli alıcılar listesine ödeme yapılması, \n ÖHK’nin talimatına istinaden gerçekleştirilen düzenli bir ödeme olması. \n \n \n \n Tek bileşen ile kimlik doğrulama yapılan bu işlemlerle ilgili olarak gerçekleştirilen işlemin müşteri tarafından yapıldığını ispat etme yükümlülüğü HHS’ye ait olur. \n \n \n İşlem Doğrulamada  Tebliğin 3 üncü maddesinin birinci fıkrası ğğ bendindeki  işlem bilgisi tanımına uygun olarak aşağıdaki bilgiler ile  Tebliğin 3 üncü maddesinin birinci fıkrası hh bendinde  tanımlanan işleme özel üretilmiş işlem doğrulama kodu birlikte kullanılır. \n \n Alıcı Unvan (Kolas akışında maskeli olarak)  (ödeme emri başlatma hizmeti) \n Tutar (ödeme emri başlatma hizmeti) \n Referans bilgisi (8 karakterden küçük ise alanın tüm değeri, büyük ise ilk 4 ve son 4 hanesi) \n \n İşleme ait yukarıdaki bilgilerden en az biri değiştiği zaman  Tebliğin 3 üncü maddesinin birinci fıkrası hh bendinde  belirtildiği gibi yeni bir işlem doğrulama kodu üretilecek şekilde akış kurgulanmalıdır. \n \n \n İşlem doğrulama kodunun gönderilmesinden HHS sorumludur. HHS,  Tebliğin 10 uncu maddesinin ikinci fıkrasında  belirtilen risk değerlendirmesi sonucuna göre işlem doğrulama kodu kullanmaksızın ÖHK’nın onayını alabilir. İşlem doğrulama kodu kullanılmayan işlemlerle ilgili olarak gerçekleştirilen işlemin ÖHK tarafından yapıldığını ispat etme yükümlülüğü HHS’ye aittir. \n \n \n ÖHVPS API İlke ve Kuralları kapsamında iki adet Güçlü Kimlik Doğrulama (GKD) yöntemi kullanılacaktır: \n \n Yönlendirmeli (Redirect) GKD Yöntemi \n Ayrık (Decoupled) GKD Yöntemi \n \n \n \n Hem web hem mobil uygulama hizmeti bulunan katılımcılar için her iki uygulama özelinde de yönlendirme yapılması zorunludur. Web ya da mobil uygulamalardan sadece birinin olması durumunda ilgili uygulama özelinde yönlendirme yapılması zorunludur. \n 5.1.\tYönlendirmeli Güçlü Kimlik Doğrulama \n Yönlendirmeli GKD Yönteminde, müşteri kimlik doğrulama için YÖS tarafından HHS arayüzüne yönlendirilir. \n Müşteri HHS’ye (uygulama veya web arayüzü vasıtasıyla) yönlendirildikten s
16onra müşterinin güçlü kimlik doğrulaması adım adım ve doğrudan HHS ile müşteri arasında yürütülür. GKD’nin tamamlanmasından sonra müşteri tekrar YÖS uygulamasına yönlendirilir. \n Yönlendirmeli GKD Yöntemi için üst düzey örnek iş akışı aşağıdaki adımlardan oluşur: \n \n YÖS, GKD için HHS tarafından tanımlanan arayüze (tarayıcı ya da uygulama) yönlendirme yapar. \n Müşteri, YÖS arayüzünden ayrılır, yönlendirildiği HHS arayüzü üzerinde kimlik doğrulama işlemlerini gerçekleştirir. \n GKD tamamlandıktan sonra müşteri, YÖS arayüzüne tekrar yönlendirilir ve işlem sonucu görüntülenir. \n \n Yönlendirmeli GKD için temel gereklilikler şunlardır: \n \n Ödeme hizmeti (hesap bilgisi veya ödeme emri başlatma hizmeti) tarayıcı ya da uygulama tabanlı bir şekilde sunulabilir. Web ya da mobil uygulamalardan sadece birinin olması durumunda ilgili uygulama özelinde yönlendirme yapılması zorunludur. \n \n Tarayıcı Tabanlı Yönlendirme \n Yönlendirmeli GKD Yönteminde; rıza isteğine başarılı yanıt alındıktan sonra, ÖHK, kimlik doğrulama için YÖS tarafından HHS arayüzüne yönlendirilir.\nYÖS, yönlendirme akışını kendi sunucusundan karşılayacağı bir istek ile başlatmalıdır. YÖS web arayüzündeki bu yapı, 302 yanıt kodu ve yanıt başlığındaki Location değeri ile ÖHK tarayıcısını HHS adresine yönlendirmelidir. Bu sayede GKD, HHS tarafında başlayabilir. \n YÖS tarafındaki yönlendirme servisi için örnek response; \n HTTP/1.1 302 Found\nLocation: {{hhsYonAdr}}\n \n ÖHK, HHS’ye (app veya web arayüzü vasıtasıyla) yönlendirildikten sonra ÖHK'nin güçlü kimlik doğrulaması HHS ile ÖHK arasında yürütülür. GKD’nin tamamlanmasından sonra ÖHK tekrar YÖS uygulamasına yönlendirilir. \n HHS, yönlendirme akışını kendi sunucusundan karşılayacağı bir istek ile başlatmalıdır. HHS web/app arayüzündeki bu yapı, ÖHK'nin oturumunu güvenli bir şekilde kapatmalıdır. Ardından 302 yanıt kodu ve yanıt başlığındaki Location değeri ile ÖHK tarayıcısını YÖS adresine yönlendirmelidir. \n HTTP/1.1 302 Found\nLocation: {{yosYonAdr}}&rizaDrm=Y&yetKod=xx&rizaNo=yy&rizaTip=O\n \n HHS’nin web arayüzüne, \n \n HHS’nin mobil uygulamasının olmadığı, \n ÖHK’nın ödeme hizmetini (hesap bilgisi veya ödeme emri başlatma hizmeti) sunduğu mobil cihazda HHS uygulamasının yüklü olmadığı, \ndurumlarda yönlendirme yapılır. \n \n YÖS’ün mobil uygulaması varsa mobil cihazda uygulamadan tarayıcıya, YÖS’ün mobil uygulaması yoksa ödeme hizmetinin sunduğu cihazda (Kişisel Bilgisayar veya Mobil Cihaz) tarayıcı üzerinden yönlendirme yapılır. \n Uygulama Tabanlı Yönlendirme \n ÖHK’nın ödeme hizmetini (hesap bilgisi veya ödeme emri başlatma hizmeti) YÖS’ün mobil uygulaması ile kullanıyorsa, aynı mobil cihazda HHS’nin mobil uygulamasının yüklenmiş olması durumunda, ÖHK doğrulamasının HHS mobil uygulaması tarafından yapılması için uygulama tabanlı yönlendirme yapılır. Böylece ÖHK, ödeme hizmetine erişim için HHS’nin mobil kanalına erişim sırasında kullandığı doğrulama yöntemini ile doğrulanabilir. \n HHS'nin mobil uygulaması olması durumunda hhsYonAdr olarak universal link kullanması gerekmektedir. \n Tablo 5: Yönlendirmeli Güçlü Kimlik Doğrulama Kanalları \n \n \n \n Doğrulama Yöntemi \n YÖS Olası Ortam \n HHS Olası Ortam \n \n \n \n \n Tarayıcı Tabanlı Yönlendirme \n Kişisel Bilgisayar (masaüstü, dizüstü)/Mobil Cihaz \n Kişisel Bilgisayar (masaüstü, dizüstü) / Mobil Cihaz \n \n \n Uygulama Tabanlı Yönlendirme \n Mobil Cihaz \n Mobil Cihaz \n 5.2.\tAyrık Güçlü Kimlik Doğrulama \n Ayrık Güçlü Kimlik Doğrulama, bir kullanıcının kimliğinin, bir işlem başlatıldıktan sonra ayrı bir şekilde doğrulandığı yönteme verilen addır. Bu GKD modelinde, kimlik doğrulama işlem sürecinden \"ayrıştırılmıştır\". Kullanıcılar, başka bir arayüze yönlendirilmek yerine ( tarayıcı veya uygulama tabanlı yönlendirme gibi), ayrı bir kanal üzerinden (telefonlarında bir uygulama bildirimi gibi) işlemi doğrulamaları için bildirim alır.\nKullanıcı, işlemi tamamen ayrı bir cihaz veya uygulama kullanarak doğrulayabilir. \n İlk fazda Ayrık GKD'de QR’lı modeller kullanılmayacaktır. \n Ayrık GKD uygulamalarının farklı örnekleri bulunmaktadır. Ancak yaygın olan yaklaşım, bir web arayüzü ve bir mobil uygulamanın komb
16inasyonunu kullanmayı içerir. \n Mobil uygulaması bulunan HHS'ler için Ayrık GKD desteklenmesi zorunludur.  HHS’nin web olduğu durumda Ayrık GKD akışı uygulanmayacaktır. Mobil uygulaması bulunup müşteri özelinde mobil aktiflik kontrol süreci HHS inisiyatifindedir. Ayrık GKD sürecinde HHS tarafında sadece mobil uygulama üzerinden GKD yapılmalıdır. ÖHK’nın web uygulamasına yönlendirme yapmaması gerekmektedir. \n YÖS rolünde Ayrık GKD akışının ÖHK’ya sorularak başlatılmasına gerek bulunmamakla beraber bu bilginin ÖHK’ya sorulması YÖS inisiyatifindedir. YÖS olarak, Ayrık GKD iş akışları kapsamında ÖHK’ya ayrık GKD öncesi HHS mobil uygulamasının varlığı sorularak (bildirim ayarlarının açık olması gerektiği bilgisi de verilebilir) ilerlenebilir. Aynı zamanda Ayrık GKD ile rıza sürecinin başlatılması zorunlu değildir. Rıza süreci başlatılırken yetkilendirme yöntemi YÖS inisiyatifindedir. \n Örnek bir akış şu şekildedir: \n \n İşlem Başlatma (YÖS Web/Mobil Arayüzü):  ÖHK bir işlemi YÖS’ün web/mobil arayüzünde başlatır. YÖS uygulaması, ÖHK'nın tekil bir kullanıcı kimliğini rızaya ekleyerek bir rıza başlatma işlemini HHS’ye iletir. HHS, tekil kullanıcı kimliğini kullanarak ÖHK'nın mobil uygulamasına bir bildirim gönderir. \n Kimlik Doğrulama İsteği (HHS Mobil Uygulama):  ÖHK Mobil uygulama bildirimi alır ve mobil uygulama ÖHK'ya  kimlik doğrulama isteği sunar. HHS’nin BDDK tarafından belirlenmiş GKD yöntemlerine uygun davranması beklenmektedir. \n Kimlik Doğrulama Onayı (HHS Mobil Uygulama):  Mobil uygulama, ÖHK’nın kimlik doğrulama girişimini doğrular. Başarılı olursa rıza onayı sonrası mobil uygulama, 'Ayrık Yetkilendirme Başarılı' olay bildirimini YÖS’e gönderir. \n İşlem Onayı (YÖS Web/Mobil Arayüzü):  YÖS,  HHS'den gelen 'Ayrık Yetkilendirme Başarılı' olay bildirimine konu olan rızayı kullanarak yetkilendirme koduna erişir. Bundan sonraki süreç erişim belirteci alınması servisi ile devam eder. \n \n Ayrık Güçlü Kimlik Doğrulamanın Olay Bildirim Servisleri ile olan Bağımlılıkları \n Ayrık GKD sürecinde; HHS'nin yetkilendirme kodunu YÖS'e iletmesi için gerekli önkoşul olan ÖHK doğrulaması adımının tamamlanmasını olay bildirimi ile YÖS'e yapması gerekmektedir.\nBu nedenle YÖS'lerin eğer Ayrık GKD sürecini destekleyecek ise;  /olay-dinleme endpointini açarak olay bildirimi alması zorunludur. \n Özetle: \n Yönlendirmeli GKD \n \n HHS mobil uygulaması olması durumunda yönlendirme adresi olarak universalLink kullanmalı. \n Bu link tanımı  uygulama var ise uygulamayı aç yoksa webden devam et şeklinde olmalı. \n YÖS’ün mobilden mi webden mi geldiği HHS açısından önemli değildir. HHS olarak YÖS hangi adresi yonAdr değerinde göndermiş ise yetkilendirme süreci bittiğinde o adrese yönlendirme yapılmalıdır. \n \n Ayrık GKD \n \n Mobil uygulaması bulunan HHS'ler için Ayrık GKD desteklenmesi zorunludur. HHS’nin web olduğu durumda Ayrık GKD akışı uygulanmayacaktır. Mobil uygulaması bulunup müşteri özelinde mobil aktiflik kontrol süreci HHS inisiyatifindedir. Ayrık GKD sürecinde HHS tarafında sadece mobil uygulama üzerinden GKD yapılmalıdır. ÖHK’nın web uygulamasına yönlendirme yapmaması gerekmektedir. \n ÖHK’nin Mobil uygulamasının olmadığını tespit edebildiğiniz her durum için rıza oluşturma aşamasında “TR.OHVPS.Business.CustomerMobileApplicationNotFound” hatası döülür. \n HHS, ÖHK’nın mobil uygulamasının bulunmadığı bilgisine ulaşamazsa kendisinin belirleyeceği bildirim yöntemlerinden biri ile ÖHK’ye bilgilendirme yapar. Bildirim yöntemi SMS ise ÖHK’ya mobil uygulamasını açtıracak şekilde adres iletir, Web uygulamayı açtıracak bir link iletilmemelidir. ÖHK bu bildirimi dikkate almazsa/alamazsa veya ÖHK’da mobil uygulama yok ise bu durumda rıza süre aşımından iptal olur. \n ÖHK mevcut bankacılık işlemlerinde bildirimi nasıl gönderiyorsanız (Örneğin: Anlık bildirim gönderildi, alınmadı, SMS’e dönüldü gibi.) aynı şekilde bildirim göndererek ÖHK’nin uygulama üzerinden rızayı onaylaması beklenir. Buradaki akış HHS’nin diğer ürünleri için verdiği müşteri deneyimi ile paralel olmalıdır. \n 5.2.1\tStatik Model \n YÖS'ün ÖHK'yı tanıdığı ve ÖHK'ya ait tanımlayıcı bilgileri HHS'ye aktarabildiği durumda kullanılmaktadır. Buradaki ÖHK'ya ait tanımlayıcı bilgiler TCKN, MNO , YKN, PNO, GSM, IBAN olarak belirlenmiştir. \n Akış aşağıdaki gibi kurgulanmıştır: \n   \n \n \n ÖHK, YÖS uygulaması üzerinde işlem başlatır. \n \n \n ÖHK, YÖS uygulaması içerisinde, farklı bir ortam üzerinden HHS doğrulamasını gerçekleştirmek istediğini belirtir. ÖHK'yı tanıma tip ve değerleri YÖS ÖHK'dan talep edebileceği gibi, YÖS sisteminde hali hazırda kayıtlı bilgilerle de akışı devam ettirebilir.  \n \n \n ÖHK, YÖS'ün müşterisi ve YÖS uygulamasına login ise tek seferlik ödeme akışı başlatamaz. \n \n \n YÖS tarafından başlatılan tek seferlik bir Ödeme işleminin Ayrık GKD ile onaylanacağı durumda;\nYÖS’ün ilgili kullanıcıya ait “ÖHK Tanım Değer” verisinin yanında işleme ait ve ilgili ÖHK ile eşleştirilmiş olan  ve sadece YÖS ile ÖHK’nın bilebileceği bir değerin daha ÖHK tarafından sağlanması ve YÖS tarafından kontrol edilerek eşleşen Ödeme emrinin HHS’ye iletilmesi gerekmektedir. Örneğin; bu değer YÖS tarafında yapılan tek seferlik ödeme işlemine ait fatura numarası. \n \n \n YÖS önyüzde ÖHK'dan aldığı ohkTanimTip ve ohkTanimDeger deÄ
16Ÿerlerini kimlik tür ve kimlik değeri alanlarına atamamalıdır. \n \n \n YÖS, ayrık GKD ile işlem başlatabileceği HHS'lerin listesini HHS API'de yer alan \"hizmetTipi\"=\"01\" parametresi ile alabilir. \n \n \n YÖS, ÖHK bilgileri ile rıza oluşturur. Rıza nesnesi içerisinde yer alan GKD nesnesinde ilgili parametreler aşağıdaki şekilde doldurulur: \n \n \n ohkTanimTip ve ohkTanimDeger parametreleri \nBu metodda; ayrikGkd nesnesi içerisindeki \"ohkTanimTip\" parametresi TR.OHVPS.DataCode.ohkTanimTip sıralı veri tiplerinden TCKN, MNO , YKN, PNO, GSM, IBAN değerlerinden birini alabilir. ohkTanimDeger parametresi de seçilen tipe ait ÖHK'ya ait değeri içermelidir.Rıza başlatma akışı içerisinde kimlik bilgisinin olduğu durumlarda; ÖHK'ya ait kimlik verisi(kmlk.kmlkVrs) ile ayrık GKD içerisinde yer alan OHK Tanım Değer alanı (ayrikGkd.ohkTanimDeger) birebir aynı olmalıdır.Kimlik alanı içermeyen tek seferlik ödeme emri akışlarında bu kural geçerli değildir. GSM ve IBAN değerleri sadece tek seferlik ödemelerde kullanılabilir. \n YÖS'ten ohkTanimTip olarak gelen IBAN bilgisi sadece ÖHK'yı tanımak için kullanılabilir. Tanım tipi IBAN ile başlatılan bir işlemde ÖHK, başka bir IBAN ile ödeme başlatabilir. \n Kurumsal müşteriler için kmlkTur ve kmlkVrs alanları ohkTanimTip ve ohkTanimDeger alanlarında gönderilmelidir. \n \n \n yetYntm parametresi \nyetYntm parametresi  Ayrık GKD  akışını ifade eden \"A\" değerini almalıdır.  \n \n \n \n \n Örnek bir istek : \nPOST/ohvps/obh/s2.0/odeme-emri-rizasi \n RizaNesnesi \n {\n...\n  \"gkd\": {\n    \"yetYntm\": \"A\",\n     \"ayrikGkd\" :{\n         \"ohkTanimTip\" : \"TCKN\" \n         \"ohkTanimDeger\": \"11232123212\"\n     }    \n  },\n...\n}\n \n \n \n YÖS, ayrık GKD ile işlem başlatabileceği HHS'lerin listesini HHS API'de yer alan \"hizmetTipi\":\"01\" parametresi ile alabilir.\nYÖS, ayrık GKD desteklemeyen HHS'ye Ayrık GKD yöntemiyle rıza başlatma isteği yapması durumunda HHS tarafından  TR.OHVPS.Business.DecoupledAuthenticationNotSupported  hatası iletilmelidir. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n \n \n HHS tarafında ÖHK'nın mobil uygulaması bulunmaması durumu tespit edilebildiği durumda Ayrık GKD ile başlatılan rıza akışlarında hata mesajı vermelidir. HHS tarafından  TR.OHVPS.Business.CustomerMobileApplicationNotFound  hatası iletilmelidir. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. HHS, ÖHK’nın mobil uygulamasının bulunmadığı bilgisine ulaşamazsa kendisinin belirleyeceği bildirim yöntemlerinden biri ile ÖHK’ye bilgilendirme yapar. Bildirim yöntemi SMS ise ÖHK’ya mobil uygulamasını açtıracak şekilde adres iletir, Web uygulamayı açtıracak bir link iletilmemelidir. \n \n \n HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder.  YÖS iki olay tipine de abone olmak zorundadır. Eğer olay aboneliği yoksa HHS tarafından  TR.OHVPS.Business.EventSubscriptionNotFound  hata kodu iletilmelidir. \n \n \n HHS \"gkd\" nesnesi için alan kontrollerini gerçekleştirir.   \"yetYntm\" = \"A\" gönderilmiş ise \"ayrikGkd\" nesnesinin dolu gönderilmesi zorunludur. Gönderilmemesi durumunda HHS tarafından  TR.OHVPS.Resource.InvalidFormat  hata kodu iletilmelidir. \n \n \n Rıza başlatma akışı içerisinde kimlik bilgisinin olduğu durumlarda; ÖHK'ya ait kimlik verisi(kmlk.kmlkVrs) ile ayrık GKD içerisinde yer alan OHK Tanım Değer alanı (ayrikGkd.ohkTanimDeger) birebir aynı olmalıdır. Aynı olmadığı durumda HHS tarafından  TR.OHVPS.Business.CustomerInfoMismatch  hatası iletilmelidir.\nKimlik alanı içermeyen tek seferlik ödeme emri akışlarında bu kural geçerli değildir. GSM ve IBAN değerleri sadece tek seferlik ödemelerde kullanılabilir. \n \n \n Tek seferlik ödeme işlemlerinde \"ohkTanimTip\" = \"GSM\"/\"IBAN\" olarak gönderilmiş ise, HHS sisteminde bu GSM/IBAN ile eşleşen müşterileri taramalıdır. GSM/IBAN bilgisi ÖHK bazında tekil bir kullanıcıya erişim imkanı sağlamaz ise  TR.OHVPS.Business.InvalidCustomerInfo  hatasını iletmelidir. \n \n \n Kontrollerin başarılı olması durumunda HHS rızayı oluşturur ve ÖHK tekil verisi ile ulaştığı ÖHK'ya bilgilendirme mesajı gönderir.      Bilgilendirme mesajı kısa mesaj ya da anlık bildirim mesajı olabilir. ÖHK’nın birden fazla cihazda aktivasyonu varsa HHS’nin iç süreçlerine göre mevcut durumda nasıl bir bildirim süreci işletiliyorsa aynı şekilde ilerlenebilir.  \n \n \n Kurumsal müşteriler için, hangi kullacıya bildirim gitmesi isteniyor ise, rıza aşamasında o kişi ayrikGkd nesnesinde gönderilir. HHS'nin rıza içerisindeki ohkTur değerine göre,  gelen bildirime verilen cevaba uygun uygulamasını açmalıdır. Kurumsal ÖHK için rıza geldi ise, kurumsal giriş sayfası; bireysel ÖHK için rıza geldi ise bireysel giriş sayfası müşterinin önüne açılmalıdır ve ilgili hesaplara erişime izin vermelidir. \n \n \n ÖHK'ya bir bildirim gelmemesi durumunda, HHS kendi sisteminde GKD sürecine devam edemez. 5 dakika sonunda rıza durumu Yetki Bekleniyor'dan Rıza İptal / Süre Aşımı (İptal kod 04) durumuna çeker. \n \n \n \n \n ÖHK, HHS sisteminden gelen bildirim mesajını alır. HHS sistemine login olduktan sonra işleme onay verilmezse veya GKD kontrolleri başarısız olursa HHS Olay Bildirim servisleri aracılığı ile GKD sürecinin sonlandığını YÖS'e iletir. Olay tipi \"AYRIK_GKD_BASARISIZ\" olacak şekilde bir POST /olay-dinleme servis çağrısı yapılır.YÖS kendisine gelen olay bildirimi ile\nrıza sorgulaması yaparak iptal detay kodunu öğrenebilir. \n \n \n ÖHK, HHS sisteminde login olduktan sonra işleme onay verirse; HHS tarafından rıza ile ilişkili yetkod değeri üretilir.HHS, YÖS'e ÖHK için \"yetkod\" değeri üretildiğinin bilgisini Olay Bildirim servisleri aracılığı ile iletir. Olay tipi \"AYRIK_GKD_BASARILI\" olacak şekilde bir POST /olay-dinleme servis çağrısı yapılır. \n \n \n YÖS kendisine gelen olay bildirimi ile \"yetkod\" değerinin HHS'de üretildiğinin bilgisini alır. \"yetkod\" değerini öğrenebilmek için HHS'yi sorgulaması gerekmektedir.  \nHHS'nin açacağı   GET /yetkilendirme-kodu endpointi   ile bu bilgiye erişebilir. \n \n \n YÖS, \"yetkod\" ile POST /erisim-belirteci endpointinden erişim belirteci alır. Böylelikle ÖHK'nın Ayrık GKD süreci tamamlanmış olur. \n 5.3.\tYönlendirme/Bildirim Adresleri ve Durum Kodu Parametresi \n CSRF Ataklarından korunmak için ve YÖS uygulamasının bir önceki durumunu restore edebilmesi için; YÖS tarafından iletilen yönlendirme ve bildirim adreslerine , Oauth2 standartlarındaki state parametresine eşdeğer,   durum ko
16du (drmKod)  parametresinin eklenmesi gerekmektedir. Durum kodu parametresi YÖS tarafından üretilen, tekil ve kolay tahmin edilemeyen bir değer olmalıdır. Rıza isteği gönderimi aşamasında oluşturulmalıdır. YÖS uygulamasında uygun bir yerde saklanmalıdır (cookie, session, local storage gibi) . \n Durum kodu, rıza isteğindeki yönlendirme adresine parametre olarak eklenir.  GKD süreci sonrasında yetki kodu ile birlikte bu bilgi, HHS tarafından YÖS’e iletilir. YÖS sakladığı değer ile parametre olarak gelen değerin eşitliğini kontrol eder. Aynı ise erişim belirteci almak üzere akışı ilerletir. Farklı ise işlemi keser. \n 5.4  Güçlü Kimlik Doğrulama Kontrolleri \n ÖHK, GKD için HHS uygulamasına yönlendirildiğinde, HHS’nin çeşitli kontroller yaparak işlemin doğruluğunu teyit etmesi gerekmektedir.\nYapılması gereken kontrollere ait temel senaryolar aşağıdaki tabloda belirtilmiştir. Bu senaryolar baz alınarak HHS’ler tarafından zenginleştirilebilir. \n Aşağıdaki tabloda yer alan 07-13 arası Rıza İptal Detay Kodlarının oluştuğu senaryolar, HHS uygulamasında yapılan kullanıcı doğrulama öncesi ve sonrası olarak iki adımda incelenmelidir. \n HHS tarafında, kullanıcı doğrulama öncesinde yapılan kontroller neticesinde verilemeyen rızalar için ‘04’ : Süre Aşımı : Yetki Bekleniyor iptal kodu atanır. HHS'nin YÖS uygulamasına 04 kodunu iletmesi beklenmez. YÖS zaman aşımı neticesinde rıza statüsünü sorgulayarak öğrenir. \nKullanıcı doğrulandıktan sonra rıza verilemiyorsa ilgili hata kodunun YÖS'e iletilmesi beklenmektedir. Kullanıcı doğrulama sonrası YÖS'e iletilen rıza iptal detay kodu ile HHS veri modelinde tutulan rıza ile ilişkili rıza iptal detay kodu, aynı değeri alacak şekilde güncellenmelidir. YÖS, HHS tarafından kendine iletilen rıza iptal detay kodunu kendi veri modelinde güncellemelidir. \n Zorunlu olarak belirtilen hata durumlarının HHS’ler tarafından gerçeklenmesi ve uygun hata kodlarının YÖS’e iletilmesi; ileride oluşabilecek mutabakatlaşma sorunlarını ortadan kaldırabilecek, yapılacak raporlamalar kapsamında sistem ve süreç iyileştirmelerine katkı sağlayacak, son kullanıcı açısından da alınan hataya yönelik bilgilendirici içerik sağlayacaktır. \n Hata açıklamaları; hata koduna uygun ya da uyumlu olmak kaydıyla, HHS ve YÖS tarafından farklı şekillerde sunulabilir. \n GKD Sırasında yapılması gereken kontroller \n \n \n \n Rıza İptal Detay Kodu \n HHS hata açıklaması* \n Yös ekranında listelenecek örnek mesaj metni* \n Örnek Senaryo \n Zorunlu / Opsiyonel \n \n \n \n \n 07 \n Rıza mevcut ve durumu \"Yetkilendirildi\" veya \"Yetki Kullanıldı\" \n Yetki Hatası \n ÖHK,  kullanıcı doğrulama işlemi tamamlandıktan sonra  YÖS ekranında ileri - geri yaparak ya da ÖHK'nın yönlendirme adresini kopyalayarak tarayıcıya yapıştırması ile tekrar HHS'ye yönlendirir. Bu durumda HHS bu rıza iptal detay kodunu iletir. HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Zorunlu \n \n \n 08 \n Rızano ile kimlik bilgileri uyuşmazlığı. \n İşlem gerçekleştirilememiştir. \n YÖS tarafından başlatılan rıza içerisinde yer alan kimlik bilgisi (örn:TCKN) ile HHS'de başarılı kimlik doğrulama yapılan ÖHK'nın bilgilerinin uyuşmadığı durumda  HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Zorunlu \n \n \n 09 \n ÖHK'nın HHS'de ilgili ürününün olmadığı durum (hesap/kart) \n Gösterilebilecek hesap/kart bulunamamıştır. \n HHS, kullanıcı doğrulama yaptıktan sonra, ÖHK'nın uygun statülü hesabının olmadığı durumda  HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Zorunlu \n \n \n 10 \n ÖHK'nın Açık Bankacılık kanalı işleme kapalı \n ÖHK'nın Açık Bankacılık kanalı işleme kapalı \n Açık bankacılığı ayrı bir kanal olarak tanımlamış HHS'lerde,  ÖHK kullanıcı doğrulama yaptıktan sonra yapılan kontrollerde, ÖHK'nın işlemlerini AB kanalına kapatmış olması durumunda   HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Opsiyonel \n \n \n 11 \n ÖHK'nın HHS'deki hesaplarında yeterli yetkisinin olmaması \n Yetki hatası \n 1- Kurumsal firma kullanıcılarının hesaplar üzerinde işlem yetkisinin olmaması durumunda   2- Bireysel ortak hesaplarda hesap kısıtı bulunuyorsa (para çıkışına izin verilmediği durum)  HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Zorunlu \n \n \n 12 \n HHS’nin,  ÖHK özelinde yaptığı kontrollerin başarısız olması \n Yetki hatası \n HHS'nin, kullanıcı doğrulama sonrası ÖHK için iç sistemlerinde yaptığı kontrollerin başarısız olması. Örneğin: Müşterinin henüz bankacılık hizmet sözleşmesi gibi Internet şubesi üzerinde işlem yapmasını engelleyen eksikleri olması durumunda veya kurumsal kullanıcıda vekalet süresinin dolması/eksik doküman olması durumunda kanal üzerinde işlem yapamadığı durum  HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Opsiyonel \n \n \n 13 \n ÖHK isteği ile GKD’den vazgeçilmesi \n Müşteri işlemden vazgeçmiştir. \n HHS ekranında yer alan VAZGEÇ butonuna basılması durumu (ÖHK,HHS uygulamasında kullanıcı doğrulama yaptıktan sonra VAZGEÇ butonu olabilir.) \n Zorunlu \n \n \n 14 \n GKD İptali: Fraud Şüphesi \n İşlem gerçekleştirilememiştir. \n HHS Fraud şüphesi nedeniyle işlemin devamına izin vermez. HHS'nin, fraud kontrollerinin ödeme başlatma hizmeti için yapması ve “14- GKD İptali: Fraud Şüphesi” ile rıza iptalini gerçekleştirmelidir. HBH servislerinde HHS'nin rıza iptal kodu 14 ile işlemi kesmesi HHS'nin kendi insiyatifindedir yani opsiyoneldir. \n Koşullu \n \n \n 99 \n Diğer \n İşlem gerçekleştirilememiştir. \n Oluşabilecek diğer senaryolar. \n Zorunlu \n \n \n \n GKD sırasında iletilen rıza no eğer HHS’nin sisteminde bulunamazsa durumu güncellenecek bir rıza no da olmayacaktır. HHS kendi önyüzünde bu duruma uygun bir mesaj gösterebilir. YÖS’e de Diğer hata kodu ile bu durumu iletebilir. \n"},{title:"3. Temel Prensipler",frontmatter:{},regularPath:"/v2.0.0/contents/temel-prensipler.html",relativePath:"v2.0.0/contents/temel-prensipler.md",key:"v-9f53f9d6",path:"/v2.0.0/contents/temel-prensipler.html",headers:[{level:2,title:"3.1 Genel",slug:"_3-1-genel"},{level:2,title:"3.2.\tİstem (Çağrı) ve Oturum",slug:"_3-2-istem-cagrı-ve-oturum"},{level:2,title:"3.3.\tRESTful API",slug:"_3-3-restful-api"},{level:2,title:"3.4.\tSürüm Yönetimi",slug:"_3-4-surum-yonetimi"},{level:2,title:"3.5.\tKaynak URI Yol Yapısı",slug:"_3-5-kaynak-uri-yol-yapısı"},{level:2,title:"3.6.\tKarakter Kodlama",slug:"_3-6-karakter-kodlama"},{level:2,title:"3.7.\tVeri Formatı",slug:"_3-7-veri-formatı"},{level:2,title:"3.8.\tİstemci Sertifika Yönetimi",slug:"_3-8-istemci-sertifika-yonetimi"},{level:2,title:"3.9.\tYetkilendirme Türleri",slug:"_3-9-yetkilendirme-turleri"},{level:2,title:"3.10. İstek/Cevap Mesajlarında Kullanılan Nesne Yapıları",slug:"_3-10-istek-cevap-mesajlarında-kullanılan-nesne-yapıları"},{level:2,title:"3.11. Sayfalandırma ve Filtreleme",slug:"_3-11-sayfalandırma-ve-filtreleme"},{level:2,title:"3.12. Mesaj İmzalama",slug:"_3-12-mesaj-imzalama"},{level:2,title:"3.13. Durum Kodu",slug:"_3-13-durum-kodu"},{level:2,title:"3.14. Gereksinimlerinin Sınıflandırılması",slug:"_3-14-gereksinimlerinin-sınıflandırılması"},{level:2,title:"3.15. İstek Başlığı",slug:"_3-15-istek-baslıgı"},{level:2,title:"3.16. Yanıt Başlığı",slug:"_3-16-yanıt-baslıgı"},{level:2,title:"3.17. Idempotency Kuralları",slug:"_3-17-idempotency-kuralları"},{level:2,title:"3.18. HTTP Durum Kodları",slug:"_3-18-http-durum-kodları"},{level:2,title:"3.19. Maskeleme Kuralları",slug:"_3-19-maskeleme-kuralları"},{level:2,title:"3.20. Fonksiyonel Olmayan Gereksinimler",slug:"_3-20-fonksiyonel-olmayan-gereksinimler"},{level:2,title:"3.21. Otomatik Sorgular",slug:"_3-21-otomatik-sorgular"}],content:' 3. Temel Prensipler  \n Bu bölümde Ödeme Hizmetleri Veri Paylaşım Servisleri (Hesap Bilgisi Hizmeti, Ödeme Emri Başlatma Hizmeti) için tanımlanan temel prensipler açıklanmaktadır. \n 3.1 Genel \n \n \n HHS’ler Yönetmeliğin 59. maddesinin beşinci fıkrası ve Ödeme ve Elektronik Para Kuruluşlarının Bilgi Sistemleri ile Ödeme Hizmeti Sağlayıcılarının Ödeme Hizmetleri Alanındaki Veri Paylaşım Servislerine İlişkin Tebliğin (Tebliğ) 23. maddesinin birinci fıkrası uyarınca, ödeme hizmetleri veri paylaşım servislerini GEÇİT aracılığıyla HBHS ve ÖBHS’ye sunmakla yükümlüdür. \n \n \n Tebliğin 23. maddesinin ikinci fıkrası uyarınca ödeme emri başlatma hizmetinde açık iletişim servisinin tarafları ÖBHS ile HHS’dir. \n \n \n Tebliğin 23. maddesinin üçüncü fıkrası uyarınca hesap bilgisi hizmetinde açık iletişim servisinin tarafları HBHS ile HHS’dir. \n \n \n Yönetmeliğin 60. maddesinin birinci fıkrası uyarınca müşteri, ödeme emri başlatma hizmetini  ödeme hesabının çevrim içi olarak erişilebilir olduğu durumlarda , kullanmayı tercih edebilir. \n \n \n Yönetmeliğin 61. maddesinin birinci fıkrası uyarınca müşteri, hesap bilgisi hizmetini  ödeme hesabının çevrim içi olarak erişilebilir olduğu durumlarda , kullanmayı tercih edebilir. \n \n \n Tebliğin 25. maddesi uyarınca HHS ve YÖS (ÖBHS ve HBHS) arasında bağlantı uçtan uca güvenli bir şekilde sağlanır. Bu amaçla iletim katmanında TLS (asgari 1.2 sürümü) ile şifreli iletişim sağlanır. \n \n \n Tebliğin 23. maddesinin dördüncü fıkrası uyarınca HHS tarafından sunulan ödeme hizmetleri veri paylaşım servislerini kullanan yetkilendirilmiş ödeme hizmeti sağlayıcılarının TCMB tarafından ilgili ödeme hizmeti için yetkilendirilmiş olduğu kontrol edilir. \n \n \n Tebliğin 25. maddesinin beşinci fıkrası uyarınca zaman damgası, 15/1/2004 tarihli 5070 sayılı Elektronik İmza Kanunu kapsamında tanımlanan zaman damgasına dayanır. \n \n \n API alan isimleri Türkçe olarak tanımlanmıştır. Ancak API başlığı (header) alanındaki alan isimleri özelinde, API Geçitleri tarafından otomatik olarak tanınabilmesi gözetilerek, İngilizce isimlendirme tercih edilmiştir. \n \n \n ÖHK halihazırda ödeme hesaplarına, çevrim içi (mobil bankacılık, internet bankacılığı vb.) erişebilir durumda ise, HHS\'nin varsa Açık Bankacılık kanal veya yetki tanımını varsayılan değeri AÇIK olacak şekilde sunması gerekmektedir. HHS’nin, Bireysel/Kurumsal/Ticari müşteri ayrımı yapmaksızın tüm müşterileri için, çevrim içi kanallarda hesap hareketlerine erişim ve ödeme yapabilme yetkisi bulunması durumunda, yine aynı şekilde Açık Bankacılık kanal veya yetki tanımını da varsayılan değeri AÇIK olacak şekilde sunması gerekmektedir. HHS Açık Bankacılık hizmetini kanal/yetki tanımı ile yönetmesi durumunda hizmeti verdiği ilgili kanallar(web,mobil) üzerinden müşterisine Açma/Kapama olanağı şeklinde sunması gerekmektedir. \n \n \n 5411 Sayılı Kanun kapsamındaki bankalar, HHS API içerisinde Aktif durumda listelenmemişken, YÖS API içerisinde listelenemezler. \n 3.2.\tİstem (Çağrı) ve Oturum \n \n \n Her istek tekil istek numarası ve ÖHK’lı işlemler için zaman damgası (PSU-Timestamp) içerir. Birden fazla istek içeren işlem YÖS tarafından belirlenen çağrıya özgü talep kimliği (istek numarası: X-Request-ID) ve rıza sürecine özgü talep kimliği (işlem grup numarası: X-Group-ID) değerleri kullanılmalıdır. Aynı rıza no’ya ait tüm isteklerde aynı X-Group-ID bilgisi değeri gönderilmelidir. \n \n \n Oturum takibi ise PSU-Session-ID ile yapılır. Oturum numarası (PSU-Session-ID) ÖHK’lı işlemler için zaman damgası (PSU-Timestamp) ile birlikte ilgili tüm işlem verilerini içerecek şekilde k
16ayıt altına alınır. \n \n \n Örneğin, bir ödeme emri başlatma işlemi birden fazla istekten oluşur. Her istek yukarıda belirtildiği gibi biricik istek numarası ve ÖHK’lı işlemler için zaman damgası (PSU-Timestamp) içerir. Ancak işlemin oturum bütünlüğü PSU-Session-ID ile sağlanır. \n \n \n Taraflar açtıkları oturumu işlem bütünlüğünü sağlayacak süre içerisinde açık tutar ve işlem biter bitmez kapatır. \n 3.3.\tRESTful API \n API’ler, dünya ölçeğinde yaygın bir şekilde kullanılan Temsili Durum Transferi (Representational State Transfer, REST) mimari tarzı ve JavaScript Nesne Notasyonu (JavaScript Object Notation, JSON) veri formatlarına uygun olarak geliştirilir. En üst seviye Veri Tanımlama Dili (Data Description Language) ve en iyi uygulama örnekleri için  ^JSON Şeması  temel alınır. \n İstek ve yanıt mesajlarında, isteğe bağlı veya koşullu bir alan, değer içermiyorsa, bu alan JSON payloadunda yer almamalıdır. \n Örnek kod bloğu. \n "rzBlg":{\n         "rizaNo":"aa9bd7e7-0ccd-4edc-9639-5a358dbf2335",\n         "olusZmn":"2022-11-28T12:00:21+03:00",\n         "gnclZmn":null,    --\x3e hatalı\n         "rizaDrm":"K",\n         "rizaIptDtyKod":"" --\x3e hatalı \n      },\n \n Örnek kod bloğu: \n \n         "alc":{\n            "hspNo": "TR800800004162387689546019",\n            "unv": "AHMET YILMAZ", \n            "kolas":{}  --\x3e nesne gönderimi hatalı\n         },\n 3.4.\tSürüm Yönetimi \n API sonraki aşamalarda doğabilecek gereksinimleri ve daha karmaşık kullanım durumlarını karşılamak için sürümler halinde geliştirilir ve bu durum tasarım sırasında göz önünde bulundurulur. \n API v1.0.2 sürümünde ; \n \n Kapsamdaki ödeme hesapları : Vadesiz TL, yabancı para hesapları (gerçek ve tüzel kişilere ait ödeme hesapları), Kredili Mevduat Hesabı \n Tekil ödeme (Virman/Havale/FAST/Müşterilerarası TL Aktarım Sistemi)\n \n Virman ve havale işlemleri kapsamında yabancı para transferi yapılabilir. \n \n \n Hesap bilgisi hizmetleri\n \n Temel veya ayrıntılı hesap bilgisi \n Bakiye \n Gerçekleşen işlemler için Hesap hareketleri \n \n \n Karekodlu ödemelerdeki 01, 02 ve 03 akış türleri\nyer almaktadır. \n \n API v1.1.0 sürümünde ; \n \n \n API v1.0.2 sürümüne ek Olay Bildirim ve Ayrık GKD özellikleri eklenmiştir. Süreçlerin daha iyi işlemesi için çeşitli güncellemeler yapılmıştır. \n \n \n API v2.0 sürümünde ileri tarihli ödeme emri, düzenli ödeme emri, hesap bilgisi hizmeti içerisinde kart hizmetleri, YÖS üzerinden rıza güncelleme hizmetine dair güncellemeler eklenmiştir. \n \n \n Her sürüm değişikliğinde bir önceki sürüm belirli bir süre desteklenecektir. Diğer bir ifadeyle, sadece belirli bir süre için mevcut ve bir önceki sürüm aynı anda erişilebilir olacaktır. \n 3.5.\tKaynak URI Yol Yapısı \n YÖS’lerin başlattığı çağrılarda URI yolu aşağıdaki yapıyı takip eder: \n [hhs-yol-ön-eki]/ohvps/ [kaynak-grubu]/ [sürüm]/ [kaynak]/[kaynak-no]/[alt-kaynak] \n Bu, aşağıdaki unsurlardan oluşur: \n \n [hhs-yol-ön-eki] \nİsteğe bağlı, HHS\'ye özgü yol ön ekini ifade eder. \nGEÇİT üzerinden yapılan çağrılarda BKM tarafından belirlenen sistem adı ve yol ön eki kullanılır. \n ohvps \nSabit metin “ohvps” (Ödeme Hizmetleri Veri Paylaşım Servisleri kısaltması) \n [kaynak-grubu] \nKaynak grubu, API’ye erişmek için kullanılan ödeme hizmetine (HBH, ÖBH) göre erişim adresi (end point) grubunu tanımlar (“hbh” veya “obh”). \n [sürüm] \nAPI sürümünü ifade eder (“/s[ana-sürüm].[alt-sürüm]/”). \n [kaynak]/[kaynak-no] \nKaynak detaylarını ifade eder. \n [alt-kaynak] \nAlt kaynak detaylarını ifade eder. \n \n HHS, tüm kaynakları için aynı katılımcı yolu ön ekini ve sistem adını kullanmalıdır. \n BKM API’lerine erişmek isteyen uygulamaların yetkilerine göre aşağıdaki API’lere abone olmaları gerekmektedir: \n OBH: \n https://gecit-api.bkmtest.com.tr/ohvps/obh/s2.0/odeme-emri-rizasi \n https://gecit-api.bkmtest.com.tr/ohvps/obh/s2.0/odeme-emri \nHBH: \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s2.0/hesap-bilgisi-rizasi \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s2.0/hesaplar \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s2.0/hesaplar/1234/islemler \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s2.0/hesaplar/1234/bakiye \nGKD \n https://gecit-api.bkmtest.com.tr/ohvps/gkd/s2.0/erisim-belirteci \nHHS – YÖS API \n https://gecit-api.bkmtest.com.tr/hhs-api/s2.0/hhs \n https://gecit-api.bkmtest.com.tr/hhs-api/s2.0/hhs/1234 \n https://gecit-api.bkmtest.com.tr/yos-api/s2.0/yos \n https://gecit-api.bkmtest.com.tr/yos-api/s2.0/yos/1234 \n HHS’lerin sağlayacakları API’lerdeki URI çevrimi örnekleri aşağıdaki gibidir. \n \n https://xbank.com.tr/api-portal/ohvps/obh/s2.0/odeme-emri \n https://gecit-api.bkmtest.com.tr/ohvps/obh/s2.0/odeme-emri  (BKM API) \n https://xbank.com.tr/api-portal/ohvps/hbh/s2.0/hesap-bilgisi-rizasi \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s2.0/hesap-bilgisi-rizasi  (BKM API) \n https://xbank.com.tr/api-portal/ohvps/hbh/s2.0/hesaplar \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s2.0/hesaplar   (BKM API) \n https://xbank.com.tr/api-portal/ohvps/hbh/s2.0/hesaplar/1234 \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s2.0/hesaplar/1234  (BKM API) \n \n GEÇİT üzerinden yapılan çağrılarda, istek başlığında bulunan “x-aspsp-code” (isteğin iletildiği Hesap Hizmeti Sağlayıcısının kodu) değerine göre HHS API’de standart olarak tanımlanmış olan “basePath” bilgisine servis uzantısı eklenerek HHS’ye yönlendirme yapılır. \n Örneğin, istek başlığında  xbank ’ın kodu varsa, YÖS tarafından yapılan \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s2.0/hesap-bilgisi-rizasi \nçağrısı GEÇİT tarafından karşılanarak \n https://xbank.com.tr/api-portal/ohvps/hbh/s2.0/hesap-bilgisi-rizasi \nadresine yönlendirilir. \n Bu örnekte,  https://xbank.com.tr/api-portal  basePath bilgisi HHS tarafından HHS API’ye girilen değerdir. \n ÖNEMLİ :  URI Query parametreleri GET ile iletilirken değerlerde url-encode yapılmalıdır. Örnek bir API isteği; \nGET /ohvps/hbh/s2.0/hesaplar/xxx/islemler?hesapIslemBslTrh=2023-02-07T16:42:38%2B03:00&hesapIslemBtsTrh=2023-02-07T17:09:18%2B03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfKytSayi=10&syfNo=1 \n Burada \'+\' karakterinin boşluk olarak algılanmaması için %2B değeri ile iletilmiştir. \n 3.6.\tKarakter Kodlama \n API istekleri ve yanıtlarının  Başlık  parametrelerinde ISO-8859-1 standartında yer alan karakter kümesi kullanılmalıdır.  3.15. İstek Başlığı  bölümünde detaylandırılmıştır. \n API istekleri ve yanıtlarında  Gövde  parametrelerinde UTF-8 karakter kodlaması kullanılır. Bu, JSON için varsayılan karakter kodlamasıdır. \n Ancak, bir HHS\'nin kendi uygulamaları ve ödeme başlattığı ödeme sistemi (Havale vb.) bazı UTF-8 karakterlerini kabul etmeyebilir. HHS, UTF-8 kodlaması içeren bir mesajı işleyemez ve reddederse, HTTP 400 (Hatalı İstek) durum ko
16du ile yanıt vermelidir. \n ÖHVPS kapsamında iletilen değerler içerisinde işlenemeyecek karakterler var ise  "TR.OHVPS.Business.InvalidCharacter"  hatası verilir. \n Gövde parametrelerinde desteklenen UTF-8 karakter kümesi aşağıda listelenmiştir. \n \n \n \n Karakter \n UTF 8   Hex. \n Karakter \n UTF 8   Hex. \n Karakter \n UTF 8   Hex. \n Karakter \n UTF 8   Hex. \n \n \n \n \n \n 20 \n = \n 3d \n X \n 58 \n r \n 72 \n \n \n ! \n 21 \n ? \n 3f \n Y \n 59 \n s \n 73 \n\n 23 \n @ \n 40 \n Z \n 5a \n t \n 74 \n \n \n % \n 25 \n A \n 41 \n [ \n 5b \n u \n 75 \n \n \n & \n 26 \n B \n 42 \n \\ \n 5c \n v \n 76 \n \n \n \' \n 27 \n C \n 43 \n ] \n 5d \n w \n 77 \n \n \n ( \n 28 \n D \n 44 \n ^ \n 5e \n x \n 78 \n \n \n ) \n 29 \n E \n 45 \n _ \n 5f \n y \n 79 \n \n \n * \n 2a \n F \n 46 \n a \n 61 \n z \n 7a \n \n \n + \n 2b \n G \n 47 \n b \n 62 \n { \n 7b \n \n \n , \n 2c \n H \n 48 \n c \n 63 \n } \n 7d \n \n \n - \n 2d \n I \n 49 \n d \n 64 \n Ç \n c3 87 \n \n \n . \n 2e \n J \n 4a \n e \n 65 \n Ö \n c3 96 \n \n \n / \n 2f \n K \n 4b \n f \n 66 \n Ü \n c3 9c \n \n \n 0 \n 30 \n L \n 4c \n g \n 67 \n ç \n c3 a7 \n \n \n 1 \n 31 \n M \n 4d \n h \n 68 \n ö \n c3 b6 \n \n \n 2 \n 32 \n N \n 4e \n i \n 69 \n ü \n c3 bc \n \n \n 3 \n 33 \n O \n 4f \n j \n 6a \n Ğ \n c4 9e \n \n \n 4 \n 34 \n P \n 50 \n k \n 6b \n ğ \n c4 9f \n \n \n 5 \n 35 \n Q \n 51 \n l \n 6c \n İ \n c4 b0 \n \n \n 6 \n 36 \n R \n 52 \n m \n 6d \n ı \n c4 b1 \n \n \n 7 \n 37 \n S \n 53 \n n \n 6e \n Ş \n c5 9e \n \n \n 8 \n 38 \n T \n 54 \n o \n 6f \n ş \n c5 9f \n \n \n 9 \n 39 \n U \n 55 \n p \n 70 \n \n \n \n \n : \n 3a \n V \n 56 \n q \n 71 \n \n \n \n \n ; \n 3b \n W \n 57 \n \n \n \n \n \n \n \n Ancak  Erişim belirteci, Yenileme belirteci ve Authorization  parametreleri daha dar bir karakter kümesi ile doldurulmalıdır. \n Bearer HTTP Authorization Şeması RFC 6750\'de tanımlanmıştır.  https://www.rfc-editor.org/rfc/rfc6750#section-2.1  bölümünde izin verilen karakterlerin gönderilmesi beklenmektedir. Buradaki standartın her 3 parametre için de uygulanmasına karar verilmiştir. \n RFC 6750 içerisinde bearer token formatı şu şekildedir : 1*( ALPHA / DIGIT / "-" / "." / "_" / "~" / "+" / "/" ) *"=" \nAugmented BNF for Syntax Specifications (ABNF) ile ifade edilen bu formatta token en az 1 adet alfanumerik karakter veya özel karakter ("-", "." , "_" , "~" , "+" , "/")  içermeli ve 0 ya da daha çok sayıda "=" karakteri ile bitmelidir. \n ALPHA = A-Z / a-z aralığındaki harflerdir. \nDIGIT = 0-9 aralığındaki rakamlardır. \n 3.7.\tVeri Formatı \n \n Açık bankacılık kapsamındaki zaman damgası, ISO 8601 standartına uygun olarak yerel saat bilgisini ve timezone bilgisini de içerecek şekilde " yyyy-MM-dd’T’HH:mm:ssXXX " formattaki haliyle hazırlanmalıdır. \n \n Örnek:  "timestamp": "2021-05-30T20:34:15+03:00" \nyyyy : 4 hane yıl \nMM : Başa ‘0’ eklenmiş, toplam 2 hane ay \ndd    : Başa ‘0’ eklenmiş, toplam 2 hane gün \nHH    : Başa ‘0’ eklenmiş, toplam 2 hane saat (0-23 arası değer alabilir.) \nmm : Başa ‘0’ eklenmiş, toplam 2 hane dakika \nss    : Başa ‘0’ eklenmiş, toplam 2 hane saniye \nXXX : ISO 8601 Time zone \n \n \n Zaman damgası hesaplamalarında, yeni günün başlangıç saatinin 00:00:00 olduğu kabul edilmiştir. \n \n \n JWT veri paketlerinde kullanılan zaman damgaları, 1 Ocak 1970 Saat 00:00:00 (UTC) anından itibaren geçen saniye sayısı değerini (Unix Time) kullanmalıdır. \n \n \n Bir HHS, tarihi yanlış biçimlendirilmiş bir istek aldığında, 400 (Hatalı İstek) durum kodu ve ilgili hata kodu ile yanıt vermelidir. \n \n \n ISO 4217 Standartında para birimleri ve kaç basamak ondalık değer içerebilecekleri belirlenmiştir. \n https://www.iso.org/iso-4217-currency-codes.html   adresinden ücretsiz olarak listeye erişilebilir.  \nAPI Standartlarında da para birimleri  ISO 4217’de tanımlanmış olan 3 harfli kodlarla iletilir.   Tüm tutar alanları ISO 4217\'de tanımlanmış para birimlerinin ondalık basamak değerleri de göz önünde bulundurularak iletilmelidir. Tutar alanları artı ya da eksi değer alabileceği için API deseninde tanımlanmış regular expressionlar dikkate alınmalıdır. \nÖrneğin; Bakiye API\'sindeki "Kredili Mevduat Hesabı Bakiyesi" alanı "-100.25" ve "Para Birimi" alanı "TRY" olarak 
16iletildiğinde 25 değerinin kuruş olduğu anlaşılmalıdır. \nÖdeme Emri Rızası API\'sinde yer alan "İşlem Tutarı" alanı "104.75" TRY olarak iletildiğinde "75" değerinin kuruş olduğu anlaşılmalıdır. \n"12000" Japon Yeni için, ISO 4217’de JPY para biriminin ondalık kısmı olmadığından "İşlem Tutarı" alanında "12000" ve "Para Birimi" alanında "JPY" değeri  iletilmelidir. \n \n \n Altın para birimi özelinde ISO 4217’ye uygun olarak "XAU" cinsinde ve 2 basamak ondalık rakam içerecek şekilde iletilmelidir. Örneğin içerisinde "13,50 gr" altın olan hesap için bakiye "13.50", para birimi "XAU" olarak gönderilmelidir. \n \n \n Diğer madenlerde ondalık basamak ISO 4217 standartında tanımlandığı gibi olmalıdır. \n \n \n Sıralı veri tipleri büyük küçük harfe duyarlı olmalıdır. \n 3.8.\tİstemci Sertifika Yönetimi \n ÖHVPS kapsamında YÖS ve HHS’lerin güvenli bir şekilde tanımlanması amacıyla elektronik sertifikalar kullanılır. \n ÖHVPS kapsamında tarafların güvenli bir şekilde tanımlaması, uçtan uca güvenli iletişim, mesaj şifreleme ve mesaj imzalama işlevleri 15/1/2004 tarihli ve 5070 sayılı Elektronik İmza Kanunu’nda açıklanan elektronik sertifikalar kullanılarak sağlanır. Elektronik sertifikada Türkiye Cumhuriyet Merkez Bankası tarafından verilen kuruluş kodu ve kuruluşun türüne dair bilgiler bulunur. \n GEÇİT üzerinden yapılan erişimlerde YÖS ve HHS’lere önceden dağıtılmış olan istemci sertifikaları kullanılarak tarafların (sunucu) kimliklerinin doğrulanması sağlanacaktır. İstemci sertifikaları hem test hem de üretim ortamında kullanılacaktır. Sertifikaların işlevselliği ve geçerliliği sertifikasyon sürecinde de sınanacaktır. Söz konusu sertifikaların dağıtım prosedürleri ve kullanımlara yönelik açıklamalar EK-3’te yer verilmiştir. \n 3.9.\tYetkilendirme Türleri \n GEÇİT üzerinden yapılan çağrılarda iki temel yetkilendirme türü kullanılır: \n 1.\tİstemci Kimlik Bilgileri:  Müşteri onayının gerekmediği, sadece YÖS’ün tanımlanıp doğrulandığı API çağrılarında kullanılır. YÖS’ün yetkilendirilmiş olduğu ve faaliyet izninin yaptığı hizmet çağrısına uygun olduğu kontrol edilir.  Bu amaçla, YÖS’lere clientId ve clientSecret tahsis edilecektir. YÖS’ler ilgili clientId ve clientSecret ile sadece yetkilendirilmiş oldukları servislere erişebileceklerdir. YÖS’ler kendilerine BKM tarafından sunulacak API’yi, kendi clientID ve clientSecret değerleri ile sorgulayarak “İstemci Kimlik Bilgileri” belirtecini (access token) elde edeceklerdir.\nHHS’ler de GEÇİT üzerindeki YÖS API’sini sorgulama maksadı ile GEÇİT\'e geldiklerinde, kendilerine atanmış olan clientID ve clientSecret bilgileri ile yetki kontrolleri yapılır.\nHHS ve YÖS’ler ; ilettikleri client id ve secret değerleri kullanılarak oluşturulacak bearer authentication metodu ile servislerini sunacaklardır. \n 2.\tYetkilendirme Kodu:  YÖS’ün doğrulanmasının yanısıra müşterinin GKD ile doğrulanması gereken API çağrılarında kullanılır. Müşteri doğrulanarak yetkilendirme kodu oluşturulması HHS’nin yetkilendirme arayüzüne yönlendirilir. GKD’nin başarıyla tamamlanması sonrasında yetkilendirme kodu YÖS’e dönülür. YÖS daha sonra HHS’nin  erişim belirteci  (access token) erişim adresini (EK-3: POST /erisim-belirteci) çağırmak suretiyle yetkilendirme kodunu bir erişim belirteci (access token) ile değiştirerek ilgili kaynakları kullanabilir. \n Ödeme emri başlatma ve hesap bilgisi hizmetlerinde hangi yetkilendirme türlerinin kullanılacağı bilgisi, ilgili başlıklardaki erişim adresleri (endpoints) tablolarında yer almaktadır. \n erisim-belirteci  erisim noktasından elde edilen  erisimBelirteci  ilişkilendirildiği nesne veya işlem için gönderilen POST isteği başlığında  x-access-token  alanında iletilir.\nBelirli bir süre için tanımlanan erişim belirteci (access token) değerinin yenileme belirteci (refresh token) ile yenilenmesi gerekir. \n Erişim adreslerinde kullanılan yetkilendirme türü ilgili erişim adresi tablolarında belirtilmiştir. \n 3.10. İstek/Cevap Mesajlarında Kullanılan Nesne Yapıları \n İstek ve Cevap mesajlarında kullanılacak olan nesneler tüm elemanlarını kapsayacak şekilde Ek-1 de listelenmiştir. Tüm listelenen elemanlar açısından (Uç nokta mesaj yapılarının belirtildiği tablolarda belirtildiği üzere) alanın Zorunlu (z) veya İsteğe Bağlı (İ) olma durumlarına göre bazı alanlar gönderilebilir veya gönderilmeyebilir. \n 3.11. Sayfalandırma ve Filtreleme \n Sayfalandırma \n Çağrıya dönülen kaynak nesnesi içerisindeki kayıtlar bir sayfalandırma yapısı ile ç
16ağrılacak şekilde istek oluşturulur. \n Oluşturulacak isteğin içerisinde parametreler ile filtreleme, sayfa başına gösterilecek kayıt sayısı ve hangi sayfanın önyüzde gösterileceği bilgileri erişim noktasına iletilir ve ilgili kayıtlar cevap olarak alınır. \n Filtreleme \n HHS, birden çok kayıt dönülmesi gereken GET çağrılarında sınırlı filtreleme desteği sağlamalıdır. Filtre parametreleri her zaman kaynak nesnesinin belirli alanlarına özgüdür ve nesne için tanımlanan kurallara uymalıdır. \n 3.12. Mesaj İmzalama \n Elektronik imzalar, ÖHVPS API’de gerçekleştirilen işlemlerin ve taşınan verilerin bütünlük ve inkâr edilemezliğini destekler. İmzaların kaynak bazında hangi istek ve yanıtlara uygulandığı belirlidir. \n API yalnızca TLS\'ye dayanırsa, dijital kayıtları ve inkâr edilemezlik kanıtlarını tutmak zor olur. Bu nedenle, TLS\'ye dayanmayan bir inkâr edilemezlik çözümü olarak API isteğinin HTTP başlığında bir JWS kullanılarak sağlanabilir. \n HTTP isteğinin gövdesinin hash fonksiyonu (SHA256) ile özeti alınacaktır. Elde edilen özet, asimetrik anahtarları destekleyen bir algoritma kullanılarak imzalanacak ve JWS elde edilecektir. İsteğin kendinize geldiği durumda body üzerinde hiç bir değişikliğe tabi tutmadan (serialize/deserialize, minify, trim, vb yapmadan) doğrulama yapmanız gerekmektedir. Aynı şekilde isteğin kendinizden çıktığı aşamada da response body üzerinde hiç bir değişikliğe tabi tutmadan (serialize/deserialize, minify, trim, vb yapmadan) mesaj imzalama yapılmalıdır. \n Bir istek, YÖS\'nin özel anahtarı ile imzalanacak ve bu isteğe karşılık gelen yanıt, HHS\'nin özel anahtarı tarafından imzalanacaktır. \n Tüm API istekleri ve yanıtları imzalanmaz. Mesaj imzalamanın zorunlu olup olmadığı, desteklenip desteklenmediği her API özelinde belirlenir. \n Anahtar Deposu \n HHS\'ler ve YÖS\'ler tarafından güvenilen bir Güven Otoritesi (Trust Anchor), taraflar için bir genel anahtar deposu sağlamaktan sorumludur. \n Güven Otoritesi, taraflardan herhangi birisinin oluşturduğu bir anahtar çiftinin açık bölümünü saklayan merkezi bir dizin (BKM tarafından tutulan merkezi kayıt sistemi vb.) olacaktır. \n Mesajları doğrulamak için tarafların genel anahtarlarının paylaşılması için BKM bir servis sağlayacaktır. HHS API olarak adlandırılımış olan bu servis ile HHS ve YÖS listelerine ulaşılabildiği gibi doğrulama işlemi için ihtiyaç duyulacak olan genel anahtarlara da bu servis üzerinden erişilebilinecektir. \n İlgili Mesaj şifreleme için genel akış, Ek-5 bölümünde detaylarıyla paylaşılmaktadır. \n 3.13. Durum Kodu \n API’ler, iki farklı amaca hizmet eden iki durum kodu kullanır: \n \n HTTP Durum Kodu, API çağrısının (kaynaktaki HTTP işlemi) sonucunu yansıtır. \n Bazı kaynak payload’larındaki Durum alanı, kaynakların durumunu yansıtır. \n 3.14. Gereksinimlerinin Sınıflandırılması \n Erişim adreslerinin ve alanların kullanımı Zorunlu(Z), İsteğe Bağlı(İ) veya Koşullu(K) olabilir. Kullanımlara ilişkin durumlar ve kullanımın (K) koşullu olduğu duruma ilişkin açıklamalar ilgili tablolarda belirtilmiştir. \n ÖHVPS API\'lerinin (HBH,ÖBH,GKD) istek ve yanıtta kullanılacak başlık isimleri, ilgili RFC dokümanlarında ve aşağıdaki tabloda yer aldığı şekilde kullanılacaktır.  Uygulamaya özelleşmiş başlıklar "X-" ile başlayacaktır. Başlık isimlerinde yer alacak kısaltmalar (örn. PSU, ASPSP gibi) tamamı büyük harfle yazılacak şekilde tanımlanacaktır. Başlık isimleri büyük – küçük harfe duyarlı olmamalıdır. Örneğin x-request-id ya da X-Request-ID olarak gönderilmiş olan bir istek başlığı değişkeni, sunucu tarafında hata vermeyecek şekilde işlenebilmelidir. \n 3.15. İstek Başlığı \n \n "Başlık isimleri" yorumlanırken küçük büyük harfe duyarlı olmamalıdır. Örneğin "x-ReQuEsT-Id" geçerli bir başlık ismidir. \n "Başlık değerleri" yorumlanırken ise küçük büyük harf duy
16arlılığı olmalıdır. Örneğin "xyz123" ile "XYZ123" değerleri farklıdır. \n Başlık değerlerinde ISO-8859-1 standartında yer alan karakter kümesi kullanılmalıdır. Örneğin "PSU-Device-Data" değerinde "İOS12" yazmak, büyük "İ" harfinin ISO-8859-1 içerisinde yer almamasından dolayı, hataya yol açacaktır. \n İstek başlığında aşağıdaki tabloda belirtilen alanlar dışında gönderim yapılmamalıdır. \n İstek başlığında boş değer içeren bir başlık ismiyle gönderim yapılmamalıdır. Örnek; "PSU-Initiated":"" \n İstek ve Yanıt başlığında yer alan alanların; POST GET DELETE methodlarında, OBH,HBH,GKD,OAS,ODS API\'leri bazında Zorunlu/Koşullu/İsteğe Bağlı kullanım durumları aşağıdaki tabloda listelenmiştir. \n \n Tablo 2: İstek Başlığında Yer Alan Veriler \n \n \n \n Başlık İsimleri \n Format \n Notlar \n POST \n GET \n DELETE \n POST \n GET \n DELETE \n \n \n \n \n \n \n \n OBH HBH GKD \n OBH HBH GKD \n OBH HBH GKD \n OAS ODS \n OAS ODS \n OAS ODS \n \n \n X-Request-ID \n AN1..36 \n İsteği başlatan YÖS tarafından belirlenen çağrıya özgü talep kimliği. İstek numarası.   Örnek: Ödeme emri başlatma iş akışının her adımda farklı “x-request-id” değeri kullanılır.   Çağrıların aynı yanıtı dönmesinin beklendiği durumlarda (idempotent işlemlerde) aynı değer ile çağrı yapılır. \n Z \n Z \n Z \n Z \n Z \n Z \n \n \n X-Group-ID \n AN1..36 \n İsteği başlatan YÖS tarafından belirlenen işlem akışına özgü talep kimliği. İşlem grup numarası.  Aynı rıza no’ya ait tüm isteklerde aynı x-group-id bilgisi değeri gönderilmelidir. Örnek: Ödeme emri başlatma/hesap bilgisi iş akışının her adımında aynı “x-group-id” değeri kullanılır. \n Z \n Z \n Z \n - \n - \n - \n \n \n Content-Type \n AN1..20 \n Standart HTTP Başlığı; Talepte sağlanan payload’ın biçimini temsil eder. Bu değerin application/json olarak gönderilmesi gerekmektedir. Hata durumlarında application/problem+json da iletilebilir.  (Başka bir değere ayarlanırsa, HHS, 415 Desteklenmeyen Ortam Türü (Unsupported Media Type) ile yanıt vermelidir) \n Z \n - \n - \n Z \n - \n - \n \n \n X-ASPSP-Code \n AN4 \n Hesap Hizmeti Sağlayıcısının (HHS) kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n Z \n Z \n Z \n Z \n Z \n Z \n \n \n X-TPP-Code \n AN4 \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur \n Z \n Z \n Z \n Z \n Z \n Z \n \n \n PSU-Auth-Date \n ISODateTime \n ÖHK’nın YÖS üzerinde en son oturum açtığı saat. [RFC7231] Örneğin:  auth-date: Tue, 11 Sep 2012 19:43:31 GMT \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-IP-Address \n AN7..15 \n ÖHK YÖS üzerinde oturum açmışsa, işlemi başlattığı cihazın IP adresi. \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-IP-Port \n AN1..5 \n ÖHK YÖS üzerinde oturum açmışsa, işlemi başlattığı cihazın Port adresi. \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-GEO-Location \n AN1..36 \n ÖHK’nın işlemi başlattığı cihazın konum bilgisi. RFC2426 standartına uygun olarak paylaşılmalıdır. Örneğin  GEO:"<enlem >, <boylam>GEO:52.506931,13.144558 \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-User-Agent \n AN 1.. 255 \n ÖHK’nın işlemi başlattığı cihazın sağladığı user-agent bilgisi. (Tarayıcı, versiyon, işletim sistemi bilgileri) \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-Timestamp \n ISODateTime \n ÖHK’nın işlemi başlattığı cihazın tarih saat içeren zaman bilgisi. \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-Device-ID \n AN5..40 \n ÖHK işlemi mobil uygulama aracılığıyla başlattıysa, kullanılan mobil uygulama ilk yüklendiğinde oluşturulan tekil cihaz veya uygulama belirteci. ÖHK cihazının UUID değeri kullanılabilir. \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-Device-Data \n AN1..1024 \n ÖHK’nın işlemi başlattığı mobil cihaza ait veriler.  Örnek alanlar:   - Platform - (Android, iOS, Windows 10 Mobile)  - Device Model   - OS Name   - OS Version - Locale - Time zone \n İ \n İ \n İ \n - \n 
16- \n - \n \n \n PSU-Initiated \n AN1 \n İşlemin ÖHK tarafından başlatılması durumunda E , sistem tarafından başlatıldığı durumda H değerini, olay bildirimine istinaden yapılacak isteklerde O değerini alması beklenir. İşlemler servisinde yapılacak sistemsel sorgulardaki işlem limitlerini kontrol amacıyla kullanılır. O değerinin gönderilebileceği API\'ler  Asıl Verinin Elde Edileceği API  olarak ilgili sayfada yer alan Olay Tipleri ve Kaynak Tipleri İlişkisi tablosunda yer almaktadır. Asıl verinin elde edileceği API\'ler özelinde O gönderimi yapılabilir. O olarak yapılan her isteğe HHS\'nin yanıt vermesi gereklidir. Otomatik sorgularda uygulanan üst limitler, O gönderimi durumunda geçerli değildir. \n Z \n Z \n Z \n - \n - \n - \n \n \n PSU-Fraud-Check \n AN1..4096 \n YÖS\'lerin çeşitli güvenlik kontrollerini gerçekleştirerek, önemli görülen aşağıdaki bilgileri HHS\'ler ile paylaşmaları gerekmektedir. Bu bilgiler ışığında müşterinin profili oluşturulmasına katkı sağlanacaktır.   ÖHK’lı işlemlerde (PSU-Initiated = E gönderildiği durumlarda) gönderilmesi zorunludur.  Sistemsel yapılan API çağrımlarımda, Olay Bildirim Servis Çağrımlarında ve HHS-YÖS API çağrımlarında gönderilmesine gerek bulunmamaktadır.  Paylaşılacak bilgiler şu şekildedir.   FirstLoginFlag  : ÖHK\'nın, müşterilik ömründe ilgili YÖS sistemine (mobil ya da web uygulaması) ilk login olma süresini ifade eden değer. ÖHK\'nın ilk yaptığı HBH ya da ÖBH işlemi değil, YÖS sisteminde kendini aktifleştirme tarih aralığı bilgisidir.   YÖS, kullanıcının ilk login bilgisini tutarak sonraki işlemlerinde bu bilgiyi belirlenen format ile HHS\'ye aktaracaktır. Örneğin; YÖS\'ün 7 aydır müşterisi olan bir kullanıcı için bu alan "5" olarak YÖS tarafından beslenecektir. Burada amaç; ilgili kullanıcının YÖS\'ün eski bir müşterisi mi, yoksa yeni bir müşterisi mi olup olmadığını anlamaktır.   Gönderilmesi Zorunlu alandır. TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.   DeviceFirstLoginFlag  : ÖHK\'nın, müşterilik ömründe işlem anında kullandığı cihazla YÖS uygulamasına (web ya da uygulama tabanlı) ilk login olma süresini ifade eden değer. ÖHK cihaz değişikliği yaparsa FirstLoginFlag değeri sabit kalmalı  ancak DeviceFirstLoginFlag değeri değişmelidir.  FirstloginFlag değeri ile ÖHK’nın YÖS uygulamasına ilk login tarih bilgisi ile ilgili bilgi verilirken, DeviceFirstLoginFlag ile de ÖHK’nın YÖS uygulamasına farklı bir cihaz aracılığı ile ilk login tarihinin bilgisi verilmektedir.  Örneğin; ÖHK 7 aydır YÖS\'ün müşterisi olabilir, böyle bir durumda FirstLoginFlag değeri "5" olacaktır. Ancak son işlemini daha önce hiç kullanmadığı bir cihazdan yapmıştır. Yeni cihazdaki login süre aralığı 0-2 saat aralığında  olduğu için DeviceFirstLoginFlag değeri "1" olacaktır.FirstLoginFlag değeri yine "5" olarak kalmaya devam edecektir.Bu bilgi ile YÖS, ilgili HHS\'ye ilk kez geliyor olsa bile; HHS, müşterinin YÖS\'ü uzun süredir kullandığını ama yeni bir cihazla işlemlerine devam ettiğini anlayabilecektir. Bir ÖHK, farklı cihazlar veya platformlar üzerinden YÖS ile etkileşime girebilir.  Kullanıcı ve YÖS arasında bir oturum başlatılmış ise YÖS’ün tutarlı ve kalıcı bir kimlik (device id) ataması beklenmektedir.  Device ID: Web sitesi veya mobil uygulama kullanıcıları için üretilen, tarayıcı ya da mobil uygulama tabanlı benzersiz (tekil) tanımlayıcı değer. Mobil uygulamalar için ÖHK’nın ilk defa ilgili cihaza aktivasyon yaptığı tarih bilgisi alınmalıdır.   Device ID bilgileri YÖS uygulama ortamı (web ya da uygulama tabanlı) ve ÖHK cihazı bazında tutulmalıdır. YÖS’ten başlatılan işlem hangi uygulama ortamına ait ise ilgili ortamala ilişkili tutulan Device ID’nin ilk login tarihine bakılarak güncel flag değeri hesaplanmalıdır.  Gönderilmesi Zorunlu alandır. TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.   LastPasswordChangeFlag  : ÖHK\'nın, YÖS (cihaz bağımsız)  uygulamasına login olduğu şifre bilgisinin en son değiştirildiği süreyi ifade eden değer. Müşterinin en son ne zaman şifre değişikliği yaptığını anlamak için kullanılan alandır. Yeni müşteri ve hiç şifre değişikliği yapmamış olabilir, böyle bir durumda ilgili alan "0" olarak beslenecektir.   Gönderilmesi Zorunlu alandır. TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.   BlacklistFlag  : ÖHK\'nın herhangi bir sebeple YÖS\'ün sakıncalı müşteriler listesinde bulunup bulunmadığını ifade eden değer.   Burada amaç herhangi bir sebeple YÖS tarafında yasaklı olarak kayıtlı olan ÖHK bilgisinin, dolandırıcılığı önceden tespit etmek amaçlı HHS\'ye aktarılması olarak açıklanabilir. Örneğin, YÖS tarafından tespit edilen dolandırıcı kullancılara ait device id bilgisi, bu kara listede tutulur daha sonra aynı cihazla başka bir ÖHK işlem yapacak olsa bile bu alanda ilgili bilgi "1" değeri ile HHS\'ye aktarılır. HHS\'de olmayıp YÖS tarafında olan bu örnekteki sakıncalı müşteri/cihaz bilgisinin, dolaylı yoldan HHS\'ye aktarılması amaçlanmaktadır.  Gönderilmesi Opsiyonel alandır. TR.OHVPS.DataCode.VarYok sıralı veri tipinin alabileceği değerleri alabilir.   MalwareFlag  : YÖS uygulamasının çalıştığı cihaz üzerindeki son 21 güne ait zararlı yazılım tespit bilgisini ifade eden değer. Örneğin ÖHK\'nın cihazında zararlı yazılım olduÄ
16Ÿu ayın 1\'inde YÖS tarafından tespit edildi. Zararlı yazılım tespitinden 2 saat sonra YÖS üzerinden login olan ÖHK\'nın durumu,  "1" olarak iletilecektir. Bir gün sonra ayın 2\'sinde, yeni bir zararlı yazılım tespiti yok ancak mevcut zararlı yazılım aktifse alan "2" değeri ile iletilecektir. Süreler artarak 21 güne kadar TR.OHVPS.DataCode.ZmnAralik değerlerine göre iletilecektir.Son 21 gün içinde yeni bir tespit yoksa ayın 22\'sinden itibaren ilgili alan  "0" değeri ile beslenecektir. Not: Zararlı yazılım, bankacılık işlemlerinin yapıldığı uygulamalara girişte kullanılan bilgilerin (şifre, kullanıcı kodu gibi) ele geçirilmesi amacıyla kullanılan bir uygulama ya da kod parçacığı olabilir. Bu amaçlar dışında kullanılan (bankacılığa yönelik bir zararlı yazılım olmayan) yazılım tespitleri iletilmemelidir. YÖS kanallarına her bir loginde, kullanılan cihazda bir zararlı yazılım var mı yok mu kontrolü yapılmalıdır.   Gönderilmesi Opsiyonel alandır. TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.   AnomalyFlag  : Diğer şüpheli durumların varlığını ifade eden değer. Gönderilmesi Opsiyonel alandır. TR.OHVPS.DataCode.VarYok sıralı veri tipinin alabileceği değerleri alabilir.   UnsafeAccountFlag : HHS tarafından aktarılan bilgi ile son 21 gün içinde ÖHK\'nın dolandırıcılık mağduru olması durumunu ifade eden değer. Örneğin; HHS 1, ayın 1\'inde süphe veya sahtekarlık nedeniyle bir ödeme işlemine izin vermediği durumda, bu bilgiyi rıza iptal detay kodu ile YÖS\'e aktarmış olur. Bu bilgiyi tutan YÖS, ilgili müşterinin 15 dakika sonra HHS 2\'de yaptığı işlem için ilgili alanı "1" değeri ile besler. Böylece HHS 2, ÖHK\'nın farklı bir HHS\'de son 15 dakika içinde şüpheli veya sahte bir işlemi olduğunu anlayabilecektir. Ayın 22\'sinde yeni bir tespit/kayıt yoksa bu alan YÖS tarafından "0" olarak beslenecektir. Gönderilmesi Opsiyonel alandır.TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.     Flaglar JWT claims içine key value şeklinde eklenerek gönderilecektir. EK-5: Mesaj İmzalama Akışı\'nda belirtilen yöntemle imzalanarak oluşturulan JWT PSU-Fraud-Check alanına konularak YÖS\'ler tarafından HHS\'ye iletilmelidir. \n K \n K \n Z \n - \n - \n - \n \n \n PSU-Session-ID \n AN1..100 \n İsteği başlatan YÖS tarafından belirlenen oturuma özgü talep kimliği. ÖHK\'nın YÖS uygulaması üzerinden kimlik doğrulama mekanizması ile bilgi sistemlerine dâhil olmalarından işlemlerini tamamlayıp sistemden ayrılmalarına kadar geçecek tüm süreci kapsayacak şekilde aynı değeri almalıdır. Tek seferlik ödeme gibi ÖHK’nın tanınmadan başlatıldığı işlemlerde bu değer boş olarak iletilmelidir. \n İ \n İ \n İ \n - \n - \n - \n \n \n Authorization \n AN1..4096 \n Katılımcı ile GEÇİT arasındaki otorizasyon için kullanılan token bilgisidir.  Yekilendirme türlerinden İstemci Kimlik Bilgileri’ni adresler.    Bölüm 3.6 Karakter Kodlama  bölümünde açıklanan karakter formatında gönderilmesi beklenmektedir. \n Z \n Z \n Z \n Z \n Z \n Z \n \n \n X-Access-Token \n AN1..4096 \n ÖHK’nın GKD sürecinde doğrulanması sonrasında kullanılan erişim simgesi. Yetkilendirme türlerinden Yetkilendirme Kodu (GKD)’nu adresler.  Bölüm 3.6 Karakter Kodlama  bölümünde açıklanan karakter formatında gönderilmesi beklenmektedir. \n İ \n İ \n İ \n - \n - \n - \n \n \n X-JWS-Signature \n AN1..4096 \n Payload gövdesinin ayrılmış bir JWS imzasını içeren üstbilgi.  Bu başlığın ne zaman belirtilmesi gerektiği hususu ilgili endpoint için belirtilmiştir.  Mesaj imzalama kullanılan API ve methoda göre gönderimi zorunludur. \n K \n K \n K \n K \n - \n - \n 3.16. Yanıt Başlığı \n \n "Başlık isimleri" yorumlanırken küçük büyük harfe duyarlı olmamalıdır. Örneğin "x-ReQuEsT-Id" geçerli bir başlık ismidir. \n "Başlık değerleri" yorumlanırken ise küçük büyük harf duy
16arlılığı olmalıdır. Örneğin "xyz123" ile "XYZ123" değerleri farklıdır. \n Başlık değerlerinde ISO-8859-1 standartında yer alan karakter kümesi kullanılmalıdır. Örneğin "Link" değerinde "İOS12" yazmak, büyük "İ" harfinin ISO-8859-1 içerisinde yer almamasından dolayı, hataya yol açacaktır. \n Yanıt başlığında aşağıdaki tabloda belirtilen alanlar dışında gönderim yapılmamalıdır. \n Yanıt başlığında boş değer içeren bir başlık ismiyle gönderim yapılmamalıdır. Örnek; "PSU-Initiated":"" \n \n Tablo 3: Yanıt Başlığında Yer Alan Veriler \n \n \n \n Başlık İsimleri \n Format \n Notlar \n Kullanım Durumu  OBH HBH GKD \n Kullanım Durumu  OAS ODS \n \n \n \n \n X-Request-ID \n AN1..36 \n YÖS tarafından belirlenen çağrıya özgü talep kimliği. İstek numarası    İlgili istek başlığındaki bilgi geri dönülür. \n Z \n Z \n \n \n X-Group-ID \n AN1..36 \n İsteği başlatan YÖS tarafından belirlenen işlem akışına özgü talep kimliği. İşlem grup numarası. İlgili istek başlığındaki bu değer geri dönülür. \n Z \n - \n \n \n X-ASPSP-Code \n AN4 \n Hesap Hizmeti Sağlayıcısının (HHS) kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n Z \n Z \n \n \n X-TPP-Code \n AN4 \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur \n Z \n Z \n \n \n Content-Type \n AN1..20 \n Standart HTTP Başlığı; Talepte sağlanan payload’ın biçimini temsil eder:  application/json \n Z \n Z \n \n \n X-JWS-Signature \n AN1..4096 \n JWS imzasını içeren üstbilgi. Bu başlığın hangi yanıtlar için kullanılması gerektiği ilgili endpoint için belirtilmiştir.  Hata durumlarında, yanıt gövdesi değeri dönülüyor ise imzalanmalı ve imza bilgisi x-jws-signature alanında iletilmelidir.  Ancak uygulama katmanı tarafından yakalanamayan dolayısı ile imzalanamayan hata durumlarında x-jws-signature alanı HHS\'ler tarafından boş gönderilebilir.  Hatalı yanıt alındığı durumlarda ise X-JWS-Signature başlık değeri dolu ise doğrulama yapılmalıdır. (4**, 5**) \n K \n K \n \n \n X-RateLimit-Limit \n N 1..18 \n İstek kısıtı uygulanan servislerde en fazla kaç adet istek yapılabileceğini gösterir. Kısıt uygulanan servislerde bu başlığın dönmesi zorunludur. \n K \n - \n \n \n X-RateLimit-Remaining \n N 1..18 \n İstek kısıtı uygulanan servislerde k
16aç adet istek hakkı kaldığını gösterir. Kısıt uygulanan servislerde bu başlığın dönmesi zorunludur. \n K \n - \n \n \n X-RateLimit-Reset \n AN 1..255 \n İstek kısıtı uygulanan servislerde çağrım hakkı bittikten sonra yeniden denemeden önce beklemesi gereken süreyi (saniye cinsinden) gösterir. HTTP 429 durum kodu (Too Many Requests) ile dönülen yanıtların başlığında dönülmesi zorunludur.  YÖS olarak yaptığınız sistemsel sorgularda; HTTP 429 durum kodu (Too Many Requests) ile dönülen yanıt aldığınızda tekrar sorgu yapmadan önce “X-RateLimit-Reset” yanıt başlığını kontrol ederek, bu başlıktaki süre kadar bekledikten sonra yeniden sorgulama yapılması gerekmektedir. \n K \n - \n \n \n x-total-count \n N 1..18 \n Hesaplar, İşlemler, Bakiye, İletilemeyen Olaylar servislerinde sayfalama kullanıldığı durumda, sorgu sonucu dönecek toplam kayıt sayısı bilgisi, bu alanda HHS isteğine bağlı olarak gönderilebilir.   Kayıt sayısı 0 olduğu durumda gönderimi zorunludur. \n K \n K \n \n \n Link \n 1..4096 \n “Link” alanının  Hesap Bilgisi Hizmeti için Erişim Adresleri    tablosundaki parametre  = Sayfalama olan API’lerde ve İletilemeyen Olaylar API\'sinde gönderim yapılması zorunludur.  Sayfalama yapısı kullanıldığında gelen yanıtta birden fazla sayfa var ise; önceki, sonraki, ilk, son sayfalara gitmek için gerekli referanslar link headerında aşağıdaki örnekteki gibi doldurulabilir.  x-total-count alanının gönderimi kayıt sayısı 0 olduğu durum dışında isteğe bağlı olduğu için; Link içerisindeki son sayfa bilgisi  (last) isteğe bağlı hale getirilmiştir. “Önceki”( prev) ve “Sonraki” (next) adımlarının uygun olan her durumda yer alması zorunludur. İlk sayfada “Önceki” seçeneği olmamalı, son sayfada ise “Sonraki” seçeneği olmamalıdır.    </ohvps/hbh/s2.0/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=6&syfKytSayi=100>; rel="next",  </ohvps/hbh/s2.0/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=4&syfKytSayi=100>; rel="prev",  </ohvps/hbh/s2.0/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=14&syfKytSayi=100>; rel="last",  </ohvps/hbh/s2.0/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=0&syfKytSayi=100>; rel="first"    Hiç hesap hareketinin olmadığı durumda dönen yanıt başlığınızın şu şekilde olması beklenmektedir.  Response body: [] Response header: Link: </ohvps/hbh/s2.0/hesaplar?srlmKrtr=hspRef&srlmYon=A&syfNo=1&syfKytSayi=100>; rel="last",</ohvps/hbh/s2.0/hesaplar?srlmKrtr=hspRef&srlmYon=A&syfNo=1&syfKytSayi=100>; rel="first"  x-total-count alanı da 0 olarak iletilmelidir. \n K \n K \n 3.17. Idempotency Kuralları \n YÖS’ün aşağıdaki durumlarda aynı istek numarası (x-request-id) ve aynı veri gövdesiyle çağrıyı tekrarlaması; HHS’nin de bu durumlarda aynı yanıtı dönmesi gereklidir. \n \n HHS’nin yanıtı kesinti/arıza nedeniyle YÖS’e ulaşmaz ve zaman aşımı söz konusu olması, \n ÖHK, YÖS uygulaması üzerinden çift tıklama ile mükerrer defa HHS API’lerini çağırılması,\n(API kontrollerinden önce YÖS uygulamasının, çift tıklama kontrolü yapması önerilmektedir.) \n YÖS, yanıt almasına rağmen işleyemeden kaybedilmesi, \n \n durumlarında HHS aşağıdaki kuralları işletir: \n \n HHS gelen istek numarasını ve veri gövdesini birleştirerek checksum değeri üretir. \nchesksum değeri x-request-id|request.body ‘nin hash algoritmalarından (CRC32,MD5 vb)  geçirilerek üretilebilir. \n HHS bu checksum değeri ile YÖS’e dönmüş olduğu yanıtı 5 dk boyunca saklar.  Saklama yöntemi olarak veri tabanı veya önbellek araçları kullanılabilir. \n YÖS aynı istek numarası ve aynı veri gövdesi ile yeni bir çağrı yaptığında, aynı checksum değeri üretileceği için 5dk boyunca bu değere karşılık gelen yanıtı döner. \n 5 dk sonrasında istek numarası veya veri gövdesi değişmemiş olsa dahi bu HHS tarafından yeni istek olarak kabul edilir. \n \n Aşağıdaki Public Post işlemleri için bu kural setinin işletilmesi gerekmektedir: \n 1- Ödeme emri rızası oluşturma \n2- Erişim belirteci oluşturma \n3- Ödeme emri \n4- Hesap bilgisi rızası oluşturma \n5- İleri Tarihli Ödeme Emri Rızası oluşturma \n6- İleri Tarihli Ödeme Emri \n7- Düzenli Tekrarlı Ödeme Emri Rızası oluşturma \n8- Düzenli Tekrarlı Ödeme Emri \n 3.18. HTTP Durum Kodları \n RFC 2616\'da belirlenmiş olan durum ko
16dları (status code) gönderilen isteğin durumunu YÖS’a standart bir şekilde ifade eder. Eğer bir hata varsa hatayı, gönderilen istek başarılı bir şekilde işlem gördüyse ona ilişkin durumu aktarır. Durum kodları genel olarak 5 kategoridedir. \n \n 1xx Bilgi \n 2xx Başarılı \n 3xx Yönlendirme \n 4xx İstemci Hatası \n 5xx Sunucu Hatası \n \n errorCode Alanında Kullanılabilecek Sıralı Hata Tipleri : \n \n TR.OHVPS.Resource \n \n ⇨\tInvalidFormat \n ⇨\tConsentMismatch \n ⇨\tNotFound \n ⇨\tInvalidSignature \n ⇨\tMissingSignature \n ⇨\tMethodNotAllowed \n ⇨\tNotAcceptable \n ⇨\tUnsupportedMediaType \n ⇨\tConsentRevoked \n \n \n \n TR.OHVPS.Business \n \n ⇨\tInvalidContent \n ⇨\tInvalidAccount \n \n \n \n TR.OHVPS.Connection \n \n ⇨\tInvalidCertificate \n ⇨\tExceededRate \n ⇨\tInvalidTPP \n ⇨\tInvalidASPSP \n ⇨\tInvalidToken \n ⇨\tInvalidTPPRole \n \n \n \n TR.OHVPS.Server \n \n ⇨\tInternalError \n ⇨\tServiceUnavailable \n \n \n TR.OHVPS.Resource.InvalidFormat hatası alındığı durumda; fieldErrors nesnesi içerisinde verilecek hata kodları : \n \n TR.OHVPS.Field \n \n ⇨\tMissing \n ⇨\tInvalid \n \n \n Veri Tipi Örneği: \n { \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "d8bd4e5f-f094-48a6-aee1-3a800e2709d9" , \n     "timestamp" :   "2022-12-22T10:33:15+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "Validation error" , \n     "moreInformationTr" :   "Şema kontrolleri başarısız" , \n     "fieldErrors" :   [ \n         { \n             "objectName" :   "odemeEmriRizasiIstegi" , \n             "field" :   "odmBsltm.islTtr.prBrm" , \n             "messageTr" :   "boş değer olamaz" , \n             "message" :   "must not be null" , \n             "code" :   "TR.OHVPS.Field.Missing" \n         } , \n         { \n             "objectName" :   "odemeEmriRizasiIstegi" , \n             "field" :   "odmBsltm.kmlk.kmlkVrs" , \n             "messageTr" :   "boyut \'1\' ile \'30\' arasında olmalı" , \n             "message" :   "size must be between 1 and 30" , \n             "code" :   "TR.OHVPS.Field.Invalid" \n         } \n     ] , \n     "errorCode" :   "TR.OHVPS.Resource.InvalidFormat" \n }  \n \n Tablo 4: HTTP Durum Kodları \n \n \n \n HTTP Durum \n İstek Sonucu ve Açıklamalar \n POST \n GET \n DELETE \n \n \n \n \n 200 OK \n İstek Başarıyla Tamamlandı. Kaynak güncellemek için yapılan (örneğin, GET) ve başarıyla tamamlanan isteklerinde kullanılır. \n H \n E \n H \n \n \n 201 Created \n İstek Başarılı Oldu. Kaynak yaratma isteği (örneğin, POST /ödeme-emri-rizasi) başarıyla sonuçlandı. \n E \n H \n H \n \n \n 204 No Content \n Silme işlemi başarıyla tamamlandı. Kaynak silme isteği (örneğin,  DELETE /hesap-rizasi/{RizaNo} ) başarıyla sonuçlandı. \n H \n H \n E \n \n \n 400 Bad Request \n İstekte bozuk, eksik veya uyumlu olmayan JSON gövdesi, URL parametreleri veya başlık alanları var.  İstekle başlatılan işlem yapısal bozukluk, eksik veya tutarsız veri veya HHS tarafındaki kontrollerin hatalı sonuçlanması nedeniyle hata ile sonuçlanır ve hataya ilişkin veriler hata nesnesi içerisinde dönülür. \n E \n E \n E \n \n \n 401 Unauthorized \n Yetkilendirme başlığı eksik, hatalı veya geçersiz olduğundan istek yetkilendirilmediğinde ve erişim reddedildiğinde http 401 kodu dönülmelidir. \n E \n E \n E \n \n \n 403 Forbidden \n Erişim belirtecinin veya rızanın kapsamı uyuşmuyor. YÖS bir hesaba/işlem kaynağına erişmeye çalışır ve YÖS, istenen kaynağa erişmek için geçerli izinlere sahip bir rızası yoktur.  Örneğin; hesap bilgisi rızası bakiye izni almamıştır ancak /bakiyeler adresinden istekte bulunmuştur. \n \n \n \n \n \n 404 Not Found \n **HHS geçerli bir API erişim adresini sağlamıyorsa, o URL\'ye gelen istekler için 404 (Bulunamadı) ile yanıt vermelidir.**YÖS, uygulama esaslarında tanımlanmayan bir 
16kaynak için bir URL\'ye erişmeye çalışırsa (örneğin, GET /yurtdisi-odeme), HHS, 404 (Bulunamadı) ile yanıt vermeyi seçebilir. \n E \n E \n E \n \n \n 405 Method Not Allowed \n YÖS, desteklenmeyen bir yöntemle kaynağa erişmeye çalıştı. \n E \n E \n E \n \n \n 406 Not Acceptable \n İstek, geçersiz bir karakter kümesi içeriyor. \n E \n E \n E \n \n \n 415 Unsupported Media Type \n İstek gövdesi hedef kaynakta bu yöntem tarafından desteklenmeyen bir biçimde oluşturulduğu için işlem reddedildi \n E \n H \n H \n \n \n 429 Too Many Requests \n Belirli bir süre içinde çok fazla talepte bulunulduğu için işlem reddedildi.  HHS’ler adil kullanım politikalarını aşan talepleri kısıtlayabilir. \n E \n E \n E \n \n \n 500 Internal Server Error \n API sunucu / servis katmanında sorun oluştu. İşlem başarısız.  5XX hata durumlarında yanıt gövde değeri olmadığı için mesaj imzalama yapılamaz ve x-jws-signature alanı boş olarak iletilir.  Bu durumda x-jws-signature kontrolü yapılmamalıdır. \n E \n E \n E \n \n \n 503 Service Unavailable \n Hizmet sürümü kullanımdan kaldırıldı.  Bir API\'nin kullanımdan kaldırıldığı ve artık bir HHS tarafından operasyonel olarak desteklenmediği durumlarda, URI yolu hala etkin olabilir ve API isteklerini kabul edebilir.  Bu durumda, YÖS\'ün API sürümünün çevrimdışı olduğunun farkında olması için 503 Hizmet Kullanılamıyor dönmesi önerilir. \n E \n E \n E \n \n \n \n İş kuralları nezdinde ilgili hata kodları özelleştirilmiş olup HHS tarafından verilecek olan hata kodları ÖHVPS API İlke ve Kuralları dokümanında ilgili alanlarda paylaşılmıştır. Bu çalışmaya ek olarak, HHS\'lerin YÖS\'lere; YÖS\'lerin de ÖHK\'lara iletecekleri hata mesaj içeriklerinde standartlaşmaya gidilmiştir. Bu çalışmaya Türkiye\'nin İletişim Platformu altında yer alan ÖHVPS > Dokümanlar alanından ulaşabilirsiniz. HHS\'lerin ve YÖS\'lerin ilgili dokümanı referans alarak mesaj içeriklerini, kurumların kendi müşteri iletişim dili kapsamında düzenleyerek ÖHK\'lara gösterebilir olması beklenmektedir. \n Hata Örnekleri: \n 400 Bad Request \n TR.OHVPS.Resource.InvalidFormat  hatası şema validasyonu, alan uzunluk ve varlık kontrollerinin başarısız olduğu durumda verilmelidir. \n \n { \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "7f115b9c-d7c2-4a2a-bc45-5a9891c79072" , \n     "timestamp" :   "2022-12-22T10:47:57+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "Validation error" , \n     "moreInformationTr" :   "Şema kontrolleri başarısız" , \n     "fieldErrors" :   [ \n         { \n             "objectName" :   "odemeEmriRizasiIstegi" , \n             "field" :   "odmBsltm.alc.unv" , \n             "messageTr" :   "boyut \'3\' ile \'140\' arasında olmalı" , \n             "message" :   "size must be between 3 and 140" , \n             "code" :   "TR.OHVPS.Field.Invalid" \n         } , \n         { \n             "objectName" :   "odemeEmriRizasiIstegi" , \n             "field" :   "odmBsltm.islTtr.ttr" , \n             "messageTr" :   "boş değer olamaz" , \n             "message" :   "must not be null" , \n             "code" :   "TR.OHVPS.Field.Missing" \n         } \n     ] , \n     "errorCode" :   "TR.OHVPS.Resource.InvalidFormat" \n }  \n\n \n Zorunlu header alanlarından biri ya da birkaçı eksik olarak gönderilirse aşağıdaki gibi bir hata dönüşü gerçekleşebilir. \n HHS uygulaması tarafından dönülebilecek hata örnekleri: \n \n { \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "2005515d-f0e6-4a07-a439-0ef3b0f56011" , \n     "timestamp" :   "2022-12-22T10:39:26+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "Validation error" , \n     "moreInformationTr" :   "Şema kontrolleri başarısız" , \n     "errorCode" :   "TR.OHVPS.Resource.InvalidFormat" , \n     "fieldErrors" :   [ \n         {          \n             "field" :   "X-Request-ID" , \n             "messageTr" :   "X-Request-ID değeri boş olamaz." , \n             "message" :   "X-Request-ID cannot be null." , \n             "code" :   "TR.OHVPS.Field.Invalid" \n         } \n     ] \n }  \n\n \n Business hata örneği - 1: \n { \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "677cfd9d-77c1-4ea3-8bdf-74a6e9887177" , \n     "timestamp" :   "2022-12-22T11:05:59+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "gonUnvan wrong" , \n     "moreInformationTr" :   "Gönderen Ünvan hatalı" , \n     "errorCode" :   "TR.OHVPS.Business.IncorrectSenderTitle" \n }  \n \n Business hata örneği - 2: \n { \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "5df3b402-3aca-4305-a35b-5af0f3184b40" , \n     "timestamp" :   "2022-12-22T11:06:47+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "Sender account is disabled or not found." , \n     "moreInformationTr" :   "Gonderen hesap aktif değil veya bulunamadı." , \n     "errorCode" :   "TR.OHVPS.Business.InvalidAccount" \n }  \n \n GEÇİT\'te yapılan zorunlu header kontrollerinde aşağıdaki hatalar dönebilir: \n \n { \n     "timestamp" :   "2022-12-22T10:40:28+03:00" , \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "d4375748-6fc7-4f7e-94f3-6411cab1d59f" , \n     "moreInformationTr" :   "Geçersiz HHS kodu." , \n     "errorCode" :   "TR.OHVPS.Connection.InvalidASPSP" , \n     "moreInformation" :   "Invalid ASPSP Code" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" \n }  \n \n GEÇİT tarafından dönülecek hata örneği: \n \n { \n     "timestamp" :   "2022-12-22T10:40:28+03:00" , \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "d4375748-6fc7-4f7e-94f3-6411cab1d59f" , \n     "moreInformationTr" :   "Geçersiz HHS kodu." , \n     "errorCode" :   "TR.OHVPS.Connection.InvalidTPP" , \n     "moreInformation" :   "Invalid TPP Code" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" \n }  \n \n GEÇİT tarafından dönülecek hata örneği: \n \n { \n     "timestamp" :   "2022-12-22T11:14:05+03:00" , \n     "path" :   "/ohvps/hbh/s2.0/hesap-bilgisi-rizasi" , \n     "id" :   "ee1e3ea7-a5e5-468b-bb02-314148f84e6a" , \n     "moreInformationTr" :   "Geçersiz yös rolü. İlgili api çağrısı için yetkisi yok." , \n     "errorCode" :   "TR.OHVPS.Connection.InvalidTPPRole" , \n     "moreInformation" :   "Invalid TPP Role" , \n     "httpCode" :   403 , \n     "httpMessage" :   "Forbidden" \n }  \n\n \n 401 Unauthorized \n YÖS, süresi dolmuş bir erişim belirteci kullandığında, HHS 401 (Yetkisiz) http kodu ile aşağıdaki hata kodunu dönmelidir.  Aşağıdaki nedenlerden herhangi biri nedeniyle bir Erişim Belirtecinin süresi dolduğunda bu durum ortaya çıkabilir: \n \n Rızanın süresi doldu (Son Kullanma Tarihi geçti) \n Erişim Belirtecinin şüpheli kullanımı veya sahtekarlık şüphesi \n Rızada belirlenen gün s
16ayısının aşımı\nBu hata, müşteriden doğru izinlerle yeniden kimlik doğrulaması isteyerek çözülebilir. \n \n \n { \n     "path" :   "/ohvps/gkd/s2.0/erisim-belirteci" , \n     "id" :   "ed3fd667-fc58-40ad-a982-e8937faccd15" , \n     "timestamp" :   "2022-12-22T11:17:33+03:00" , \n     "httpCode" :   401 , \n     "httpMessage" :   "Unauthorized" , \n     "moreInformation" :   "Refresh token expired or not found in database" , \n     "moreInformationTr" :   "Yenileme belirteci zaman aşımına uğramış veya veri tabanında yok" , \n     "errorCode" :   "TR.OHVPS.Connection.InvalidToken" \n }  \n \n\n \n 403 Forbidden \n Örn; YÖS yetkisi olmayan rol(ÖBH/HBH) ile işlem yapmaya çalıştığı durumda 403 hatası alarak işleme devam edemez. \n { \n   "path" :   "/ohvps/hbh/s2.0/bakiye" , \n   "id" :   "3e48ea98-f889-48b9-aa6e-28aabc6cfb14" , \n   "timestamp" :   "2022-12-22T11:20:05+03:00" , \n   "httpCode" :   403 , \n   "httpMessage" :   "Forbidden" , \n   "moreInformation" :   "Forbidden" , \n   "moreInformationTr" :   "Bakiye Bilgileri için ÖHK izni bulunmamaktadır." , \n   "errorCode" :   "TR.OHVPS.Resource.Forbidden" \n }  \n \n 404 Not Found \n Örn; GET /odeme-emri-rizasi/123456 çağrısı durumunda 123456 geçerli bir ödeme kaynağı değilse, HHS, 404 koduyla cevap vermelidir. \n { \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi/123456" , \n     "id" :   "22f52b2d-d442-4a6a-8f39-d23eba45a34b" , \n     "timestamp" :   "2022-12-22T10:53:53+03:00" , \n     "httpCode" :   404 , \n     "httpMessage" :   "Not Found" , \n     "moreInformation" :   "Resource not found" , \n     "errorCode" :   "TR.OHVPS.Resource.NotFound" , \n     "moreInformationTr" :   "Kaynak bulunamadı" \n }  \n\n \n 405 Method Not Allowed \n { \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "3e5c6b28-7ee4-4469-b541-843fb4a94eec" , \n     "timestamp" :   "2022-12-22T11:35:10+03:00" , \n     "httpCode" :   405 , \n     "httpMessage" :   "Method Not Allowed" , \n     "moreInformation" :   "Method not allowed" , \n     "errorCode" :   "TR.OHVPS.Resource.MethodNotAllowed" , \n     "moreInformationTr" :   "İstek yapılan URL için izin verilmeyen metot" \n }  \n \n 406 Not Acceptable \n { \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "3e5c6b28-7ee4-4469-b541-843fb4a94eec" , \n     "timestamp" :   "2022-12-22T11:35:10+03:00" , \n     "httpCode" :   406 , \n     "httpMessage" :   "Not Acceptable" , \n     "moreInformation" :   "Not Acceptable" , \n     "errorCode" :   "TR.OHVPS.Resource.NotAcceptable" , \n     "moreInformationTr" :   "Kabul edilmedi" \n }  \n \n 415 Unsupported Media Type \n İstek başlığında content-type, JSON dışında bir veri iletilirse bu hata verilebilir. \n \n { \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "63cc94b6-1b51-4648-9671-95e6e2e7e03d" , \n     "timestamp" :   "2022-12-22T11:37:12+03:00" , \n     "httpCode" :   415 , \n     "httpMessage" :   "Unsupported Media Type" , \n     "moreInformation" :   "Content type not supported" , \n     "errorCode" :   "TR.OHVPS.Resource.UnsupportedMediaType" , \n     "moreInformationTr" :   "Desteklenmeyen içerik tipi’" \n }  \n \n 429 Too Many Requests \n { \n   "path" :   "/ohvps/hbh/s2.0/hesaplar/aef6061f-2978-4bb4-980d-b4c634c8055b/islemler" , \n   "id" :   "20473c5f-2f4f-4b2e-8b66-7978aec442f7" , \n   "timestamp" :   "2022-12-22T00:21:07+03:00" , \n   "httpCode" :   429 , \n   "httpMessage" :   "Too Many Requests" , \n   "moreInformation" :   "Exceeded rate" , \n   "moreInformationTr" :   "Erişim sıklığı limiti aşımı" , \n   "errorCode" :   "TR.OHVPS.Connection.ExceededRate" \n }  \n \n 500 Internal Server Error \n { \n   "id" :   "1b90c6dc-0277-4755-8b05-9297ddfab743" , \n   "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n   "timestamp" :   "2022-12-22T11:41:34+03:00" , \n   "httpCode" :   500 , \n   "httpMessage" :   "Internal Server Error" , \n   "moreInformation" :   "Unexpected condition was encountered." , \n   "moreInformationTr" :   "Beklenmeyen bir durumla karşılaşıldı." , \n   "errorCode" :   "TR.OHVPS.Server.InternalError" \n }  \n\n \n 503 Service Unavailable \n \n   "timestamp" :   "2022-12-20T23:18:56+03:00" , \n   "path" :   "/ohvps/hbh/s2.0/hesap-bilgisi-rizasi/2a72678ee3d24de2be47887e4903a8c6" , \n   "id" :   "e76315b7-09f4-4295-b6d8-1f7fec632159" , \n   "moreInformationTr" :   "HHS şu anda hizmet veremiyor." , \n   "errorCode" :   "TR.OHVPS.Server.ServiceUnavailable" , \n   "moreInformation" :   "HHS is currently unavailable" , \n   "httpCode" :   503 , \n   "httpMessage" :   "Service Unavailable" \n 3.19. Maskeleme Kuralları \n Maskeli olarak iletilmesi gereken verilerin maskeleme kuralları şu şekildedir: \n \n IBAN verileri Hesap Numarası : İlk 4 ve son 4 karakteri açık, diğer karakterler maskeli olmalıdır. Örnek: TR54******************4812 \n Ad-Soyadı / Ticari Unvan : Her kelimenin ilk 2 karakteri açık, sonraki karakterler yerine 4 adet ‘ ’ karakteri konumlandırılmalıdır.\nÖrneğin: “FATİH SERKAN EREN” ifadesi “FA *** SE**** ER****” şeklinde gösterilmelidir. \n Tabela Unvanı : Her kelimenin ilk 2 karakteri açık, sonraki karakterler yerine 4 adet \' \' karakteri konumlandırılmalıdır. Örneğin “BANKALARARASI KART MERKEZİ ANONİM ŞİRKETİ” ifadesi “BA *** KA**
16** ME**** AN**** Şİ****” şeklinde gösterilmelidir. \n YÖS’ten girilen alıcı unvan ve IBAN bilgileri ödeme emri rızası ve ödeme emri yanıtında açık dönülür, Kolas akışında ödeme emri rızası yanıtı ve ödeme emri istek ve yanıtında maskeli taşınır. \n 3.20. Fonksiyonel Olmayan Gereksinimler \n \n \n HHS’lerin sunuyor oldukları servisleri en fazla 6000 ms içinde yanıt dönecek şekilde tasarlamalıdır. \n \n \n HHS\'ler mevcut online işlem kanallarından sundukları erişilebilirlik ve performans kriterlerinden daha düşük bir hizmet kalitesi sunmamalıdır. \n \n \n HHS’lerin sunuyor oldukları servislere sistemin güvenlik ve sürekliliğini sağlamak adına rate limit koyma ihtiyaçları olur ise, standartlar ve ihtiyaçlara uygun şekilde bir konfigürasyon yapabilirler.  \n \n \n HHS rate limit tanımı uyguluyor ise; YÖS\'ler arasında ayrım yapmadan, adil ve makul sınırlar dahilinde uygulamalıdır.    \n \n \n YÖS tarafından kullanıcının başlatmadığı otomatik sorgu limitleri  3.21 Otomatik Sorgular  bölümünde detaylandırılmıştır. HHS\'lerin bu servisler için minimumda cevap vermesi gereken sorgu sayıları belirlenmiştir. Bu sayıların üzerinde yapılan servis çağrısına yanıt dönmek HHS inisiyatifindedir. Diğer taraftan kullanıcının başlattığı istekler için uygulanacak limitler, HHS\'nin online işlem kanallarından sunulan sorgu limitlerinden daha az olmamalıdır. \n \n \n HHS\'ler, çağrım limitlerini aşan istekler için HTTP 429 - Too Many Request hatasını dönmelidir. Örnek hata mesajı  3.18 HTTP Durum Kodları  bölümünde bulunmaktadır. Rate Limit özelinde tanımlanmış parametreler olan X-RateLimit-Limit, X-RateLimit-Remaining ve X-RateLimit-Reset alanları da   3.16 Yanıt Başlığı  bölümünde açıklanmıştır. YÖS\'ler de HHS\'nin belirlediği rate limit kurallarına uymakla yükümlüdür. \n 3.21. Otomatik Sorgular \n YÖS uygulaması, ÖHK\'nın başlattığı işlemler neticesinde API çağrımı yapabileceği gibi, sistemsel bir şekilde otomatik API çağrımı da yapabilir. \nHHS, API çağrımının ÖHK\'lı ya da ÖHK\'sız olduğunu istek parametreleri içerisinde yer alan PSU-Initiated parametresi ile anlar. Bu parametre “E” ise ÖHK’lı, “H” ise sistemsel yapılmış bir sorgu anlamına gelmektedir. \n ÖHK YÖS uygulamasına giriş yaptığı andan çıkış yaptığı ana kadar yani ÖHK oturumu boyunca yapılan API çağrımlarında, PSU-Initiated  değerinin "E" olması gerekmektedir.  YÖS uygulamasında ÖHK oturumu boyunca,  ÖHK\'nın bilgilerinden minimumda "bakiye" bilgisinin, uygulama arayüzlerinde güncel değeri ile online sorgularla gösterimi YÖS\'ün insiyatifindedir. \n ÖHK’nın başlattığı sorgular için HHS tarafından belirlenen üst rate limitler dahilinde çağrım yapılabilir. \n YÖS, aşağıdaki API\'leri sistemsel bir şekilde çağırabilir. \nHHS\'lerin bu servisler için minimumda cevap vermesi gereken sorgu sayıları belirlenmiştir. Bu sayıların üzerinde yapılan servis çağrısına yanıt dönmek HHS inisiyatifindedir. \nHHS tarafından izin verilen sorgu sayısının üzerinde yapılan bir sorgu için HTTP 429 durum kodu (Too Many Requests) hatası dönülmelidir. Yanıt gövdesinde tekrar hata nesnesinin oluşturulması HHS inisiyatifindedir.  HHS yanıt headerı alanında iletilecek X-RateLimit-Reset (saniye cinsinden) değeri kadar süre sonunda\nYÖS\'ün tekrar sorgulama yapması beklenmektedir. \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Otomatik Sorgu Sayısı \n \n \n \n \n 1 \n erisim-belirteci \n POST \n /erisim-belirteci \n --- \n \n \n 2 \n odeme-emri-rizasi \n GET \n /odeme-emri-rizasi/{rizaNo} \n Rıza bazında günde 4 \n \n \n 3 \n odeme-emri \n GET \n /odeme-emri/{odemeEmriNo} \n Rıza bazında günde 24 \n \n \n 4 \n ileri-tarihli-odeme-emri-rizasi \n GET \n /ileri-tarihli-odeme-emri-rizasi/{rizaNo} \n Rıza bazında günde 4 \n \n \n 5 \n ileri-tarihli-odeme-emri \n GET \n /ileri-tarihli-odeme-emri
16/{odemeEmriNo} \n Rıza bazında günde 24 \n \n \n 6 \n ileri-tarihli-odeme-emri-rizasi \n DELETE \n /ileri-tarihli-odeme-emri-rizasi/{rizaNo} \n --- \n \n \n 7 \n duzenli-odeme-emri-rizasi \n GET \n /duzenli-odeme-emri-rizasi/{rizaNo} \n Rıza bazında günde 4 \n \n \n 8 \n duzenli-odeme-emri \n GET \n /duzenli-odeme-emri/{talimatNo} \n Rıza bazında günde 24 \n \n \n 9 \n duzenli-odeme-emri-rizasi \n DELETE \n /duzenli-odeme-emri-rizasi/{rizaNo}} \n --- \n \n \n 10 \n hesap-bilgisi-rizasi \n GET \n /hesap-bilgisi-rizasi/{RizaNo} \n Rıza bazında günde 4 \n \n \n 11 \n duzenli-odeme-talimat-plani \n GET \n /duzenli-odeme-emri/{talimatNo}/odeme-plani \n Rıza bazında günde 24 \n \n \n 12 \n hesap-bilgisi-rizasi \n DELETE \n /hesap-bilgisi-rizasi/{RizaNo} \n --- \n \n \n 13 \n hesaplar \n GET \n /hesaplar \n Bireysel günde 4  Kurumsal günde 4 \n \n \n 14 \n hesaplar \n GET \n /hesaplar/{hspRef} \n Bireysel günde 4 Kurumsal günde 4 \n \n \n 15 \n bakiye \n GET \n /hesaplar/{hspRef}/bakiye \n Bireysel günde 24 Kurumsal ÖHK - günde 24 \n \n \n 16 \n bakiye \n GET \n /bakiye \n Bireysel günde 24 Kurumsal ÖHK - günde 24 \n \n \n 17 \n islemler \n GET \n /hesaplar/{hspRef}/işlemler \n Bireysel günde 4 Kurumsal ÖHK - saatte 12 \n \n \n 18 \n kartlar \n GET \n /kartlar \n Bireysel günde 4  Kurumsal günde 4 \n \n \n 19 \n kartlar \n GET \n /kartlar/{kartRef} \n Bireysel günde 4 Kurumsal günde 4 \n \n \n 20 \n kart-detay \n GET \n /kartlar/{kartRef}/kart-detay \n Bireysel günde 24 Kurumsal ÖHK - günde 24 \n \n \n 21 \n kart-hareketleri \n GET \n /kartlar/{kartRef}/kart-hareketleri \n Bireysel günde 32 Kurumsal ÖHK - günde 32 \n \n \n \n YÖS ve HHS son 24 saat içerisindeki sorgu sayılarını toplayarak elde ettiği sonuçlarla limit kontrolü yapmalıdır (Pencere yöntemi). \n İşlemler servisinin çağrım detaylarına  ^Bölüm 7.8  üzerinden ulaşılabilir. \n Hesap bilgisi rızasının YÖS tarafından otomatik bir şekilde iptal edilmesi durumu  ^Bölüm 9\'da  açıklanmıştır. \n Kart hareketleri için sistemsel sorgu yapıldığı durumda aynı ekstre türü için dönem değeri değiştikçe limit düşmeyecektir. Sayfalama yapıldığı durumlarda ise değişen sayfa numaraları özelinde de limit düşmeyecektir. Aynı sayfa ve aynı dönem özelinde tekrar sorgu yapılması halinde limit düşümü gerçekleşecektir. \n Ekstre türü değişmesi durumunda da limit düşümü olmalıdır. \n'},{frontmatter:{},regularPath:"/v2.0.0/deneyalani/hhs-yos-api.html",relativePath:"v2.0.0/deneyalani/hhs-yos-api.md",key:"v-d8bdee46",path:"/v2.0.0/deneyalani/hhs-yos-api.html",content:" \n   \n "},{frontmatter:{},regularPath:"/v2.0.0/deneyalani/ileri-tarihli-odeme-emri-api.html",relativePath:"v2.0.0/deneyalani/ileri-tarihli-odeme-emri-api.md",key:"v-b537e5f2",path:"/v2.0.0/deneyalani/ileri-tarihli-odeme-emri-api.html",content:" \n   \n "},{frontmatter:{},regularPath:"/v2.0.0/deneyalani/hesap-bilgisi-api.html",relativePath:"v2.0.0/deneyalani/hesap-bilgisi-api.md",key:"v-7b0a82c6",path:"/v2.0.0/deneyalani/hesap-bilgisi-api.html",content:" \n   \n "},{frontmatter:{},regularPath:"/v2.0.0/deneyalani/olay-bildirim-api.html",relativePath:"v2.0.0/deneyalani/olay-bildirim-api.md",key:"v-5a2e0d7d",path:"/v2.0.0/deneyalani/olay-bildirim-api.html",content:" \n   \n "},{frontmatter:{},regularPath:"/v2.0.0/deneyalani/odeme-emri-api.html",relativePath:"v2.0.0/deneyalani/odeme-emri-api.md",key:"v-35eaf572",path:"/v2.0.0/deneyalani/odeme-emri-api.html",content:" \n   \n "},{frontmatter:{},regularPath:"/v2.0.0/deneyalani/test.html",relativePath:"v2.0.0/deneyalani/test.md",key:"v-aa99c1f6",path:"/v2.0.0/deneyalani/test.html",content:" \n   \n "},{title:"EK-1: İstek/Cevap Mesajlarında Kullanılacak Nesne Yapıları",frontmatter:{},regularPath:"/v2.0.1/contents/ekler.html",relativePath:"v2.0.1/contents/ekler.md",key:"v-51c1355d",path:"/v2.0.1/contents/ekler.html",headers:[{level:2,title:"EK-1: İstek/Cevap Mesajlarında Kullanılacak Nesne Yapıları",slug:"ek-1-istek-cevap-mesajlarında-kullanılacak-nesne-yapıları"},{level:2,title:"EK-2: Sıralı Veri Türleri",slug:"ek-2-sıralı-veri-turleri"},{level:2,title:"EK-3: İstemci Sertifikalarının Tanım ve Yönetimi",slug:"ek-3-istemci-sertifikalarının-tanım-ve-yonet
16imi"},{level:2,title:"EK-4: Sunucu Sertifikaları",slug:"ek-4-sunucu-sertifikaları"},{level:2,title:"EK-5: Mesaj İmzalama Akışı",slug:"ek-5-mesaj-imzalama-akısı"},{level:3,title:"İmzalama Kuralları (YÖS)",slug:"imzalama-kuralları-yos"},{level:2,title:"EK-6: HHS/YÖS API Mimarisi",slug:"ek-6-hhs-yos-api-mimarisi"}],content:' EK-1: İstek/Cevap Mesajlarında Kullanılacak Nesne Yapıları \n Açık Bankacılık simülatör uygulaması üzerinde swagger dökümanlarının güncel sürümlerine erişim sağlanabilir. \n EK-2: Sıralı Veri Türleri \n \n \n \n Kod \n Açıklama \n \n \n \n \n TR.OHVPS.DataCode.BrcAlc \n İşlemin hesabı borçlandırdığı ya da alacaklandırdığı bilgisidir. B : Borç A : Alacak N : Finansal Olmayan \n \n \n TR.OHVPS.DataCode.EvetHayir \n E : Evet H : Hayır \n \n \n TR.OHVPS.DataCode.GkdTur \n GKD yapılmasını gerekli bulduğu durumda HHS, YÖS’ün belirlediği yöntemi dikkate alarak kendi belirlediği GKD yöntemini bildirir: Y: Yönlendirmeli GKD A: Ayrık GKD \n \n \n TR.OHVPS.DataCode.HHSDurumu \n A : Açık. Üretim Ortamında HHS’nin aktif bir şekilde hizmet vermesi durumu.  Y : Yaygınlaştırma. Üretim Ortamında HHS’nin kendisi tarafından tanımlanmış kısıtlı ÖHK’ya hizmet vermesi durumu.    G : Geçici Hizmet Veremiyor. HHS servislerinde teknik bir sorun olması nedeniyle HHS’nin hizmet verememesi durumu.  K: Kapalı. HHS’nin hizmet vermeme durumu. \n \n \n TR.OHVPS.DataCode.HHSYOSSrlmKrtr \n ‘kod’ : Kod ‘unv’ : Unvan \n \n \n TR.OHVPS.DataCode.HspDrm \n Hesabın durumunu belirtir: AKTIF PASIF KAPALI \n \n \n TR.OHVPS.DataCode.HspTip \n Hesap çeşidini belirtir: VADESIZ KREDILI_MEVDUAT_HESABI POS CEK YATIRIM \n \n \n TR.OHVPS.DataCode.HspTur \n Hesabın bireysel veya ticari nitelikte olduğunu belirtir: B: Bireysel T: Ticari \n \n \n TR.OHVPS.DataCode.IslemAmaci \n 01: Konut Kirası Ödemesi 02: İş yeri Kirası Ödemesi 03: Diğer Kira Ödemesi 04: E-Ticaret Ödemesi: Elektronik ticaret işlem amaçlı aktarımlar 05: Çalışan Ödemesi: Maaş, harcırah, prim gibi çalışan ödemeleri 06: Ticari ödeme: Ticari işletmelerin birbirlerine, kendi hesaplarına veya müşterilerine ödemeleri, borç, ithalat, ihracat, şirket satın alma, vb. kapsamında ödemeler 07: Bireysel Ödeme: Özel amaçlı (aile bireylerine, hediye, bağış, borç, alışveriş vs.) ödemeler 08: Yatırım: Mevduat, menkul kıymet, döviz, gayrı menkul, taşıt, varlık alımı, temettü ödeme, tahsilat vb. gibi yatırım amaçlı ödemeler 09: Finansal: Kredi, depo, repo, türev, finansal varlık alım/satımı vb. ödemeler 10: Eğitim ödemesi 11: Aidat ödemesi 12: Gayrimenkul alım ödemesi 13: Motorlu taşıt alım ödemesi 14: Borç verme/Borç ödeme 15: Hediye/bağış/yardım 16: Vergi/resim/harç ödemesi 17: Tazminat/sigorta ödemesi 18: Avukatlık/Danışmanlık/Müşavirlik Ödemesi 19: Sağlık ödemesi 20: Kripto/dijital varlık 21: Şans oyunları/bahis ödemesi 22: Eğlence/sosyal medya ödemesi 99: Diğer \n \n \n TR.OHVPS.DataCode.IslemTuru \n Hesap hareketleri (işlemler) sorgusunda dönülen İşlem Türü (islTur) parametresi aşağıdaki değerlerden birini alabilir: HAVALE EFT FAST PARA_YATIRMA PARA_CEKME YABANCI_PARA_HAVALE YATIRIM_HESABINA_AKTARIM YATIRIM_HESABINDAN_AKTARIM KURUM_FATURA_ODEMESI CEK SENET SIGORTA_ODEMESI UCRET_KOMISYON_FAIZ SGK_ODEMESI VERGI_ODEMESI DOVIZ_ALIM DOVIZ_SATIM KREDI_ODEMESI KREDI_KULLANIM KK_ODEMESI KK_NAKIT_AVANS SANS_OYUNU UYE_ISYERI_ISLEMLERI HGS_OGS_ISLEMLERI DOGRUDAN_BORCLANDIRMA_SISTEMI DIGER \n \n \n TR.OHVPS.DataCode.IzinTur \n 01: Temel Hesap Bilgisi 02: Ayrıntılı Hesap Bilgisi 03: Bakiye Bilgisi 04: Temel İşlem (Hesap Hareketleri) Bilgisi 05: Ayrıntılı İşlem Bilgisi 06: Anlık Bakiye Bildirimi 07: Temel Kart Bilgisi 08: Detaylı Kart Bilgisi 09: Ayrıntılı Kart İşlem Bilgisi \n \n \n TR.OHVPS.DataCode.KareKodAksTur \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  01: FAST katılımcısından dinamik doğrulamalı hizmet alınan işyeri ödemesi 02: FAST katılımcısından statik doğrulamalı işyeri ödemesi 03: Kişiden kişiye ödemeler \n \n \n TR.OHVPS.DataCode.KaynakTip \n HESAP_BILGISI_RIZASI  ODEME_EMRI_RIZASI   ODEME_EMRI   ILERI_TARIHLI_ODEME_EMRI_RIZASI   ILERI_TARIHLI_ODEME_EMRI   DUZENLI_ODEME_EMRI_RIZASI  DUZENLI_ODEME_PLANI  DUZENLI_ODEME_EMRI   BAKIYE    COKLU_ISLEM_TALEBI    HHS    YOS   KART_BILGILERI \n \n \n TR.OHVPS.DataCode.KimlikTur \n Kod, Tip, Format K , TCKN , N11 M , MNO , AN1..30 (HHS’ye özel bireysel veya kurum müşteri numarası) Y , YKN , N11 P , PNO , AN7..9 \n \n \n TR.OHVPS.DataCode.KolasHspTur \n Hesabın bireysel veya ticari nitelikte olduğunu belirtir: B: Bireysel T: Ticari \n \n \n TR.OHVPS.DataCode.KolasTur \n Müşterinin sorgulama istediği Kolay Adres Tipi değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır: T: Telefon Numarası E: E-Posta K: TCKN V: VKN Y: YKN P: Pasaport Numarası \n \n \n TR.OHVPS.DataCode.KurumKimlikTur \n Kod, Tip, Format K , TCKN , N11 M , MNO , AN1..30 (HHS’ye özel bireysel veya kurum müşteri numarası) V , VKN , AN10 \n \n \n TR.OHVPS.DataCode.LogoArkaPlan \n B :  Logoların arka planının beyaz olması (Erkek Logo)   K : Logoların arka planının renkli/koyu olması (Dişi Logo) \n \n \n TR.OHVPS.DataCode.LogoFormat \n SVG :  Logonun svg formatında olmasını ifade eder. Logonun 1:2 oranında olması gerekmektedir.   PNG : Logonun png formatında olmasını ifade eder. Logonun 500 X 1000 px olması gerekmektedir. \n \n \n TR.OHVPS.DataCode.LogoTur \n FULL_LOGO   : Yazı ve ikon şekillerin bir arada olduğu logo   ICON_LOGO : İkon şekillerin olduğu ( Sadece görsel olan-yazısız ) logo \n \n \n TR.OHVPS.DataCode.OdemeAmaci \n Ödemenin Amacına yönelik olarak aşağıdaki değerlerden birini alır: 01: Konut Kirası Ödemesi 02: İş yeri Kirası Ödemesi 03: Diğer Kira Ödemesi 04: E-Ticaret Ödemesi: Elektronik ticaret işlem amaçlı aktarımlar 05: Çalışan Ödemesi: Maaş, harcırah, prim gibi çalışan ödemeleri 06: Ticari ödeme: Ticari işletmelerin birbirlerine, kendi hesaplarına veya müşterilerine ödemeleri, borç, ithalat, ihracat, şirket satın alma, vb. kapsamında ödemeler 07: Bireysel Ödeme: Özel amaçlı (aile bireylerine, hediye, bağış, borç, alışveriş vs.) ödemeler 08: Yatırım: Mevduat, menkul kıymet, döviz, gayrı menkul, taşıt, varlık alımı, temettü ödeme, tahsilat vb. gibi yatırım amaçlı ödemeler 09: Finansal: Kredi, depo, repo, türev, finansal varlık alım/satımı vb. ödemeler 10: Eğitim ödemesi 11: Aid
16at ödemesi 12: Gayrimenkul alım ödemesi* 13: Motorlu taşıt alım ödemesi* 14: Borç verme/Borç ödeme* 15: Hediye/bağış/yardım* 16: Vergi/resim/harç ödemesi* 17: Tazminat/sigorta ödemesi* 18: Avukatlık/Danışmanlık/Müşavirlik Ödemesi* 19: Sağlık ödemesi* 20: Kripto/dijital varlık* 21: Şans oyunları/bahis ödemesi* 22: Eğlence/sosyal medya ödemesi*   Liste içerisinde * ile işaretlenen \'Ödeme Amacı\' değişiklikleri, TCMB geçiş süreciyle senkronize şekilde, 02 Nisan 2026 gün sonu ile birlikte devreye alınacaktır. \n \n \n TR.OHVPS.DataCode.OdemeDurumu \n Ödemenin durumunu gösterir. Alabileceği değerler: 01: Gerçekleşti (Ödeme ilgili ödeme sistemine iletildi ve alıcı hesabına ulaştı.)  02: Gönderildi (Ödeme ilgili ödeme sistemine iletildi ancak alıcı hesabına ulaştığına dair teyit alınmadı.)İşlemin son durumunun teyidi için YÖS sorgulama yapmalıdır. 03- Gerçekleşmedi (Ödemenin ilgili ödeme sistemine işletiminde veya işlenmesi sırasında hata, zaman aşımı, sistemin gün sonu işlemlerine başlaması vb. durum oluştu ve ödeme gereçeklemedi veya iade edildi.) 04- Onayda bekliyor (Ödeme emri veya ileri tarihli ödeme emri alındı. Çoklu onay akışının tamamlanması bekleniyor.) 05- Ödeme Bekleniyor ( Ödeme Sistemine gönderilmeden önceki statüdür.) 06- Kısmen Gerçekleşti ( İleri tarihli ve düzenli ödeme talimatlarında kısmi ödeme yapılan işlemler için geçerli statüdür.) 07- İptal Edildi ( Ödeme sistemine gönderilmeden önce müşteri ya da herhangi bir sebepten iptal edilen durumlarda kullanılabilir.) \n \n \n TR.OHVPS.DataCode.OdemeKaynak \n I: İnternet bankacılığından gönderilen ödemelerde kullanılır. A: Otomatik para makineleri (ATM) ile gönderilen ödemelerde kullanılır. T: Telefon bankacılığı ile gönderilen ödemelerde kullanılır. K: Kiosklar aracılığıyla gönderilen ödemelerde kullanılır. S: Şubeden girilen ödemelerde kullanılır. M: Mobil uygulamadan gönderilen ödemelerde kullanılır. D: Yukarıdakiler dışındaki ödeme kaynaklarından gönderilen ödemelerde kullanılır.  O: Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır. \n \n \n TR.OHVPS.DataCode.OdemeSistemi \n İşlemin yönlendirildiği Ödeme Sistemine göre aşağıdaki değerlerden birini alabilir: H: Havale F: FAST E: EFT (PÖS) değerlerinden birini alabilir. \n \n \n TR.OHVPS.DataCode.OhkTur \n B: Bireysel  K: Kurumsal \n \n \n TR.OHVPS.DataCode.OhkTanimTip \n TCKN: TCKN   (ohkTanimDeger N11 olarak gönderilmelidir.)  MNO:        HHS’ye özel bireysel veya kurum müşteri numarası (OHKTanimDeger AN1..30 olarak gönderilmelidir. )   YKN:      Yabancı Kimlik Numarası (OHKTanimDeger N11 olarak gönderilmelidir.)    PNO:      Pasaport numarsı (ohkTanimDeger AN7..9 olarak gönderilmelidir.)    GSM:       Cep telefonu numarası (ohkTanimDeger N10 olarak gönderilmelidir.)   IBAN:    IBAN numarası (OHKTanimDeger AN26 olarak gönderilmelidir.) \n \n \n TR.OHVPS.DataCode.OlayTip \n KAYNAK_GUNCELLENDI  AYRIK_GKD_BASARILI AYRIK_GKD_BASARISIZ HHS_YOS_GUNCELLENDI \n \n \n TR.OHVPS.DataCode.YOSDurumu \n A : Açık. Üretim Ortamında YÖS’ün aktif bir şekilde hizmet vermesi durumu.   G : Geçici Hizmet Veremiyor. YÖS servislerinde teknik bir sorun olması nedeniyle YÖS\'ün hizmet verememesi durumu.   K: Kapalı. YÖS\'ün hizmet vermeme durumu. \n \n \n TR.OHVPS.DataCode.PSUInitiated \n ‘E’ : Evet  ‘H’ : Hayır   ‘O’ : Olay Bildirim \n \n \n TR.OHVPS.DataCode.RizaDurumu \n B: Yetki Bekleniyor Y: Yetkilendirildi K: Yetki Kullanıldı E: Yetki Ödeme Emrine/Talimata Dönüştü S: Yetki Sonlandırıldı I :Yetki Iptal \n \n \n TR.OHVPS.DataCode.RizaIptDtyKod \n ‘01’ :Yeni Rıza Talebi ile İptal ‘02’ :Kullanıcı İsteği ile HHS üzerinden İptal ‘03’ :Kullanıcı İsteği ile YÖS üzerinden İptal ‘04’ :Süre Aşımı : Yetki Bekleniyor ‘05’ :Süre Aşımı : Yetkilendirildi ‘06’ :Süre Aşımı : Yetki Ödemeye Dönüşmedi ‘07’ :GKD iptali : Aynı rıza no ile mükerrer çağrımı ‘08’ :GKD iptali : Rızano ile TCKN uyuşmaması ‘09’ :GKD iptali : Uygun ürünü bulunmuyor ‘10’ :GKD iptali : HHS Açık Bankacılık kanalı işleme kapalı ’11’ :GKD iptali : Hesap Yetki S
16orunu ‘12’ :GKD iptali : ÖHK HHS kontrollerini aşamadı ‘13’ :GKD iptali : ÖHK isteği ile GKD’den vazgeçildi ‘14’ :GKD iptali : Fraud Şüphesi ‘15’ :Hesap Rıza Güncelleme Talebi ile İptal  ‘99’ :GKD iptali : Diğer \n \n \n TR.OHVPS.DataCode.RizaTip \n H: Hesap Bilgisi Rızası O: Ödeme Emri Rızası  I: İleri Tarihli Ödeme Emri Rızası D: Düzenli Ödeme Emri Rızası \n \n \n TR.OHVPS.DataCode.SrlmYon \n ‘A’: Azalan değerle sıralama ‘Y’: Artan değerle sıralama \n \n \n TR.OHVPS.DataCode.VarYok \n 0 : Kayıt Yok   1 : Kayıt Var \n \n \n TR.OHVPS.DataCode.YetTip \n Alabileceği değerlere göre hangi belirtecin döneceğine karar verilir. yet_kod yenileme_belirteci \n \n \n TR.OHVPS.DataCode.ZmnAralik \n 0 : Kayıt Yok  1 : 0-2 saat 2 : 2 saat 1 dakika-24 saat  3 : 1-3 gün   4 : 4-15 gün\t  5 : 16 gün ve üstü \n \n \n TR.OHVPS.DataCode.HizmetTipi \n 01 :  Ayrık GKD  02 : İleri Tarihli Ödeme 03 : Düzenli Ödeme \n \n \n TR.OHVPS.DataCode.OdemePeriyodu \n G :  Günlük  H : Haftalık A : Aylık D : Diğer \n \n \n TR.OHVPS.DataCode.KartTip \n B : Banka Kartı  K : Kredi Kartı P : Ön Ödemeli(Prepaid) Kart \n \n \n TR.OHVPS.DataCode.AltKartTip \n A : Asıl  E : Ek Kart S : Sanal Kart \n \n \n TR.OHVPS.DataCode.KartStatu \n A : Açık/Aktif  P : Pasif I : İptal \n \n \n TR.OHVPS.DataCode.IslemPuanDurumu \n 01 : Puan Kazanımı  02: Puan Kullanımı  03: Puan İade  04: Puan İptal \n \n \n TR.OHVPS.DataCode.KartSema \n T : TROY  M : Mastercard V : Visa U : UnionPay A : American Express J : JCB \n \n \n TR.OHVPS.DataCode.KartTuru \n B : Bireysel  T :Ticari \n \n \n TR.OHVPS.DataCode.KartFormu \n F : Fiziksel  D :Dijital \n \n \n TR.OHVPS.DataCode.EkstreStatu \n A : Aktif  P : Pasif \n EK-3: İstemci Sertifikalarının Tanım ve Yönetimi \n Tüm katılımcıların GEÇİT\'e erişebilmesi için, BKM tarafından yapılan istemci sertifika doğrulamasından geçmesi gerekmektedir. İstemci sertifikası üretilmeden önce katılımcıların CSR üretme akışını tamamlaması gerekmektedir. \n OpenSSL ile CSR (Certificate Signing Request) Oluşturma \nAşağıdaki komut ile 2048-bit RSA private key ve CSR oluşturulur. \nopenssl req -new -newkey rsa:2048 -nodes -keyout PRIVATEKEY.key -out CSR.csr \n CSR ile ilgili detay bilgilerin girişinde; \nCommon Name (CN) olarak 4 karakterli hhsKod ya da yosKod değeri ile, \ndiğer alanlar için de kurum bilgileriniz ile giriş yapılır. \n Tüm bilgilerin girilmesinden sonra oluşan private key dosyası kurumunuzda saklanır.\nCSR dosyası ise istemci sertifika üretmek üzere kullanılır. Bu aşamada takip edilmesi gereken adımlar şu şekildedir: \n Katılımcıların, TRIP ortamı üzerinden, BKM Tarafından yetki verilmiş kullanıcılarının görebileceği "İstemci Sertifika Talebi" menü adımına giriş yapmaları beklenir. Açılan ekranda,"CSR Dosyası Yükleme" alanı içerisine, katılımcının üretmiş olduğu csr dosyası yüklenir. Yaklaşık 1 dakika içerisinde kuruma özel olarak üretilmiş olan client sertifikası indirilmeye hazır hale gelecektir. "İndir" butonu ile client sertifika indirilir. İstemci tarafında web isteğinin ilgili sertifika ile ilişkilendirilerek oluşturulması gerekmektedir. \n Uzun dönemli olarak hazırlanacak olan sertifikalar sertifikasyon ve üretim ortamlarında kullanılacaktır. Sertifikaların işlevselliği ve geçerliliği bu aşamalarda sınanacaktır. \n GEÇİT\'in test ve üretim ortamları ayrımında istemci sertifikaları, HHS Listeleme API erişimleri ve Sertifikasyon bağlantıları Şekil 15-HHS/YÖS API Mimarisi Diagramında resmedilmiştir. \n EK-4: Sunucu Sertifikaları \n Sunucu sertifikalarının endpoint bilgisini (Fqdn) içerecek ve global bir Certification Authority tarafından imzalanmış olarak sunulması gerekmektedir.\nÖrneğin; entegrasyon formu içerinde yer alan URL bilgisinin (test.xbank.com.tr) sertifika içerisinde tanımlı olması ve bu sertifikanın global bir CA örneğin Verisign tarafından imzalanmış olarak sunulması gerekmektedir. \n Hizmet sağlayıcı olan HHS\'ler tarafından sunucu sertifikaları uygulanmalıdır. \n EK-5: Mesaj İmzalama Akışı \n Dijital imzalama yapısı, 
16ÖHVPS API’de gerçekleştirilen işlemlerin ve taşınan verilerin bütünlük ve inkâr edilemezliğini sağlamak amacıyla kurgulanmıştır.  İmzaların kaynak bazında hangi istek ve yanıtlara uygulandığı belirlidir. \n API yalnızca TLS\'ye dayanırsa, dijital kayıtları ve inkâr edilemezlik kanıtlarını tutmak zor olur. Bu nedenle, TLS\'ye dayanmayan bir inkâr edilemezlik çözümü olarak API isteğinin HTTP başlığında bir JWS kullanılarak sağlanabilir. \n HTTP isteğinin gövdesinin hash fonksiyonu (SHA256) ile özeti alınacaktır. Elde edilen özet, asimetrik anahtarları destekleyen bir algoritma kullanılarak imzalanacak ve JWS elde edilecektir. İsteğin kendinize geldiği durumda body üzerinde hiç bir değişikliğe tabi tutmadan (serialize/deserialize, minify, trim, vb yapmadan) doğrulama yapmanız gerekmektedir. Aynı şekilde isteğin kendinizden çıktığı aşamada da response body üzerinde hiç bir değişikliğe tabi tutmadan (serialize/deserialize, minify, trim, vb yapmadan) mesaj imzalama yapılmalıdır. \n Bu kapsamda imzalama akışı aşağıdaki gibi olmalıdır: \n \n HHS ve YÖS öncelikle özel ve açık anahtarlarını oluşturmalıdır. Bu anahtarları oluşturmak için aşağıda “openssl” kullanılarak oluşturma örneği paylaşılmıştır. Bu anahtarlardan özel olan anahtar mesajı imzalamak için kullanılacak olup, açık anahtar ise mesajı doğrulamak amacıyla mesajın alıcısı tarafından kullanılacaktır. \n \n Özel anahtarın oluşturulması. private.pem => Özel anahtar  \n openssl genrsa -out private.pem 2048 \n Özel anahtardan açık anahtarın oluşturulması. public_key.pem => Açık anahtar (BKM ile paylaşılacak açık anahtar) \n openssl rsa -in private.pem -pubout -outform PEM -out public_key.pem \n Opsiyonel olarak özel anahtarın PCKS8 formatına çevrilmesi (Java açısından PCKS8 formatında olma ihtiyacı nedeniyle). private_key.pem => Özel anahtarın formatlanmış hali.  \n openssl pkcs8 -topk8 -inform PEM -in private.pem -out private_key.pem –nocrypt \n \n \n Açık ve Özel anahtarlar oluşturulduktan sonra Açık Anahtar BKM ile paylaşılır. BKM bu açık anahtarı diğer katılımcıların ulaşabilmesi ve alabilmesi için bir Anahtar Deposu yaklaşımı ile bünyesinde tutar. İlgili anahtarı iletebilmek ve alabilmek için kullanılacak HHS/YOS API ye erişim detayları EK-6 bölümünde detaylı olarak paylaşılmıştır.  Eğer kurumun ilgili anahtar çiftinin yenilenme durumu söz konusu ise yenilemenin hemen ardından açık anahtar yeni bir imzalama yapılmadan önce mutlaka BKM ile paylaşılmalıdır. \n \n \n İmzalı mesajı açacak olan kurum mesajı imzalayan kurumun açık anahtarını her sorguda yeniden almak durumunda değildir. Belirli periyodlarda kendi ortamındaki anahtarı yenileyerek sistemi işletebilir. Ancak imzalayan kurum anahtar çifti yenilemesi yaptığında BKM ile açık anahtarını paylaşsa dahi imzalı mesajı doğrulayacak taraf eski açık anahtar ile doğrulama yapmaya çalıştığı için hata alacaktır. Bu ilk hata durumunda hızlıca BKM üzerinden yeni anahtarı alıp mesajı tekrar doğrulamayı denemelidir. Eğer yine hata alıyor ise doğrulama işlemini hata statüsüne almalıdır. Bu sebeple anahtar yenileyen kurum yeni açık anahtarını yeni bir mesaj imzalama yapmadan önce mutlaka BKM ile paylaşmalıdır. \n \n \n PSU-Fraud-Check alanı için de JWT formatında çıktı hazırlanması beklenmektedir. Örnek bir PSU-Fraud-Check payload değeri aşağıdaki gibidir; \n {"AnomalyFlag": "0", \n"LastPasswordChangeFlag": "1", \n"FirstLoginFlag": "1", \n"DeviceFirstLoginFlag": "1", \n"BlacklistFlag": "0", \n"MalwareFlag": "0", \n"UnsafeAccountFlag": "0", \n"exp": 1663424479, \n"iat": 1663338079, \n"iss": "[https://apigw.bkm.com.tr|https://apigw.bkm.com.tr/]" } \n İmzalama Kuralları (YÖS) \n Bir YÖS üzerinden başlayan akış örnek olarak paylaşılmıştır. \n \n \n YÖS, mesaj imzalama gerektiren her API isteğinin HTTP gövdesini (request body) kendi özel anahtarı ile şifreleyerek imza bilgisini oluşturur. \n \n \n Ardından bu imza verisini, göndereceği mesajın istek başlığında yer alan X-JWS-Signature alanında göndermelidir. \n \n \n X-JWS-Signature alanında gönderilecek olan bilgi aşağıdaki yöntem ile oluşturulmalıdır. \n \n \n Bu alana yazılacak olan bilgi JWT formatında oluşturulmalıdır. \n \n \n Bir JWT, header-payload-signature alanlarından oluşmaktadır. \n \n Header alanında JWT’yi imzalamak için kullanılacak algoritma belirtilmelidir.  Standartlar kapsamında RS256 kullanılacaktır. \n Payload kısmında özel olarak oluşturulacak olan “body” claim alanına istek gövdesi (request body) verisinin SHA256 hash değeri karşılığı yazılmalıdır. \n JSON payload oluşturulurken RFC 7519 baz alınmalıdır. "iss" (Issuer) Claim, "exp" (Expiration Time) Claim, "iat" (Issued At) Claim, “body” Claim alanlarının gönderilmesi zorunludur. ^RFC7519 \na.\t"iss" (Issuer) Claim : Kurumunuza özel bilgidir. \nb.\t"exp" (Expiration Time) Claim: Saniye cinsinden (Unix time) imzanın son geçerli olduğu tarih. Bu tarih  mevcut sunucu saatinizden 60 dakika sonra olacak şekilde kullanılmalıdır. \nc.\t"iat" (Issued At) Claim : Saniye cinsinden (Unix time) imzanın oluşturulduğu tarih. Bu tarih  mevcut sunucu saatinizden 5 dakika önce olacak şekilde kullanılmalıdır. \nd.\t“body” Claim : istek gövdesi (request body) verisinin SHA256 hash değeri karşılığı. \n Signature alanında da özel anahtar ile imzalanmış olan imza içeriği yer alacaktır. \n \n X-JWS-Signature:   JWS imzasını içeren üstbilgi. Bu başlığın ne zaman belirtilmesi gerektiği hususu ilgili endpoint için belirtilmiştir. \n Örnek X-JWS-Signature Payload Değeri \n { \n"iss": "https://apigw.bkm.com.tr", \n"exp": 1646832405, \n"iat": 1646746005, \n"body": "c543072f97a761a1d891dc81acc380bc1e6f61ca6541bd93ebfdece338457922" \n} \n \n \n \n \n YÖS, isteği gönderir. Sadece mesajın bütünlüğünü ve doğruluğunu teyit amacı ile istek gövdesi (request body) SHA256 hash değeri imzalanarak X-JWS-Signature alanında bu imza iletilir. İsteğin gövde (request body) kısmı açık ve şifresiz olarak gönderilmektedir. \n \n \n HHS, isteği alır, talebi gerçekleştirmeden önce aldığı API isteklerinin imzasını doğrulamalıdır. X-JWS-Signature alanındaki JWT aşağıdaki adımlarla doğrulanmalıdır. \n \n Header kısmındaki algoritmanin RS256 olduğu kontrol edilir. \n Gönderen kurumun açık anahtarı ile JWT verify (doğrulama) işlemi yapılır. \n Yukarıdaki işlemlerin doğruluğunun ardından JWT’nin payload kısmındaki “body” claim alanındaki bilginin, isteğin gövde verisinin SHA256 hash değerlerinin aynı olduğu kontrol edilir. \n Örnek checksum değeri   "a64b19f95eeb1fb0a0a3e2dbbc6e3d8472c52184d4543417ddc6d156fc5c5571" veya   "A64B19F95EEB1FB0A0A3E2DBBC6E3D8472C52184D4543417DDC6D156FC5C5571" şeklinde olabilir. İki hali de aynı değere sahiptir. Kontrollerde buna dikkat edilmesi gerekmektedir. \n \n \n \n Yukarıdaki işlemler ile doğruluğu teyit edilmiş olan isteğin talebi gerçekleştirir. \n \n \n Eğer istek doğrulanamıyor ise gönderen kurumun açık ve özel anahtar çifti yenilenmiş olabilir. \n \n \n BKM HHS API  üzerinden ilgili kurumun bilgilerini (kurum ko
16du vs) kullanarak kurumun detay bilgileri çeker ve kendi ortamında yeniler. \n \n \n Ardından imzayı tekrar açık anahtar ile doğrulayarak kontroller gerçekleştirilir. (Eğer halen doğrulama işlemi başarısız ise bu istek için hata akışı çalıştırılır.  TR.OHVPS.Resource.InvalidSignature  kodu ile hata üretilebilir.) \n \n \n İmza bilgisinin beklendiği (x-jws-signature) servislerde, bu bilginin iletilmediği durumlarda  TR.OHVPS.Resource.MissingSignature  hatası üretilebilir. \n \n \n HHS isteği işledikten sonra cevabı oluştururken de yukarıdaki akışlar ile göndereceği cevabı imzalamalıdır. \n \n \n İstek yanıt gövdesinin SHA256 checksum değeri için hexadecimal çıktı kullanılacaktır. Oluşacak çıktının 64 karakter olması beklenmektedir. Kontrol için "^[A-Fa-f0-9]{64}$" RegEx tarifini kullanabilirsiniz. \n \n \n Örnek bir gövde: \n {"katilimciBlg":{"hhsKod":"8000","yosKod":"8000"},"gkd":{"yetYntm":"Y","yonAdr":"https://boss-test.bkm.com.tr/boss/ab/yosSimulator/8000?drmKod=6021de9f-55e7-454a-94be-2044866b22e1"},"kmlk":{"kmlkTur":"M","kmlkVrs":"123456","ohkTur":"B"},"hspBlg":{"iznBlg":{"iznTur":["01","02","03","04","05"],"erisimIzniSonTrh":"2022-10-12T23:59:59+03:00","hesapIslemBslZmn":"2021-10-10T00:00:00+03:00","hesapIslemBtsZmn":"2023-10-10T23:59:59+03:00"}}}\n \n Bu gövdenin checksum\'ı: \n a64b19f95eeb1fb0a0a3e2dbbc6e3d8472c52184d4543417ddc6d156fc5c5571\n \n Bu checksum\'ın iletildiği x-jws-signature başlık değeri: \n eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FwaWd3LmJrbS5jb20udHIiLCJleHAiOjE2NjU0NzU1NjIsImlhdCI6MTY2NTM4OTE2MiwiYm9keSI6ImE2NGIxOWY5NWVlYjFmYjBhMGEzZTJkYmJjNmUzZDg0NzJjNTIxODRkNDU0MzQxN2RkYzZkMTU2ZmM1YzU1NzEifQ.Q65PI_1fTEzzBMirvmJvXgVX3orhhZ4_UqujtGdHkU7me-1ymIjvPrzy3kfyER1pedFb7HDCBuPvYoqjX8eUnpiiZsxfzCiEa0McIhoFeUOggq-O8VihItp8bLr2DWwQ9JHN1-WXB2mL31KAKFAL1VY9-DXuAdT-RfE_SLYsl2ycmNy4ti4XvfDvvlE56ZsieFZ727VuwR8wi7F0kKDc6UhjaMF9xcUeAM1fxX-bmcOaOo1NZGC0vvgjNZKz_OJrN-q8VhWYnQPiJ7wY7S9IG8bHIkBImKSVf8LuOEvl8u0BZzADLH1iOBd9x2l1plyI_NLPTrnOqhWhKlljkkJBCg\n \n Eğer PSU-Fraud-Check için başlık gönderilecekse, yine JWT formatında imza üretilmelidir. Örnek bir psu-fraud-check başlık değeri: \n eyJhbGciOiJSUzI1NiJ9.eyJBbm9tYWx5RmxhZyI6IjAiLCJMYXN0UGFzc3dvcmRDaGFuZ2VGbGFnIjoiMSIsIkZpcnN0TG9naW5GbGFnIjoiMSIsIkRldmljZUZpcnN0TG9naW5GbGFnIjoiMSIsIkJsYWNrbGlzdEZsYWciOiIwIiwiTWFsd2FyZUZsYWciOiIwIiwiVW5zYWZlQWNjb3VudEZsYWciOiIwIiwiZXhwIjoxNjY1NDc1NTU2LCJpYXQiOjE2NjUzODkxNTYsImlzcyI6Imh0dHBzOi8vYXBpZ3cuYmttLmNvbS50ciJ9.DhUh_nsXDuNIrvsQ3KOhOXdVcJg6fTDVW8K1oea8kLtmb7n-_hJHY3mWX5zzobu-Vh2VvFzIxPhHtol6gLHFktmIMiQ9TDHb_mRZFXgJB4ToNfqc3Fy9mi5bS8By2IYi1HxDaCStstaZDaunzXfHCtqybfZXyk6teDrf-iIf6lqX9Keo7GZO-Y7mP7C13-c_QwyNKrZK4TZwUQbecRqXYn1DcEHM7kukQHTar_hKBWkXPmNpScY0J2rKksr4ejR1uLhdQm-Pdwoe9y6qrNEB79vMLBkRNtbuV0vc1GYHp_YKkzBKBI_58uuB2GD9877CsrcRnHMQb88xpxiPKh6-ew\n EK-6: HHS/YÖS API Mimarisi \n HHS/YÖS API Uygulama Mimarisinde Test ve Üretim ortamlarında aşağıdaki alanda yer almaktadır. \n \n Şekil 15: HHS/YÖS API Mimarisi \n'},{title:"8.\tDüzenli Ödeme Emri Başlatma Hizmeti",frontmatter:{},regularPath:"/v2.0.1/contents/duzenli-odeme-emri-hizmeti.html",relativePath:"v2.0.1/contents/duzenli-odeme-emri-hizmeti.md",key:"v-1d292df6",path:"/v2.0.1/contents/duzenli-odeme-emri-hizmeti.html",headers:[{level:2,title:"Düzenli Ödeme Emri Başlatma Hizmeti için Erişim Adresleri (Endpoints)",slug:"duzenli-odeme-emri-baslatma-hizmeti-icin-erisim-adresleri-endpoints"},{level:2,title:"8.1.\tADIM 0 - Düzenli Ödeme Emri Rızası Başlatma Isteği",slug:"_8-1-adim-0-duzenli-odeme-emri-rızası-baslatma-istegi"},{level:2,title:"8.2.\tADIM 1 - Düzenli Ödeme Emri Rızasının Hazırlanması",slug:"_8-2-adim-1-duzenli-odeme-emri-rızasının-hazırlanması"},{level:2,title:"8.3.\tADIM 2- Düzenli Ödeme Emri Rızasının Yetkilendirilmesi",slug:"_8-3-adim-2-duzenli-odeme-emri-rızasının-yetkilendirilmesi"},{level:2,title:"8.4.\tADIM 2.1 – Düzenli Ödeme Emri Rızasının Sorgulanması (isteğe bağlı)",slug:"_8-4-adim-2-1-duzenli-odeme-emri-rızasının-sorgulanması-istege-baglı"},{level:2,title:"8.5.\tADIM 3- Duzenli Ödeme Emrinin Oluşturulması",slug:"_8-5-adim-3-duzenli-odeme-emrinin-olusturulması"},{level:2,title:"8.6.\tADIM 3.1- Duzenli Ödeme Emri Sorgusu (İsteğe bağlı)",slug:"_8-6-adim-3-1-duzenli-odeme-emri-sorgusu-istege-baglı"},{level:2,title:"8.7.\tADIM 4- Düzenli Ödeme Planı Sorgulama",slug:"_8-7-adim-4-duzenli-odeme-planı-sorgulama"},{level:2,title:"8.8.\tADIM 5- Düzenli Ödeme Emri Rıza İptali",slug:"_8-8-adim-5-duzenli-odeme-emri-rıza-iptali"}],content:" 8.\tDüzenli Ödeme Emri Başlatma Hizmeti \n Ödeme hizmeti kullanıcısının düzenli tekrar eden bir ödeme talimatı gerçekleştirmek istediği ödeme emirlerinde bu hizmeti kullanabilir. Ödemenin Havale / PÖS / FAST ödeme sistemlerinden hangisi ile gerçekleşeceğine, ödeme günü geldiğinde HHS karar verir. \n Düzenli ödeme hizmetini online bankacılık sistemlerinde sunan HHS'lerin, ÖHVPS üzerinden bu hizmetleri sunması zorunludur. Mevcutta online kanallarından bu hizmeti sundukları müşteri segmentine (bireysel,kurumsal vb.), ÖHVPS üzerinden hizmet sunmaya devam etmeleri gerekmektedir. YÖS, bireysel müşteri özelinde düzenli ödeme hizmeti vermeyen HHS'ye düzenli ödeme talimatı rızası isteği yapması durumunda HHS tarafından  TR.OHVPS.Business.IndividualCustomerNotSupported  hatası , kurumsal müşteri özelinde düzenli ödeme talimatı rızası isteği yapıldığında HHS tarafından  TR.OHVPS.Business.CorporateCustomerNotSupported  hatası verilmelidir. \n HHS'ler düzenli ödeme hizmetini sunuş bilgilerini HHS API aracılığı ile yayınlayacaklardır. YÖS, düzenli ödeme hizmeti başlatabileceği HHS'lerin listesini HHS API'de yer alan \"hizmetTipi\":\"03\" parametresi ile alabilir. YÖS, düzenli ödeme hizmeti sunmayan HHS'ye düzenli ödeme talimat rızası isteği yapması durumunda HHS tarafından  TR.OHVPS.Business.RegularPaymentOrderNotSupported  hatası 
16iletilmelidir. \n Düzenli ödeme emri hizmetinde TRY dışındaki yabancı para birimleri için HHS tarafından destek verilmemesi durumunda  TR.OHVPS.Business.InvalidCurrencyCode  hataası verilmelidir. \n Düzenli ödeme talimatı güncelleme hizmeti YÖS üzerinden yapılamayacaktır. ÖHK aktif olan düzenli ödeme talimat rızasını iptal ederek, yeniden oluşturabilecektir. \n HHS üzerinden ilgili güncelleme hizmeti sağlanabilir. Ödeme planında yapılan güncelleme sonucunda olay bildirim ile YÖS'e bildirim sağlanacaktır. HHS üzerinden güncelleme yapılırken son ödeme günü için ileri bir tarihe güncelleme adımı olmamalıdır. Sadece ilk oluşturulan düzenli ödeme emri içerisindeki son ödeme gününden öncesi olacak şekilde güncelleme yapılmasına izin verilmelidir. \n Düzenli Ödeme Emri Başlatma Hizmeti 5 temel akışdan oluşur: \n \n Düzenli Ödeme Emri Rızası Başlatma İsteğinin tetiklenmesi:  ÖHK ÖBHS mobil uygulama ya da websitesinden düzenli ödeme emri rızasını başlatır. \n Düzenli Ödeme Emri Rıza Hazırlanması:  ÖBHS, “Düzenli Ödeme Emri Rızası Başlatma” işlemi için izin oluşturulması isteğini HHS’ye iletir. \n Düzenli Ödeme Emri Rızasının Yetkilendirilmesi:  HHS, gerekli gördüğü durumlarda ÖHK’yı GKD ile doğrular ve düzenli ödeme emri rızasına erişim için erişim belirteci tanımlanmasını temin eder. \n Düzenli Ödeme Emrinin Başlatılması:  ÖBHS, “düzenli ödeme emri”ni HHS’ye iletir. \n Düzenli Ödeme Emri Rıza Durumu, Düzenli Ödeme Emri Durumu, Düzenli Ödeme Emri Detayı Sorguları:  ÖBHS, Düzenli Ödeme Emri Rıza Durumu, Düzenli Ödeme Emri Durumu, Düzenli Ödeme Emri Detayı bilgilerini isteğe bağlı olarak sorgulayabilir. \n Düzenli Ödeme Planı Sorguları:  ÖBHS, Düzenli Ödeme Emri için oluşturulan talimata dair ödeme planını sorgulayabilir. \n \n Nezdinde ödeme hesabı bulunduran hesap hizmeti sağlayıcılar(Banka, EPK, Ödeme Kuruluşları)  müşterilerine ait hesapları hesap referansı ya da hesap numarası üzerinden takip etmektedir. YÖS'lerin hem HBH hem de ÖBH servisleri için hesap referansı veya hesap numarası üzerinden işlem yapılabileceğini bilmeleri, sistemlerini API dokümanında belirtilen akışlara göre uyumlandırmaları ve müşteri bilgilendirmesini(önyüzlerinde hesap no ve hesap referansı ayrımını gözeterek) buna paralel yapmaları beklenmektedir. \n YÖS'ler gönderen hesap seçimini aşağıdaki yöntemlerden biri ya da birkaçı ile sağlayabilirler: \n \n YÖS, müşterisinin ödeme hesabını HHS ekranından seçtirebilir. \n YÖS, müşterisinden Hesap Bilgisi rızası alır. Rıza aldığı hesaplar üzerinden hesap referansı aracılığı ile düzenli ödeme emri başlatabilir. \n YÖS, müşterisinin ödeme hesabını elle girmesine olanak tanıyabilir. IBAN'ı olmayan HHS'ler düzenli ödeme emri rızası adımında  TR.OHVPS.Business.IBANNotSupported  hatasını vermelidir. IBAN'ı olan HHS'lerin bu akışı desteklemesi zorunludur. \n YÖS; müşterisinin hesap referansını elle girmesini sağlayabilir. Hesap Referansı bilgisi ile başlatılan düzenli ödeme emri işlemlerinde HHS seçimi zorunludur. \n \n Ödeme Sistemine doğrudan katılımcı olmayan HHS'ler, müşterilerine IBAN sunmadıkları için, YÖS'ler hesap referansı ile ödeme başlatabilirler. Bunların dışındaki HHS'lerin, gönderen IBAN veya hesap referansı ile ödeme akışını desteklemesi zorunludur. \n Düzenli Ödeme Emri Başlatma Hizmeti için Erişim Adresleri (Endpoints) \n Düzenli Ödeme Emri Başlatma Hizmeti İçin Erişim Adreslerinin Etki Alanı (Scope) = “odeme_emri” olarak belirtilmelidir. Ödeme Emri Hizmeti ile aynı etki alanı(scope) kullanılmaktadır. \n Tablo : Düzenli Ödeme Emri Başlatma Hizmeti İçin Erişim Adresleri \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu / İsteğe Bağlı \n Yetkilendirme Türü \n İmzalama \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n duzenli-odeme-emri-rizasi \n POST \n /duzenli-odeme-emri-rizasi \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n DuzenliOdemeEmriRizasiIstegi \n DuzenliOdemeEmriRizasi \n \n \n 2 \n erisim-belirteci (GKD için) \n POST \n /erisim-belirteci \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n ErisimBelirteciIstegi \n ErisimBelirteci \n \n \n 3 \n duzenli-odeme-emri-rizasi \n GET \n /duzenli-odeme-emri-rizasi/{rizaNo} \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n - \n DuzenliOdemeEmriRizasi \n \n \n 4 \n duzenli-odeme-emri \n POST \n /duzenli-odeme-emri \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı İstek ve Yanıt \n DuzenliOdemeEmriIstegi \n DuzenliOdemeEmri \n \n \n 5 \n duzenli-odeme-emri \n GET \n /duzenli-odeme-emri
16/{talimatNo} \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı Yanıt \n - \n DuzenliOdemeEmri \n \n \n 6 \n duzenli-odeme-emri-rizasi-iptal \n DELETE \n /duzenli-odeme-emri-rizasi/{rizaNo} \n Z \n İstemci Kimlik Bilgileri \n - \n - \n - \n \n \n 7 \n duzenli-odeme-talimat-plani \n GET \n /duzenli-odeme-emri/{talimatNo}/odeme-plani \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı Yanıt \n - \n DuzenliOdemeEmriPlani \n 8.1.\tADIM 0 - Düzenli Ödeme Emri Rızası Başlatma Isteği \n \n ÖHK, ÖBHS uygulamasında (web arayüzü/mobil uygulama) düzenli ödeme emri rızası sürecini başlatır. \n Gönderen hesap detaylarının bu aşamada belirtilmesi zorunlu değildir. \n 8.2.\tADIM 1 - Düzenli Ödeme Emri Rızasının Hazırlanması \n   \n Şekil : Düzenli Ödeme Emri Rızasının Hazırlanması \n \n \n ÖBHS, ödeme hizmeti kullanıcı hesabının bulunduğu HHS’ye bağlanarak düzenli ödeme emri rıza kaynağının oluşturulmasını (DuzenliOdemeEmriRizasi) sağlar. \n \n \n POST isteği TLS protokolü tesis edilen iletişim katmanı üzerinden gerçekleştirilir. TLS için nitelikli sertifikalar kullanılır. \n \n \n POST isteğinin başlığındaki alanlar ve istemcinin sertifikasındaki özel alanlar kullanılarak istemcinin yetkilendirilmesi sağlanır: \n \n İstekte bulunan ÖBHS yetkilendirilmiş olduğu geçit tarafından kontrol edilir. \n İstekte bulunan yetkilendirilmiş ödeme hizmeti sağlayıcısı ÖBHS rolüne sahipliği geçit tarafından kontrol edilir. \n HHS tarafından, istek başlığındaki x-aspsp-code ile katilimciBlg içerisinde yer alan hhsKod değeri ile aynı olduğunu kontrol edilir. Farklı olması durumunda  “TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n \n \n \n POST başarılı olursa, HHS, düzenli ödeme emri için içeride rıza olup olmamasına bakılmaksızın yeni bir rıza tanımlayıcısı RizaNo içeren DuzenliOdemeEmriRizasi  yanıt olarak döner. \n \n \n 1 ÖHK'nın 1 YÖS için 1 HHS'de istediği kadar rızası olabilir. \n \n \n HHS tarafında RizaDurumu değişkeninin durumu “Yetki Bekleniyor” olarak güncellenir. \n \n \n YÖS’ün doğrulama ekranı olarak ÖHK’ya açacağı URL adresini de ilgili rıza numarasına göre oluşturur. Burada 2 farklı yöntemle URL oluşturabilir. \n \n Statik URL  : \nHHS’nin base pathi/alt-dizin/{rızaNo} \nÖrnek hhsYonAdr : https://xbank.com.tr/ohvps/cb54834e36f742d09af3d534ece3352a \nBu adres için ilgili doğrulama sayfası önden hazırlanmalı ve ÖHK’nın doğrulama sayfasına erişimi için yayınlanmış olmalıdır (publish edilmelidir). \n Dinamik URL : \nHHS’nin base pathi/alt-dizin/GKD Karşılama Ekranı?rizano={rızano} \nÖrnek: https://xbank.com.tr/ohvps/gkd?rizano=cb54834e36f742d09af3d534ece3352a \n \n \n \n POST /duzenli-odeme-emri-rizasi \n İSTEK: \n ÖBHS, bu API erişim adresinden HHS’ye yeni bir DuzenliOdemeEmriRizasi oluşturulması için istekte bulunur: \n \n ÖBHS, düzenli ödeme emri başlatma isteği olduğunu HHS’ye bildirir. \n ÖBHS, ÖHK’nın, ÖBHS arayüzünden verdiği rızanın (“Ön Onay”) bir kopyasının HHS nezdinde müşteri tarafından onaylanması için HHS’ye gönderilmesini sağlar. \n YÖS, düzenli ödeme hizmeti sunmayan (HHS API'de yer alan \"hizmetTipi\":\"03\" yok ise) HHS'ye düzenli ödeme talimat rızası isteği yapması durumunda HHS tarafından  TR.OHVPS.Business.RegularPaymentOrderNotSupported  hatası dönülür. \n HHS; istek mesajında yer alan alanların ÖHVPS API İlke ve Kuralları dökümanında belirtilen şartları sağlayacak şekilde zorunluluk, uzunluk ve içerik kontrollerini yapar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Resource.InvalidFormat\"  hata kodu iletilmeli ve fieldErrors dolu olacak şekilde hatalı alanı belirten detaylı açıklama gönderilmelidir. InvalidFormat hata kodlarında fieldErrors içeriği gönderilmeli ve anlaşılır açıklama ile message, messageTr alanları doldurulması zorunludur. \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidTPP”  hatası dönülür. \n YÖS, bireysel müşteri özelinde düzenli ödeme hizmeti vermeyen HHS'ye düzenli ödeme talimatı rızası isteği yapması durumunda HHS tarafından  \"TR.OHVPS.Business.IndividualCustomerNotSupported\"  hatası , kurumsal müşteri özelinde düzenli ödeme talimatı rızası isteği yapıldığında HHS tarafından  \"TR.OHVPS.Business.CorporateCustomerNotSupported\"  hatası dönülür. \n HHS; YÖS API ile alınan ÖBHS bilgilerinin içerisinde yer alan yönlendirme adresleri ile düzenli ödeme emri rızası nesnesi request mesajında paylaşılan adreslerin uyumlu olup olmadığının kontrollerini y
16apar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Business.TPPRedirectionAddressMismatch\"  hatası dönülür. \n HHS; kimlik bilgileri nesnesinde yer alan kimlik bilgileri ile ÖHK’nın HHS müşterisi olup olmadığının kontrollerini yapar. Bu kontrol hem bireysel hem de kurumsal ÖHK’lar için yapılmalıdır.  (Koşullu Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Business.CustomerNotFound\"  hatası dönülür. \n Düzenli Ödeme Emri Başlatma Hizmeti rıza isteğinde bulunan ÖHK’nın “Açık Bankacılık Kanal Yetki” tanımı yok ise  \"TR.OHVPS.Business.OpenBankingChannelClosed\"  hatası dönülür. HHS insiyatifinde olup HHS bu kontrolü GKD sonrası gerçekleştirebilir. \n HHS \"gkd\" nesnesi için alan kontrollerini gerçekleştirir. \"yetYntm\" = \"A\" gönderilmiş ise \"ayrikGkd\" nesnesinin dolu gönderilmesi zorunludur. Gönderilmemesi durumunda HHS tarafından  \"TR.OHVPS.Resource.InvalidFormat\"  hatası dönülür. \n Ayrık GKD desteklemeyen HHS'ye Ayrık GKD yöntemiyle rıza başlatma isteği yapılması durumunda HHS tarafından  \"TR.OHVPS.Business.DecoupledAuthenticationNotSupported\"  hatası dönülür. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n Ayrık GKD ile başlatılan rıza akışlarında HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder. YÖS iki olay tipine de abone olmak zorundadır. Eğer olay aboneliği yoksa HHS tarafından  \"TR.OHVPS.Business.EventSubscriptionNotFound\"  hatası dönülür. \n Rıza başlatma akışı içerisinde kimlik bilgisinin, ÖHK'ya ait kimlik verisi(kmlk.kmlkVrs) ile ayrık GKD içerisinde yer alan OHK Tanım Değer alanı (ayrikGkd.ohkTanimDeger) birebir aynı olmalıdır. Aynı olmadığı durumda HHS tarafından  \"TR.OHVPS.Business.CustomerInfoMismatch\"  hatası dönülür. \n HHS tarafında ÖHK'nın mobil uygulaması bulunmaması durumu tespit edilebildiği durumda Ayrık GKD ile başlatılan rıza akışlarında HHS tarafından  \"TR.OHVPS.Business.CustomerMobileApplicationNotFound\"  hatası dönülür. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n HHS kimlik bilgisi ile gönderen ünvanının uyumlu olduğunu kontrol eder. HHS'ler EFT/FAST işlemlerinde kabul ettikleri kontrol kriterleri ile işleme izin verebilirler. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Business.IncorrectSenderTitle\"  hatası dönülür. \n Gönderen Hesap Numarası ÖBHS tarafından iletildiği durumda;\n \n IBAN’ın doğruluğu (kontrol basamağı doğrulaması) kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.InvalidAccount\"  hatası dönülür. \n IBAN içerisindeki HHS kodunun istek başlığındaki HHS kodu ile aynı olduğu (hesabın HHS’ye aitliğinin kontrolü) kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.AccountCodeMismatch\"  hatası dönülür. \n Hesap numarasının ÖHK’ya ait olduğu kontrol edilir.Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.CustomerAccountMismatch\"  hatası dönülür. \n HHS’ye özel ödeme izni verilmeyen farklı statülerin bulunması durumu kontrol edilir. (İlgili hesabın para transfer işlemine yetkisi olmaması) Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.AccountUnauthorized\"  hatası dönülür. \n HHS’de gönderen hesabın aktifliği kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.AccountInactive\"  hatası dönülür. \n \n \n Gönderen hesap numarası için, Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir. Hesap referansı ile düzenli ödeme emri rızası başlatılacak ise HHS hesap referansı değeri ile ilişkilendirilmiş mevcut bir hesap bilgisi rızası var mı kontrol etmelidir. Eğer aktif bir rızası yok ise  \"TR.OHVPS.Business.ActiveConsentNotFound\"  hatası verilmelidir. \n Düzenli ödeme emri rızasında alıcı hesap bilgileri Karekod ya da Kolas ile belirlenebilir. HHS online kanallarında düzenli ödeme hizmetini Karekod ve Kolas aracılığı ile kabul ediyorsa, ÖHVPS servisleri ile de kabul etmek zorundadır. YÖS tarafından düzenli ödeme emri rızası isteği içerisinde alıcı bilgisi için karekod ya da kolas kompleks alanları yer alması durumunda , destek vermeyen HHS'ler tarafından  \"TR.OHVPS.Business.RecipientAccountTypeNotSupported\"  hatası verilmelidir. \n Alıcı ve gönderen hesabın aynı olması durumunda  “TR.OHVPS.Business.SenderRecipientSame”  hatası dönmesi beklenmektedir. Bu hata HHS insiyatifindedir. \n Müşterinin kendi hesapları arasında talimat veremeyeceği durumların kontrolü için  “TR.OHVPS.Business.SameAccountTransferRestricted”  hatası dönmesi beklenmektedir. Bu hata HHS insiyatifindedir. \n \n Yukarıdaki kontroller tamamlandıktan sonra HHS, DuzenliOdemeEmriRizasi oluşturduğu anda durumunu “Yetki Bekleniyor” olarak düzenler. \n Bu aşamada ÖHK’nın HHS tarafından tanımlanmış ve isteğin veri alanında gönderen hesaba (borçlandırılacak hesaba) ilişkin bir bilgisinin olması gerekmez. \nHesap bakiye kontrolünün rıza aşamasında yapılmaması gerekmektedir. Çünkü ÖHK düzenli ödeme emri gerçekleşene kadar hesabına para eklemesi yapabilir. \n POST /duzenli-odeme-emri-rizasi  isteğinin (REQUEST) gövdesinde (BODY)  “DuzenliOdemeEmriRizasiIstegi” nesnesi (Tablo) kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “DuzenliOdemeEmriRizasi” (Tablo) nesnesi oluşturulur. \n  BAŞARILI İSTEK: \n Tablo : “DuzenliOdemeEmriRizasiIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n HHS tarafından düzenli ödeme emri rızası oluşturulması sırasında yapılması gereken kontrol ve işlemler \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n İ \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. Yetkilendirme yöntemi, ÖBHS tarafından belirtilmeyebilir. \n HHS, HBHS’nin belirlediği yöntemi dikkate alarak süreci ilgili akışa uygun olarak devam ettirir. Desteklemediği yöntem için (örn: Ayrık GKD) ayrıca hata mesajı verilmelidir. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu.  YÖS’ün ileteceği adrestir.  Durum kodu(drmKod), yönlendirme adresine parametre olarak eklenmelidir. \n HHS, müşteri uygulama / tarayıcısını bu alanda belirtilen adrese yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n yetYntm = A gönderilmiş ise ayrikGkd nesnesinin dolu gönderilmesi zorunludur.   HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder.  Bknz: Ayrık GKD \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir.  TR.OHVPS.DataCode.ohkTanimTip  sıralı veri tiplerinden birini alır. \n \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir. \n \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS geçerli bir Kimlik Numarası Türü olduğunu kontrol eder. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS, ÖBHS tarafından iletilmesi durumunda Kimlik Verisi üzeriden çapraz kontroller uygulamalı ve Kimlik Verisini temel alarak GKD gerçekleştirmelidir.  Pasaport numarasına ilişkin kontroller HHS'nin halihazırda kullandığı veri, akış ve tabi olduğu diğer düzenlemelerdeki işleyiş ile aynı şekilde ele alınmalıdır.  Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n Z \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur.  HHS geçerli bir Kurum Kimlik Numarası Türü olduğunu kontrol eder. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n Z \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur.  HHS, ÖBHS tarafından iletilmesi durumunda Kurum Kimlik Verisi üzeriden çapraz kontroller uygulamalıdır. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n Kurum adına yapılan ödemelerde K değerini alır. Kurum Kimlik Türü ve Kurum Kimlik Verisi alanlarının girilmiş olduğu çapraz olarak kontrol edilir. \n \n \n >
16 Gönderen \n gon \n Kompleks:Hesap \n İ \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderenin ünvanıdır.  HHS, bu bilgiyi ÖBHS sisteminden gelen veri yerine FAST’a iletirken kendi sisteminden alabilir. \n HHS’nin bu veri ile kendi sistemlerindeki verinin farklı olması ve Kimlik Numarası ile eşleşmemesi durumunda düzenli ödeme emri başlatma isteği reddedilir.  ÖBHS verisi ile HHS verisinin farklılaşması durumunun ise risk değerlendirme sistemlerine girdi olarak kullanması tavsiye edilir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n İ \n ÖBHS'nin ön yüzünden daha önce kayıt altına alınmış hesaplar arasından seçtirdiği veya müşteriye girdiği IBAN’dır.  ÖBHS tarafından iletilmediği durumda, gönderen hesap bilgisini müşteri tarafından HHS’nin dijital kanalında GKD sonrasında seçilebilir. Bu amaçla ÖBHS arayüzünde HHS seçtirilmelidir.  Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir. Hesap referansı ile düzenli ödeme emri rızası başlatılacak ise HHS hesap referansı değeri ile ilişkilendirilmiş mevcut bir hesap bilgisi rızası var mı kontrol etmelidir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n ÖBHS tarafından iletildiği durumda; IBAN içerisindeki HHS kodunun istek başlığındaki HHS kodu ile aynı olduğu (hesabın HHS’ye aitliğinin kontrolü), IBAN’ın doğruluğu (kontrol basamağı doğrulaması), Hesap numarasının ÖHK’ya ait olduğu, HHS’ye özel ödeme izni verilmeyen farklı statülerin bulunması durumu kontrol edilir. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n İ \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez.  ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir.  Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan HHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n HspRef'e bağlı IBAN değiştiğinde yeni IBAN'ın da ilgili HspRef ile ilişkilendirilmesi beklenmektedir. Bu durumda, HBHS, HspRef ile sorguya geldiğinde HHS'nin yeni IBAN ve hesap hareketlerini dönebilmesi mümkün olacaktır. HspRef’in, IBAN değiştiğinde değiştirilmemesi tavsiye edilmektedir. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n K \n Kolay Adres Sistemi  kullanılmıyorsa zorunludur.  Alıcının ünvanıdır. ÖBHS ekranlarından girişi yapılabileceği gibi ÖBHS’nin kayıtlı alıcılarından yapılan seçimle de doldurup gönderebildiği bilgi olabilir.  FAST-TR Karekod Veri Organizasyonunda;  İşyeri tarafından sunulan uzun karekod yapısının  59:  alanında tanımlı İşyeri adı alanıdır, Kişiden Kişiye Ödeme Karekod Yapısının  07:  alanında tanımlı    Ödeme Alıcısının Adı ve Soyadı  alanıdır. \n \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n Alıcının Hesap Numarası (IBAN)  alanıdır.   Kolay Adres Sistemi  kullanılmıyorsa zorunludur.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  30-01:  alanında tanımlı İş Yeri IBAN verisi kullanılır.  Alıcının birden fazla hesabının kullanılabilir olduğu durumlarda (özellikle işyeri ödemelerinde HHS nezdindeki hesap (on-us havale akışı) tercih edilmelidir. \n HHS (Gönderen Katılımcı) tarafından IBAN doğrulaması (kontrol basamağı doğrulaması) yapılır. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n Talimatın gerçekleşeceği ana kadar KOLAS tanımınında değişiklik olabileceği için,  KOLAS ile yapılan düzenli ödeme emri işlemleri, talimatın verildiği anda çözülen IBAN'a yapılacaktır. \n Kolas ile düzenli ödeme emri hizmeti desteklenmiyorsa; HHS tarafından hata dönülmelidir. \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n HHS (Gönderen FAST katılımcısı) tarafından KOLAS Servisine yapılan sorguda girdi olarak kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n HHS (Gönderen FAST katılımcısı) tarafından KOLAS Servisine yapılan sorguda girdi olarak kullanılır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n Karekod ile yapılan düzenli işlemler, talimatın verildiği anda çözülen IBAN'a yapılacaktır. \n Karekod ile düzenli ödeme emri hizmeti desteklenmiyorsa; HHS tarafından hata dönülmelidir. \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n TR.OHVPS.DataCode.KareKodAksTur  sıralı veri değerlerinden birini alır. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını  gösterir. Okunan karekodda referans değeri varsa kullanılması zorunludur.  Karekod ilke ve kurallar belgesinde tanımlandığı şekilde kullanılması gerekmektedir.  Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri veri değerlerinden “O” değeri atanarak iletilmelidir. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n HHS, YÖS'ün API deseninde \"O\" kodunu ilettiğini kontrol eder. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n HHS geçerli bir Ödeme Amacı kodu olduğunu kontrol eder. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarında: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.   -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -\tİşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n YÖS bu değeri ÖHK’yı HHS’ye yönlendirmeden önceki ekranda göstermeli, ve HHS bu değeri GKD için kullandığı önyüzünde “işlem doğrulama kodunun” bir unsuru olarak yine ÖHK’ya göstermelidir. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n  BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “DuzenliOdemeEmriRizasi” nesnesi Tablo’da parametrelerden oluşur: \n Tablo : “DuzenliOdemeEmriRizasi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n DuzenliOdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n DuzenliOdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n > Güncellenme Zamanı \n gnclZmn \n ISODateTime \n Z \n DuzenliOdemeEmriRizasi nesnesinin güncellenme zamanı \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n > Rıza Iptal Detay Kodu \n rizaIptDtyKod \n AN2 \n K \n Rıza durumunun iptal olduğu durumda zorunludur. Alabileceği değerler 4. Bölümde detaylandırılmıştır. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır.  HHS, ÖBHS’nin belirlediği yöntemi dikkate alarak kendi belirlediği yöntemi kullanır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   HHS tarafından maksimum 5 dk içinde işlem tamamlanacak şekil zaman damgası oluşturulur. Zaman aşımı olduğunda HHS’nin GKD’ye izin vermeyecek şekilde hata mesajı vermesi gerekmektedir.  Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n Z \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n Z \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n \n \n >
16 Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderenin ünvanıdır.  HHS, bu bilgiyi ÖBHS sisteminden gelen veri yerine FAST’a iletirken kendi sisteminden alabilir.   Tek seferlik ödeme dışında YÖS'ün gönderen ünvanını göndermesi zorunludur. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n İ \n ÖBHS'nin ön yüzünden daha önce kayıt altına alınmış hesaplar arasından seçtirdiği veya müşteriye girdiği IBAN’dır.  ÖBHS tarafından iletilmediği durumda, gönderen hesap bilgisini müşteri tarafından HHS’nin dijital kanalında GKD sonrasında seçilebilir. Bu amaçla ÖBHS arayüzünde HHS seçtirilmelidir.   GKD sonrası HHS ekranında seçilen Hesap Numarası POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir.    Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n İ \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez.  ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir.   GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir.    Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.    Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari ünvan bilgisidir. Kolas’tan dönen “account owner” alanı kullanılmalıdır. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen ünvan bilgisidir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n ÖBHS tarafından istek mesajında iletilip doğrulanan veya Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen alıcı maskeli IBAN bilgisidir. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n TR.OHVPS.DataCode.KareKodAksTur  sıralı veri değerlerinden birini alır. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını  gösterir. \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O” değerini alır. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  - İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n 8.3.\tADIM 2- Düzenli Ödeme Emri Rızasının Yetkilendirilmesi \n   \n Şekil : Düzenli Ödeme Emri Rızasının Yetkilendirilmesi \n ÖBHS, ÖHK’nın düzenli ödeme emrini yetkilendirmesi isteğini iletir. Ödeme emrinin yetkilendirilmesi, HHS tarafından gerçekleştirilen Yönlendirme veya Ayrık GKD yöntemiyle yapılır. \n \n \n Yönlendirmeli doğrulama akışında , ÖBHS ÖHK’yı HHS’ye yönlendirir. \n \n ÖBHS tarafından yönlendirme, bir önceki adımdaki RizaNo’yu içerir. \n Yönlendirmenin RizaNo’yu içermesi sayesinde, HHS hangi ödeme emriyle ilişkili olarak yönlendirme yapıldığını ilişkilendirebilir. \n HHS, ÖHK için GKD sürecini işletir. \n \n ÖHK’yı doğrularsa, \n \n ÖHK -bir önceki adımda seçmediyse- borçlu hesabını seçer. \n HHS, düzenli ödeme emri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n HHS, ÖHK’yı “olumlu yönlendirme akışı” ile ÖBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n \n \n \n yonAdr?rizaDrm=Y&yetKod=xx&rizaNo=yy&rizaTip=D&drmKod=zzz\n \n ÖHK’yı doğrulayamazsa, \n1. HHS, düzenli ödeme emri rıza kaynağının durumunu “Yetki İptal” olarak günceller. \n2. HHS, ÖHK’yı “olumsuz yönlendirme akışı” ile ÖBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=I&rizaNo=yy&rizaTip=D&drmKod=zzz\n \n HHS tarafında oluşabilecek bir hata durumunun YÖS’e aktarılması gerektiği durumlar olabilir. Bu durumda yonlendirme adresinde hata kodu parametresi zorunlu olarak iletilmelidir. \nHata açıklamalarının neler olabileceği ve YÖS’ün kendi uygulamasında bu hatayı ne şekilde göstereceği aşağıda tariflenmiştir. \n yonAdr?rizaDrm=I&rizaNo=yy&rizaTip=D&rizaIptDtyKod=11&drmKod=zzz\n \n URL’de iletilen “Rıza İptal Detay Kodu” Rıza durumları bölümünde (4. Bölüm) belirtilen hata kodları ile aynı olacak şekilde tasarlanmıştır. GKD sırasında yapılması gereken kontroller 5.3 bölümünde detaylandırılmıştır. \n \n Ayrık doğrulama akışında , HHS, ÖHK’nın düzenli ödeme emri rızasını başlattığı uygulamadan farklı olabilecek bir “doğrulama” uygulamasında işlemi doğrulamasını ister.\n \n Ayrık akış ÖBHS’nin farklı bir kanal kullanarak yetkilendirme isteği göndermesiyle başlatılır. \n Bu yetkilendirme isteği, yetkilendirilecek ödeme emri rızasının eşleştirileceği ÖHK’nın bulunması için ilgili veriyi taşır. \n HHS, ÖHK’yı doğrular. \n ÖHK, bir önceki adımda seçmediyse- borçlandırılacak hesabını seçer. \n HHS, düzenli ödeme emri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n \n Başarılı GKD sonrasında (rizaDrm=’Y’) ilgili rıza nesnesi için (belirli bir rizaNo) yetkilendirme kodunun (yetKod) alınmasının ardından erişim belirteci erişim adresine POST çağrısı yapılarak yetkilendirme kodu karşılığında erişim belirteci ve yenileme belirteci alınır. POST /erişim-belirteci erişim noktası EK-3’te açıklanmıştır. \n Erişim belirteci alındıktan sonra; HHS, düzenli ödeme emri rıza kaynağının durumunu “Yetki Kullanıldı” olarak günceller. \n 8.4.\tADIM 2.1 – Düzenli Ödeme Emri Rızasının Sorgulanması (isteğe bağlı) \n   \n Şekil 7: “DuzenliOdemeEmriRizasi” nesnesinin sorgulanması (isteğe bağlı) \n GKD işleminin başarıyla tamamlanıp Düzenli Ödeme Emri Rızasının yetkilendirilmesi esnasında, gönderen hesap seçiminin HHS ekranında yapıldığı durumlar olabilir. Bu durumlarda düzenli ödeme emri isteğinde gönderen hesap bilgilerinin zorunlu olması nedeniyle,  DuzenliOdemeEmriRizasi  nesnesi sorgulanarak bu bilgiler alınmalıdır. HHS, “ ADIM 2 -Düzenli Ödeme Emri Rızasının Yetkilendirilmesi ” akışında ÖHK’nın hesapları arasında seçim yapmasını ve seçilen hesap bilgisinin  DuzenliOdemeEmriRizasi  nesnesine işler. \n \n Sorgulama yapılan Düzenli Ödeme Emri HHS tarafında bulunmuyor ise  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n \n GET /duzenli-odeme-emri-rizasi/{RizaNo} \n ÖBHS, mevcut durumunu kontrol etmek için, oluşturulan bir  DuzenliOdemeEmriRizasi  k
16aynağının durumunu isteğe bağlı olarak alabilir. \n Durum \n DuzenliOdemeEmriRizasi  kaynağı için kullanılabilecek durum göstergeleri şu şekildedir: \n \n Yetki Bekleniyor \n Yetkilendirildi \n Yetki Kullanıldı \n Yetki Ödeme Emrine/Talimata Dönüştü \n Yetki Sonlandırıldı \n Yetki İptal \n \n Düzenli Ödeme emri rıza durum değişiklikleri 4.2 bölümünde detaylandırılmıştır. \n BAŞARILI YANIT: \n GET /duzenli-odeme-emri-rizasi/{rizaNo}  yanıtının (RESPONSE) gövdesinde (BODY)  “DuzenliOdemeEmriRizasiİstegi” nesnesi kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda Tablo-8’de yer alan parametreleri içeren “DuzenliOdemeEmriRizasi” oluşturulur. \n Gönderen Hesap Bilgisinin, ADIM 2 (İleri Tarihli Ödeme Emri Rızasının Yetkilendirilmesi) sonrasında HHS ekranından seçildiği akışta “DuzenliOdemeEmriRizasi” nesnesi güncellenir ve ÖBHS  GET /duzenli-odeme-emri-rizasi/{rizaNo}  isteği yaparak güncel gönderen hesap bilgisi bilgisini de içeren “DuzenliOdemeEmriRizasi” nesnesini çekmelidir. \n 8.5.\tADIM 3- Duzenli Ödeme Emrinin Oluşturulması \n   \n Şekil 8: Duzenli Ödeme Emrinin Oluşturulması \n POST /duzenli-odeme-emri \n ÖHK’nın Güçlü Kimlik Doğrulama ile işlemi yetkilendirmesi sonrasında, ÖBHS DuzenliOdemeEmri kaynağını oluşturur.\nDuzenli Ödeme emri (DuzenliOdemeEmri) uygun ödeme kaynağına POST isteği yapılarak başlatılır. \n \n Erişim Belirteci kontrolü yapılır. Geçerli bir Erişim Belirteci yok ise  \"TR.OHVPS.Connection.InvalidToken\"  hatası dönülür. \n HHS; istek mesajında yer alan alanların ÖHVPS API İlke ve Kuralları dökümanında belirtilen şartları sağlayacak şekilde zorunluluk, uzunluk ve içerik kontrollerini yapar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Resource.InvalidFormat\"  hatası dönülür. \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidTPP”  hatası dönülür. \n Rıza durumu kontrol edilir.\n \n B: Yetki Bekleniyor, Y: Yetkilendirildi  ya da E: Yetki Ödeme Emrine Dönüştü ise  “TR.OHVPS.Resource.ConsentMismatch”  hatası dönülür. \n I: Rıza İptal ya da S: Yetki Sonlandırıldı ise  ”TR.OHVPS.Resource.ConsentRevoked”  hatası dönülür. \n RizaDurumu “K: Yetki Kullanıldı” ise kontrollere devam edilir. \n \n \n POST /duzenli-odeme-emri-rizasi ile POST /duzenli-odeme-emri isteklerinde istek alanların aynı olması beklenmektedir. HHS tarafından kontrolü sağlanmalıdır. Düzenli Ödeme Emri rızasında gönderilen değerlerden farklı bir değer gönderildiği durumda  “TR.OHVPS.Business.FieldMismatch”  hatası dönülür. \n \n Yukarıdaki kontroller tamamlandıktan sonra POST başarılı olursa, içerisinde tlmtNo değişkeni bulunan DuzenliOdemeEmri nesnesi ÖBHS’ye döner ve RizaDurumu değişkenin değeri “Yetki Ödeme Emrine/Talimata Dönüştü” olarak güncellenir. \n BAŞARILI İSTEK: \n Tablo 9: “DuzenliOdemeEmriIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n HHS tarafından düzenli ödeme emri oluşturulması sırasında yapılması gereken kontrol ve işlemler \n FAST A01 PÖS M01 mesaj mapping \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. \n Gönderen katılımcı kodu (yani bankanın FAST/PÖS’teki Katılımcı kodu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. \n YosKod \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n \n >Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n \n \n >Yönlendirme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunludur. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n \n \n >Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n yetYntm = A gönderilmiş ise ayrikGkd nesnesinin dolu gönderilmesi zorunludur. yetYntm = Y için bu nesne iletilmemelidir. \n \n \n \n >>OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n \n \n >>OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n \n \n >HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n \n \n >Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. Duzenli Ödeme Emri Rizası Nesnesindeki Kimlik Numarası Türü verisi ile aynı olmalıdır. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS, ÖBHS tarafından iletilmesi durumunda Kimlik Verisi üzeriden çapraz kontroller uygulamalı ve Kimlik Verisini temel alarak GKD gerçekleştirmelidir. Duzenli Ödeme Emri Rizası Nesnesindeki Kimlik Numarası verisi ile aynı olmalıdır. Gerçek kişi tarafından yapılan ödemelerde, 1. HHS, Gönderen Adı ve Gönderen Hesap Numarasını düzenli ödeme emri isteğinde (Havale/FAST/PÖS) gönderir. - Gönderen Adı ve diğer tüm müşteri bilgileri, Kimlik Numarası üzerinden elde edillir. Pasaport numarasına ilişkin kontroller HHS'nin halihazırda kullandığı veri, akış ve tabi olduğu diğer düzenlemelerdeki işleyiş ile aynı şekilde ele alınmalıdır. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik verisi bu alanda gönderilebilmesi zorunludur. \n GonKimN / Psp \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur. Duzenli Ödeme Emri Rizası Nesnesindeki Kurum Kimlik Türü verisi ile aynı olmalıdır. \n \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur. Duzenli Ödeme Emri Rizası Nesnesindeki Kurum Kimlik Verisi ile aynı olmalıdır. \n GonKimN / VKN \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n Kurum adına yapılan ödemelerde K değerini alır. Kurum Kimlik Türü ve Kurum Kimlik Verisi alanlarının giilmiş olduğu çapraz olarak kontrol edilir.  Duzenli Ödeme Emri Rizası Nesnesindeki ÖHK Türü ile aynı olmalıdır. \n \n \n \n >
16 Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderen kişinin ad soyad ya da ticari ünvan bilgisi. \n HHS ve ÖBHS verisi tutarlı olmalıdır.  ÖBHS verisi ile HHS verisinin farklılaşması durumunun ise risk değerlendirme sistemlerine girdi olarak kullanması tavsiye edilir. \n GonAd \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n ÖBHS'nin ön yüzünden seçtirdiği/kullanıcıya girdiği IBAN Hesap numarası ya da Hesap Referansı alanlarından en az birinin dolu olarak gelmesi gerekmektedir. \n Duzenli Ödeme Emri Rizası Yanıtı Nesnesindeki Gönderen Hesap Numarası verisi ile aynı olmalıdır. \n GonHesN \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n K \n ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başlatılabilir. GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir. Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari ünvan bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen ünvan bilgisidir. \n YÖS’ten alıcı ad soyad bilgisi geliyorsa ve HHS'nin kontrolünden başarılı bir şekilde geçti ise HHS'nin tekrar alıcı ad soyad bilgisi için giriş yaptırmasına gerek bulunmamaktadır. \n AlAd \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n Alıcının Hesap Numarası alanıdır (IBAN). Kolay Adres  sorgusunda dönülen adres kaydı yaptırmış olan alıcının maskeli IBAN bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen IBAN bilgisidir. Karekod akışında, FAST Karekod Veri Organizasyonundaki 30-01: alanında tanımlı İş Yeri IBAN verisi kullanılır. \n Duzenli Ödeme Emri Rizası Yanıtı Nesnesindeki Alıcı Hesap Numarası verisi ile aynı olmalıdır.  Kontroller başarıyla sonuçlanırsa, bilgi FAST/PÖS AlHesN alanına doğrudan aktarır ve FAST/PÖS Alan Katılımcı Kodu (AlKK) olarak Alıcı HHS Kodu kullanılır.  KOLAS sorgusu sonucunda düzenli ödeme emrinde iletilen maskeli bilgi ile HHS’nin kendi düzenli ödeme emri rızası isteğinde tuttuğu KOLAS sorgusundan dönülen bilgi maskelenerek karşılaştırılır. Eğer aynı değilse uygun hata kodu dönülerek işlem sonlandırılır. \n AlHesN \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n Müşterinin sorgulamak istediği Kolay Adres Tipi değeridir.  TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n Duzenli Ödeme Emri Rizası Yanıtı Nesnesindeki Kolay Adres Tipi verisi ile aynı olmalıdır. \n \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n Duzenli Ödeme Emri Rizası Yanıtı Nesnesindeki Kolay Adres Değeri verisi ile aynı olmalıdır. \n FAST (KolasRef) \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n KolasRef ( hem FAST hem de PÖS için aynı) \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı 
16sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  Kolay Adresi Sistemi ile birlikte kullanılmaz.  01: FAST katılımcısından dinamik doğrulama hizmeti alınan işyeri ödemesi  02: FAST katılımcısından statik doğrulama hizmeti alınan işyeri ödemesi 03: Kişiden kişiye ödemeler \n Duzenli Ödeme Emri Rizası Nesnesindeki Kare Kod Akış Türü verisi ile aynı olmalıdır. \n FAST: KrkdAksTur \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını gösterir.  Okunan karekodda referans değeri varsa kullanılması zorunludur. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n Duzenli Ödeme Emri Rizası Nesnesindeki Karekod Referansı verisi ile aynı olmalıdır.  Çevrimiçi doğrulama hizmeti alınmayan statik karekodlar için Referans numarasının bulunmadığı durumlarda HHS tarafından “NONREF” ifadesi girilir. \n FAST: Karekod Referansı (KrkdRef) \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR Karekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O” değeri atanarak iletilmelidir. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n Duzenli Ödeme Emri Rizası Nesnesindeki Ödeme Kaynağı verisi ile aynı olmalıdır. HHS tarafından ödeme mesajında (FAST/PÖS) aynen taşınmak durumundadır. \n FAST/PÖS: OdmKynk \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. \n Duzenli Ödeme Emri Rizası Nesnesindeki Ödeme Amacı verisi ile aynı olmalıdır. HHS tarafından ödeme mesajında (FAST/PÖS) aynen taşınmak durumundadır. \n FAST (OdmAmc)/PÖS(OdmAmaci) \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n Duzenli Ödeme Emri Rizası Nesnesindeki Referans Bilgisi verisi ile aynı olmalıdır. \n RefBlg (Hem FAST hem de PÖS için aynı) \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n FAST/PÖS Acklm \n \n \n \n BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “DuzenliOdemeEmri” nesnesi Tablo-10’daki parametrelerden oluşur: \n Tablo 10: “DuzenliOdemeEmri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanıdır. \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n Z \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderen kişinin ad soyad ya da ticari ünvan bilgisi. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n ÖBHS tarafından iletilip doğrulanan veya HHS ekranında seçilen Gönderen Hesap Numarası dönülür. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n K \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid)  YÖS bazında farklılaşması gerekmez. ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir. GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir. Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.  Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı 
16sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari ünvan bilgisidir. Kolas’tan dönen “account owner” alanı kullanılmalıdır. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen ünvan bilgisidir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n Alıcının Hesap Numarası alanıdır (IBAN). Kolay Adres  sorgusunda dönülen adres kaydı yaptırmış olan alıcının maskeli IBAN bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen IBAN bilgisidir. Karekod akışında, FAST Karekod Veri Organizasyonundaki 30-01: alanında tanımlı İş Yeri IBAN verisi kullanılır. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n Müşterinin sorgulamak istediği Kolay Adres Tipi değeridir.  TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  Kolay Adresi Sistemi ile birlikte kullanılmaz.  01: FAST katılımcısından dinamik doğrulama hizmeti alınan işyeri ödemesi  02: FAST katılımcısından statik doğrulama hizmeti alınan işyeri ödemesi 03: Kişiden kişiye ödemeler \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını gösterir.  Okunan karekodda referans değeri varsa kullanılması zorunludur. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR Karekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O”  değerini alır. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  - İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n \n Talimat Bilgileri \n tlmtBlg \n Kompleks: TalimatBilgileri \n 
16- \n \n \n \n > Talimat Numarası \n tlmtNo \n AN1..128 \n Z \n Düzenli Ödeme Emri nesnesinin UID'sidir. Düzenli Ödeme Emri kaydı'na dair İlişkin sorgular bu ID üzerinden yapılır. \n \n \n > Talimat Oluşma Zamanı \n tlmtOlsZmn \n ISODateTime \n Z \n duzenliOdemeEmri nesnesinin oluşturulma zamanı, talimatın HHS'de oluşturulduğu zaman bilgisidir. \n \n \n > Talimat Tutarı \n tlmtTtr \n AN1..24 \n Z \n ÖBHS'nin HHS'de belirlediği tutar bilgisidir. Talimata ait ilk ödeme emri kaydının tutar bilgisi iletilmelidir.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n > İlk Ödeme Günü \n ilkOdmGn \n ISODate \n Z \n ÖBHS'nin HHS'de belirlediği ilk ödeme günü bilgisidir.   Alabileceği minimum tarih değeri düzenli ödemenin verildiği tarihin 1 gün sonrası olabilir. Maksimum değer ise 30 gün olacak şekilde seçilebilir.  \n \n \n > Son Ödeme Günü \n sonOdmGn \n ISODate \n Z \n ÖBHS'nin HHS'de belirlediği son ödeme günü bilgisidir. Alabileceği minimum gün değeri ilk ödeme gününün 1 gün sonrası olabilir. Maksimum değer ise 2 yıl olmalıdır.  \n \n \n > Ödeme Sayısı \n odmSayi \n N3 \n Z \n ÖBHS'nin HHS'de belirlediği ödeme sayısıdır. Minimum değer 2 adet olmalıdır. \n \n \n > Ödeme Periyodu \n odmPryt \n AN1 \n Z \n ÖBHS'nin HHS'de belirlediği ödeme periyot bilgisidir. TR.OHVPS.DataCode.OdemePeriyodu sıralı veri değerlerinden birini alır. \n \n \n > Talimat Rumuzu \n tlmtRmz \n AN1..180 \n İ \n ÖBHS'nin HHS'de belirlediği talimata dair rumuz açıklamasıdır. İlgili alan isteğe bağlı olup HHS'lerin inisiyatifindedir. \n 8.6.\tADIM 3.1- Duzenli Ödeme Emri Sorgusu (İsteğe bağlı) \n   \n Şekil 9: Duzenli Ödeme Emri Sorgusu \n GET /duzenli-odeme-emri/{tlmtNo} \n ÖBHS, bu erişim adresi aracılığıyla düzenli ödeme emrini sorgulayabilir. Maksimum talimata dair son ödeme gününün 5 gün sonrasına kadar sorgulama yapılabilir. Sonrasında yapılacak sorgulamalarda erişim belirtecinin yetki süresi sonlandığı için HHS  TR.OHVPS.Resource.ConsentRevoked  hatasını dönmelidir.\nİptal edilmiş talimatın bilgileri sorgulanmak istendiğinde de yine  TR.OHVPS.Resource.ConsentRevoked  hatası verilmelidir. \n YÖS sadece kendi uygulaması üzerinden verilmiş düzenli ödemeleri sorgulayabilir. Erişim izni olmayan bir ödeme emri numarası ile sorgulama yaptığında HHS'den  TR.OHVPS.Resource.NotFound  hatasını alır. \n BAŞARILI YANIT: \n GET /duzenli-odeme-emri/{tlmtNo} yanıtının (RESPONSE) gövdesinde (BODY)  “DuzenliOdemeEmri” nesnesi bulunur. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda Tablo-10’da yer alan parametreleri içeren “DuzenliOdemeEmri” nesnesi döner. \n 8.7.\tADIM 4- Düzenli Ödeme Planı Sorgulama \n \n Şekil 10: Düzenli Ödeme Planı Sorgulama \n GET /duzenli-odeme-emri/{talimatNo}/odeme-plani \n ÖBHS, bu erişim adresi aracılığıyla düzenli ödeme planını görüntüleyebilir. İptal edilen bir ödeme emri rızasına dair talimat ödeme planı görüntülenemeyecektir. İptal edilmiş bir talimata ait istek geldiğinde HHS tarafından  \"TR.OHVPS.Resource.ConsentRevoked\"  hatası dönülmelidir. \n BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan \"DuzenliOdemeEmriPlani\" nesnesi Tablo-11’deki parametrelerden oluşur: \n Tablo 11: DuzenliOdemeEmriPlani nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Ödeme Sıra Numarası \n odmSiraNo \n AN1..999 \
16n Z \n Ödeme planı içerisindeki sırayı belirten değerdir. \n \n \n Ödeme Tutarı \n odmTtr \n AN1..24 \n Z \n Ödeme planı içerisinde ödeme numarası kaydına ait ödenecek tutar bilgisi   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n Gerçekleşen Ödeme Tutarı \n grckOdmTtr \n AN1..24 \n K \n Ödeme planı içerisinde ödeme numarası kaydına ait ödenmiş  tutar bilgisi. Kısmi ödeme yapılan işlemlerde kısmi ödeme tutar bilgisi eklenmelidir. Kısmi ödeme yerine ödenecek tutarın tamamı ödenmesi durumunda ilgili tutar bilgisi iletilmelidir. Ödeme Durumu 01, 02 ve 06 olan kayıtlar için bu alanın gönderilmesi zorunludur.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n Ödeme Tutarı Para Birimi \n prBrm \n AN3 \n Z \n Tutara ait Para Birimi.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n Ödeme Talimat Tarihi \n odmTlmtTrh \n ISODate \n Z \n Ödeme planı içerisindeki ilgili ödemenin gerçekleşmesi beklenen tarih bilgisidir. \n \n \n Ödeme Gerçekleşme Zamanı \n odmGrckZmn \n ISODateTime \n K \n Ödeme planı içerisindeki ilgili ödemenin gerçekleştiği tarih bilgisidir. Ödeme durumu 01, 02 ve 06 olan kayıtlar için bu alanın gönderilmesi zorunludur. \n \n \n Ödeme Durumu \n odmDrm \n AN2 \n Z \n Ödeme planı içerisindeki ödemelere ait durumu belirten değerdir.  TR.OHVPS.DataCode.OdemeDurumu  sıralı veri değerlerinden birini alır. \n 8.8.\tADIM 5- Düzenli Ödeme Emri Rıza İptali \n \n Şekil 10: Düzenli Ödeme Emri Rızası İptali \n DELETE /duzenli-odeme-emri-rizasi/{rizaNo} \n ÖBHS, bu erişim adresi aracılığıyla düzenli ödeme emri rızasını iptal edebilir. \n DELETE /duzenli-odeme-emri-rizasi çağrısı, bir ÖBHS'nin önceden oluşturulmuş bir düzenli ödeme emri rızasını silmesine izin verir. Müşteri, rızasını HHS üzerinden iptal etmek yerine, ÖBHS üzerinden bu rızasını kaldırmak isteyebilir. \n \n Erişim belirteci kontrolü yapılır. Geçerli bir erişim belirteci yok ise HHS tarafından  ”TR.OHVPS.Connection.InvalidToken”  hatası dönülür. \n İstek başlığında yer alan X-Access-Token ile ilişkili rıza, iptal edilen rizaNo bilgisi ile aynı olup olmadığı kontrol edilir. Farklı olması durumunda  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n İptal edilmek istenen Düzenli Ödeme Emri Rızası HHS tarafında bulunmuyor ise  ”TR.OHVPS.ResourceNotFound”  hatası dönülür. \n Rıza durumu I ve S olmayan kayıtlar için rıza iptali sağlanacaktır. I ve S olan kayıtlar için rıza iptal edilmek istendiğinde HHS'ler tarafından  TR.OHVPS.Resource.ConsentRevoked  hatası dönülecektir. \n \n Yukarıda kontroller başarıyla tamamlandıktan sonra sırasıyla aşağıdaki işlemler yapılır. \n \n Düzenli ödeme talimat planı içerisinde yer alan odmDrm değeri 04 ve 05 olan kayıtlar 07 durum kodu ile güncellenecektir. Diğer durum kodları için 07 durum ko
16d güncellemesi yapılmayacaktır. \n İlişkili düzenli ödeme emri talimatı iptal edilmelidir. \n Rıza iptal edilmelidir. \n \n Bu API çağrısı, müşterinin ÖBHS üzerinden düzenli ödeme emri rızasını iptal etmesine ve HHS nezdindeki düzenli ödeme emri rızası nesnesinin silinmesini sağlar.\nMüşterinin ÖBHS’nin veri erişim iznini iptal etmesi durumunda ÖBHS, HHS’de mevcut olan DuzenliOdemeEmriRizasi'na dair rıza ve talimat bilgilerini pratik olarak mümkün olan en kısa sürede silmelidir. Bu ise, ilgili kaynağa\nDELETE /duzenli-odeme-emri-rizasi/{RizaNo}\nçağrısı aracılığı ile yerine getirilir. \n Servis istek parametresi olarak sadece path’de iletilen Rıza No bilgisine ihtiyaç duymaktadır.\nÖHK rızası başarı ile silindiğinde HTTP 204 response kodu ile işlem sonucu iletilir. Rıza tipi “I” yani “Yetki İptal” olarak ve gnclZmn zaman damgası vurularak güncellenir.\nÖHK ile rıza iptali sırasında kurulacak iletişimde (e-posta, sms gibi) aşağıdaki alanların iletilmesi tavsiye edilmektedir:\nYÖS Adı, HHS adı, Rıza Oluşturma Zamanı, Servis Tipi Bilgisi (ÖBHS) \n"},{title:"Güçlü Kimlik Doğrulama",frontmatter:{},regularPath:"/v2.0.1/contents/erisim-belirteci.html",relativePath:"v2.0.1/contents/erisim-belirteci.md",key:"v-1a476f8d",path:"/v2.0.1/contents/erisim-belirteci.html",headers:[{level:2,title:"Yetkilendirme Kodu API",slug:"yetkilendirme-kodu-api"},{level:2,title:"Erişim Belirteci API",slug:"erisim-belirteci-api"}],content:' Güçlü Kimlik Doğrulama  \n \n ÖHK\'nın YÖS uygulamasından HHS uygulamasına yönlendirilmesi ile başlanan güçlü kimlik doğrulama süreci,  Oauth 2.0 standartları gereği öncelikle yetkod değerinin YÖS\'e iletilmesi ile başlar ve erişim belirtecinin alınması sonucunda başarı ile sonuçlanmış olur. \n Güçlü Kimlik Doğrulama için Erişim Adresleri (Endpoints) \n Etki Alanı (Scope) =“hesap_bilgisi”  "odeme_emri" \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu (Z)/ İsteğe Bağlı(İ) \n Yetkilendirme Türü \n İmzalama \n Parametre \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n yetkilendirme-kodu \n GET \n /yetkilendirme-kodu \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n \n \n yetkilendirmeKodu \n \n \n 2 \n erisim-belirteci \n POST \n /erisim-belirteci \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n ErisimBelirteciIstegi \n ErisimBelirteci \n Yetkilendirme Kodu API \n GET /yetkilendirme-kodu \n Ayrık GKD sürecinde kullanılacak olan Yetkilendirme Kodu API\'nin  HHS tarafından sunulması gerekmektedir. \n Ayrık GKD akışında; HHS, YÖS\'ün olay dinleme servisine "AYRIK_GKD_BASARILI" olay tipi ile olay bildirimi yapar. Böylece ÖHK\'nın kendi sistemine başarı ile login olduğunu ve yetKod değerinin ÖHK ile ilişkilendirildiğinin bilgisini YÖS\'e iletmiş olur.  \nHHS olay bildirimi için retry policy süreçleri kapsamında 1 dakikada 3 kez deneme yapabilir. YÖS\'e olay bildirimi yapılmamış ise, kendisine gelmeyen olay bildirimi için yetkod\'un geçerli olduğu 5 dakika boyunca yetkilendirme-kodu endpointi ile sorgulama yaparak yetkod değerini alabilir. \n YÖS, "ODEME_EMRI_RIZASI" kaynağı için bildirim yapıldı ise; GET /yetkilendirme-kodu endpointi ile yetkod sorgusu yapılır. \nÖrnek çağrım :\n GET /yetkilendirme-kodu?rizaNo=123&rizaTip=O \n YÖS, "ILERI_TARIHLI_ODEME_EMRI_RIZASI" kaynağı için bildirim yapıldı ise; GET /yetkilendirme-kodu endpointi ile yetkod sorgusu yapılır. \nÖrnek çağrım :\n GET /yetkilendirme-kodu?rizaNo=123&rizaTip=I \n YÖS, "DUZENLI_TEKRARLI_ODEME_EMRI_RIZASI" kaynağı için bildirim yapıldı ise; GET /yetkilendirme-kodu endpointi ile yetkod sorgusu yapılır. \nÖrnek çağrım :\n GET /yetkilendirme-kodu?rizaNo=123&rizaTip=D \n YÖS, "HESAP_BILGISI_RIZASI" kaynağı için bildirim yapıldı ise; GET /yetkilendirme-kodu endpointi ile yetkod sorgusu yapılır. \nÖrnek çağrım :\n GET /yetkilendirme-kodu?rizaNo=123&rizaTip=H \n İSTEK: \n YÖS, rıza numarasını ve isteğin ÖBH ya da HBH olmasına göre değişen rıza tipini parametre olarak 
16istek talebine ekler. Rıza tipinin alabileceği değerler  TR.OHVPS.DataCode.RizaTip  sıralı veri tiplerinde belirtilmiştir. \n HHS\'nin, yetkilendirme yöntemi "Ayrık Gkd" ise  rıza numarası ile yetki kodu değerini dönmesi beklenmektedir. Yönlendirmeli GKD için bu endpoint "yetKod" değerini dönmemelidir. Yönlendirmeli GKD’ye ait bir rıza no ile yetkilendirme kodu API kullanılarak yet_kod alınmak istendiğinde HHS tarafından  TR.OHVPS.Resource.NotFound  hatası verilmelidir. \n YANIT: \n HHS yanıt nesnesi içerisinde, ÖHK\'ya ait yetki kodunu, rıza no ve rıza durumu ile birlikte YÖS\'e iletir. \n \n \n \n Alan Adı \n JSON Alan Adı \n Format:Veri modeli İsmi \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Yetki Kodu \n yetKod \n AN1..255 \n Z \n GKD sürecinde üretilen yetkilendirme kodudur. Tek kullanımlık olup, aynı yetKod ile birden fazla token alınamaz. yetKod Parametresinin yaşam ömrü 5 dakika olmalıdır. \n \n \n RızaNo \n rizaNo \n AN1..128 \n Z \n Rıza nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n \n Ayrık GKD sürecinde, yetkod değerini alan YÖS; erişim belirteci API ile GKD sürecini tamamlar. \n Erişim Belirteci API \n POST /erisim-belirteci \n İSTEK: \n YÖS erisim-belirteci erişim adresini 2 amaçla kullanır: \n \n \n Bir önceki adımdan aldığı rizaNo, rizaTip (ödeme emri başlatma hizmetinde “O”, hesap bilgisi hizmetinde “H”, ileri tarihli ödeme emri başlatma hizmetinde "I") ve GKD sonrası dönülen yetKod bilgilerini kullanarak HHS nezdinde ErisimBelirteci nesnesi oluşturmak üzere istekte bulunur. YÖS’ün istekte bulunabilmesi için GKD adımının başarılı bir şekilde tamamlanması rizaDrm bilgisinin ‘yetkilendirildi’ olması gerekir. Erişim Belirteci nesnesi ile rızası nesnesi (Ödeme Emri Rızası, Hesap Bilgisi Rızası veya İleri Tarihli Ödeme Emri Rızası) arasındaki ilişki rıza numarası üzerinden sağlanır. \n \n \n Aldığı erişim belirtecinin Geçerlilik Süresinin dolduğu durumda, yenileme belirteci karşılığında yeni bir erişim belirteci alması gerekmektedir. \n \n \n POST /erisim-belirteci isteğinin (REQUEST) gövdesinde (BODY)  “ErisimBelirteciIstegi” nesnesi (Tablo-23) kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “ErisimBelirteci” nesnesi (Tablo 24) oluşturulur veya (Yenileme Belirteci için) güncellenir. Rıza durumu “Yetki Kullanıldı” olarak güncellenir. \n Erişim Belirteci POST işlemi sonucunda HTTP 200 dönülmesi gerekmektedir. \n “ErisimBelirteciIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format:Veri modeli İsmi \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n RızaNo \n rizaNo \n AN1..128 \n Z \n Rıza nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n Rıza Tipi \n rizaTip \n AN1 \n Z \n O,H,I,D (TR.OHVPS.DataCode.RizaTip) \n \n \n Yetki Tipi \n yetTip \n AN1..50 \n Z \n “yet_kod” yada “yenileme_belirteci” değerini alabilir.  (TR.OHVPS.DataCode.YetTip) \n \n \n Yetki Kodu \n yetKod \n AN1..255 \n K \n GKD işleminden dönen yetkilendirme kodudur. Tek kullanımlık olup, aynı yetKod ile birden fazla token alınamaz. yetKod Parametresinin yaşam ömrü 5 dakika olmalıdır. yetTip = “yet_kod” ise zorunludur. \n \n \n Yenilenme Belirteci \n yenilemeBelirteci \n AN1..4096 \n K \n Erişim belirtecinin yenilenmesi amacıyla kullanılır. yetTip = “yenileme_belirteci” ise kullanımı zorunludur. \n \n \n \n BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “erisimBelirteci” nesnesinde bulunan erişim belirteci değeri ödeme emrinin başlatılması esnasında kullanılır. \n "ErisimBelirteci" nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format:Veri modeli İsmi \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Erişim Belirteci \n erisimBelirteci \n AN1..4096 \n Z \n Yetkilendirme Kodu karşılığında HHS tarafından dönülen ve sonraki hesap bilgisi ve ödeme emri servislerine erişimde kullanılan bilgidir. Bölüm 3.6 Karakter Kodlama   bölümünde açıklanan karakter formatında gönderilmesi beklenmektedir. Yenileme belirteci ile birden fazla erişim belirteci alınması durumunda verilen tüm erişim belirteçlerinin süreleri bitene kadar geçerli olmalıdır. \n \n \n Geçerlilik Süresi \n gecerlilikSuresi \n N1..9 \n Z \n Erişim Belirtecini saniye cinsinden geçerlilik süresidir.  Erişim belirteci geçerli olduğu son tarih ; Hesap Bilgisi Rızası için en fazla 30 gün en az ise 1 gün olmalıdır.  Erişimin Geçerli Olduğu Son Tarih(erisimIzniSonTrh); Erişim Belirteci Geçerlilik Süresi\'nden küçük ise Erişimin Geçerli Olduğu Son Tarih değeri ile sınırlıdır. Ödeme Emri Rızası ,İleri Tarihli Ödeme Emri Rızası ve Düzenli Tekrarlı Ödeme Emri Rızası için 5 dakika olmalıdır. \n \n \n Yenileme Belirteci \n yenilemeBelirteci \n AN1..4096 \n Z \n Erişim belirtecinin yenilenmesi amacıyla kullanılır.   Bölüm 3.6 Karakter Kodlama  bölümünde açıklanan karakter formatında gönderilmesi beklenmektedir.  Yenileme Belirteci ile Erişim Belirteci isteği yapıldığında HHS\'nin döndüğü yanıt içerisindeki yenilemeBelirteci değerini kesinlikle değiştirmemesi gerekmektedir.Yenileme belirteci rıza süresi boyunca güncellenmemelidir. \n \n \n Yenileme Belirteci Geçerlik Süresi \n yenilemeBelirteciGecerlilikSuresi \n N1..9 \n Z \n Yenileme belirtecinin saniye cinsinden geçerlilik süresidir. Yenileme belirtecinin geçerli olduğu son tarih ; Hesap Bilgisi için Erişimin Geçerli Olduğu Son Tarih ile sınırlı olmalıdır. Bu tarih geldiği zaman Hesap Bilgisi Rıza Durumunu ”Yetki Sonlandırıldı” statüsüne çekilmesi gerekir. Ödeme Başlatma için Rıza Oluşturma Zamanından 15 gün sonrası olmalıdır. 15 gün süresi sorgulama servislerinin çağrımını destekleyecek şekilde uzun tutulmuştur. Ödeme emri 5 dakika içinde gerçekleştirilmelidir. Gerçekleşmediğinde 4.2.8 bölümünde aktarılan rıza statü güncellemesi yapılmalıdır.  Yenileme belirteci geçerlilik süresi, İleri Tarihli Ödeme Emri Başlatma için talimatın gerçekleşeceği zamandan 15 gün sonrası olmalıdır. Talimat gerçekleştikten sonrası için 15 gün süreyle sorgulama servislerinin çağrımını destekleyecek şekilde uzun tutulmuştur. Yenileme belirteci geçerlilik süresi, Düzenli Tekrarlı Ödeme Emri Başlatma için talimatın gerçekleşeceği  son ödeme günü  zamanından 5 gün sonrası olmalıdır. Son talimat gerçekleştikten sonrası için 5 gün süreyle sorgulama servislerinin çağrımını destekleyecek şekilde uzun tutulmuştur. \n \n \n \n erisim-belirteci erisim noktasından elde edilen erisimBelirteci, ilişkilendirildiği nesne veya işlem için gönderilen POST isteği başlığında x-access-token alanında iletilir. \n Yenilenme Belirteci (refreshToken) kullanılarak Erişim Belirteci (accessToken) alındığında, döne
16n yanıttaki Yenileme Belirteci Geçerlik Süresi (yenilemeBelirteciGecerlilikSuresi) geçen süre eksiltilerek, kalan zamanın saniye cinsinden hesaplanmasıyla iletilmelidir. \n Erişim Belirteci API çağrımı sırasında rıza durumları kontrol edilmelidir. Bu kontrollerin nasıl yapılması gerektiği 4-Rıza Durumları bölümünde aktarılmıştır. \n Yenileme belirteci karşılığında yeni bir erişim belirteci alınması sırasında HHS\'nin döndüğü hata yanıtında httpCode = 401 ve errorCode = "TR.OHVPS.Connection.InvalidToken" gelirse YÖS önce rızanın durumu sorgulamalıdır.  \nEğer geçerli bir rıza ise; HHS veya YÖS tarafında bir sorun olduğu anlaşılmalıdır. Sistem tarafından hata üretilmeli ve sorun incelenmelidir. \nEğer geçerli bir rıza değil ise YÖS tarafındaki rıza durumu güncellenmelidir. \n'},{title:"5.\tGüçlü Kimlik Doğrulama",frontmatter:{},regularPath:"/v2.0.1/contents/gkd.html",relativePath:"v2.0.1/contents/gkd.md",key:"v-7adaab06",path:"/v2.0.1/contents/gkd.html",headers:[{level:2,title:"5.1.\tYönlendirmeli Güçlü Kimlik Doğrulama",slug:"_5-1-yonlendirmeli-guclu-kimlik-dogrulama"},{level:2,title:"5.2.\tAyrık Güçlü Kimlik Doğrulama",slug:"_5-2-ayrık-guclu-kimlik-dogrulama"},{level:3,title:"5.2.1\tStatik Model",slug:"_5-2-1statik-model"},{level:2,title:"5.3.\tYönlendirme/Bildirim Adresleri ve Durum Kodu Parametresi",slug:"_5-3-yonlendirme-bildirim-adresleri-ve-durum-kodu-parametresi"},{level:2,title:"5.4  Güçlü Kimlik Doğrulama Kontrolleri",slug:"_5-4-guclu-kimlik-dogrulama-kontrolleri"}],content:" 5.\tGüçlü Kimlik Doğrulama \n Müşteri için güçlü kimlik doğrulama, ÖHK’nın (müşterinin) kimliğinin doğrulamada kullanılan ve bir bileşenin ele geçirilmesinin diğer bileşenin güvenliğini tehlikeye atmayacağı en az iki bileşenden oluşan, bu iki bileşenin de müşterinin “bildiği”, “sahip olduğu” veya “biyometrik bir karakteristiği olan” bileşen sınıflarından farklı ikisine ait olacak şekilde seçildiği yöntemi tanımlar. \n Ödeme ve Elektronik Para Kuruluşlarının Bilgi Sistemleri ile Ödeme Hizmeti Sağlayıcılarının Ödeme Hizmetleri Alanındaki Veri Paylaşım Servislerine İlişkin Tebliğ uyarınca hesap bilgisi hizmetinde müşterinin onayının alınması esnasında ve ödeme emri başlatma hizmetinde her bir ödeme emri başlatma işleminde  HHS tarafından müşteriye güçlü kimlik doğrulama (GKD) uygulanması esastır.  Buna göre: \n \n \n Hesap bilgisi hizmetinde ÖHK’nın onayının alınması esnasında  Tebliğin 26 ncı maddesinin 1 inci fıkrası uyarınca  HHS tarafından ÖHK’ya GKD uygulanır. \n \n \n Ödeme emri başlatma hizmetinde,  Tebliğin 26 ncı maddesinin 2 nci fıkrası uyarınca  HHS tarafından ÖHK’ya güçlü kimlik doğrulama uygulanır ve işlem doğrulama kodu ile ÖHK’nın onayı alınır. \n \n \n Ödeme emri başlatma hizmetinde,  Tebliğin 26 ncı maddesinin 3 nci fıkrası uyarınca  HHS tarafından ÖHK’ya güçlü kimlik doğrulama uygulanmasına ilişkin istisna veya ilave güvenlik önlemleri işbu API İlke ve Kuralları belgesinde tanımlanır. \n \n \n HHS, güçlü kimlik doğrulama sürecinde ÖHK’nin sahip olduğu bileşen sınıfı olarak SMS OTP ya da SMS ile işlem doğrulama kodu kullanabilir. \n \n \n HHS, aşağıdaki hallerde veya  Tebliğin 10 uncu maddesinin ikinci fıkrasında  belirtilen risk değerlendirmesi sonucuna göre tek bileşen ile kimlik doğrulama yapabilir. \n \n Ödemenin göndereni ve alıcısının aynı olması, \n Daha önce tanımlanmış güvenli alıcılar listesine ödeme yapılması, \n ÖHK’nin talimatına istinaden gerçekleştirilen düzenli bir ödeme olması. \n \n \n \n Tek bileşen ile kimlik doğrulama yapılan bu işlemlerle ilgili olarak gerçekleştirilen işlemin müşteri tarafından yapıldığını ispat etme yükümlülüğü HHS’ye ait olur. \n \n \n İşlem Doğrulamada  Tebliğin 3 üncü maddesinin birinci fıkrası ğğ bendindeki  işlem bilgisi tanımına uygun olarak aşağıdaki bilgiler ile  Tebliğin 3 üncü maddesinin birinci fıkrası hh bendinde  tanımlanan işleme özel üretilmiş işlem doğrulama kodu birlikte kullanılır. \n \n Alıcı Unvan (Kolas akışında maskeli olarak)  (ödeme emri başlatma hizmeti) \n Tutar (ödeme emri başlatma hizmeti) \n Referans bilgisi (8 karakterden küçük ise alanın tüm değeri, büyük ise ilk 4 ve son 4 hanesi) \n \n İşleme ait yukarıdaki bilgilerden en az biri değiştiği zaman  Tebliğin 3 üncü maddesinin birinci fıkrası hh bendinde  belirtildiği gibi yeni bir işlem doğrulama kodu üretilecek şekilde akış kurgulanmalıdır. \n \n \n İşlem doğrulama kodunun gönderilmesinden HHS sorumludur. HHS,  Tebliğin 10 uncu maddesinin ikinci fıkrasında  belirtilen risk değerlendirmesi sonucuna göre işlem doğrulama kodu kullanmaksızın ÖHK’nın onayını alabilir. İşlem doğrulama kodu kullanılmayan işlemlerle ilgili olarak gerçekleştirilen işlemin ÖHK tarafından yapıldığını ispat etme yükümlülüğü HHS’ye aittir. \n \n \n ÖHVPS API İlke ve Kuralları kapsamında iki adet Güçlü Kimlik Doğrulama (GKD) yöntemi kullanılacaktır: \n \n Yönlendirmeli (Redirect) GKD Yöntemi \n Ayrık (Decoupled) GKD Yöntemi \n \n \n \n Hem web hem mobil uygulama hizmeti bulunan katılımcılar için her iki uygulama özelinde de yönlendirme yapılması zorunludur. Web ya da mobil uygulamalardan sadece birinin olması durumunda ilgili uygulama özelinde yönlendirme yapılması zorunludur. \n 5.1.\tYönlendirmeli Güçlü Kimlik Doğrulama \n Yönlendirmeli GKD Yönteminde, müşteri kimlik doğrulama için YÖS tarafından HHS arayüzüne yönlendirilir. \n Müşteri HHS’ye (uygulama veya web arayüzü vasıtasıyla) yönlendirildikten s
16onra müşterinin güçlü kimlik doğrulaması adım adım ve doğrudan HHS ile müşteri arasında yürütülür. GKD’nin tamamlanmasından sonra müşteri tekrar YÖS uygulamasına yönlendirilir. \n Yönlendirmeli GKD Yöntemi için üst düzey örnek iş akışı aşağıdaki adımlardan oluşur: \n \n YÖS, GKD için HHS tarafından tanımlanan arayüze (tarayıcı ya da uygulama) yönlendirme yapar. \n Müşteri, YÖS arayüzünden ayrılır, yönlendirildiği HHS arayüzü üzerinde kimlik doğrulama işlemlerini gerçekleştirir. \n GKD tamamlandıktan sonra müşteri, YÖS arayüzüne tekrar yönlendirilir ve işlem sonucu görüntülenir. \n \n Yönlendirmeli GKD için temel gereklilikler şunlardır: \n \n Ödeme hizmeti (hesap bilgisi veya ödeme emri başlatma hizmeti) tarayıcı ya da uygulama tabanlı bir şekilde sunulabilir. Web ya da mobil uygulamalardan sadece birinin olması durumunda ilgili uygulama özelinde yönlendirme yapılması zorunludur. \n \n Tarayıcı Tabanlı Yönlendirme \n Yönlendirmeli GKD Yönteminde; rıza isteğine başarılı yanıt alındıktan sonra, ÖHK, kimlik doğrulama için YÖS tarafından HHS arayüzüne yönlendirilir.\nYÖS, yönlendirme akışını kendi sunucusundan karşılayacağı bir istek ile başlatmalıdır. YÖS web arayüzündeki bu yapı, 302 yanıt kodu ve yanıt başlığındaki Location değeri ile ÖHK tarayıcısını HHS adresine yönlendirmelidir. Bu sayede GKD, HHS tarafında başlayabilir. \n YÖS tarafındaki yönlendirme servisi için örnek response; \n HTTP/1.1 302 Found\nLocation: {{hhsYonAdr}}\n \n ÖHK, HHS’ye (app veya web arayüzü vasıtasıyla) yönlendirildikten sonra ÖHK'nin güçlü kimlik doğrulaması HHS ile ÖHK arasında yürütülür. GKD’nin tamamlanmasından sonra ÖHK tekrar YÖS uygulamasına yönlendirilir. \n HHS, yönlendirme akışını kendi sunucusundan karşılayacağı bir istek ile başlatmalıdır. HHS web/app arayüzündeki bu yapı, ÖHK'nin oturumunu güvenli bir şekilde kapatmalıdır. Ardından 302 yanıt kodu ve yanıt başlığındaki Location değeri ile ÖHK tarayıcısını YÖS adresine yönlendirmelidir. \n HTTP/1.1 302 Found\nLocation: {{yosYonAdr}}&rizaDrm=Y&yetKod=xx&rizaNo=yy&rizaTip=O\n \n HHS’nin web arayüzüne, \n \n HHS’nin mobil uygulamasının olmadığı, \n ÖHK’nın ödeme hizmetini (hesap bilgisi veya ödeme emri başlatma hizmeti) sunduğu mobil cihazda HHS uygulamasının yüklü olmadığı, \ndurumlarda yönlendirme yapılır. \n \n YÖS’ün mobil uygulaması varsa mobil cihazda uygulamadan tarayıcıya, YÖS’ün mobil uygulaması yoksa ödeme hizmetinin sunduğu cihazda (Kişisel Bilgisayar veya Mobil Cihaz) tarayıcı üzerinden yönlendirme yapılır. \n Uygulama Tabanlı Yönlendirme \n ÖHK’nın ödeme hizmetini (hesap bilgisi veya ödeme emri başlatma hizmeti) YÖS’ün mobil uygulaması ile kullanıyorsa, aynı mobil cihazda HHS’nin mobil uygulamasının yüklenmiş olması durumunda, ÖHK doğrulamasının HHS mobil uygulaması tarafından yapılması için uygulama tabanlı yönlendirme yapılır. Böylece ÖHK, ödeme hizmetine erişim için HHS’nin mobil kanalına erişim sırasında kullandığı doğrulama yöntemini ile doğrulanabilir. \n HHS'nin mobil uygulaması olması durumunda hhsYonAdr olarak universal link kullanması gerekmektedir. \n Tablo 5: Yönlendirmeli Güçlü Kimlik Doğrulama Kanalları \n \n \n \n Doğrulama Yöntemi \n YÖS Olası Ortam \n HHS Olası Ortam \n \n \n \n \n Tarayıcı Tabanlı Yönlendirme \n Kişisel Bilgisayar (masaüstü, dizüstü)/Mobil Cihaz \n Kişisel Bilgisayar (masaüstü, dizüstü) / Mobil Cihaz \n \n \n Uygulama Tabanlı Yönlendirme \n Mobil Cihaz \n Mobil Cihaz \n 5.2.\tAyrık Güçlü Kimlik Doğrulama \n Ayrık Güçlü Kimlik Doğrulama, bir kullanıcının kimliğinin, bir işlem başlatıldıktan sonra ayrı bir şekilde doğrulandığı yönteme verilen addır. Bu GKD modelinde, kimlik doğrulama işlem sürecinden \"ayrıştırılmıştır\". Kullanıcılar, başka bir arayüze yönlendirilmek yerine ( tarayıcı veya uygulama tabanlı yönlendirme gibi), ayrı bir kanal üzerinden (telefonlarında bir uygulama bildirimi gibi) işlemi doğrulamaları için bildirim alır.\nKullanıcı, işlemi tamamen ayrı bir cihaz veya uygulama kullanarak doğrulayabilir. \n İlk fazda Ayrık GKD'de QR’lı modeller kullanılmayacaktır. \n Ayrık GKD uygulamalarının farklı örnekleri bulunmaktadır. Ancak yaygın olan yaklaşım, bir web arayüzü ve bir mobil uygulamanın komb
16inasyonunu kullanmayı içerir. \n Mobil uygulaması bulunan HHS'ler için Ayrık GKD desteklenmesi zorunludur.  HHS’nin web olduğu durumda Ayrık GKD akışı uygulanmayacaktır. Mobil uygulaması bulunup müşteri özelinde mobil aktiflik kontrol süreci HHS inisiyatifindedir. Ayrık GKD sürecinde HHS tarafında sadece mobil uygulama üzerinden GKD yapılmalıdır. ÖHK’nın web uygulamasına yönlendirme yapmaması gerekmektedir. \n YÖS rolünde Ayrık GKD akışının ÖHK’ya sorularak başlatılmasına gerek bulunmamakla beraber bu bilginin ÖHK’ya sorulması YÖS inisiyatifindedir. YÖS olarak, Ayrık GKD iş akışları kapsamında ÖHK’ya ayrık GKD öncesi HHS mobil uygulamasının varlığı sorularak (bildirim ayarlarının açık olması gerektiği bilgisi de verilebilir) ilerlenebilir. Aynı zamanda Ayrık GKD ile rıza sürecinin başlatılması zorunlu değildir. Rıza süreci başlatılırken yetkilendirme yöntemi YÖS inisiyatifindedir. \n Örnek bir akış şu şekildedir: \n \n İşlem Başlatma (YÖS Web/Mobil Arayüzü):  ÖHK bir işlemi YÖS’ün web/mobil arayüzünde başlatır. YÖS uygulaması, ÖHK'nın tekil bir kullanıcı kimliğini rızaya ekleyerek bir rıza başlatma işlemini HHS’ye iletir. HHS, tekil kullanıcı kimliğini kullanarak ÖHK'nın mobil uygulamasına bir bildirim gönderir. \n Kimlik Doğrulama İsteği (HHS Mobil Uygulama):  ÖHK Mobil uygulama bildirimi alır ve mobil uygulama ÖHK'ya  kimlik doğrulama isteği sunar. HHS’nin BDDK tarafından belirlenmiş GKD yöntemlerine uygun davranması beklenmektedir. \n Kimlik Doğrulama Onayı (HHS Mobil Uygulama):  Mobil uygulama, ÖHK’nın kimlik doğrulama girişimini doğrular. Başarılı olursa rıza onayı sonrası mobil uygulama, 'Ayrık Yetkilendirme Başarılı' olay bildirimini YÖS’e gönderir. \n İşlem Onayı (YÖS Web/Mobil Arayüzü):  YÖS,  HHS'den gelen 'Ayrık Yetkilendirme Başarılı' olay bildirimine konu olan rızayı kullanarak yetkilendirme koduna erişir. Bundan sonraki süreç erişim belirteci alınması servisi ile devam eder. \n \n Ayrık Güçlü Kimlik Doğrulamanın Olay Bildirim Servisleri ile olan Bağımlılıkları \n Ayrık GKD sürecinde; HHS'nin yetkilendirme kodunu YÖS'e iletmesi için gerekli önkoşul olan ÖHK doğrulaması adımının tamamlanmasını olay bildirimi ile YÖS'e yapması gerekmektedir.\nBu nedenle YÖS'lerin eğer Ayrık GKD sürecini destekleyecek ise;  /olay-dinleme endpointini açarak olay bildirimi alması zorunludur. \n Özetle: \n Yönlendirmeli GKD \n \n HHS mobil uygulaması olması durumunda yönlendirme adresi olarak universalLink kullanmalı. \n Bu link tanımı  uygulama var ise uygulamayı aç yoksa webden devam et şeklinde olmalı. \n YÖS’ün mobilden mi webden mi geldiği HHS açısından önemli değildir. HHS olarak YÖS hangi adresi yonAdr değerinde göndermiş ise yetkilendirme süreci bittiğinde o adrese yönlendirme yapılmalıdır. \n \n Ayrık GKD \n \n Mobil uygulaması bulunan HHS'ler için Ayrık GKD desteklenmesi zorunludur. HHS’nin web olduğu durumda Ayrık GKD akışı uygulanmayacaktır. Mobil uygulaması bulunup müşteri özelinde mobil aktiflik kontrol süreci HHS inisiyatifindedir. Ayrık GKD sürecinde HHS tarafında sadece mobil uygulama üzerinden GKD yapılmalıdır. ÖHK’nın web uygulamasına yönlendirme yapmaması gerekmektedir. \n ÖHK’nin Mobil uygulamasının olmadığını tespit edebildiğiniz her durum için rıza oluşturma aşamasında “TR.OHVPS.Business.CustomerMobileApplicationNotFound” hatası döülür. \n HHS, ÖHK’nın mobil uygulamasının bulunmadığı bilgisine ulaşamazsa kendisinin belirleyeceği bildirim yöntemlerinden biri ile ÖHK’ye bilgilendirme yapar. Bildirim yöntemi SMS ise ÖHK’ya mobil uygulamasını açtıracak şekilde adres iletir, Web uygulamayı açtıracak bir link iletilmemelidir. ÖHK bu bildirimi dikkate almazsa/alamazsa veya ÖHK’da mobil uygulama yok ise bu durumda rıza süre aşımından iptal olur. \n ÖHK mevcut bankacılık işlemlerinde bildirimi nasıl gönderiyorsanız (Örneğin: Anlık bildirim gönderildi, alınmadı, SMS’e dönüldü gibi.) aynı şekilde bildirim göndererek ÖHK’nin uygulama üzerinden rızayı onaylaması beklenir. Buradaki akış HHS’nin diğer ürünleri için verdiği müşteri deneyimi ile paralel olmalıdır. \n 5.2.1\tStatik Model \n YÖS'ün ÖHK'yı tanıdığı ve ÖHK'ya ait tanımlayıcı bilgileri HHS'ye aktarabildiği durumda kullanılmaktadır. Buradaki ÖHK'ya ait tanımlayıcı bilgiler TCKN, MNO , YKN, PNO, GSM, IBAN olarak belirlenmiştir. \n Akış aşağıdaki gibi kurgulanmıştır: \n   \n \n \n ÖHK, YÖS uygulaması üzerinde işlem başlatır. \n \n \n ÖHK, YÖS uygulaması içerisinde, farklı bir ortam üzerinden HHS doğrulamasını gerçekleştirmek istediğini belirtir. ÖHK'yı tanıma tip ve değerleri YÖS ÖHK'dan talep edebileceği gibi, YÖS sisteminde hali hazırda kayıtlı bilgilerle de akışı devam ettirebilir.  \n \n \n ÖHK, YÖS'ün müşterisi ve YÖS uygulamasına login ise tek seferlik ödeme akışı başlatamaz. \n \n \n YÖS tarafından başlatılan tek seferlik bir Ödeme işleminin Ayrık GKD ile onaylanacağı durumda;\nYÖS’ün ilgili kullanıcıya ait “ÖHK Tanım Değer” verisinin yanında işleme ait ve ilgili ÖHK ile eşleştirilmiş olan  ve sadece YÖS ile ÖHK’nın bilebileceği bir değerin daha ÖHK tarafından sağlanması ve YÖS tarafından kontrol edilerek eşleşen Ödeme emrinin HHS’ye iletilmesi gerekmektedir. Örneğin; bu değer YÖS tarafında yapılan tek seferlik ödeme işlemine ait fatura numarası. \n \n \n YÖS önyüzde ÖHK'dan aldığı ohkTanimTip ve ohkTanimDeger deÄ
16Ÿerlerini kimlik tür ve kimlik değeri alanlarına atamamalıdır. \n \n \n YÖS, ayrık GKD ile işlem başlatabileceği HHS'lerin listesini HHS API'de yer alan \"hizmetTipi\"=\"01\" parametresi ile alabilir. \n \n \n YÖS, ÖHK bilgileri ile rıza oluşturur. Rıza nesnesi içerisinde yer alan GKD nesnesinde ilgili parametreler aşağıdaki şekilde doldurulur: \n \n \n ohkTanimTip ve ohkTanimDeger parametreleri \nBu metodda; ayrikGkd nesnesi içerisindeki \"ohkTanimTip\" parametresi TR.OHVPS.DataCode.ohkTanimTip sıralı veri tiplerinden TCKN, MNO , YKN, PNO, GSM, IBAN değerlerinden birini alabilir. ohkTanimDeger parametresi de seçilen tipe ait ÖHK'ya ait değeri içermelidir.Rıza başlatma akışı içerisinde kimlik bilgisinin olduğu durumlarda; ÖHK'ya ait kimlik verisi(kmlk.kmlkVrs) ile ayrık GKD içerisinde yer alan OHK Tanım Değer alanı (ayrikGkd.ohkTanimDeger) birebir aynı olmalıdır.Kimlik alanı içermeyen tek seferlik ödeme emri akışlarında bu kural geçerli değildir. GSM ve IBAN değerleri sadece tek seferlik ödemelerde kullanılabilir. \n YÖS'ten ohkTanimTip olarak gelen IBAN bilgisi sadece ÖHK'yı tanımak için kullanılabilir. Tanım tipi IBAN ile başlatılan bir işlemde ÖHK, başka bir IBAN ile ödeme başlatabilir. \n Kurumsal müşteriler için kmlkTur ve kmlkVrs alanları ohkTanimTip ve ohkTanimDeger alanlarında gönderilmelidir. \n \n \n yetYntm parametresi \nyetYntm parametresi  Ayrık GKD  akışını ifade eden \"A\" değerini almalıdır.  \n \n \n \n \n Örnek bir istek : \nPOST/ohvps/obh/s2.0/odeme-emri-rizasi \n RizaNesnesi \n {\n...\n  \"gkd\": {\n    \"yetYntm\": \"A\",\n     \"ayrikGkd\" :{\n         \"ohkTanimTip\" : \"TCKN\" \n         \"ohkTanimDeger\": \"11232123212\"\n     }    \n  },\n...\n}\n \n \n \n YÖS, ayrık GKD ile işlem başlatabileceği HHS'lerin listesini HHS API'de yer alan \"hizmetTipi\":\"01\" parametresi ile alabilir.\nYÖS, ayrık GKD desteklemeyen HHS'ye Ayrık GKD yöntemiyle rıza başlatma isteği yapması durumunda HHS tarafından  TR.OHVPS.Business.DecoupledAuthenticationNotSupported  hatası iletilmelidir. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n \n \n HHS tarafında ÖHK'nın mobil uygulaması bulunmaması durumu tespit edilebildiği durumda Ayrık GKD ile başlatılan rıza akışlarında hata mesajı vermelidir. HHS tarafından  TR.OHVPS.Business.CustomerMobileApplicationNotFound  hatası iletilmelidir. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. HHS, ÖHK’nın mobil uygulamasının bulunmadığı bilgisine ulaşamazsa kendisinin belirleyeceği bildirim yöntemlerinden biri ile ÖHK’ye bilgilendirme yapar. Bildirim yöntemi SMS ise ÖHK’ya mobil uygulamasını açtıracak şekilde adres iletir, Web uygulamayı açtıracak bir link iletilmemelidir. \n \n \n HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder.  YÖS iki olay tipine de abone olmak zorundadır. Eğer olay aboneliği yoksa HHS tarafından  TR.OHVPS.Business.EventSubscriptionNotFound  hata kodu iletilmelidir. \n \n \n HHS \"gkd\" nesnesi için alan kontrollerini gerçekleştirir.   \"yetYntm\" = \"A\" gönderilmiş ise \"ayrikGkd\" nesnesinin dolu gönderilmesi zorunludur. Gönderilmemesi durumunda HHS tarafından  TR.OHVPS.Resource.InvalidFormat  hata kodu iletilmelidir. \n \n \n Rıza başlatma akışı içerisinde kimlik bilgisinin olduğu durumlarda; ÖHK'ya ait kimlik verisi(kmlk.kmlkVrs) ile ayrık GKD içerisinde yer alan OHK Tanım Değer alanı (ayrikGkd.ohkTanimDeger) birebir aynı olmalıdır. Aynı olmadığı durumda HHS tarafından  TR.OHVPS.Business.CustomerInfoMismatch  hatası iletilmelidir.\nKimlik alanı içermeyen tek seferlik ödeme emri akışlarında bu kural geçerli değildir. GSM ve IBAN değerleri sadece tek seferlik ödemelerde kullanılabilir. \n \n \n Tek seferlik ödeme işlemlerinde \"ohkTanimTip\" = \"GSM\"/\"IBAN\" olarak gönderilmiş ise, HHS sisteminde bu GSM/IBAN ile eşleşen müşterileri taramalıdır. GSM/IBAN bilgisi ÖHK bazında tekil bir kullanıcıya erişim imkanı sağlamaz ise  TR.OHVPS.Business.InvalidCustomerInfo  hatasını iletmelidir. \n \n \n Kontrollerin başarılı olması durumunda HHS rızayı oluşturur ve ÖHK tekil verisi ile ulaştığı ÖHK'ya bilgilendirme mesajı gönderir.      Bilgilendirme mesajı kısa mesaj ya da anlık bildirim mesajı olabilir. ÖHK’nın birden fazla cihazda aktivasyonu varsa HHS’nin iç süreçlerine göre mevcut durumda nasıl bir bildirim süreci işletiliyorsa aynı şekilde ilerlenebilir.  \n \n \n Kurumsal müşteriler için, hangi kullacıya bildirim gitmesi isteniyor ise, rıza aşamasında o kişi ayrikGkd nesnesinde gönderilir. HHS'nin rıza içerisindeki ohkTur değerine göre,  gelen bildirime verilen cevaba uygun uygulamasını açmalıdır. Kurumsal ÖHK için rıza geldi ise, kurumsal giriş sayfası; bireysel ÖHK için rıza geldi ise bireysel giriş sayfası müşterinin önüne açılmalıdır ve ilgili hesaplara erişime izin vermelidir. \n \n \n ÖHK'ya bir bildirim gelmemesi durumunda, HHS kendi sisteminde GKD sürecine devam edemez. 5 dakika sonunda rıza durumu Yetki Bekleniyor'dan Rıza İptal / Süre Aşımı (İptal kod 04) durumuna çeker. \n \n \n \n \n ÖHK, HHS sisteminden gelen bildirim mesajını alır. HHS sistemine login olduktan sonra işleme onay verilmezse veya GKD kontrolleri başarısız olursa HHS Olay Bildirim servisleri aracılığı ile GKD sürecinin sonlandığını YÖS'e iletir. Olay tipi \"AYRIK_GKD_BASARISIZ\" olacak şekilde bir POST /olay-dinleme servis çağrısı yapılır.YÖS kendisine gelen olay bildirimi ile\nrıza sorgulaması yaparak iptal detay kodunu öğrenebilir. \n \n \n ÖHK, HHS sisteminde login olduktan sonra işleme onay verirse; HHS tarafından rıza ile ilişkili yetkod değeri üretilir.HHS, YÖS'e ÖHK için \"yetkod\" değeri üretildiğinin bilgisini Olay Bildirim servisleri aracılığı ile iletir. Olay tipi \"AYRIK_GKD_BASARILI\" olacak şekilde bir POST /olay-dinleme servis çağrısı yapılır. \n \n \n YÖS kendisine gelen olay bildirimi ile \"yetkod\" değerinin HHS'de üretildiğinin bilgisini alır. \"yetkod\" değerini öğrenebilmek için HHS'yi sorgulaması gerekmektedir.  \nHHS'nin açacağı   GET /yetkilendirme-kodu endpointi   ile bu bilgiye erişebilir. \n \n \n YÖS, \"yetkod\" ile POST /erisim-belirteci endpointinden erişim belirteci alır. Böylelikle ÖHK'nın Ayrık GKD süreci tamamlanmış olur. \n 5.3.\tYönlendirme/Bildirim Adresleri ve Durum Kodu Parametresi \n CSRF Ataklarından korunmak için ve YÖS uygulamasının bir önceki durumunu restore edebilmesi için; YÖS tarafından iletilen yönlendirme ve bildirim adreslerine , Oauth2 standartlarındaki state parametresine eşdeğer,   durum ko
16du (drmKod)  parametresinin eklenmesi gerekmektedir. Durum kodu parametresi YÖS tarafından üretilen, tekil ve kolay tahmin edilemeyen bir değer olmalıdır. Rıza isteği gönderimi aşamasında oluşturulmalıdır. YÖS uygulamasında uygun bir yerde saklanmalıdır (cookie, session, local storage gibi) . \n Durum kodu, rıza isteğindeki yönlendirme adresine parametre olarak eklenir.  GKD süreci sonrasında yetki kodu ile birlikte bu bilgi, HHS tarafından YÖS’e iletilir. YÖS sakladığı değer ile parametre olarak gelen değerin eşitliğini kontrol eder. Aynı ise erişim belirteci almak üzere akışı ilerletir. Farklı ise işlemi keser. \n 5.4  Güçlü Kimlik Doğrulama Kontrolleri \n ÖHK, GKD için HHS uygulamasına yönlendirildiğinde, HHS’nin çeşitli kontroller yaparak işlemin doğruluğunu teyit etmesi gerekmektedir.\nYapılması gereken kontrollere ait temel senaryolar aşağıdaki tabloda belirtilmiştir. Bu senaryolar baz alınarak HHS’ler tarafından zenginleştirilebilir. \n Aşağıdaki tabloda yer alan 07-13 arası Rıza İptal Detay Kodlarının oluştuğu senaryolar, HHS uygulamasında yapılan kullanıcı doğrulama öncesi ve sonrası olarak iki adımda incelenmelidir. \n HHS tarafında, kullanıcı doğrulama öncesinde yapılan kontroller neticesinde verilemeyen rızalar için ‘04’ : Süre Aşımı : Yetki Bekleniyor iptal kodu atanır. HHS'nin YÖS uygulamasına 04 kodunu iletmesi beklenmez. YÖS zaman aşımı neticesinde rıza statüsünü sorgulayarak öğrenir. \nKullanıcı doğrulandıktan sonra rıza verilemiyorsa ilgili hata kodunun YÖS'e iletilmesi beklenmektedir. Kullanıcı doğrulama sonrası YÖS'e iletilen rıza iptal detay kodu ile HHS veri modelinde tutulan rıza ile ilişkili rıza iptal detay kodu, aynı değeri alacak şekilde güncellenmelidir. YÖS, HHS tarafından kendine iletilen rıza iptal detay kodunu kendi veri modelinde güncellemelidir. \n Zorunlu olarak belirtilen hata durumlarının HHS’ler tarafından gerçeklenmesi ve uygun hata kodlarının YÖS’e iletilmesi; ileride oluşabilecek mutabakatlaşma sorunlarını ortadan kaldırabilecek, yapılacak raporlamalar kapsamında sistem ve süreç iyileştirmelerine katkı sağlayacak, son kullanıcı açısından da alınan hataya yönelik bilgilendirici içerik sağlayacaktır. \n Hata açıklamaları; hata koduna uygun ya da uyumlu olmak kaydıyla, HHS ve YÖS tarafından farklı şekillerde sunulabilir. \n GKD Sırasında yapılması gereken kontroller \n \n \n \n Rıza İptal Detay Kodu \n HHS hata açıklaması* \n Yös ekranında listelenecek örnek mesaj metni* \n Örnek Senaryo \n Zorunlu / Opsiyonel \n \n \n \n \n 07 \n Rıza mevcut ve durumu \"Yetkilendirildi\" veya \"Yetki Kullanıldı\" \n Yetki Hatası \n ÖHK,  kullanıcı doğrulama işlemi tamamlandıktan sonra  YÖS ekranında ileri - geri yaparak ya da ÖHK'nın yönlendirme adresini kopyalayarak tarayıcıya yapıştırması ile tekrar HHS'ye yönlendirir. Bu durumda HHS bu rıza iptal detay kodunu iletir. HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Zorunlu \n \n \n 08 \n Rızano ile kimlik bilgileri uyuşmazlığı. \n İşlem gerçekleştirilememiştir. \n YÖS tarafından başlatılan rıza içerisinde yer alan kimlik bilgisi (örn:TCKN) ile HHS'de başarılı kimlik doğrulama yapılan ÖHK'nın bilgilerinin uyuşmadığı durumda  HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Zorunlu \n \n \n 09 \n ÖHK'nın HHS'de ilgili ürününün olmadığı durum (hesap/kart) \n Gösterilebilecek hesap/kart bulunamamıştır. \n HHS, kullanıcı doğrulama yaptıktan sonra, ÖHK'nın uygun statülü hesabının olmadığı durumda  HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Zorunlu \n \n \n 10 \n ÖHK'nın Açık Bankacılık kanalı işleme kapalı \n ÖHK'nın Açık Bankacılık kanalı işleme kapalı \n Açık bankacılığı ayrı bir kanal olarak tanımlamış HHS'lerde,  ÖHK kullanıcı doğrulama yaptıktan sonra yapılan kontrollerde, ÖHK'nın işlemlerini AB kanalına kapatmış olması durumunda   HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Opsiyonel \n \n \n 11 \n ÖHK'nın HHS'deki hesaplarında yeterli yetkisinin olmaması \n Yetki hatası \n 1- Kurumsal firma kullanıcılarının hesaplar üzerinde işlem yetkisinin olmaması durumunda   2- Bireysel ortak hesaplarda hesap kısıtı bulunuyorsa (para çıkışına izin verilmediği durum)  HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Zorunlu \n \n \n 12 \n HHS’nin,  ÖHK özelinde yaptığı kontrollerin başarısız olması \n Yetki hatası \n HHS'nin, kullanıcı doğrulama sonrası ÖHK için iç sistemlerinde yaptığı kontrollerin başarısız olması. Örneğin: Müşterinin henüz bankacılık hizmet sözleşmesi gibi Internet şubesi üzerinde işlem yapmasını engelleyen eksikleri olması durumunda veya kurumsal kullanıcıda vekalet süresinin dolması/eksik doküman olması durumunda kanal üzerinde işlem yapamadığı durum  HHS ve YÖS'ler veri modellerini bu bilgi doğrultusunda güncellemelidir. \n Opsiyonel \n \n \n 13 \n ÖHK isteği ile GKD’den vazgeçilmesi \n Müşteri işlemden vazgeçmiştir. \n HHS ekranında yer alan VAZGEÇ butonuna basılması durumu (ÖHK,HHS uygulamasında kullanıcı doğrulama yaptıktan sonra VAZGEÇ butonu olabilir.) \n Zorunlu \n \n \n 14 \n GKD İptali: Fraud Şüphesi \n İşlem gerçekleştirilememiştir. \n HHS Fraud şüphesi nedeniyle işlemin devamına izin vermez. HHS'nin, fraud kontrollerinin ödeme başlatma hizmeti için yapması ve “14- GKD İptali: Fraud Şüphesi” ile rıza iptalini gerçekleştirmelidir. HBH servislerinde HHS'nin rıza iptal kodu 14 ile işlemi kesmesi HHS'nin kendi insiyatifindedir yani opsiyoneldir. \n Koşullu \n \n \n 99 \n Diğer \n İşlem gerçekleştirilememiştir. \n Oluşabilecek diğer senaryolar. \n Zorunlu \n \n \n \n GKD sırasında iletilen rıza no eğer HHS’nin sisteminde bulunamazsa durumu güncellenecek bir rıza no da olmayacaktır. HHS kendi önyüzünde bu duruma uygun bir mesaj gösterebilir. YÖS’e de Diğer hata kodu ile bu durumu iletebilir. \n"},{title:"9.\tHesap Bilgisi Hizmeti",frontmatter:{},regularPath:"/v2.0.1/contents/hesap-bilgisi-hizmeti.html",relativePath:"v2.0.1/contents/hesap-bilgisi-hizmeti.md",key:"v-16682afd",path:"/v2.0.1/contents/hesap-bilgisi-hizmeti.html",headers:[{level:2,title:"Genel Bilgiler",slug:"genel-bilgiler"},{level:2,title:"Hesap Bilgisi Hizmeti İçin Erişim Adresleri",slug:"hesap-bilgisi-hizmeti-icin-erisim-adresleri"}
16,{level:2,title:"ADIM 0: ÖHK'nın hesap/kart bilgilerine erişim için talepte bulunması:",slug:"adim-0-ohk-nın-hesap-kart-bilgilerine-erisim-icin-talepte-bulunması"},{level:2,title:"9.1 ADIM 1: Hesap Bilgisi Rızasının Hazırlanması",slug:"_9-1-adim-1-hesap-bilgisi-rızasının-hazırlanması"},{level:3,title:"POST /hesap-bilgisi-rizasi",slug:"post-hesap-bilgisi-rizasi"},{level:3,title:"Başarılı İstek:",slug:"basarılı-istek"},{level:3,title:"Başarılı Yanıt:",slug:"basarılı-yanıt"},{level:2,title:"İzinler",slug:"izinler"},{level:2,title:"9.2 ADIM 2: Hesap Bilgisi Hizmeti Rızasının Tesisi",slug:"_9-2-adim-2-hesap-bilgisi-hizmeti-rızasının-tesisi"},{level:2,title:"9.3 ADIM 2.1: Hesap Bilgisi Rızasının Sorgulanması",slug:"_9-3-adim-2-1-hesap-bilgisi-rızasının-sorgulanması"},{level:2,title:"9.4 ADIM 2.2: Hesap Bilgisi Rızasının İptali",slug:"_9-4-adim-2-2-hesap-bilgisi-rızasının-iptali"},{level:2,title:"9.5 ADIM 3: Hesap Bilgilerinin Alınması",slug:"_9-5-adim-3-hesap-bilgilerinin-alınması"},{level:2,title:"9.6 ADIM 3.1 ve 3.2: Hesap Bilgilerinin Sorgulanması",slug:"_9-6-adim-3-1-ve-3-2-hesap-bilgilerinin-sorgulanması"},{level:2,title:"9.7 ADIM 3.3 ve 3.4: Hesap Bakiyesinin Sorgulanması",slug:"_9-7-adim-3-3-ve-3-4-hesap-bakiyesinin-sorgulanması"},{level:2,title:"9.8 ADIM 3.5 ve 3.6: İşlemlerin Sorgulanması",slug:"_9-8-adim-3-5-ve-3-6-islemlerin-sorgulanması"},{level:2,title:"9.9 ADIM 4: Kart Bilgilerinin Sorgulanması",slug:"_9-9-adim-4-kart-bilgilerinin-sorgulanması"},{level:2,title:"9.10 ADIM 4.1: Kart Detay Bilgilerinin Sorgulanması",slug:"_9-10-adim-4-1-kart-detay-bilgilerinin-sorgulanması"},{level:2,title:"9.11 ADIM 4.2: Kart Hareket Bilgilerinin Sorgulanması",slug:"_9-11-adim-4-2-kart-hareket-bilgilerinin-sorgulanması"}],content:" 9.\tHesap Bilgisi Hizmeti  \n Genel Bilgiler \n Bu dokümanda belirtilen \"Hesap Bilgisi Hizmeti\" ibaresi hem hesap hem de kart rıza süreçlerini kapsamaktadır. \n Hesap bilgisi sorgulama için HBHS tarafından müşteri rızası tesisinin HHS tamamlanmış olması gerekir. Müşteri rızası tesisi tamamlandıktan sonra, HBHS sorgulamak istediği hesaba ait verileri ilgili erişim adresi üzerinden sorgular. \n \n \n Şekil 10: Hesap Bilgisi Hizmeti Üst Düzey Akışı \n Şekil-10’da sunulan hesap bilgisi hizmeti 5 temel akıştan oluşur: \n 0.\tMüşterinin hesap bilgilerine erişim için talepte bulunması:  ÖHK ÖBHS mobil uygulama ya da web sitesinden hesap bilgilerine erişim işlemini başlatır. \n 1.\tHesap Bilgisi müşteri rızasının hazırlanması: \n HBHS, “hesap/kart bilgilerine erişim” için müşteri rızası tesisi amacıyla HHS’deki hesap bilgisi rızası erişim adresine bir POST isteğinde bulunur ve bir hesap bilgisi rızası nesnesi oluşturur. HHS hesap bilgisi rızası nesnesi için biricik tanımlayacı döner (RızaNo). Hesap bilgisi rızası, müşterinin HBHS’nin hesap/kart bilgilerine erişim izin verdiği alanları için 9.1 ADIM 1: Hesap Bilgisi Rızasının Hazırlanması başlığında incelenebilir. \n 2.\tHesap bilgisi hizmeti müşteri rızasının tesisi: \n HHS, Hesap Bilgisi Rızası servisi ile ÖHK özelinde “Yetki bekleniyor” statüsünde bir rıza nesnesi hazırlar. HHS, GKD’nin başarıyla tamamlanması sonrasında hesap bilgisi rızası nesnesinin yetkilendirildiğini belirtmek için Rıza Durumunu “Rıza Yetkilendirildi” olarak günceller. Nesne yetkilendirildikten sonra HHS nesne ile bir erişim belirteci (access token) ilişkilendirir, Rıza Durumunu “Yetki Kullanıldı” yapar ve bu belirteci HBHS’ye geri döner.  Böylece müşteri rıza tesisi sağlanmış olur. \n Hesap bilgisi rızasına ilişkin temel ilkeler şunlardır: \n \n 1 ÖHK'nın 1 YÖS için 1HHS'de Yetki Bekleniyor, Yetkilendirildi, Yetki Kullanıldı statüsünde 1 rızası olabilir. \n Müşteri rızasının ayrıntıları ÖHK ile HBHS arasında belirlenir. Bu nedenle müşteri rızasının ayrıntıları HHS ekranında değiştirilmemelidir. \n ÖHK, hesap ve kart erişim izni ayrıntılarını yalnızca bir bütün olarak yetkilendirebilir veya geri alabilir. \n Müşteri rızası tesisi esnasında, müşteri HHS arayüzünde erişim için yetkilendirecek hesapları ve kartları seçer. \n Ödeme Sistemine doğrudan katılımcı olmayan HHS'ler, müşterilerine IBAN hizmeti sunmayabildikleri için hesap referansı ile akışlarını kurgulayabilirler. YÖS önyüzlerinde yapılan bilgilendirmelerde, IBAN harici hesap referansı ile işlem yapılabilmesine dikkat edilmelidir. \n \n 2.1\tHesap bilgisi rızasının sorgulanması:  Müşteri rızası  GET/hesap-bilgisi-rizasi/{RizaNo}  çağrısı yapılarak sorgulanır. \n 2.2\tHesap bilgisi müşteri rızasının iptali:  Müşteri rızası  DELETE/hesap-bilgisi-rizasi/{RizaNo}
16  çağrısı yapılarak iptal edilir. \n 3.1\tHesap bilgilerinin alınması:  Hesap bilgileri ilgili kaynağa (hesaplar, bakiye, işlemler) GET isteği yapılarak gerçekleştirilir. HBHS, müşteri rızasının tesisinden sonrasında (geçerli bir erişim belirticine sahip olduğunda) öncelikle  GET/hesaplar  çağrısı yapacaktır. \n Nezdinde ödeme hesabı bulunduran hesap hizmeti sağlayıcılar(Banka, EPK, Ödeme Kuruluşları) müşterilerine ait hesapları hesap referansı ya da hesap numarası üzerinden takip etmektedir. YÖS'lerin HBH servisleri için hesap referansı veya hesap numarası üzerinden işlem yapılabileceğini bilmeleri, sistemlerini API dokümanında belirtilen akışlara göre uyumlandırmaları ve müşteri bilgilendirmesini (önyüzlerinde hesap no ve hesap referansı ayrımını gözeterek) buna paralel yapmaları beklenmektedir. \n 4.\tKart bilgilerinin alınması:   Kart bilgileri ilgili kaynağa (kartlar, kart detayı, kart hareketleri) GET isteği yapılarak gerçekleştirilir. HBHS, müşteri rızasının tesisinden sonrasında (geçerli bir erişim belirticine sahip olduğunda) öncelikle  GET/kartlar  çağrısı yapacaktır. \n Hesap Bilgisi Hizmeti İçin Erişim Adresleri \n Etki Alanı (Scope) =“hesap_bilgisi” \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu / İsteğe Bağlı \n Yetkilendirme Türü \n İmzalama \n Parametre \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n hesap-bilgisi-rizasi \n POST \n /hesap-bilgisi-rizasi \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n HesapBilgisiRizasiIstegi \n HesapBilgisiRizasi \n \n \n 2 \n erisim-belirteci  (GKD için) \n POST \n /erisim-belirteci \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n ErisimBelirteciIstegi \n ErisimBelirteci \n \n \n 2.1 \n hesap-bilgisi-rizasi \n GET \n /hesap-bilgisi-rizasi/{RizaNo} \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n \n \n HesapBilgisiRizasi \n \n \n 2.2 \n hesap-bilgisi-rizasi \n DELETE \n /hesap-bilgisi-rizasi/{RizaNo} \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD-Koşullu) \n \n \n \n \n \n \n 3.1 \n hesaplar \n GET \n /hesaplar \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama \n \n HesapBilgileri(birden çok hesap) \n \n \n 3.2 \n hesaplar \n GET \n /hesaplar/{hspRef} \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n \n \n HesapBilgileri(tek  hesap) \n \n \n 3.3 \n bakiye \n GET \n /hesaplar/{hspRef}/bakiye \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n \n \n BakiyeBilgileri(tek  hesap) \n \n \n 3.4 \n bakiye \n GET \n /bakiye \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama \n \n BakiyeBilgileri(birden çok hesap) \n \n \n 3.5 \n islemler \n GET \n /hesaplar/{hspRef}/işlemler \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama Filtreleme \n \n IslemBilgileri (tek hesap) \n \n \n 4 \n kartlar \n GET \n /kartlar \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama Filtreleme \n \n KartBilgileri(birden çok kart) \n \n \n 4.1 \n kartlar \n GET \n /kartlar/{kartRef} \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama Filtreleme \n \n KartBilgileri(tek kart) \n \n \n 4.2 \n kart-detay \n GET \n /kartlar/{kartRef}/kart-detay \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Filtreleme \n \n KartDetayBilgileri \n \n \n 4.3 \n kart-hareketleri \n GET \n /kartlar/{kartRef}/kart-hareketleri \n Z \n İstemci Kimlik Bilgileri ve Yetkilendirme Kodu (GKD) \n \n Sayfalama Filtreleme \n \n KartHareketleri \n \n \n \n Tablo 11: Hesap/Kart Bilgisi Hizmeti İçin Erişim Adresleri \n ADIM 0: ÖHK'nın hesap/kart bilgilerine erişim için talepte bulunması: \n ÖHK, HBHS uygulamasında (web arayüzü/mobil uygulama) hesap/kart bilgilerine erişim için talepte bulunur. \n 9.1 ADIM 1: Hesap Bilgisi Rızasının Hazırlanması \n Bu dokümanda belirtilen hesap bilgisi hizmeti ibaresi hem hesap hem de kart rıza süreçlerini kapsamaktadır. \n Bu API çağrısı HBHS'nin HHS'de yeni bir “HesapBilgisiRizasi” nesnesi oluşturmasını ve nesneye erişmek için benzersiz bir rıza numarası ({rizaNo}) dönülmesini sağlar. \n API çağrısının başarıyla sonuçlanması için HBHS'nin istemci kimlik bilgileri yetkisi kullanması yeterlidir.\nBaşarıyla oluşturulan hesap bilgisi rıza kaynağının rıza durumu “Yetki Bekleniyor” olarak düzenlenir.\nÖHK daha önce aldığı rızaya ilişkin er
16işim tarihleri, izin türlerini ve hesap bilgilerini güncellemek isterse, HBHS önce HHS nezdindeki rızayı iptal etmeli ve sonrasında yeni bir rıza talebinde bulunmalıdır.\n \n \n Şekil 11: Hesap/Kart Bilgisi Müşteri Rızasının Hazırlanması \n \n POST /hesap-bilgisi-rizasi isteğinin (REQUEST) gövdesinde (BODY)  “HesapBilgisiRizasıIstegi” nesnesi (Tablo-12) kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “HesapBilgisiRizasi” (Tablo-13) nesnesi oluşturulur. \n  POST /hesap-bilgisi-rizasi \n Bu dokümanda belirtilen hesap bilgisi rızası ibaresi hem hesap hem de kart rıza süreçlerini kapsamaktadır. \n Başarılı İstek: \n İSTEK: \n HBHS, bu API erişim adresinden HHS’ye yeni bir HesapBilgisiRizasi oluşturulması için istekte bulunur: \n \n HBHS, ÖHK’nın hesap/kart bilgilerine yönelik rıza başlatma isteği olduğunu HHS’ye bildirir. YÖS'ler sürüm 2.0 için Hesap Bilgisi Rızası isteği gönderdiğinde HHS'nin ÖHK'yı yönlendireceği mobil uygulama içerisinde sürüm 2.0 değişikliklerini içeren, kart bilgilerinin seçimini yapacakları sürümün yüklü olmaması durumunda HHS'ler tarafından  TR.OHVPS.Business.CustomerMobileApplicationHasOlderVersion  hatası verilebilir. \n HBHS, ÖHK’nın, HBHS arayüzünden verdiği rızanın (“Ön Onay”) bir kopyasının HHS nezdinde müşteri tarafından onaylanması için HHS’ye gönderilmesini sağlar. \n HHS; istek mesajında yer alan alanların API dökümanında belirtilen şartları sağlayacak şekilde zorunluluk ve uzunluk kontrollerini yapar.(Zorunlu) Kontrollere istinaden hata oluşması durumunda  ”TR.OHVPS.Resource.InvalidFormat”  hata kodu iletilmeli ve fieldErrors dolu olacak şekilde hatalı alanı belirten detaylı açıklama gönderilmelidir. InvalidFormat hata kodlarında fieldErrors içeriği gönderilmeli ve anlaşılır açıklama ile message, messageTr alanları doldurulması zorunludur. \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidTPP”  hatası dönülür. \n HHS; YÖS API ile alınan temel adres bilgilerinde yer alan yönlendirme adresleri ile hesap bilgisi rızası nesnesi içerisinde yer alan YÖS  adreslerin uyumlu olup olmadığının kontrollerini yapar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  ”TR.OHVPS.Business.TPPRedirectionAddressMismatch”  hatası dönülür. \n HHS; kimlik bilgileri nesnesinde iletilen kimlik bilgileri ile ÖHK’nın HHS müşterisi olup olmadığının kontrollerini yapar. Bu kontrol hem bireysel hem de kurumsal ÖHK’lar için yapılmalıdır.(Zorunlu) Kontrollere istinaden hata oluşması durumunda  ”TR.OHVPS.Business.CustomerNotFound”  hatası dönülür. Kurumsal müşteri ile başlatılan rızada yer alan müşteri bilgisinin karşı kurumda Kurumsal müşteri değil; bireysel müşteri olduğu durumda “TR.OHVPS.Business.BusinessCustomerMismatch” hatası dönülür. \n Bir ÖHK'nın 1 YÖS için aktif tek bir rızası olabilir. ÖHK’nın  “Yetkilendirildi” ve “Yetki Kullanıldı” statüsünde rızası varken yeni bir rıza isteği gönderdiğinde HHS tarafından  TR.OHVPS.Business.ConsentAlreadyExists  hatası dönülür.  Güncelleme isteği göndermesi durumunda ise işletilmesi gereken akışlar “Rıza Durumları” başlığından kontrol edilmelidir. \n Hesap bilgi hizmeti rıza isteğinde bulunan ÖHK’nın “Açık Bankacılık Kanal Yetki” tanımı yok ise  ”TR.OHVPS.Business.OpenBankingChannelClosed”  hatası dönülür. HHS insiyatifinde olup HHS bu kontrolü GKD sonrası gerçekleştirebilir. \n Hesap bilgi hizmeti rıza isteğinde 01 ya da 07 izin türü olmak zorundadır. HHS tarafından izin türü içerisinde 01 ya da 07 varlık durumu kontrol edilir. Olmaması durumunda  \"TR.OHVPS.Business.IncorrectPermissionType”  hatası dönülür. \n Hesap bilgi hizmeti rıza isteğinde 01 izin türü bulunmuyor ise 02, 03, 04, 05 ya da 06 izin türü olmamalıdır. 01 izin türü bulunmadığında 02, 03, 04, 05 ya da 06 izin türlerinden biri ya da birkaçı gönderildiğinde  \"TR.OHVPS.Business.IncorrectPermissionType”  hatası dönülür. \n Hesap bilgi hizmeti rıza isteğinde 07 izin türü bulunmuyor ise 08 ya da 09 izin türü olmamalıdır. 07 izin türü bulunmadığında 08 ya da 09 izin türlerinden biri ya da ikisi gönderildiğinde  \"TR.OHVPS.Business.IncorrectPermissionType”  hatası dönülür. \n ÖHK, HHS'de olacak bakiye değişikliklerinden anlık haberdar olmak istiyor ise 06-Anlık Bakiye Bildirimi izin türü seçimi ile rıza başlatması gereklidir. 03-Bakiye Bilgisi izin türü ile birlikte seçilmesi gereklidir. 06 izin türü seçilip 03 izin türü seçilmediği durumda  ”TR.OHVPS.Business.IncorrectPermissionType”  hatası dönülür. \n İzin türü “06: Anlık Bakiye Bildirimi” seçilmiş ise HHS, YÖS'ün KAYNAK_GUNCELLENDI olay tipinde olay aboneliğinin varlığını kontrol eder. Olay abonelik kaydı bulunmuyor ise  ”TR.OHVPS.Business.EventSubscriptionNotFound”  hatası dönülür. \n Hesap bilgi hizmeti rıza isteğinde bulunan ÖHK’nın izin verecek hesap ya da kartı yok ise  ”TR.OHVPS.Business.ProductNotSuitable”  hatası dönülür. İki üründen biri var ise başarılı yanıt dönülür. HHS insiyatifinde olup HHS bu kontrolü GKD sonrası gerçekleştirebilir. \n Erişimin Geçerli Olduğu Son Tarih bilgisi müşteri bağımsız alabileceği minimum değer : Rıza tarihi + 1 gündür. Maksimum rıza süresi bireysel müşteriler için 6 ay, Kurumsal/Tüzel müşteriler için 12 ay olacaktır. Bireysel müşteriler için 6 aydan fazla, kurumsal müşteriler için ise 12 aydan fazla iletildiği durumda  ”TR.OHVPS.Resource.InvalidFormat”  hatası dönülür. \n İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmiş ise; İşlem Sorgulama Başlangıç Zamanı, hesap bilgisi rızası verilmesinden  geçmişe  dönük en fazla 12 ay olabilmektedir. 12 aydan fazla gönderilmesi durumunda  ”TR.OHVPS.Resource.InvalidFormat”  hatası dönülür. \n İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmiş ise; İşlem Sorgulama Başlangıç Zamanı, hesap bilgisi rızası verilmesinden  geleceğe  dönük en fazla 12 ay sonrası olabilmektedir. 12 aydan fazla gönderilmesi durumunda  ”TR.OHVPS.Resource.InvalidFormat”  hatası dönülür. \n Ayrık GKD desteklemeyen HHS'ye Ayrık GKD yöntemiyle rıza başlatma isteği yapılması durumunda HHS tarafından  ”TR.OHVPS.Business.DecoupledAuthenticationNotSupported”  hatası dönülür. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n HHS \"gkd\" nesnesi için alan kontrollerini gerçekleştirir. \"yetYntm\" = \"A\" gönderilmiş ise \"ayrikGkd\" nesnesinin dolu gönderilmesi zorunludur. Gönderilmemesi durumunda HHS tarafından  ”TR.OHVPS.Resource.InvalidFormat”  hatası dönülür. \n Ayrık GKD ile başlatılan hesap bilgi hizmeti rıza isteğinde HHS, YÖS’ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder. YÖS iki olay tipine de abone olmak zorundadır. Eğer olay aboneliği yoksa HHS tarafından  ”TR.OHVPS.Business.EventSubscriptionNotFound”  hatası dönülür. \n ÖHK'ya ait kimlik verisi(kmlk.kmlkVrs) ile ayrık GKD içerisinde yer alan OHK Tanım Değer alanı (ayrikGkd.ohkTanimDeger) birebir aynı olmalıdır. Aynı olmadığı durumda HHS tarafından  ”TR.OHVPS.Business.CustomerInfoMismatch”  hatası dönülür. \n HHS tarafında ÖHK'nın mobil uygulaması bulunmaması durumu tespit edilebildiği durumda Ayrık GKD ile başlatılan rıza akışlarında hata mesajı vermelidir. HHS tarafından  ”TR.OHVPS.Business.CustomerMobileApplicationNotFound”  hatası dönülür. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n \n Yukarıdaki kontroller tamamlandıktan sonra HHS, benzersiz “RizaNo” ile “HesapBilgisiRizasi” nesnesi oluşturur ve HBHS’ye döner. \n HHS, HesapBilgisiRizasi oluşturduğu anda durumunu “Yetki Bekleniyor” olarak düzenler. \n Tablo 12: “HesapBilgisiRizasiIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Önceki Rıza No \n oncekiRizaNo \n AN1..128 \n K \n HesapBilgisiRızasiIstegi nesnesinin güncelleme sebebiyle oluşturulması esnasında ÖHK'nın güncelleme yapmak istediği mevcut rıza no bilgisi. Rıza güncelleme yapılmak istendiğinde gönderilmesi zorunludur. \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Hata durumunda TR.OHVPS.Connection.InvalidASPSP hata kodunu döner. \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder.  Hata durumunda TR.OHVPS.Connection.InvalidTPP hata kodunu döner. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n >Yetkilendirme Yöntemi \n yetYntm \n AN1 \n İ \n TR.OHVPS.DataCode.GkdTur sıralı veri türü değerlerinden birini alır.   Yetkilendirme yöntemi, HBHS tarafından belirtilmeyebilir. \n HHS, HBHS’nin belirlediği yöntemi dikkate alarak süreci ilgili akışa uygun olarak devam ettirir. Desteklemediği yöntem için (örn: Ayrık GKD) ayrıca hata mesajı verilmelidir. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu.  YÖS’ün ileteceği adrestir.   Durum kodu(drmKod), yönlendirme adresine parametre olarak eklenmelidir. \n HHS, müşteri uygulama / tarayıcısını bu alanda belirtilen adrese yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n yetYntm = A gönderilmiş ise ayrikGkd nesnesinin dolu gönderilmesi zorunludur.   HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder.  Bknz: Ayrık GKD \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir.  TR.OHVPS.DataCode.OHKTanimTip  sıralı veri tiplerinden birini alır. \n \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir. \n \n \n \n Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n > Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur sıralı veri türü değerlerinden birini alır.   Kurum adına yapılan(ticari) işlemlerde kurum kullanıcısının bilgisi iletilmelidir. \n \n \n \n > Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır.   TR.OHVPS.DataCode.KimlikTur değerine göre uzunluk ve formatı değişir.   Kurum adına yapılan(ticari) işlemlerde kurum kullanıcısının bilgisi iletilmelidir. \n \n \n \n > Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür.  TR.OHVPS.DataCode.KurumKimlikTur sıralı veri türü değerlerinden birini alır. \n \n \n \n > Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.  TR.OHVPS.DataCode.KurumKimlikTur değerine göre uzunluk ve formatı değişir. \n \n \n \n > Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur sıralı veri türü değerlerinden birini alır (B: Bireysel, K:Kurumsal) \n \n \n \n Hesap/Kart Bilgisi \n hspBlg \n Kompleks: HesapBilgisi \n Z \n \n \n \n \n >İzin Bilgisi \n iznBlg \n Kompleks: IzinBilgisi \n Z \n \n \n \n \n >> İzin Türü \n iznTur \n Array[AN2] \n Z \n ÖHK tarafından HHS önyüzünde belirlenen izin tipleridir. Bir istekte birden fazla değer bulunabilir, TR.OHVPS.DataCode.IzinTur sıralı veri türü değerlerinden birini alır. \n \n \n \n >> Erişimin Geçerli Olduğu Son Tarih \n erisimIzniSonTrh \n ISODateTime \n Z \n Hesap bilgisi rızasının geçerli olduğu son tarih.   Müşteri YÖS ekranından bu değeri belirleyebilir. Bireysel müşteriler için rıza süresi 6 ay, Kurumsal/Tüzel müşteriler için 12 ay olacaktır.    Bireysel Müşteriler için varsayılan değer : Rıza verilen tarih + 6 ay   Kurumsal Müşteriler için varsayılan değer : Rıza verilen tarih + 12 ay  Bireysel Müşteriler için alabileceği maksimum değer : Rıza tarihi + 6 ay  Kurumsal Müşteriler için alabileceği maksimum değer : Rıza tarihi + 12 ay    Müşteri bağımsız alabileceği minimum değer : Rıza tarihi + 1 gün    Örneğin  04/02/2023’de minimum 05/02/2023 seçilebilir. Bu durumda yeni günün başlangıç saati 00:00:00 olduğu kabul edildiği için; erisimIzniSonTrh değeri 2023-02-06T00:00:00+03:00 olmalıdır.  HHS rıza onay ekranlarında YÖS'ten iletilen erişim izni son tarihi yeni günün başlangıç saati olarak iletildiğinden ÖHK'ya gösterilecek tarih erişim izninin biteceği gün olarak gösterilmelidir.  Örneğe istinaden; ÖHK YÖS’de 05/02/2023 seçmiş ise HHS rıza onay ekranında 06/02/2023 görmemeli, bu iki tarihin aynı, yani 05/02/2023 olacak şekilde gösterilmesi gerekmektedir.      Örnek rıza oluş zamanı  : 2023-02-04T21:20:20+03:00    1 günlük rıza verildiğinde erisimIzniSonTrh değeri:    2023-02-06T00:00:00+03:00 (26 saat 40 sakikalık rıza vermiş oluyor.)    7 günlük rıza verildiğinde erisimIzniSonTrh değeri:  2023-02-12T00:00:00+03:00    1 aylık rıza verildiğinde erisimIzniSonTrh değeri :   2023-03-05-T00:00:00+03:00 \n Bu alanda bir değer bulunmadığı durumda HHS hata dönmelidir. \n \n \n >> İşlem Sorgulama Başlangıç Zamanı \n hesapIslemBslZmn \n ISODateTime \n K \n Hesap bilgisi rızası verilmesinden geçmişe dönük en fazla 12 ay olabilir, daha eski olmaması gerekir.   Varsayılan değeri rıza verilen tarih (işlem zamanı) – 12 aydır.   ÖHK bu alana bir değer girişi sağlamış ise zaman bilgisi üretilirken ekrandan girilen tarihe 00:00:00 zaman bilgisi eklenmelidir. ÖHK değer girişi sağlamamış ise ÖBHS varsayılan değerlerle bu alanı doldurarak, HHS’ye iletir.   Minimum tarihi : Rızanın veriliş tarihi  - 12 ay    Maksimum tarih: Rızanın veriliş tarihi +  12 ay    İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur.  İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ise gönderilmemelidir. \n ÖHK tarafından izin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ve  İşlem Sorgulama Başlangıç Zamanı ÖBHS tarafından dolu olarak gönderilmiş ise HHS tarafından işlemin devamına izin verilmez. İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmiş ise; HHS bu alanın alabileceği minimum ve maksimum değerlerin sınırlar içerisinde olduğunu kontrol eder. \n \n \n >> İşlem Sorgulama Bitiş Zamanı \n hesapIslemBtsZmn \n ISODateTime \n K \n Hesap bilgisi rızası verilmesinden geleceğe dönük en fazla 12 ay sonrası olabilir, daha ileri bir tarih olmaması gerekir.   Varsayılan değeri: Rıza verilen tarih + 12 aydır. ÖHK bu alana bir değer girişi sağlamış ise girdiği tarihe 1 gün eklenir ve yeni günün ilk saati kabul edilen 00:00:00 saat bilgisini ekler.  ÖHK bu alana bir değer girişi sağlamamış ise ÖBHS varsayılan değerlerle bu alanı doldurarak, HHS’ye iletir.  Minimum tarihi : Rızanın veriliş tarihi  – 12 ay  Maksimum tarihi :  Rızanın veriliş tarihi + 12 ay   İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur.  İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ise gönderilmemelidir. Eğer dolu gönderilirse HHS tarafından uygun hata mesajı iletilmelidir. \n ÖHK tarafından izin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmemiş ve İşlem Sorgulama Bitiş Zamanı ÖBHS tarafından dolu olarak gönderilmiş ise HHS tarafından işlemin devamına izin verilmez.   İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçilmiş ise; HHS bu alanın alabileceği minimum ve maksimum değerlerin sınırlar içerisinde olduğunu kontrol eder. \n Başarılı Yanıt: \n Tablo 13: HesapBilgisiRizasi nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Önceki Rıza No \n oncekiRizaNo \n AN1..128 \n K \n HesapBilgisiRızasiIstegi nesnesinin güncelleme sebebiyle oluşturulması esnasında ÖHK'nın güncelleme yapmak istediği mevcut rıza no bilgisi. Rıza güncelleme yapılmak istendiğinde gönderilmesi zorunludur. İstekte gönderilen değer aynı şekilde yanıtta dönülmelidir. \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n HesapBilgisiRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n HesapBilgisiRızası nesnesinin oluşturulma zamanı \n \n \n > Güncellenme Zamanı \n gnclZmn \n ISODateTime \n Z \n HesapBilgisiRızası nesnesinin güncellenme zamanı \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu sıralı veri tipini değerlerinden birini alır. Örn; hesap bilgi rızasının tesisine dair ilk istek mesajına dönüşte “B: Yetki Bekleniyor” değerini alması beklenir. \n \n \n > Rıza Iptal Detay Kodu \n rizaIptDtyKod \n AN2 \n K \n Rıza durumunun iptal olduÄ
16Ÿu durumda zorunludur. \n \n \n Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n > Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur sıralı veri türü değerlerinden birini alır. \n \n \n > Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur değerine göre uzunluk ve formatı değişir. \n \n \n > Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür.  TR.OHVPS.DataCode.KurumKimlikTur sıralı veri türü değerlerinden birini alır. \n \n \n > Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.  TR.OHVPS.DataCode.KurumKimlikTur değerine göre uzunluk ve formatı değişir. \n \n \n > Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur sıralı veri türü değerlerinden birini alır (B: Bireysel, K:Kurumsal) \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n HHS, HBHS’nin belirlediği yöntemi dikkate alarak süreci ilgili akışa uygun olarak devam ettirir. Desteklemediği yöntem için (örn: Ayrık GKD) ayrıca hata mesajı verilmelidir.  TR.OHVPS.DataCode.GkdTur sıralı veri türü değerlerinden birini alır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde\tGKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.  HHS tarafından maksimum 5 dk içinde işlem tamamlanacak şekil zaman damgası oluşturulur. Zaman aşımı olduğunda HHS’nin GKD’ye izin vermeyecek şekilde hata mesajı vermesi gerekmektedir. Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Hesap/Kart Bilgisi \n hspBlg \n Kompleks: HesapBilgisi \n Z \n \n \n \n > İzin Bilgisi \n iznBlg \n Kompleks: IzinBilgisi \n Z \n \n \n \n >> İzin Türü \n iznTur \n Array[AN2] \n Z \n ÖHK tarafından HBHS önyüzünde belirlenen izin tipleridir. Bir istekte birden fazla değer bulunabilir, TR.OHVPS.DataCode.IzinTur sıralı veri türü değerlerinden birini alır. \n \n \n >> Erişimin Geçerli Olduğu Son Tarih \n erisimIzniSonTrh \n ISODateTime \n Z \n Hesap bilgisi rızasının geçerli olduğu son tarih \n \n \n >> İşlem Sorgulama Başlangıç Zamanı \n hesapIslemBslZmn \n ISODateTime \n K \n Hesap hareketlerinin sorgunabileceği başlangıç zamanı. İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur. \n \n \n >> İşlem Sorgulama Bitiş Zamanı \n hesapIslemBtsZmn \n ISODateTime \n K \n Hesap hareketlerinin sorgunabileceği bitiş zamanı. İzin türü “Temel işlem Bilgisi” ve/veya “Ayrıntılı İşlem Bilgisi” seçildiğinde bu alanların doldurulması zorunludur. \n \n \n > Ayrıntı Bilgi \n ayrBlg \n Kompleks: AyrintiBilgi \n İ \n \n \n \n > ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n İzinler \n Bir hesap bilgisi rızası kaynağı çağrısına yanıt olarak döndürülen verileri sınırlamak için izin kodları kullanılır. \n Hesap ve karta dair tüm bilgiler hesap bilgisi rızası altında alınacaktır. İzin türleri hesap ve karta göre ayrışmaktadır. \n \n Temel Hesap Bilgisi \n Ayrıntılı Hesap Bilgisi \n Bakiye Bilgisi \n Temel İşlem (Hesap Hareketleri) Bilgisi \n Ayrıntılı İşlem Bilgisi \n Anlık Bakiye Bildirimi \n Temel Kart Bilgisi \n Detaylı Kart Bilgisi \n Ayrıntılı Kart İşlem Bilgisi \n \n ÖHK’ya sunulacak seçimler ve kuralları aşağıdaki gibi olmalıdır. \n \n \n \n Seçim \n Kural \n \n \n \n \n Temel Hesap Bilgisi \n ÖHK seçim yapabilir. Temel Kart Bilgisi seçilmediyse bu izin türünün seçimi zorunludur. \n \n \n Ayrıntılı Hesap Bilgisi \n ÖHK seçim yapabilir. \n \n \n Bakiye Bilgisi \n ÖHK seçim yapabilir. \n \n \n Temel İşlem (Hesap Hareketleri)  Bilgisi \n ÖHK seçim yapabilir. \n \n \n Ayrıntılı İşlem Bilgisi \n ÖHK seçim yapabilir. Ayrıntılı İşlem Bilgisi seçimi Temel İşlem Bilgisi seçimini kapsar. (Ayrıntılı İşlem bilgisi seçildiğinde Temel İşlem Bilgisi de seçili olmalıdır.) \n \n \n Anlık Bakiye Bildirimi \n Bakiye Bilgisi izin türü ile birlikte seçilmesi gereklidir. ÖHK, HHS'de olacak bakiye değişikliklerinden anlık haberdar olmak istiyor ise bu izin türü seçimi ile rıza başlatması gereklidir. \n \n \n Temel Kart Bilgisi \n ÖHK seçim yapabilir. Temel Hesap Bilgisi seçilmediyse bu izin türünün seçimi zorunludur. \n \n \n Detaylı Kart Bilgisi \n ÖHK seçim yapabilir. \n \n \n Ayrıntılı Kart İşlem Bilgisi \n ÖHK seçim yapabilir. \n \n \n \n Aşağıdaki durumlarda, izin kombinasyonlarına izin verilmez. HHS, bu hesap erişim onaylarını 400 (Hatalı İstek) yanıt ko
16duyla reddetmelidir: \n \n İzin dizisinin herhangi bir izin türü içermemesi durumu, \n İzin dizisinde HHS tarafından desteklenmeyen bir izin kodunun yer alması durumu \n 9.2 ADIM 2: Hesap Bilgisi Hizmeti Rızasının Tesisi \n \n \n Şekil 12: Hesap Bilgisi ÖHK Rızasının Tesisi \n Rıza tesisinin başarıyla sonuçlanması için HBHS'nin istemci kimlik bilgileri yetkisi kullanması ve ardından müşterinin HHS tarafından yönlendirmeli veya ayrık GKD ile doğrulanması gerekir. HHS'de oluşturulan ve rıza durumu “Yetki Bekleniyor” olan bir hesap bilgisi rızası, GKD sonrası “Yetkilendirildi” statüsüne güncellenir. HBHS, erişim sağlayacağı hesapları ve kartları hesap bilgisi rızasının tesisinden önce seçer. \n \n \n Yönlendirmeli doğrulama akışında, HBHS ÖHK’yı HHS’ye yönlendirir. \n \n \n HBHS tarafından yönlendirme, bir önceki adımdaki RizaNo’yu içerir. \n \n \n HHS, ÖHK için GKD sürecini işletir. \n ÖHK’yı doğrularsa, \n \n \n ÖHK HBHS üzerinden işlem yapılmasına izin vereceği hesap/kart seçimini y
16apar. HBHS üzerinden ÖHK’nın verdiği izin bilgilerini ve erişim izninin başlangıç/bitiş tarihi bilgilerini, HHS'ler bilgilendirme amaçlı ÖHK’ya gösterir. \n \n \n Rıza güncelleme akışı ile başlatılan rıza isteklerinde mevcut rıza içerisinde seçili olan hesap/kart bilgileri ÖHK'ya HHS ekranlarında aynı şekilde seçili olarak getirilmelidir. ÖHK'lar mevcut rıza içerisinde izin vermiş olduğu hesap/kart bilgilerini seçili olarak görüntüleyip yeni rıza için izin vermek istediği hesap/kartların seçimini güncelleyebilmelidir. \n Rıza güncelleme sürecinde;  ÖHK’nın HHS’deki mevcut rızası kapsamında YÖS’ten gelen rıza izin türlerine göre listeleme yapılmalıdır. 01,02,03,04,05,06 seçildiyse hesapların; 07,08,09 seçildiyse kartların HHS’de listelenmesi gerekmektedir. Örneğin: ÖHK’nın mevcut rızasında hesaplar (01,02,03 rıza türlerinin seçili olsun) için hesap bilgisi rızası verilmiş olsun eğer YÖS’ten rıza güncelleme kapsamında 01,02, 07,08 rıza türleri geldiği durumda HHS’nin mevcut hesap rızasını ve doğal olarak hesapları listelemesi ek olarak da karta ait rıza türleri seçildiğinde kartların listelenmesi gerekecektir. Ancak, ÖHK’nın mevcut rızasında hesaplar (01,02,03 rıza türlerinin seçili olsun) için hesap bilgisi rızası verilmiş olsun eğer YÖS’ten rıza güncelleme kapsamında  07,08, 09 rıza türleri geldiği farz edildiğinde HHS’nin mevcut hesap rızasını göstermemesi ve sadece karta ait rıza türleri seçildiği için kartları listelemesi gerekecektir. \n \n \n HHS hesap bilgisi rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n HHS, ÖHK’yı “olumlu yönlendirme akışı” ile HBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=Y&yetKod=xx&rizaNo=yy&rizaTip=H&drmKod=zzz\n \n \n \n ÖHK’yı doğrulayamazsa, \n \n \n HHS, hesap bilgisi rıza kaynağının durumunu “Yetki İptal” olarak günceller. \n \n \n HHS, ÖHK’yı “olumsuz yönlendirme akışı” ile HBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=I &rizaNo=yy&rizaTip=H&rizaIptDtyKod=11&drmKod=zzz\n \n \n \n \n \n \n \n Ayrık doğrulama akışında, HHS, ÖHK’nın hesap bilgisi hizmetini başlattığı uygulamadan farklı olabilecek bir “doğrulama” uygulamasında işlemi doğrulamasını ister. \n \n Ayrık akış HBHS’nin farklı bir kanal kullanarak yetkilendirme isteği göndermesiyle başlatılır. \n Bu yetkilendirme isteği, yetkilendirilecek hesap bilgisi rızasının eşleştirileceği ÖHK’nın bulunması için ilgili veriyi taşır. \n HHS, ödeme hizmeti kullanıcısını doğrular. \n ÖHK verdiği izin tipi dahilinde bilgileri paylaşılacak olan hesapları seçer. Rıza güncelleme akışı ile başlatılan isteklerde ÖHK mevcutta vermiş olduğu hesap ve kartları seçili olarak görüntüler. İlgili seçimler üzerinde güncelleme sağlayarak onay verir. \n HHS, hesap bilgisi rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n \n Başarılı GKD sonrasında (rizaDrm=’Y’) ilgili rıza nesnesi için (belirli bir rizaNo) yetkilendirme kodunun (yetKod) alınmasının ardından erişim belirteci erişim adresine POST çağrısı yapılarak yetkilendirme kodu karşılığında erişim belirteci ve yenileme belirteci alınır. POST /erişim-belirteci erişim noktası EK-3’te açıklanmıştır. \n Erişim belirteci alındıktan sonra; HHS,  hesap bilgisi rızasının durumunu “Yetki Kullanıldı” olarak günceller. Rıza tesisi sağlanmış olur. \n 9.3 ADIM 2.1: Hesap Bilgisi Rızasının Sorgulanması \n GET /hesap-bilgisi-rizasi/{rizaNo} \n ÖHK, HHS üzerinden rıza iptali yapmış olabilir veya ÖHK’nın verdiği rıza süresi dolmuş olabilir.  Bu durumlarda HBHS, rıza alma akışına başlamadan önce, daha önce oluşturulmuş bir HesapBilgisiRizasi kaynağının durumunu, isteğe bağlı olarak alabilir. \n \n YÖS sadece kendi uygulaması üzerinden verilmiş hesap bilgi rızasını sorgulayabilir. YÖS'e ait olmayan bir rıza ile sorgulama yapıldığında HHS tarafından  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n YÖS'e ait rıza sorgulama yapılırken ilgili rıza kaydı bulunamaz ise  ”TR.OHVPS.Resource.NotFound”  hatası dönülür. \n \n Servis başarılı yanıtında Tablo 13’de belirtilen “HesapBilgisiRizasi” nesnesini dönmektedir. \n Durum \nHesapBilgisiRizasi kaynağı için kullanılabilecek durum göstergeleri şu şekildedir: \n \n \n Yetki Bekleniyor \n \n \n Yetkilendirildi \n \n \n Yetki Kullanıldı \n \n \n Yetki S
16onlandırıldı \n \n \n Yetki İptal \n \n \n Hesap bilgisi rızası sonlandırıldı ve iptal statüsünde olan rıza'ların güncellenme zamanından(gnclZmn) 6 ay sonrasına kadar sorgulanabilir olması beklenmektedir. HHS'ler ilgili süre sonrasında yapılacak rıza sorgularına  \"TR.OHVPS.Resource.NotFound\"  uyarısı verebilir. YÖS'ler tarafından iptal ve sonlandırıldı statüsünde olan rızalar için sorgulama yapmamalıdır. \n 9.4 ADIM 2.2: Hesap Bilgisi Rızasının İptali \n \n \n \n Şekil 13: Hesap Bilgisi Müşteri Rızasının Geri Alınması \n DELETE /hesap-bilgisi-rizasi/{RizaNo} \n DELETE /hesap-bilgisi-rizasi çağrısı, bir HBHS'nin önceden oluşturulmuş bir hesap erişim rızasını (yetkili olsun veya olmasın) silmesine izin verir. Müşteri, rızasını HHS üzerinden iptal etmek yerine, HBHS üzerinden bu rızasını kaldırmak isteyebilir. \nBu API çağrısı, müşterinin HBHS üzerinden hesap bilgisi rızasını iptal etmesine ve HHS nezdindeki hesap bilgisi rızası nesnesinin silinmesini sağlar. \n \n Rıza durumunun K olduğu durumlarda erişim belirteci kontrolü yapılır. Geçerli bir erişim belirteci yok ise HHS tarafından  ”TR.OHVPS.Connection.InvalidToken”  hatası dönülür. \n İstek başlığında yer alan X-Access-Token ile ilişkili rıza, silinen rizaNo bilgisi ile aynı olup olmadığı kontrol edilir. Farklı olması durumunda  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n Rıza İptali API'sinde ilgili rıza kaydı bulunamaz ise  ”TR.OHVPS.Resource.NotFound”  hatası dönülür. \n Rıza durumu Yetki Sonlandırıldı - S veya Yetki İptal - I ise  \"TR.OHVPS.Resource.ConsentRevoked\"  hatası dönülür. \n \n Müşterinin HBHS’nin veri erişim iznini iptal etmesi durumunda HBHS, HHS’de mevcut olan HesapBilgisiRizasi kaynağını pratik olarak mümkün olan en kısa sürede silmelidir. Bu ise, ilgili kaynağa \n DELETE /hesap-bilgisi-rizasi/{RizaNo} \nçağrısı aracılığı ile yerine getirilir. HBHS ayrıca, sisteminden Hesap/Kart Erişim İzni kaynaklarını da temizlemelidir. \nSöz konusu silme işlemi, kayıtların statüsünün pasife çekilmesi ile gerçekleştirilmelidir. Söz konusu kayıtlar, denetim izlerinin oluşturulması ve saklanmasına ilişkin ikincil düzenleme hükümleri kapsamında güvenli şekilde tutulmalıdır. \nServis istek parametresi olarak sadece path’de iletilen Rıza No bilgisine ihtiyaç duymaktadır. \nÖHK rızası başarı ile silindiğinde HTTP 204 response kodu ile işlem sonucu iletilir. Rıza tipi “I” yani “Yetki İptal” olarak güncellenir ve gnclZmn zaman damgası vurularak güncellenir. \nÖHK ile rıza iptali sırasında kurulacak iletişimde (e-posta, sms gibi) aşağıdaki alanların iletilmesi tavsiye edilmektedir: \nYÖS Adı, HHS adı, Rıza Oluşturma Zamanı, Servis Tipi Bilgisi (HBHS) \n 9.5 ADIM 3: Hesap Bilgilerinin Alınması \n    \n \n   \n Şekil 14: Hesap Bilgilerinin Alınması \n İSTEK: \nMüşteri rızası tesis edilmiş kullanıcı için HBHS API erişim adresinden HHS’ye erişilebilir hesap bilgilerini GET isteği ile sorgular: \n \n Parametrede yer alan değerlerin doğru gönderildiği kontrol edilir. Hatalı gönderilmesi durumunda HHS tarafından  ”TR.OHVPS.Resource.InvalidFormat”  hatası dönülür. Parametrede yer alan değerler gönderilmediği durumda parametredeki varsayılan değerler ile hesap bilgileri dönülür. Varsayılan değerler Tablo 14'de belirtilmiştir. \n Erişim belirteci kontrolü yapılır. Geçerli bir erişim belirteci yok ise HHS tarafından  ”TR.OHVPS.Connection.InvalidToken”  hatası dönülür. \n /hesaplar/{hspRef} ile yapılan istekte;\n \n İstek başlığında yer alan X-Access-Token ile ilişkili rızada, izin verilen hspRef'ler için, hesap bilgisi sorgulanan hspRefe ait rıza ile aynı olup olmadığı kontrol edilir. Farklı olması durumunda  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n İlgili hspRef bulunamaz  ”TR.OHVPS.Resource.NotFound”  hatası dönülür. \n \n \n Rıza durumu kontrol edilir.\n \n RizaDurumu B: Yetki Bekleniyor ya da Y: Yetkilendirildi ise  “TR.OHVPS.Resource.ConsentMismatch”  hatası dönülür. \n YÖS'ün;
16 Rıza İptal - I ya da Yetki Sonlandırıldı - S rıza durumlarında hesap bilgileri servisini çağırmaması beklenir. Bu rıza durumları ile yapılmış çağrılar olduğunda HHS tarafından  ”TR.OHVPS.Resource.ConsentRevoked”  hatası dönülür. \n RizaDurumu “Yetki Kullanıldı” ise kontrollere devam edilir. \n \n \n HHS tarafından ÖHK’nın “01: Temel Hesap Bilgisi” izin türüne sahipliği kontrol edilir. 01 izin türüne sahip değil ise  ”TR.OHVPS.Business.PermissionTypeNotSupported”  hatası dönülür. \n \n Yukarıdaki kontroller tamamlandıktan sonra HHS, \"HesapBilgileri\" nesnesini oluşturur ve HBHS’ye döner. \n \n Hesap bilgisi rızası alınmış ve erişim izni devam eden hesaplar içerisinden herhangi bir hesabın kapatılması ya da pasife alınması durumunda YÖS tarafından yapılan hesap isteğine HHS tarafından hesap bilgisi dönülmelidir. Rıza içerisinde tek bir hesap olması halinde ilgili hesabın kapatılması durumunda rıza 09 iptal detay kodu ile iptal edilmelidir.\nKapalı hesap için TR.OHVPS.DataCode.HspDrm veri türünden KAPALI değeri ile, pasif hesap için TR.OHVPS.DataCode.HspDrm veri türünden PASIF değeri ile dönülmelidir. \n 9.6 ADIM 3.1 ve 3.2: Hesap Bilgilerinin Sorgulanması \n GET /hesaplar ve GET /hesaplar/{hspRef} \n Bu erişim noktalarından tüm hesapların veya belirli bir hesabın bilgileri sorgulanır. Hesap bilgisi için daha önce tanımlanmış izin türüne göre (Temel Hesap Bilgisi veya Detaylı Hesap Bilgisi) yanıtında dönülen HesapBilgileri nesnesinin içeriği değişir. Tablo 15’te HesapBilgileri nesnesinin içeriği verilmiştir. \n Hesap Bilgisi Sorgu Örneği (Tüm Hesaplar) =  /hesaplar \nHesap Bilgisi Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef} \nİşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar?\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= hspRef &\nsrlmYon=A \n Tablo 14: Hesap Bilgileri Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den büyük olamaz. \n Bu veri gönderildiği durumda, HHS listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarası \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek kayıtların sıralama kriterini belirtir. Alabileceği değerler: { “hspRef”} \n Bu veri gönderildiği durumda, HHS listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama kriterini hspRef olarak belirler. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler:  A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 15: “HesapBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Rıza No \n rizaNo \n AN1..128 \n Z \n HesapBilgisiRızası nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n Hesap Temel \n hspTml \n Kompleks: HesapTemel \n Z \n Temel Hesap Bilgileri (Temel Hesap Bilgisi varsayılan izin türü olduğundan Hesap Temel nesnesi zorunlu olarak yanıtta bulunur) \n \n \n > Hesap Referansı \n hspRef \n AN5..40 \n Z \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez. Bir hesap (IBAN) tek bir hs
16pRef'e karşılık gelmelidir, benzer şekilde bir hspRef tek bir IBAN'a karşılık gelmelidir. Aynı hesap için alınan tüm rızalarda hesap referans bilgisinin değişmemesi gerekmektedir. \n \n \n > Hesap Numarası \n hspNo \n AN26 \n K \n Eğer varsa ödeme hesabına ait IBAN bilgisi \n \n \n > Hesap Sahibi Ünvanı \n hspShb \n AN3..140 \n Z \n Hesap sahibi ya da hesap sahiplerinin ad-soyadı, ticari ünvanı \n \n \n > Şube Adı \n subeAdi \n AN3..50 \n K \n Eğer varsa ödeme hesabının bağlı olduğu şubenin adı \n \n \n > Kısa Ad \n kisaAd \n AN3..50 \n K \n Eğer hesap sahibi hesaba ait bir ad tanımladıysa, tanımlanan hesap adı \n \n \n > Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi. \n \n \n > Hesap Türü \n hspTur \n AN1 \n Z \n Hesabın türü (bireysel veya ticari). TR.OHVPS.DataCode.HspTur sırali veri değerlerinden birini alır. \n \n \n > Hesap Tipi \n hspTip \n AN1..32 \n Z \n Hesabın tipi (VADESİZ, KREDİLİ vb.).TR.OHVPS.DataCode.HspTip sıralı veri değerlerinden birini alır. \n \n \n >Hesap Ürün Adı \n hspUrunAdi \n AN1..140 \n İ \n HHS tarafından atanmış olan ürün adı bilgisidir. HBHS tarafından ÖHK’ya gösterilmesi kullanım kolaylığı sağlayacaktır. \n \n \n > Hesap Durumu \n hspDrm \n AN5..50 \n Z \n Hesabın durumunu belirtir. TR.OHVPS.DataCode.HspDrm sıralı veri türlerinden birini alır. \n \n \n Hesap Detay \n hspDty \n Kompleks: HesapDetay \n K \n Detay Hesap Bilgileri (Temel Hesap Bilgisine ek olarak Detay Hesap Bilgisi izin türü de seçilmişse Hesap Detay nesnesi koşullu olarak yanıtta bulunur) \n \n \n > Açılış Tarihi \n hspAclsTrh \n ISODateTime \n Z \n Belirtilen hesabın açılış tarihi. \n 9.7 ADIM 3.3 ve 3.4: Hesap Bakiyesinin Sorgulanması \n GET /bakiye ve GET /hesaplar/{hspRef}/bakiye \nBu erişim noktalarından tüm hesapların veya belirli bir hesabın bakiyesi sorgulanır.   İstek çağrısına dönülen “BakiyeBilgileri” nesnesi Tablo 17’de verilmiştir. \n \n Erişim belirteci kontrolü yapılır. Geçerli bir erişim belirteci yok ise HHS tarafından  ”TR.OHVPS.Connection.InvalidToken”  hatası dönülür. \n /hesaplar/{hspRef}/bakiye ile yapılan istekte;\n \n İstek başlığında yer alan X-Access-Token ile ilişkili rızada, izin verilen hspRef'ler için, bakiye sorgusundaki hspRefe ait rıza ile aynı olup olmadığı kontrol edilir. Farklı olması durumunda  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n İlgili hspRef bulunamaz  ”TR.OHVPS.Resource.NotFound”  hatası dönülür. \n \n \n Rıza durumu kontrol edilir.\n \n RizaDurumu B: Yetki Bekleniyor ya da Y: Yetkilendirildi ise  “TR.OHVPS.Resource.ConsentMismatch”  hatası dönülür. \n YÖS'ün; Rıza İptal - I ya da Yetki Sonlandırıldı - S rıza durumlarında hesap bakiye servisini çağırmaması beklenir. Bu rıza durumları ile yapılmış çağrılar olduğunda HHS tarafından  ”TR.OHVPS.Resource.ConsentRevoked”  hatası dönülür. \n RizaDurumu “Yetki Kullanıldı” ise kontrollere devam edilir. \n \n \n Hesap Bakiye Sorgulanması yapılırken HHS tarafından ÖHK’nın “03: Bakiye Bilgisi” izin türü sahipliği kontrol edilir. 03 izin türüne sahip değil ise  ”TR.OHVPS.Business.PermissionTypeNotSupported”  hatası dönülür. \n \n Yukarıdaki kontroller tamamlandıktan sonra HHS, \"BakiyeBilgileri\" nesnesini oluşturur ve HBHS’ye döner. \n \n Hesap Bilgisi Rızası alınmış ve erişim izni devam eden hesaplar içerisinde yer alan hesaplardan kapatılmış ya da pasif duruma alınmış olan hesaplar için bakiye isteği yapıldığında HHS tarafından bakiye bilgisi dönülmelidir. \n \n Hesap bakiyelerinin gösterilmesi sırasında aşağıda verilen örnekler gözönünde bulundurulmalıdır. \n Örnek 1 : ÖHK  Hesap Bakiye Tutarı  0 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL. ÖHK 1000 TL para çıkışı gerçekleştirdi. Bakiye API'si yanıtı içerisinde iletilen  Kredi Dahil Göstergesi  0 değerini içeriyorsa,  Hesap Bakiye Tutarı  -1000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL olmalıdır. \n Örnek 2 : ÖHK  Hesap Bakiye Tutarı  0 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL. ÖHK 1000 TL para çıkışı gerçekleştirdi. Bakiye API'si yanıtı içerisinde iletilen  Kredi Dahil Göstergesi  1 değerini içeriyorsa,  Hesap Bakiye Tutarı  2000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL olmalıdır. \n Örnek 3 : ÖHK  Hesap Bakiye Tutarı  1000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL. ÖHK 1000 TL para çıkışı gerçekleştirdi. Bakiye API'si yanıtı içerisinde iletilen  Kredi Dahil Göstergesi  0 değerini içeriyorsa,  Hesap Bakiye Tutarı  0 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL olmalıdır. \n Örnek 4 : ÖHK  Hesap Bakiye Tutarı  1000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL. ÖHK 1000 TL para çıkışı gerçekleştirdi. Bakiye API'si yanıtı içerisinde iletilen  Kredi Dahil Göstergesi  1 değerini içeriyorsa,  Hesap Bakiye Tutarı  3000 TL,  Kredili Mevduat Hesabı Bakiyesi  3000 TL olmalıdır. \n İşlem Sorgu Örneği (Belirli Bir Hesap)=  /bakiye?\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= hspRef &\nsrlmYon=A \n Tablo 16: “BakiyeBilgileri” Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den bü
16yük olamaz. \n Bu veri gönderildiği durumda, HHS listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarasi \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek kayıtların sıralama kriterini belirtir. Alabileceği değerler: { “hspRef”} \n Bu veri gönderildiği durumda, HHS listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama kriterini hspRef olarak belirler. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler:  A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 17: “BakiyeBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Hesap Referansı \n hspRef \n AN5..40 \n Z \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez. Bir hesap (IBAN) tek bir hspRef'e karşılık gelmelidir, benzer şekilde bir hspRef tek bir IBAN'a karşılık gelmelidir. Aynı hesap için alınan tüm rızalarda hesap referans bilgisinin değişmemesi gerekmektedir. \n \n \n Bakiye \n bky \n Kompleks:Bakiye \n Z \n \n \n \n > Hesap Bakiye Tutarı \n bkyTtr \n AN1..25 \n Z \n Hesabın bakiyesi. Bloke tutar düşülmeden iletilmelidir.   Tutar alanı regex patterni şu şekildedir:  '^-?\\d{1,18}$|^-?\\d{1,18}\\.\\d{1,5}$' \n \n \n > Blokeli Tutar \n blkTtr \n AN1..24 \n K \n Varsa hesapta blokeli tutar bilgisi.     Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Para Birimi \n prBrm \n AN3 \n Z \n Para birimi. \n \n \n > Bakiye İletilme Zamanı \n bkyZmn \n ISODateTime \n Z \n Bakiyenin iletildiği zaman bilgisi. \n \n \n > KrediliHesap \n krdHsp \n Kompleks: KrediliHesap \n K \n \n \n \n >> Kredili Mevduat Hesabı Bakiyesi \n kulKrdTtr \n AN1..24 \n Z \n Kredili mevduat tutarı. Kredili bir hesap ise zorunlu.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n >> Kredi Dahil Göstergesi \n krdDhlGstr \n AN1 \n Z \n Kredili bir hesap ise zorunlu. Bakiye tutarının kredi tutarı dahil edilerek ya da edilmeden iletildiğini gösterir.   0: Kredi tutarı dahil edilmeden bakiye bilgisi iletilmesi durumu   1: Kredi tutarı dahil edilerek bakiye bilgisi iletilmesi durumu \n 9.8 ADIM 3.5 ve 3.6: İşlemlerin Sorgulanması \n GET /hesaplar/{hspRef}/islemler \n Servis başarılı yanıtında Tablo 19’da belirtilen \"IslemBilgileri\" nesnesini dönmektedir. \n \n Belirli bir hesaba ilişkin işlem bilgileri Tablo 18’deki istek parametrelerine göre sorgulanır. Parametrede yer alan değerlerin doğru gönderildiği kontrol edilir. Hatalı gönderilmesi durumunda  ”TR.OHVPS.Resource.InvalidFormat”  hatası dönülür. \n Erişim belirteci kontrolü yapılır. Geçerli bir erişim belirteci yok ise HHS tarafından  ”TR.OHVPS.Connection.InvalidToken”  hatası dönülür. \n İstek başlığında yer alan X-Access-Token ile ilişkili rızada, izin verilen hspRef'ler için, işlemler sorgusundaki hspRefe ait rıza ile aynı olup olmadığı kontrol edilir. Farklı olması durumunda  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n İlgili hspRef bulunamaz  ”TR.OHVPS.Resource.NotFound”  hatası dönülür. \n Rıza durumu kontrol edilir.\n \n RizaDurumu B: Yetki Bekleniyor ya da Y: Yetkilendirildi ise  “TR.OHVPS.Resource.ConsentMismatch”  hatası dönülür. \n YÖS'ün;
16 Rıza İptal - I ya da Yetki Sonlandırıldı - S rıza durumlarında işlemler servisini çağırmaması beklenir. Bu rıza durumları ile yapılmış çağrılar olduğunda HHS tarafından  ”TR.OHVPS.Resource.ConsentRevoked”  hatası dönülür. \n RizaDurumu “Yetki Kullanıldı” ise kontrollere devam edilir. \n \n \n HHS tarafından ÖHK’nın “04: Temel İşlem (Hesap Hareketleri) Bilgisi” veya \"05: Ayrıntılı İşlem Bilgisi\" izin türüne sahipliği kontrol edilir. 04 veya 05 izin türüne sahip değil ise  ”TR.OHVPS.Business.PermissionTypeNotSupported”   hatası dönülür. \n \n Hesap Bilgisi Rızası alınmış ve erişim izni devam eden hesaplar içerisinde yer alan hesaplardan kapatılmış ya da pasif duruma alınmış olan hesaplar için işlemler isteği yapıldığında HHS tarafından işlemler bilgisi dönülmelidir. \nİşlem bilgisi için daha önce tanımlanmış izin türüne göre yanıtta dönen IslemBilgileri nesnesinin (Temel İşlem Bilgisi veya Temel İşlem Bilgisi ve Detaylı İşlem Bilgisi) içeriği değişir. \nİşlemler servisi hem ÖHK’nın talebi ile YÖS uygulaması üzerinden çağrılabileceği gibi, YÖS’ün ÖHK’sız başlatabileceği otomatik çağrıları ile de yanıt dönebilmektedir. \nHHS, işlemin sistemsel yapılıp yapılmadığını, istek parametreleri içerisinde yer alan PSU-Initiated parametresi ile anlar. Bu parametre “E” ise ÖHK’lı, “H” ise sistemsel yapılmış bir sorgu anlamına gelmektedir.\nÖHK’nın başlattığı sorgular için HHS tarafından belirlenen üst rate limitler dahilinde çağrım yapılabilir. \nYÖS, otomatik yapacağı sorgularda; \n \n Bireysel ÖHK’lar için hesap bazında günde en fazla 4 adet başarı ile sonuçlanan sorgulama yapabilir. 4 adetten fazla yapılması durumunda  ”TR.OHVPS.Connection.ExceededRate”  hatası dönülür. \n Kurumsal ÖHK’lar için hesap bazında saatte en fazla 12 adet başarı ile sonuçlanan sorgulama yapabilir. 12 adetten fazla yapılması durumunda  ”TR.OHVPS.Connection.ExceededRate”  hatası dönülür. \n \n HHS, tutacağı sayaç bilgisi ile bu sayıları kontrol ederek daha fazla sorgulama yapılmasına izin vermeyebilir. \n Aynı istek parametreleri ile yapılan sorgu sonucunda dönecek toplam kayıt sayısı 100’ü aştığında, sayfalama yöntemi ile HHS’nin cevap dönmesi beklenmektedir.  Her bir sayfa için işlemler servisi tekrar çağrılsa da, bu çağrım HHS’nin tuttuğu sayaç değerini arttırmaz. HHS’nin tutacağı sayaçın kontrol parametreleri YÖS kodu, hesap numarası ya da referansı olmalıdır. Sayfa no parametresi varsa ve 1'den büyük ise işlem sayacını arttırmamalıdır. \n ÖHK’nın YÖS uygulaması üzerinden tetiklediği işlemlerde ise;\nbireysel ÖHK’lar  için en fazla 1 aylık,\nkurumsal ÖHK’lar için ise en fazla 1 haftalık bir pencere aralığında sorgulama yapılabilir. Belirtilen tarih aralığından farklı değer ile sorgulama yapıldığında  ”TR.OHVPS.Business.InvalidStartEndTime”  hatası dönülür. \n YÖS, otomatik yapacağı sorgularda hem bireysel hem de kurumsal ÖHK’lar için 24 saatlik bir pencere aralığında sorgulama yapabilir. Belirtilen tarih aralığından farklı değer ile sorgulama yapıldığında  ”TR.OHVPS.Business.InvalidStartEndTime”  hatası dönülür. \n Yeni günün başlangıç saatinin 00:00:00 olduğu kabul edilmiştir. \n Sorgu örnekleri aşağıdaki gibidir:  \n 1 günlük İşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-06-01T00:00:00+03:00&\nhesapIslemBtsTrh=2020-06-02T00:00:00+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n \n 1 haftalık İşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-06-01T00:00:00+03:00&\nhesapIslemBtsTrh=2020-06-08T00:00:00+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n \n 1 Aylık İşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-02-01T00:00:00+03:00&\nhesapIslemBtsTrh=2020-03-01T00:00:00+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n 1 Aylık İşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-01-31T00:00:00+03:00&\nhesapIslemBtsTrh=2020-02-28T00:00:00+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n 1 Aylık İşlem Sorgu Örneği (Belirli Bir Hesap) =  /hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-02-28T00:00:00+03:00&\nhesapIslemBtsTrh=2020-03-28T00:00:00+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n 24 saatlik pencerede yapacağı sistemsel sorgu örneği (Son sorgusunun üzerine 24 saat eklenmesi)  =\n/hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2020-06-01T14:10:08+03:00&\nhesapIslemBtsTrh=2020-06-02T14:10:08+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n Önyüzden alınan sorgu parametreleri ile oluşturulan sorgu örneği (Örnek sorgu tarih aralığı 20.02.2023- 25.02.2023 arasındadır)  =\n/hesaplar/{hspRef}/islemler?\nhesapIslemBslTrh=2023-02-20T00:00:00+03:00&\nhesapIslemBtsTrh=2023-02-26T00:00:00+03:00&\nminIslTtr=0&\nmksIslTtr=100000&\nbrcAlc=A&\nsyfKytSayi=25&\nsyfNo=1&\nsrlmKrtr= islGrckZaman &\nsrlmYon=A\n \n Tablo 18: İşlem Listesi Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n İşlem Sorgulama Başlangıç Zamanı \n hesapIslemBslTrh \n ISODateTime \n Z \n Sorgulanacak işlemlerin başlangıç tarihi. \n HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. ÖHK tarafından tetiklenen sorgularda;hesapIslemBslTrh ve hesapIslemBtsTrh arası fark bireysel ÖHK’lar için en fazla 1 ay,kurumsal ÖHK’lar için ise en fazla 1 hafta olabilir. YÖS tarafından sistemsel yapılan sorgulamalarda hem bireysel, hem de kurumsal ÖHK’lar için;son 24 saat sorgulanabilir. Bu yüzden hesapIslemBtsTrh-24 saat’ten daha uzun bir aralık sorgulanamaz olmalıdır. İstek başlığında yer alan PSU-Initiated alanı “E” ise ÖHK’lı, “H” ise sistemsel yapılmış bir sorgu anlamına gelmektedir. \n \n \n İşlem Sorgulama Bitiş Zamanı \n hesapIslemBtsTrh \n ISODateTime \n Z \n Sorgulanacak işlemlerin bitiş tarihi. \n HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. YÖS tarafından sistemsel yapılan sorgulamalarda hem bireysel, hem de kurumsal ÖHK’lar için;İleri vadeli işlem emirleri dahil olmadığı için (Sürüm 1.0.2 kapsamında); İşlem Sorgulama Bitiş Zamanı, her zaman, sorgulama zaman damgasını iletecek şekilde (datetime (now)) iletilebilir. \n \n \n En Düşük İşlem Tutarı \n minIslTtr \n AN1..24 \n İ \n Sorgulanacak işlemlerin alabileceği en düşük işlem tutarı.      Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n Bu veri gönderildiği durumda HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. \n \n \n En Yüksek İşlem Tutarı \n mksIslTtr \n AN1..24 \n İ \n Sorgulanacak işlemlerin alabileceği en yüksek işlem tutarı.    Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n Bu veri gönderildiği durumda HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. \n \n \n Borç Alacak Göstergesi \n brcAlc \n AN1 \n İ \n TR.OHVPS.DataCode.BrcAlc sıralı veri tipi değerlerinden birini alır. Sorgulanacak işlemlerin borç / alacak kriteri B: Hesaba borç yaratan işlem.A: Hesaba alacak yaratan işlem.{“B”,”A”} \n Bu veri gönderildiği durumda HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den bü
16yük olamaz. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarasi \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek işlemlerin sıralama kriterini belirtir. Alabileceği değerler: {“islGrckZaman”} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama kriterini islGrckZaman olarak belirler. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler: A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 19: “IslemBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Hesap Referans Numarası \n hspRef \n AN5..40 \n Z \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez. Bir hesap (IBAN) tek bir hspRef'e karşılık gelmelidir, benzer şekilde bir hspRef tek bir IBAN'a karşılık gelmelidir. Aynı hesap için alınan tüm rızalarda hesap referans bilgisinin değişmemesi gerekmektedir. \n \n \n Islemler \n isller \n Kompleks:Islem[Array] \n K \n Hesaba ilişkin hareketler varsa İşlemler nesnesi dizisi olarak dönülür. İşlemler nesnesi Temel İşlem Bilgileri ve Detay İşlem Bilgileri nesnesinden meydana gelir. İzin türü varsayılan olarak Temel İşlem Bilgilerini içerir. Detay İşlem Bilgileri izin türü de seçildi ise Temel İşlem Bilgilerine ek olarak Detay İşlem Bilgileri de gönderilir. \n \n \n > Temel İşlem Bilgileri \n islTml \n Kompleks:IslemTemel \n Z \n Temel İşlem Bilgileri varsayılan olarak dönülür. \n \n \n >> İşlem Numarası \n islNo \n AN3..50 \n Z \n Hesap hareketinin oluşturulması sırasında atanan ve borç (veya alacak) hareketini tekilleştiren HHS bazında tekil tanımlayıcıdır. Bu değer tek başına tekil olabileceği gibi birden fazla değerin bir araya getirilmesiyle de tekilliği sağlanmış olabilir. Bu değerin en azından hesap numarası (hesNo) bazında tekil olması beklenir. Genellikle kullanılan örnekleri; Instance_Id, Transaction_Id, Transaction_Num, Transaction_TimeStamp,dekont numarası \n \n \n >> İşlem Referans Numarası \n refNo \n AN3..50 \n Z \n İşlemi uçtan uca tanımlayan tekil tanımlayıcıdır. Borç ve alacak hareketinden oluşan bir veya birden fazla işlemler bütünü için atanmış olan ve bu bütünü tekilleştiren (bir biri ile ilişkisini tutan) değerdir.Bu değer hem YÖS’ten gelen değer olabilir (ödeme işlemlerinde kullanılan kkodRef ya da refBlg alanı) hem de HHS içinde takip edilmek için üretilmiş bir değer olabilir. HHS sisteminde 2 değerin de bulunması durumunda;refNo alanını doldurmak için, HHS’nin YÖS’ten gelen değere öncelik vermesi beklenmektedir. YÖS’ten gelen veri örneği: Sipariş Numarası, Fatura Numarası, Karekod Referansı vb. HHS’te üretilen veri örneği: Masraflı havale işleminde hem havale işleminin hem de masraf işleminin aynı referans numarasına sahip olması da örnek olarak gösterilebilir. \n \n \n >> İşlem Tutarı \n islTtr \n AN1..24 \n Z \n İşlem tutarı.    Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n >> Güncel Bakiye Tutarı \n gnclBky \n AN1..25 \n Z \n İşlem sonrası güncel bakiye bilgisi tutarı.    Tutar alanı regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para birimi. \n \n \n >> İşlem Gerçekleşme Zamanı \n islGrckZaman \n ISODateTime \n Z \n İşlemin gerçekleşme zamanı. \n \n \n >> İşlem Kanalı \n kanal \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeKaynak sıralı veri türü değerlerinden birini alır. \n \n \n >> Borçlandırma Alacaklandırma Göstergesi \n brcAlc \n AN1 \n Z \n TR.OHVPS.DataCode.BrcAlc sıralı veri türü değerlerinden birini alır. İşlemin hesabı borç ya da alacaklandırdığı bilgisidir. \n \n \n >> İşlem Türü \n islTur \n AN3..50 \n Z \n HHS’nin işleme ait ilişkilendirdiği işlem türü değeri. TR.OHVPS.DataCode.IslemTuru sıralı veri türü değerlerinden birini alır. \n \n \n >> İşlem Amacı \n islAmc \n AN2 \n Z \n TR.OHVPS.DataCode.IslemAmaci sırali veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n \n \n >> Ödeme Sistemi No \n odmStmNo \n AN10..50 \n K \n Ödeme başarılı başlatıldıysa, ödemenin başlatıldığı sistemdeki referans numarası. Gerektiğinde ilgili ödeme sisteminde/HHS’de söz konusu ödemeye karşılık gelen mesajla bağlantı kurmada kullanılır.   Ödeme Hizmeti kullanıcısına işlemin takibi için gösterilebilir.  İşlemin yönlendirildiği ödeme sistemi FAST ya da PÖS ise sistemdeki ilgili mesajın Tarih, GönderenKatilimKodu ve SorguNumarasi değerlerinin birleşiminden oluşur. Bu 3 alan mevcutta kullanıldığı formatta aralarına dikey çizgi (Unicode U+2223) işareti koyularak, birleştirmeli ve iletilmelidir. Örn : Tarih|GönderenKatilimKodu|SorguNumarasi   Ödeme Havale/Virman işlemi ise HHS’nin üretmiş olduğu havale/virman numarasını içerir. Buradaki format da Tarih|GönderenKatilimKodu|Havale-virman numarası şeklinde olmalıdır. Havale/FAST/PÖS  ödeme yöntemleri için tarih alanı yyyy-aa-gg formatında 10 karakter olarak 
16iletilmelidir. \n \n \n > Detay İşlem Bilgileri \n islDty \n Kompleks: IslemDetay \n K \n Detay İşlem Bilgileri dizi olarak gönderilmelidir. \n \n \n >> İşlem Açıklaması \n islAcklm \n AN1..200 \n Z \n HHS tarafından atanan işlem açıklaması. HHS kendi işlem hareketlerine yansıttığı açıklamayı buraya yansıtmalıdır.  HHS'ler tüm hesap hareketlerini YÖS'ler ile paylaşmakla yükümlü olup, hassas veri içeren(örn: faiz, komisyon bilgisi içeren vb.) işlem hareketleri de bu kapsamda değerlendirilerek işlem açıklamasının maskeli olarak iletilmesi sağlanır. Kelimelerin ilk 3 hanesi maskeli olacak şekilde, ancak sakıncalı bulunan kelimeler varsa; (örn: faiz, komiyon vb.) kelimelerin tamamı maskeli olacak şekilde gösterilebilir. \n \n \n >> Karşı Taraf \n krsTrf \n Kompleks:  KarsiTaraf \n K \n Kullanımı işlem bazında değişmektedir. Örnek: FAST işleminde karşı taraf alıcının bilgileridir. Vergi ödemesinde kurum IBAN bilgisi müşteriye gösterilemeyebileceğinden bu alanın boş gelmesi HHS insiyatifindedir. \n \n \n >>> Karşı Maskeli IBAN \n krsMskIBAN \n AN26 \n K \n İlgili hesap hareketinin karşı tarafının maskeli IBAN bilgisi. \n \n \n >>> Karşı Ünvan \n krsUnvan \n AN3..140 \n K \n İlgili hesap hareketinin karşı tarafının ad-soyad ya da ticari ünvan bilgisi. Ünvan bilgisi maskelenmeden iletilmelidir. \n \n \n >>> Karşı Taraf Kimlik Bilgisi \n krsKimlikVrs \n AN1..11 \n İ \n HHS sorumluluğunda YÖS ile paylaşılan Karşı Taraf Kimlik Bilgisi(Kimlik/Kurum Kimlik - TCKN/VKN) \n 9.9 ADIM 4: Kart Bilgilerinin Sorgulanması \n    \n GET /kartlar ve GET /kartlar/{kartRef} \n Bu erişim noktalarından tüm kartların veya belirli bir kartın bilgileri sorgulanır ve kart listesi elde edilir. İlgili sorgu için 07 izin türünün verilmesi yeterlidir. HHS ekranlarında kart seçimi yapılırken sadece aktif/açık statüde olan kartlar listelenecek ve ÖHK'ya seçtirilecektir. Kartın ilgili kanalda listelenme yetkisi bulunmuyorsa ÖHVPS kapsamında listelenmeyebilir. Listelendiği durumda; asıl kart sahibi ile sanal/ek kart sahiplerinin aynı kişi olduğu düşünüldüğünde HHS ekranlarında kart seçimi yapılarak rıza verilirken asıl kart seçilmeden ilgili asıl karta bağlı sanal ve ek kartların ayrıca seçilerek rıza verilmesine izin verilmemelidir. HHS mevcut kanallarında ek ve sanal kart hareketlerini asıl karttan ayırt etmeden müşterisine gösteriyor ise asıl kart seçimi ile birlikte asıl karta bağlı sanal ve/veya ek kart seçimini zorunlu kılmalıdır. Asıl kart hamili dışında bir kişi için ek kart çıkartıldığı durumda ek kart sahibi HHS'de asıl kartı görmeyecek olduğundan sadece kendisine çıkartılan ek kartı listelenecek ve seçerek rıza vermesi sağlanacaktır. Ek kart hamilinin asıl kart hamilinden farklı olduğu durumda asıl karta ait bir rıza olmasa da ek karta rıza verilebilir. \n Her durumda onay ekranında rıza verilen tüm kartların listesini ÖHK'ya göstermesi zorunludur. Kapalı devre çalışan kartlar kapsama dahil değildir. \n YÖS tarafından başlatılan rıza isteklerinde hesap ve kart izin türlerinin seçili olması durumunda HHS ekranlarında hem hesapların hem de kartların listelenmesi sağlanacaktır. Ancak hesap ya da kart bilgilerinden en az birinin seçilmesi yeterlidir. Hem hesap hem kart bilgisi için seçim yapılması zorunluluğu bulunmamaktadır. YÖS üzerinden hem hesap hem kart izin türü seçilerek başlatılan rıza akışında, müşteri HHS ekranında yalnızca hesap seçimi yapmış ise, kartlar servisine yapılan isteklerde HHS tarafından hata yerine boş liste dönülmelidir. \n \n Parametrede yer alan değerlerin doğru gönderildiği kontrol edilir. Hatalı gönderilmesi durumunda HHS tarafından  ”TR.OHVPS.Resource.InvalidFormat”  hatası dönülür. Parametrede yer alan değerler gönderilmediği durumda parametredeki varsayılan değerler ile kart bilgileri dönülür. Varsayılan değerler Tablo 20'de belirtilmiştir. \n Erişim belirteci kontrolü yapılır. Geçerli bir erişim belirteci yok ise HHS tarafından  ”TR.OHVPS.Connection.InvalidToken”  hatası dönülür. \n Rıza durumu kontrol edilir.\n \n RizaDurumu B: Yetki Bekleniyor ya da Y: Yetkilendirildi ise  “TR.OHVPS.Resource.ConsentMismatch”  hatası dönülür. \n YÖS'ün;
16 Rıza İptal - I ya da Yetki Sonlandırıldı - S rıza durumlarında kartlar servisini çağırmaması beklenir. Bu rıza durumları ile yapılmış çağrılar olduğunda HHS tarafından  ”TR.OHVPS.Resource.ConsentRevoked”  hatası dönülür. \n RizaDurumu “Yetki Kullanıldı” ise kontrollere devam edilir. \n \n \n İlgili rıza numarasının “07: Temel Kart Bilgisi” izin türüne sahipliği kontrol edilir. 07 izin türüne sahip değil ise  ”TR.OHVPS.Business.PermissionTypeNotSupported”  hatası dönülür. \n \n Yukarıdaki kontroller tamamlandıktan sonra HHS tarafından istek başlığında yer alan X-Access-Token ile ilişkili rıza içerisindeki kart bilgileri dönülür. Kart bilgileri için KartBilgileri nesnesinin içeriği Tablo 21'de verilmiştir. \n Kart Bilgisi Sorgu Örneği (Tüm Kartlar) = /kartlar?syfKytSayi=25&syfNo=1?kartTipi=K\nKart Bilgisi Sorgu Örneği (Belirli Bir Kart) = /kartlar/{kartRef} \n İptal statüsünde olan banka ve ön ödemeli kart tipleri HHS tarafından kartlar sorgusunda dönülmeyecek olup YÖS'ler tarafından ÖHK'ya da gösterilemeyecektir. İptal statülü kredi kart tipi için borç/taksit bilgisi veya artı bakiye olması durumunda kartlar listesinde HHS'ler tarafından dönüş sağlanacak olup YÖS'ler tarafından ÖHK'ya gösterilecektir. İptal statüsünde olup herhangi bir bakiye ve borç olmaması durumunda ilgili kart bilgisi kartlar listesinde HHS tarafından iletilmeyecektir. \n HHS'de açık/aktif statüde yer alan kartlar seçilip rıza tahsis edildikten sonra kartın statüsünün pasif olması durumunda HHS tarafından mevcut kanallarında gösterilen bilgiler kart liste, detay ve hareket sorgulamalarında dönülmelidir. HHS'de kart seçimi yapıp rıza tahsis edildikten sonra ilgili kartın gösterimi özelinde HHS'de kısıtlama getirilmesi durumları için örnekler aşağıda detaylandırılmıştır. \n \n Rıza içerisinde sadece kart olması durumunda ilgili rızanın 09 iptal detay kodu ile iptal edilmesi sağlanacaktır. \n Rıza içerisinde ilgili kartın dışında hesap/kart olması durumunda rıza iptal edilmeyecektir. İlgili kart haricinde kart listesinde farklı bir kart yoksa kart listesi, sorgulandığında  TR.OHVPS.Business.RestrictedChannelAccess  hata kodu dönülecektir. \n \n Tablo 20: Kart Bilgileri Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den büyük olamaz. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarasi \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Kart Tipi \n kartTipi \n AN1 \n İ \n Kart tipleri özelinde Banka, Kredi ve Ön Ödemeli kartların ayrıca soruglanması sağlanır. \n Bu veri gönderildiği durumda, HHS kart tipine uygun olarak kart bilgilerini döner. \n \n \n \n Tablo 21: “KartBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Rıza No \n rizaNo \n AN1..128 \n Z \n HesapBilgisiRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n Kart Referans Numarası \n kartRef \n AN5..40 \n Z \n HHS tarafından her bir kart için atanan biricik değerdir (uuid). Bir kart tek bir kartRef'e karşılık gelmelidir, benzer şekilde bir kartRef tek bir karta karşılık gelmelidir. Aynı kart için alınan tüm rızalarda kart referans bilgisinin değişmemesi gerekmektedir. \n \n \n Kart Numarası \n kartNo \n AN15..16 \n Z \n Karta ait numara maskeli olarak iletilmelidir. Maskeleme kuralı kart'ın ilk 6 ve son 4 hanesi açık olarak görünecek şekilde maskelenmelidir. Sanal kart bilgisi için de ilgili numara maskeli olarak iletilmelidir. Örn: 123456******5678 \n \n \n Asıl Kart Numarası \n asilKartNo \n AN15..16 \n K \n Asıl kartlar için ilgili alan iletilmemelidir. Sanal ve ek kartlar için bağlı oldukları asıl kart numaraları iletilmelidir. Ek karta ait sanal kart için asıl kart numarası olarak ek kart numarası iletilmelidir. Kart numarası maskeli iletilmelidir. \n \n \n Kart Tipi \n kartTipi \n AN1 \n Z \n Kartın tipini belirten değerdir. Kart tipleri olarak alabileceği değerler  TR.OHVPS.DataCode.KartTip  sıralı veri türlerinden biridir. \n \n \n Alt Kart Tipi \n altKartTipi \n AN1 \n Z \n Kart Tipleri altında yer alan alt kart tipleridir. Alt kart tipleri olarak alabileceği değerler  TR.OHVPS.DataCode.AltKartTip  sıralı veri türlerinden biridir.  Asıl banka kartı, sanal banka kartı, ek kredi kartı, asıl kredi kartı gibi tüm kart tiplerini ayrıştırmak için asıl ve alt kart tipleri kullanılmaktadır. \n \n \n Kart Formu \n kartFormu \n AN1 \n Z \n Kartın fiziksel ve dijital olduÄ
16Ÿunu belirten değerdir. Alabileceği değerler  TR.OHVPS.DataCode.KartFormu  sıralı veri türlerinden biridir. \n \n \n Kart Türü \n kartTuru \n AN1 \n Z \n Kartın tipinin bireysel ya da ticari olmasına yönelik olan değerdir.  B:Bireysel, T:Ticari \n \n \n Kart Statüsü \n kartStatu \n AN1 \n Z \n TR.OHVPS.DataCode.KartStatu  sıralı veri türü değerlerinden birini alır.  Kart statüsü için güncelleme yapılamayacak durumda ise iptal statüsü olarak değerlendirilmelidir. Kart statüsü güncellenebilir durumda ise açık ve pasif olarak değerlendirilmelidir. \n \n \n Kart Sahibi Ad/Soyad \n kartSahibi \n AN3..140 \n Z \n Kart sahibi ya da kart sahiplerinin ad-soyadı. \n \n \n Kart Ticari Unvan \n kartTicariUnvan \n AN3..140 \n K \n Kart türü ticari ise ilgili alanda ticari unvan iletilmesi zorunludur. \n \n \n Kart Ürün Adı \n kartUrunAdi \n AN3..140 \n Z \n Kart bilgilerinin ürün adı. Örn : TROY Business Kart \n \n \n Ekstre Türleri \n ekstreTurleri \n Kompleks:EkstreTurleri[Array] \n Z \n Ekstre türleri dizi içerisinde iletilmelidir. \n \n \n > Ekstre Statüsü \n ekstreStatu \n AN1 \n Z \n TR.OHVPS.DataCode.EkstreStatu  sıralı veri türü değerlerinden birini alır.Ekstre türünün durumu iletilmelidir. Pasif olan ekstre türleri de iletilmelidir. A: Aktif : ilgili kartın ekstre türünün kullanıma açık olmasıdır. P: Pasif : İlgili kartın ekstre türünün eskiden kullanıldığı ancak şu an devre dışı durumda olmasıdır.  Örnek olarak: İlgili kredi kartının TRY, USD, EUR ekstre türleri açık olduğu durumda üç ekstre türünün de aktif olarak dönmesi beklenmektedir. ÖHK, USD ekstre türünü kapattığı durumda USD pasif ; TRY ve EUR aktif olarak dönmesi beklenmektedir. Böylece ÖHK’nın şu an pasif ama önceden aktif olan ekstre türlerinin sorgulanması sağlanabilecektir. Eğer bir ekstre türü için hiç ekstre üretilmemişse, bu durumda HHS’nin ilgili ekstre türünü hiç dönmemesi gerekmektedir. \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n İlgili karta ait ekstre türleri para birimi.(TRY, USD, EUR, GBP) Yurtdışı ekstre olan kartlar için TRY haricinde de değer dönülmesi gerekmektedir. Banka kartlarında ise karta bağlı olan hesap para birimleri iletilmelidir. \n \n \n Kart Rumuz \n kartRumuz \n AN3..140 \n İ \n Kart için rumuz bilgisi var ise gönderilebilir. \n \n \n Kart Şeması \n kartSema \n AN1 \n Z \n TR.OHVPS.DataCode.KartSema  sıralı veri türü değerlerinden birini alır. \n 9.10 ADIM 4.1: Kart Detay Bilgilerinin Sorgulanması \n GET /kartlar/{kartRef}/kart-detay \n KartBilgileri nesnesi ile elde edilen kart listesinde yer alan kartların detayı sorgulanır. Detay ile birlikte KartDetayBilgileri nesnesinin içeriği Tablo 23'de verilmiştir. \n \n Parametrede yer alan ekstreTuru bilgisi Ekstre Türleri haricinde uygun olmayan bir değer gönderildiğinde  ”TR.OHVPS.Business.InvalidCurrencyCode”  hatası dönülür. Bu alan gönderilmiyorsa TRY olarak değerlendirilmelidir. \n Erişim belirteci kontrolü yapılır. Geçerli bir erişim belirteci yok ise HHS tarafından  ”TR.OHVPS.Connection.InvalidToken”  hatası dönülür. \n İstek başlığında yer alan X-Access-Token ile ilişkili rızada, izin verilen kartRef'ler için, kart detay bilgileri sorgulanan kartRefe ait rıza ile aynı olup olmadığı kontrol edilir. Farklı olması durumunda  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n İlgili kartRef bulunamaz  ”TR.OHVPS.Resource.NotFound”  hatası dönülür. \n Rıza durumu kontrol edilir.\n \n B: Yetki Bekleniyor ya da Y: Yetkilendirildi ise  “TR.OHVPS.Resource.ConsentMismatch”  hatası dönülür. \n I: Rıza İptal ya da S: Yetki Sonlandırıldı ise  ”TR.OHVPS.Resource.ConsentRevoked”  hatası dönülür. \n RizaDurumu “K: Yetki Kullanıldı” ise kontrollere devam edilir. \n \n \n İlgili rıza numarasının “08: Detaylı Kart Bilgisi” izin türüne sahipliği kontrol edilir. 08 izin türüne sahip değil ise  ”TR.OHVPS.Business.PermissionTypeNotSupported\"”  hatası dönülür. \n Alt kart tipi Sanal Kart olanlar için detay bilgisi görüntülenmeyecektir.  Sanal kart özelinde detay bilgi sorgulaması yapılması durumunda HHS tarafından  \"TR.OHVPS.Business.CardTypeNotSupported\"  hatası dönülür. \n Kart tipi olarak; iptal statüsünde olan banka ve ön ödemeli kartlar için detay sorgulaması yapılamayacaktır. Kart tipi kredi kartı olup iptal statüsünde olan ve  borcu olmayan bir  kart için de kart detay sorgulaması yapılamayacaktır. Detay sorgulaması yapılamayacak bir kart tipi için HHS'ler tarafından  \"TR.OHVPS.Business.InvalidCardStatus\"  hatası dönülür. \n Rıza içerisinde kanal görüntüleme yetkisi kapatılan kart için detay bilgisi sorgulandığında  TR.OHVPS.Business.RestrictedChannelAccess  hata kodu dönülecektir. \n İlk kredi kartı oluşan ÖHK'lar henüz ekstre oluşmadığı sebebiyle tarih ve borç bilgileri de oluşmamış olabilir. Bu sebeple ilgili tutar bilgileri sıfır olacak şekilde dönülmelidir. Tarih bilgileri ise varsayılan tarih bilgisi olarak dönülebilir.(Örn:01/01/1900) Bu şekilde gelen bir tarih bilgisi YÖS'ler tarafından ÖHK'ya boş olarak gösterilebilir. \n \n Yukarıdaki kontroller tamamlandıktan sonra HHS tarafından  “KartDetayBilgileri”  nesnesi dönülür. \n HHS'ler kart tipi kredi kartı ise ve karta ait borç/taksit tutar bilgisi bulunuyorsa KartDetayBilgileri nesnesi için başarılı yanıt dönmek zorundadır. Borç bilgisi için tutarlar eksi(-) olacak şekilde iletilmesi beklenmektedir. \n Kart Detay Bilgisi Sorgu Örneği (Tek Bir Kart) = /kartlar/{kartRef}/kart-detay \n Parametre içeren Kart Detay Bilgisi Sorgu Örneği (Tek Bir Kart) =  /kartlar/{kartRef}/kart-detay?ekstreTuru=USD \n Tablo 22: Kart Bilgileri Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Ekstre Türü \n ekstreTuru \n AN3 \n K \n Kart bilgileri yanıtında dönülen ekstre türleri değerlerini almaktadır. Para birimine uygun olarak kart detay bilgileri sorgulanmaktadır. Ekstre parametresi TRY,USD,EUR,GBP olarak gönderilebilir. Bu alan gönderilmiyorsa TRY değerlendirilmelidir. İlgili para birimine özel ekstre içindeki harcama değeri dönülecektir. \n Ekstre türleri haricinde uygun olmayan bir değer gönderildiğinde hata verilmelidir. \n \n \n \n Tablo 23: “KartDetayBilgileri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n 
16Kart Tiplerine İstinaden Detaylı Açıklama \n \n \n \n \n Rıza No \n rizaNo \n AN1..128 \n Z \n HesapBilgisiRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n \n Kart Referans Numarası \n kartRef \n AN5..40 \n Z \n HHS tarafından her bir kart için atanan biricik değerdir (uuid). Bir kart tek bir kartRef'e karşılık gelmelidir, benzer şekilde bir kartRef tek bir karta karşılık gelmelidir. Aynı kart için alınan tüm rızalarda kart referans bilgisinin değişmemesi gerekmektedir. \n \n \n \n Ekstre Türü \n ekstreTuru \n AN3 \n Z \n Ekstre türü TRY,USD,EUR,GBP olarak gönderilebilir. İstek paremetresinde iletilen değer ile aynı değer olmalıdır. \n \n \n \n Toplam Kart Limiti \n toplamLimit \n Kompleks:ToplamLimit \n K \n Karta ait toplam TL limit bilgisi. Toplam kart limiti (+) değerde gönderilmelidir. Negatif değer gönderilmemelidir. \n Kart tipi kredi kartı ve ön ödemeli kart olanlar için ilgili alanın dönülmesi zorunludur. Kart tipi banka olan kartlar için ilgili alan dönülmemelidir. Ön ödemeli kartlarda, bağlı bulundukları bir hesap olsa bile, sadece üzerlerine yüklenen tutarın gösterilmesi gerekmektedir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Tutar Bilgisi. Limit tutarı için regex patterni şu şekildedir: ' ^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Kullanılabilir Kart Limiti \n kullanilabilirLimit \n Kompleks:KullanılabilirLimit \n K \n Karta ait kullanılabilir TL limit bilgisi. Kullanılabilir kart limiti (+) değerde gönderilmelidir. Herhangi bir sebeple (kart limitinin aşılması vb.)  (-) olması durumunda değerin (-) olarak gönderilmesi beklenmektedir. \n Kart tipi banka olan kartlar için ilgili alan dönülmemelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Tutar Bilgisi. Limit tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Dönem İçi Hareket Toplamı \n donemIciHareketToplami \n Kompleks:DonemIciHareketToplami \n Z \n Dönem içi hareket toplamı ve kalan ekstre borcunun toplamı dönülmelidir. Müşterinin borcu olduğu durumda (-) değer gönderilmelidir. Müşterinin alacağı olduğu durumda (iade/fazla ödeme vb(+) değer ile tutar bilgisi gönderilmelidir. \n Kart tipi kredi kartı olanlar için ilgili döneme ait hareketlerin toplam tutar bilgisidir. Kart tipi banka ve ön ödemeli kartlar için ilgili dönem içerisinde ay başından itibaren yapılan hareketlerin toplam tutar bilgisi iletilmelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Tutar Bilgisi.  Tutar için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Ekstre Borcu \n ekstreBorcu \n Kompleks:EkstreBorcu \n K \n İlgili ekstre türüne uygun olarak ekstre borcu iletilmelidir. Müşterinin alacağı olduğu durumda (iade/fazla ödeme vb(+) değer ile tutar bilgisi gönderilmelidir. \n Kart tipi kredi kartı olanlar için ilgili alanın dönülmesi koşulludur. Ek kredi kartı için ilgili alan varsa dönülmelidir . Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Borç tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Kalan Ekstre Borcu \n kalanEkstreBorcu \n Kompleks:KalanEkstreBorcu \n K \n İlgili ekstre türüne uygun olarak kalan ekstre borcu iletilmelidir. Müşterinin kalan ekstre borcu olduğu durumda (-) değer gönderilmelidir. Kalan ekstre borcu yoksa veya herhangi bir sebeple ektresinde alacak tutarı varsa 0(sıfır) değeri gönderilmelidir. Pozitif değer gönderilmemelidir. \n Kart tipi kredi kartı olanlar için ilgili alanın dönülmesi koşulludur. Alt kart tipi ; Asıl ve Sanal kredi kartı için ilgili alanın dönülmesi zorunludur. Ek kredi kartı için ilgili alan varsa dönülmelidir. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Borç tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Asgari Ödeme Tutarı \n asgariOdemeTutari \n Kompleks:AsgariOdemeTutari \n K \n İlgili ekstre türüne uygun olarak ekstreye ait asgari ödeme tutarı iletilmelidir. Ekstre Borcu (-) ise; asgari ödeme tutarı da (-) değer olarak gönderilmelidir. Müşterinin alacağı olduğu durumda (iade/fazla ödeme vb.)  \"0\" (sıfır) değeri gönderilmelidir. \n Kart tipi kredi kartı olanlar için ilgili alanın dönülmesi koşulludur. Alt kart tipi ; Asıl ve Sanal kredi kartı için ilgili alanın dönülmesi zorunludur. Ek kredi kartı için ilgili alan varsa dönülmelidir. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Ödeme tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Kalan Asgari Ödeme Tutarı \n kalanAsgariOdemeTutari \n Kompleks:KalanAsgariOdemeTutari \n K \n İlgili ekstre türüne uygun olarak ekstreye ait kalan asgari ödeme tutarı iletilmelidir. Ekstre Borcu (-) ise; asgari ödeme tutarı da (-) değer olarak gönderilmelidir. Müşterinin alacağı olduğu durumda (iade/fazla ödeme vb.)  \"0\" (sıfır) değeri gönderilmelidir. \n Kart tipi kredi kartı olanlar için ilgili alanın dönülmesi koşulludur. Alt kart tipi ; Asıl ve Sanal kredi kartı için ilgili alanın dönülmesi zorunludur. Ek kredi kartı için ilgili alan varsa dönülmelidir. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Ödeme tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Hesap Kesim Tarihi \n hesapKesimTarihi \n ISODate \n Z \n Karta ait hesap kesim tarihi iletilmelidir. Hesap kesim tarihi olarak son kesilmiş ekstrenin tarihi iletilmelidir. Örneğin; günün tarihi 09/01/2026 olduğu durumda her ayın 23'ünde kesilen ekstre için hesap kesim tarihi 2025-12-23 şeklinde olacaktır. \n Kart tipi kredi kartı olanlar için hesap kesim tarihi iletilmelidir. Ek kart için asıl kartın hesap kesim tarihi dönülmelidir. Kart tipi banka ve ön ödemeli kart olan kartlar için sorgulama yapılan ayın son takvim günü dönülmelidir. \n \n \n Sonraki Hesap Kesim Tarihi \n sonrakiHesapKesimTarihi \n ISODate \n Z \n Kesilecek olan ekstrenin hesap kesim tarihi tarihi iletilmelidir. Örneğin; günün tarihi 09/01/2026 olduğu durumda her ayın 23'ünde kesilen ekstre için sonraki hesap kesim tarihi 2026-01-23 şeklinde olacaktır. \n Kart tipi kredi kartı olanlar için sonraki hesap kesim tarihi iletilmelidir. Ek kart için asıl kartın sonraki hesap kesim tarihi dönülmelidir. Kart tipi banka ve ön ödemeli kart olan kartlar için sorgulama yapılan aydan bir sonraki ayın son takvim günü dönülmelidir \n \n \n Son Ödeme Tarihi \n sonOdemeTarihi \n ISODate \n K \n Kesilmiş olan ekstre için kart borcunun ödeneceği son ödeme tarih bilgisi dönülmelidir. Örneğin; kesilmiş olan ekstreye ait  hesap kesim tarihi 2025-12-23 şeklinde olan bir kredi kartı için son ödeme tarihi 2026-01-03 olacaktır. \n Kart tipi kredi kartı olanlar için ilgili alan dönülmesi zorunludur. Ek kart için asıl kartın son ödeme tarih bilgisi dönülmelidir. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n Sonraki Son Ödeme Tarihi \n sonrakiSonOdemeTarihi \n ISODate \n K \n Kesilecek olan ekstre için kart borcunun ödeneceği son ödeme tarih bilgisi dönülmelidir.  Örneğin; kesilecek olan ekstreye ait  hesap kesim tarihi 2026-01-23 şeklinde olan bir kredi kartı için son ödeme tarihi 2026-02-03 olacaktır. \n Kart tipi kredi kartı olanlar için ilgili alan dönülmesi zorunludur. Ek kart için asıl kartın sonraki son ödeme tarih bilgisi dönülmelidir. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n Puan Bilgisi \n puanBilgisi \n Kompleks:PuanBilgisi[Array] \n \n Karta ait puan bilgileri dizi içerisinde iletilmelidir. \n \n \n \n > Puan Değeri \n puanDegeri \n AN1..25 \n K \n Kart için mevcutta yer alan puan değeri varsa iletilmelidir. HHS özelinde puan değeri puan tipine göre birim olarak tutuluyorsa ilgili değer iletilmelidir. Örn: 100 Plus puan bilgisi varsa puan değeri alanında 100 iletilmelidir. Puan değeri eksi değer alabilir. \n Tüm kart tipleri için puan bilgisi varsa dönülmelidir. \n \n \n > Puan Tipi \n puanTipi \n AN1..50 \n K \n Puan Tipi olarak HHS özelinde bir puanTipi varsa o bilgi iletilmelidir. Örn: 100 Plus puan bilgisi varsa puan tipi alanında Plus değeri iletilmelidir. \n Tüm kart tipleri için puan bilgisi varsa dönülmelidir. \n \n \n Nakit Çekim Limiti \n nakitCekimLimiti \n Kompleks:NakitCekimLimiti \n K \n Karta ait nakit çekim limit değeri iletilmelidir. Ekstre türü TRY dışında olan kartlar için de TRY para biriminde geçerli olan limit iletilmelidir. Nakit Çekim Limiti (+) değerde gönderilmelidir. Negatif değer gönderilmemelidir. \n Kart tipi kredi kartı olanlar için ilgili alan dönülmesi zorunludur. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Limit tutarı için regex patterni şu şekildedir: ' ^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Kullanılabilir Nakit Çekim Limiti \n kullanilabilirNakitCekimLimiti \n Kompleks:KullanilabilirNakitCekimLimiti \n K \n Karta ait kullanılabilir nakit çekim limit değeri iletilmelidir. Ekstre türü TRY dışında olan kartlar için de TRY para biriminde geçerli olan limit iletilmelidir. Kullanılabilir Nakit Çekim Limiti (+) değerde gönderilmelidir. Herhangi bir sebeple (nakit limitinin aşılması vb.)  (-) olması durumunda değerin (-) olarak gönderilmesi beklenmektedir. \n Kart tipi kredi kartı olanlar için ilgili alan dönülmesi zorunludur. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Limit tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Kalan Toplam Taksit Tutarı \n kalanToplamTaksitTutari \n Kompleks:KalanToplamTaksitTutari \n K \n Karta ait tüm kalan taksitlerin toplam değeri iletilmelidir.Müşterinin Taksit borcu olduğu durumda (-) değer gönderilmelidir. Taksit iadesi veya benzeri nedenlerle oluşan müşterinin alacaklı olduğu durumda tutar (+) değer gönderilmelidir. \n Kart tipi kredi kartı olanlar için ilgili alan dönülmesi zorunludur. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Taksit tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Dönem Taksit Tutar Bilgisi \n donemTaksitTutarBilgisi \n Kompleks:DonemTaksitTutarBilgisi[array] \n K \n Kart Tipi kredi kartı olanlar için taksit bilgisi varsa taksit içeren dönemlerin dizi halinde iletilmesi zorunludur. \n \n \n \n >
16 Dönem Değeri \n donemDegeri \n N3 \n Z \n Taksitli işlemler dönülmesi sebebiyle dönem değeri minimum 1 olacak şekilde dönülmelidir. \n \n \n \n > Dönem Taksit Tutarı \n donemTaksitTutari \n Kompleks:DonemTaksitTutari \n Z \n İlgili dönem değeri içerisindeki toplam taksit tutar bilgisi iletilmelidir. Müşterinin Dönem Taksit Tutar borcu olduğu durumda (-) değer gönderilmelidir. Dönem Taksit Tutar iadesi veya benzeri nedenlerle oluşan müşterinin alacaklı olduğu durumda tutar (+) değer gönderilmelidir. \n \n \n \n >> Tutar \n tutar \n AN1..25 \n Z \n Taksit tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n >> Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n 9.11 ADIM 4.2: Kart Hareket Bilgilerinin Sorgulanması \n GET /kartlar/{kartRef}/kart-hareketleri \n KartBilgileri nesnesi ile elde edilen kart listesinde yer alan kartların işlem/hareket bilgileri sorgulanır. Kart hareketleri için \"KartHareketleri\" nesnesinin içeriği Tablo 25'de verilmiştir. \n \n Bir karta ilişkin işlem bilgileri Tablo 24’deki istek parametrelerine göre sorgulanır. Parametrede yer alan değerlerin doğru gönderildiği kontrol edilir. Hatalı gönderilmesi durumunda HHS tarafından  ”TR.OHVPS.Resource.InvalidFormat”  hatası dönülür. Parametrede yer alan isteğe bağlı alanlar gönderilmediği durumda parametredeki varsayılan değerler ile kart hareketleri dönülür. \n Parametrede yer alan ekstreTuru bilgisi Ekstre Türleri haricinde uygun olmayan bir değer gönderildiğinde  ”TR.OHVPS.Business.InvalidCurrencyCode”  hatası dönülür. Bu alan gönderilmiyorsa TRY olarak değerlendirilmelidir. \n Erişim belirteci kontrolü yapılır. Geçerli bir erişim belirteci yok ise HHS tarafından  ”TR.OHVPS.Connection.InvalidToken”  hatası dönülür. \n İstek başlığında yer alan X-Access-Token ile ilişkili rızada, izin verilen kartRef'ler için, kart hareket bilgileri sorgusunda yer alan kartRefe ait rıza ile aynı olup olmadığı kontrol edilir. Farklı olması durumunda  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n İlgili kartRef bulunamaz ise  ”TR.OHVPS.Resource.NotFound”  hatası dönülür. \n Rıza durumu kontrol edilir.\n \n B: Yetki Bekleniyor ya da Y: Yetkilendirildi ise  “TR.OHVPS.Resource.ConsentMismatch”  hatası dönülür. \n I: Rıza İptal ya da S: Yetki Sonlandırıldı ise  ”TR.OHVPS.Resource.ConsentRevoked”  hatası dönülür. \n RizaDurumu “K: Yetki Kullanıldı” ise kontrollere devam edilir. \n \n \n Kart Hareket Bilgilerinin Sorgulanması yapılırken HHS tarafından ÖHK’nın “09:  Ayrıntılı Kart İşlem Bilgisi” izin türüne sahipliği kontrol edilir. 09 izin türüne sahip değil ise  ”TR.OHVPS.Business.PermissionTypeNotSupported”  hatası dönülür. \n Kart tipi olarak; iptal statüsünde olan banka ve ön ödemeli kartlar için hareket sorgulaması yapılamayacaktır. Kart tipi kredi kartı olup iptal statüsünde olan ve borcu olmayan bir kart için de kart hareket sorgulaması yapılamayacaktır. Hareket sorgulaması yapılamayacak bir kart tipi için HHS'ler tarafından  \"TR.OHVPS.Business.InvalidCardStatus\"  hatası dönülmelidir. \n -Rıza içerisinde kanal görüntüleme yetkisi kapatılan kart için hareket bilgisi sorgulandığında  TR.OHVPS.Business.RestrictedChannelAccess  hata kodu dönülecektir. \n İptal statüsünde olan kart tipleri için geçmişe dönük hareket sorgulaması yapılamayacaktır. Örneğin; Kredi Kartı için -12 ile 18 arası olan dönem değeri iptal statüsünde olan kredi kartı için 0 ile 18 arasında yapılabilecektir. Tüm kart tipleri için belirtilen parametrede yer alan dönem değerinin uygun gönderilmediği durumda  ”TR.OHVPS.Business.InvalidPeriodValue”  hatası dönülür. \n Ekstre bilgisi bulunmayan sanal ve ek kredi kart bilgileri için ekstre dönemlerine özgü kart hareketleri sorgulandığında HHS'ler tarafından  TR.OHVPS.Business.NoStatementForCard  hatası dönülmelidir.\nKredi kartı hareket sorgulamasında ilgili dönemde kart işlemi bulunmaması halinde dahi ekstre oluşturulmalı ve işlem listesi boş olarak döndürülmelidir. Hata mesajı dönülmemelidir.\nÖrneğin: Nisan, Mayıs, Haziran ve Temmuz ayları için sırasıyla -4, -3, -2, -1 dönem değerleri atanmış olsun. Mayıs ayında kart üzerinde işlem bulunmaması durumunda dahi Mayıs ayına ait ekstre oluşturulur ve dönem değeri -3 olarak 
16iletilir; işlem listesi boş olarak yanıt verilir. \n Kartın yeni oluşması/aktif edilmesi gibi süreçlerler sonucunda ekstre bilgisi hiç oluşmamış dönem değerleri için kart hareketleri sorgulandığında HHS'ler tarafından  TR.OHVPS.Business.StatementNotCreated  hatası dönülmelidir. \n \n Yukarıdaki kontroller tamamlandıktan sonra HHS tarafından \"KartHareketleri\" nesnesi dönülür. \n \n HHS'ler kart tipi kredi kartı ise ve karta ait borç/taksit tutar bilgisi bulunuyorsa KartHareketleri nesnesi için başarılı yanıt dönmek zorundadır. \n Kart tipi Banka Kartı olanlarda dönem içi olarak sorgulama yapılan aya ait ilgili banka kartı ile yapılan kart hareketleri görüntülenecektir. (Banka kartı ile yapılan Para Çekme/Yatırma, banka kartı ile yapılan POS'tan Alışveriş vb.). Banka kartında dönem değerinin \"-1\" gönderilmesi durumunda bir önceki aya ait kart hareketleri görüntülenecektir. \n Kart hareketleri yanıtında hareket bilgileri işlem tarihinine göre sıralı olarak iletilmelidir. İşlem tarihi en güncel tarihten geriye dönük olacak şekilde listelenmelidir. \n Kart hareketlerinde ekstre türleri dışında yapılan bir işlem varsa hangi ekstre türüne dahil edilerek gösteriliyorsa gönderilmelidir.\n \n Örn: 100 JPY'lik bir harcama işlemi TRY biriminde çevirilip 23 TRY olarak TRY ekstre türünde gösteriliyorsa ilgili işlem için işlem tutarı 23 TRY, orijinal işlem tutarı ise 100 JPY olarak değerlendirilmelidir. \n \n \n \n Tablo 24: Kart Hareket Bilgileri Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Dönem Değeri \n donemDegeri \n N3 \n Z \n Kart hareketlerinin sorgulanacağı döneme ait değerdir.  Dönem içi : 0 Geçmiş Ay/Ekstre : -1 ile -12 arası Taksit : 1 ile 18 arası  Provizyon : 99  Kart tipine göre alabileceği dönem değerleri ise ;  Banka Kartı : 0 ve -1 Kredi Kartı : -12 ile 18 arası ve 99 (Sanal alt kart tipi hariç diğer tüm alt kart tiplerinde bu değerler geçerlidir.)  Alt kart tipi sanal kart tipinde ise alabileceği değerler 0 ve 99'dur. Ön Ödemeli Kart : 0 ve -1 \n İptal statüsünde olan kart tipleri için geçmişe dönük hareket sorgulaması yapılamayacaktır. Örneğin; Kredi Kartı için -12 ile 18 arası olan dönem değeri iptal statüsünde olan kredi kartı için 0 ile 18 arasında yapılabilecektir.  Tüm kart tipleri için belirtilen dönem değerinin uygun gönderilmediği durumda hata verilmelidir. \n \n \n Ekstre Turu \n ekstreTuru \n AN3 \n K \n Kart bilgileri yanıtında dönülen ekstre türleri değerlerini almaktadır. Para birimine uygun olarak kart detay bilgileri sorgulanmaktadır. Ekstre parametresi TRY,USD,EUR,GBP olarak gönderilebilir. Bu alan gönderilmiyorsa TRY değerlendirilmelidir. İlgili para birimine özel ekstre içindeki harcama değeri dönülecektir. \n Ekstre türleri haricinde uygun olmayan bir değer gönderildiğinde hata verilmelidir. \n \n \n Sayfa Başına İstenen Kayıt Sayısı \n syfKytSayi \n N3 \n İ \n Sayfa başına istenen kayıt sayısı. Bu alanda iletilen değer 100’den büyük olamaz. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayı kadar gruplandırarak gönderir. Bu veri gönderilmediğinde sayfadaki kayıt sayısı 100 olarak kullanılır. \n \n \n İstenen Sayfa Numarasi \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS işlemler listesini bu sayfadaki kayıtları gönderir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları gönderir. \n \n \n Borç Alacak Göstergesi \n brcAlc \n AN1 \n İ \n TR.OHVPS.DataCode.BrcAlc sıralı veri tipi değerlerinden birini alır. Sorgulanacak işlemlerin borç / alacak kriteri B: Karta borç yaratan işlem.A: Karta alacak yaratan işlem. N: Finansal olmayan işlem {“B”,”A”,”N”} \n Bu veri gönderildiği durumda HHS işlemler listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler: A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS kart hareketlerini  sıralama kriteri işlem tarihi  olacak şekilde ilgili yöne uygun olarak sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 25: “KartHareketleri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n 
16Kart Tiplerine İstinaden Detaylı Açıklama \n \n \n \n \n Kart Referans Numarası \n kartRef \n AN5..40 \n Z \n HHS tarafından her bir kart için atanan biricik değerdir (uuid). Bir kart tek bir kartRef'e karşılık gelmelidir, benzer şekilde bir kartRef tek bir karta karşılık gelmelidir. Aynı kart için alınan tüm rızalarda kart referans bilgisinin değişmemesi gerekmektedir. \n \n \n \n Dönem Değeri \n donemDegeri \n N3 \n Z \n Kart hareketlerinin sorgulanacağı döneme ait değerdir. \n \n \n \n Dönem Başlangıç Tarihi \n donemBaslangicTarihi \n ISODate \n Z \n Sorgulama yapılan ekstre dönemine göre ilgili döneme ait başlangıç tarih bilgisidir. Kart tipi kredi kartı olanlar için ilgili döneme ait başlangıç tarihi iletilmelidir. Kart tipi banka kartı ve ön ödemeli kart olanlar için sorgulama yapılan ayın başlangıç tarihi iletilmelidir. \n \n \n \n Dönem Bitiş Tarihi \n donemBitisTarihi \n ISODate \n Z \n Sorgulama yapılan ekstre dönemine göre ilgili döneme ait bitiş tarih bilgisidir. Kart tipi kredi kartı olanlar için ilgili döneme ait bitiş tarihi iletilmelidir. Kart tipi banka kartı ve ön ödemeli kart olanlar için sorgulama yapılan ayın bitiş tarihi iletilmelidir. \n \n \n \n Ekstre Türü \n ekstreTuru \n AN3 \n Z \n Ekstre türü TRY,USD,EUR,GBP olarak gönderilebilir. İstek paremetresinde iletilen değer ile aynı değer olmalıdır. \n \n \n \n Ekstre Borcu \n ekstreBorcu \n Kompleks:EkstreBorcu \n K \n Sorgulama yapılan geçmiş döneme için ekstre türüne uygun olarak ekstre borcu iletilmelidir. Müşterinin borcu olduğu durumda (-) değer gönderilmelidir.  Müşterinin alacağı olduğu durumda (iade/fazla ödeme vb(+) değer ile tutar bilgisi gönderilmelidir. \n Kart tipi kredi kartı olanlar için sadece geçmiş dönem değerine istinaden ilgili alan iletilmelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Borç tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Asgari Ödeme Tutarı \n asgariOdemeTutari \n Kompleks:AsgariOdemeTutari \n K \n İlgili geçmiş dönem için ekstre türüne uygun olarak ekstreye ait asgari ödeme tutarı iletilmelidir. Ekstre Borcu (-) ise; asgari ödeme tutarı da (-) değer olarak gönderilmelidir. Müşterinin alacağı olduğu durumda (iade/fazla ödeme vb.)  \"0\" (sıfır) değeri gönderilmelidir. \n Kart tipi kredi kartı olanlar için sadece geçmiş dönem değerine istinaden ilgili alan iletilmelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Ödeme tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Dönem Taksit Tutarı \n donemTaksitTutari \n Kompleks:DonemTaksitTutari \n K \n İstek parametresinde iletilen ilgili dönem değeri içerisindeki toplam taksit tutar bilgisi iletilmelidir. Müşterinin Dönem Taksit Tutar borcu olduğu durumda (-) değer gönderilmelidir. Dönem Taksit Tutar iadesi veya benzeri nedenlerle oluşan müşterinin alacaklı olduğu durumda tutar (+) değer gönderilmelidir. \n Kart tipi kredi kartı olanlar için taksit bilgisi varsa ilgili alan iletilmelidir. \n \n \n > Tutar \n tutar \n AN1..25 \n Z \n Dönem taksit tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n > Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n Hesap Kesim Tarihi \n hesapKesimTarihi \n ISODate \n K \n Karta ait sorgulanan döneme ait hesap kesim tarihi iletilmelidir. Tarih formatında iletilmelidir. Örn : 2024-11-23 \n Kart tipi kredi kartı olanlar için sadece geçmiş dönem değerine istinaden ilgili alan iletilmelidir. \n \n \n Son Ödeme Tarihi \n sonOdemeTarihi \n ISODate \n K \n Karta ait sorgulanan dönem için son ödeme tarih bilgisi dönülmelidir. Örn : 2024-12-02 \n Kart tipi kredi kartı olanlar için sadece geçmiş dönem değerine istinaden ilgili alan iletilmelidir. \n \n \n Hareket Bilgileri \n hareketBilgileri \n Kompleks Alan: HareketBilgileri[array] \n K \n Dizi halinde liste olacaktır. \n \n \n \n > İşlem Numarası \n islemNo \n AN3..50 \n Z \n Kart hareketinin oluşturulması sırasında atanan ve borç (veya alacak) hareketini tekilleştiren HHS bazında tekil tanımlayıcıdır. Bu değer tek başına tekil olabileceği gibi b
16irden fazla değerin bir araya getirilmesiyle de tekilliği sağlanmış olabilir. Bu değerin en azından kart referans numarası bazında tekil olması beklenir. Genellikle kullanılan örnekleri; Instance_Id, Transaction_Id, Transaction_Num, Transaction_TimeStamp \n \n \n \n > İşlem Tutarı \n islemTutari \n Kompleks:IslemTutari \n Z \n Yapılan işleme ait tutar bilgisi. Taksitli bir işlem ise ilgili dönemdeki taksit tutarı iletilecektir. ÖHK, HHS'de ilgili dönem sorguladığında hangi tutarı görüntülüyorsa ilgili tutar dönülecektir. İşleme ait sadece puan bilgisiyle kazanım, kullanım, iade veya iptal varsa ve tutar bilgisi yoksa ilgili tutar değeri sıfır gönderilmelidir. Puana dair değerler ise PuanBilgileri alanı içerisinde gönderilmelidir. \n \n \n \n >> Tutar \n tutar \n AN1..24 \n Z \n İşlem tutarı için regex patterni şu şekildedir: ' ^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n >> Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi. Ekstre türü ile aynı olması gerekmektedir. \n \n \n \n > Orijinal İşlem Tutarı \n orijinalIslemTutari \n Kompleks:OrijinalIslemTutari \n K \n Ekstre türü dışında yapılan işleme ait tutar bilgisi. Örneğin; ekstre türü TRY gönderildiği durumda işlem 100 JPY ise işlem tutarı alanında 100 değeri iletilmelidir. \n \n \n \n >> Tutar \n tutar \n AN1..24 \n Z \n İşlem tutarı için regex patterni şu şekildedir: ' ^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n >> Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi. Örneğin; 100 JPY ise işlem tutar para birimi alanında JPY değeri iletilmelidir. \n \n \n \n > İşlem Tarihi \n islemTarihi \n ISODateTime \n Z \n İşlemin gerçekleştiği zaman bilgisi. Taksitli işlemlerde içinde bulunulan dönem özelinde ilgili taksitin yansıyacağı tarih değeri dönülmelidir. \n \n \n \n > Borç Alacak Göstergesi \n borcAlacak \n AN1 \n Z \n TR.OHVPS.DataCode.BrcAlc sıralı veri tipi değerlerinden birini alır. Sorgulanacak işlemlerin borç / alacak kriteri B: Karta borç yaratan işlem.A: Karta alacak yaratan işlem. N: Finansal olmayan işlem {“B”,”A”,”N”} \n \n \n \n > İşlem Açıklaması \n islemAciklamasi \n AN1..200 \n Z \n Alışveriş işlemi olması durumunda sadece işyeri adını içeren açıklama, diğer işlemler için mevcut işlem açıklaması iletilir. HHS'ler tüm kart hareketlerini YÖS'ler ile paylaşmakla yükümlü olup, hassas veri içeren(örn: faiz, komisyon bilgisi içeren vb.) işlem hareketleri de bu kapsamda değerlendirilerek işlem açıklamasının maskeli olarak iletilmesi sağlanır. Kelimelerin ilk 3 hanesi maskeli olacak şekilde, ancak sakıncalı bulunan kelimeler varsa; (örn: faiz, komiyon vb.) kelimelerin tamamı maskeli olacak şekilde gösterilebilir. \n \n \n \n > İşlem Puan Bilgileri \n islemPuanBilgileri \n Kompleks: IslemPuanBilgileri[Array] \n K \n İlgili işlem sonrası kazanılan veya kullanılan bir puan değeri varsa iletilmesi gerekmektedir. İlgili puan bilgi veya bilgileri dizi içerisinde iletilmelidir. \n İlgili alanda koşula uygun olarak değer dönülecekse; kart tipi kredi, banka ve ön ödemeli kartı olanlar için dönülmesi zorunludur. \n \n \n >> İşlem Puanı \n islemPuani \n AN1..24 \n K \n İşleme dair kazanılan veya kullanılan puan değeri iletilmelidir. Örn: 100 Plus kazanılmış bir işlem için 100 değeri iletilmelidir. \n \n \n \n >> İşlem Puan Birimi \n islemPuanBirimi \n AN1..50 \n K \n İşleme dair kazanılan veya kullanılan puan birimi iletilmelidir. Örn: 100 Plus kazanılmış bir işlem için Plus değeri iletilmelidir. \n \n \n \n >> İşlem Puan Durumu \n islemPuanDurumu \n AN2 \n K \n İlgili işlem sonucunda puan bilgisinin bir kazanım, kullanım, iade ve iptal durumlarına yönelik değer iletilmelidir. TR.OHVPS.DataCode.IslemPuanDurumu değerlerinden birini alır. 01: Puan Kazanımı 02: Puan Kullanımı 03: Puan İade 04: Puan İptal \n \n \n \n > Toplam Taksit Tutarı \n toplamTaksitTutari \n Kompleks:ToplamTaksitTutari \n K \n İlgili işlem taksitli bir işlem ise o işleme ait toplam taksit tutarı iletilmelidir. İlgili işlem tek çekim bir işlem ise o işlemde ilgili alan iletilmemelidir. \n Kart tipi kredi kartı olanlar için ilgili alan dönülmesi zorunludur. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n >> Tutar \n tutar \n AN1..25 \n Z \n Taksit Tutar Bilgisi. Taksit tutarı için regex patterni şu şekildedir: ' ^[\\-\\+]?\\d{1,18}$|^[\\-\\+]?\\d{1,18}\\.\\d{1,5}$ ' \n \n \n \n >> Para Birimi \n paraBirimi \n AN3 \n Z \n Para Birimi \n \n \n \n > Toplam Taksit Sayısı \n toplamTaksitSayisi \n N2 \n K \n İlgili işlem taksitli bir işlem ise o işleme ait toplam taksit sayısı iletilmelidir. İlgili işlem tek çekim bir işlem ise o işlemde ilgili alan iletilmemelidir. \n Kart tipi kredi kartı olanlar için ilgili alan dönülmesi zorunludur. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n > İlgili Taksit Dönemi \n taksitDonemi \n N2 \n K \n Taksitli işlem olması durumunda işleme ait ilg
16ili taksit dönem bilgisi. Örneğin: 3 taksitli bir işlemde 2. taksit yansımışsa 2 olarak gönderilmelidir. \n Kart tipi kredi kartı olanlar için ilgili alan dönülmesi zorunludur. Kart tipi banka ve ön ödemeli kart olan kartlar için ilgili alan dönülmemelidir. \n \n \n > Satıcı Kategori Kodu \n saticiKategoriKodu \n AN4 \n K \n Satıcı Kategori Kodu(MCC) varsa iletilmesi zorunludur. Alışveriş işlemlerinde gönderimi zorunludur. \n İlgili alanda koşula uygun olarak değer dönülecekse; kart tipi kredi ve banka kartı olanlar için dönülmesi zorunludur. \n \n \n \n"},{title:"HHS, YÖS ve Temsilcilik API",frontmatter:{},regularPath:"/v2.0.1/contents/hhs-yos-api.html",relativePath:"v2.0.1/contents/hhs-yos-api.md",key:"v-1c9ff506",path:"/v2.0.1/contents/hhs-yos-api.html",headers:[{level:2,title:"HHS API",slug:"hhs-api"},{level:2,title:"YÖS API",slug:"yos-api"},{level:2,title:"TEMSİLCİLİK API",slug:"temsilcilik-api"}],content:" HHS, YÖS ve Temsilcilik API \n HHS API, HHS’lerin detay bilgilerini sunan servistir. Bu servis ile aşağıdaki istek/yanıt yapıları ile ihtiyaç duyulabilecek ilgili bilgiler temin edilebilir. HHS API için “hhs_read” scope bilgisi kullanılır. \n Production ortamında HHS / YOS API içerisinde sisteme dahil olmuş, sertifikasyonu başarı ile tamamlamış paydaşlar listelenecektir. HHS tarafından desteklenen API sürümleri listelenecektir. \n YÖS’ler HHS API’sini sorgulayabilir ancak YÖS API’sini sorgulayamazlar. \nBenzer şekilde HHS’ler YÖS API’sini sorgulayabilir, HHS API’sini sorgulayamazlar. \n HHS API \n GET /hhs/{hhsKod} \n İşlem Sorgu Örneği =  /hhs  ⇨  bu sorgu yöntemi ile tüm HHS’lerin dizi şeklinde verileri listelenir. \nİşlem Sorgu Örneği =  /hhs/2001   ⇨ bu sorgu yöntemi ile gönderilmiş olan hhsKodu’na ait bilgiler listelenir. Ya da “404 Not Found” hatası alır. \nHHS ve YÖS API Tablo 20’deki istek parametrelerine göre sorgulanabilir. \nİşlem Sorgu Örneği (Belirli Bir Hesap) =  /hhs?srlmKrtr=kod&srlmYon=A \n Tablo 20: HHS ve YÖS API Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Sıralama Kriteri \n srlmKrtr \n AN3..50 \n İ \n Cevapta dönülecek işlemlerin sıralama kriterini belirtir. Alabileceği değerler: {“kod”, “unv”} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu kritere göre sıralayarak gönderir. Gönderilmediğinde, sıralama kriteri “unv” olarak belirlenmelidir. \n \n \n Sıralama Yönü \n srlmYon \n AN1 \n İ \n Cevapta dönülecek işlemlerin sıralama yönünü belirtir. Alabileceği değerler: A: Azalan değerle sıralama Y: Artan değerle sıralama {“A”,”Y”} \n Bu veri gönderildiği durumda, HHS işlemler listesini bu yöne göre sıralayarak gönderir. Gönderilmediğinde, HHS sıralama yönünü Azalan olarak belirler. \n \n \n \n Tablo 21: HHS Bilgileri Sorgulama Yanıtı “Hhs” nesnesi \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n hhs kodu \n kod \n AN4 \n Z \n HHS nin kod bilgisi \n \n \n hhs unvanı \n unv \n AN3..140 \n Z \n HHS nin unvan bilgisi \n \n \n hhs markası \n marka \n AN1..140 \n Z \n ÖHK'nın kolaylıkla algılayabileceği kısa unvan bilgisi. HHS tarafından belirlenecektir. \n \n \n Açık anahtar \n acikAnahtar \n AN1..1024 \n Z \n HHS’nin mesaj imzalama için paylaştığı açık anahtar \n \n \n HHS Api Bilgileri \n apiBilgileri \n Kompleks: HhsApiBilgi[Array][0..N] \n Z \n Desteklenen Api ve sürüm bilgileri dönülecektir. \n \n \n > api \n api \n AN1..20 \n Z \n Api İsmi Örnek :obh, hbh,gkd \n \n \n > surum \n surum \n AN1..10 \n Z \n Api Sürüm Kodu Örnek: s1.0, s1.0, s2.0 \n \n \n HHS Hizmet Bilgileri \n hizmetBilgileri \n Kompleks: HhsHizmetBilgi[Array][0..N] \n Z \n Desteklenen hizmet ve sürüm bilgileri dönülecektir. \n \n \n > hizmetTipi \n hizmetTipi \n AN1..20 \n Z \n Hizmet Tipi bilgileri.TR.OHVPS.DataCode.HizmetTipi sıralı veri türü değerlerinden birini alır. \n \n \n > surum \n surum \n AN1..10 \n Z \n Api Sürüm Kodu Örnek: s1.0, s1.1, s2.0 \n \n \n Logo Bilgileri \n logoBilgileri \n Kompleks: LogoBilgisi [Array][1..N] \n Z \n HHS'ye ait logo bilgileri. \n \n \n > logoTur \n logoTur \n AN3..50 \n Z \n Logonun türünü belirler. TR.OHVPS.DataCode.LogoTur sıralı veri türü değerlerlerinden birini alır. \n \n \n > logoAdr \n logoAdr \n AN1..255 \n Z \n HHS tarafında tutulan ve YÖS'lerle paylaşılacak olan url adres bilgisidir.  Örnek: https://via.placeholder.com/150?text=0001 \n \n \n > logoArkaPlan \n logoArkaPlan \n AN1 \n Z \n TR.OHVPS.DataCode.LogoArkaPlan sıralı veri türü değerlerlerinden birini alır. \n \n \n > logoFormat \n logoFormat \n AN3 \n Z \n TR.OHVPS.DataCode.LogoFormat sıralı veri türü değerlerlerinden birini alır. \n \n \n Durum \n durum \n AN1 \n Z \n HHS'nin durum bilgisidir.  TR.OHVPS.DataCode.HHSDurumu sıralı veri tipinde alabileceği değerler belirtilmiştir. \n \n \n \n HHS API'de; Açık, Yaygınlaştırma, Geçici Hizmet Veremiyor, Kapalı durumlarındaki HHS'ler listelenecektir.  \nSertifikasyon onayı alan HHS'ler, üretim ortamına geçişte \"Yaygınlaştırma\" durumuna sahip olabilir.  HHS'nin, hangi YÖS'ler ile \"Yaygınlaştırma\" kontrollerini y
16apacağı, HHS yönetiminde olacaktır. Böylece Üretim Ortamında HHS’nin kendisi tarafından tanımlanmış kısıtlı ÖHK’ya hizmet vermesi ve servislerini test etmesi sağlanabilir olacaktır. HHS'ler kendi kurum kontrollerini yapana kadar, \"Yaygınlaştırma\" durumunda kalabilirler. HHS'nin BKM'ye yapacağı talep ile, HHS \"Yaygınlaştırma\" durumundan \"Açık\" durumuna geçebilecektir. \n Aşağıdaki durumlarda HHS'nin statüsü Geçici Kapalı olarak güncellenebilecektir: \n \n HHS'nin talebi ile uzun süreli (minimum 1 saati aşan) yaşanan teknik sorunlarda ve BKM’ye en az 3 iş günü öncesinde bildirilen planlı kesintilerde G statüsüne alınabilecektir. \n İlgili resmi kurumlardan gelen talep üzerine HHS G statüsüne alınabilir. \n \n YÖS'ler hem A hem G statüsünde olan HHS'leri listeleyebilir. Ancak YÖS uygulamasında G statüsünde olan bir HHS müşteri tarafından seçilirse müşteriye gerekli hata mesajının verilmesi ve ilgili HHS'ye istek atılmaması sağlanmalıdır. \n Hem YOS hem de HHS API için geçerli olacak; logo gönderiminde dikkat edilmesi gerekenler şu şekilde tariflenmiştir: \n \n Logoların ham dosya yerine kurumun yayınlayacağı bir URL üzerinden sunulması gerekmektedir. (Örn: logoURL = https://kurumadi.com.tr/logo.png) Logo BKM tarafında host edilmeyecektir. \n Logo url’in public erişilebilir url olması gereklidir. \n Logo, yatayda veya dikeyde taşma paysız tam oturacak, sınır boyutlarını geçmeyecek ve ortalanmış yerleşime sahip olmalıdır. \n YÖS uygulamasında gösterim esnasında logoların hızlı yüklenmesi ve düşük veri tüketmesi açısından; logo boyutu 250 KB’ın altında olmalıdır. \n HHS ve YÖS’lerin tüm logo türlerini (8 farklı tipte logoyu) zorunlu olarak dönmesi beklenmektedir. \n Circle logo kullanılması gerektiğinde ICON_LOGO logo türü kullanılmalıdır. \n Logolarını güncellemek isteyen Kurumlar bu değişikliği, pys üzerinden (https://pys-preprod.bkm.com.tr, https://pys.bkm.com.tr ) güncelleyerek onaya iletmeleri gereklidir. BKM de katılımcılara HHS/YÖS API aracılığı ile güncel logonun çekilmesi gerektiğine dair bilgilendirme yapar. \n Logoları anlık çeken katılımcıların, herhangi bir teknik nedenden dolayı güncel logoyu alamadığı durum olabilir. Bu durumda sistemlerine kaydetmiş olduğu kuruma ait ikon logoyu göstermesi gereklidir. \n HHS ve YÖS’ler API aracılığı ile almış oldukları logoların formatı üzerinde değişiklik (kare, yuvarlak hale getirip resize etmek gibi) yapabilirler. Ancak logonun görsel ve yazılarını etkileyecek bir  değişiklik yapmamalıdırlar. \n YÖS/HHS mobil uygulamasındaki dark mode ve light mode kullanımlarında, hangi logonun kullanılacağına uygulama sahibi karar verecektir. \n YÖS API \n YÖS API, YÖS statüsundeki kurumların detay bilgilerini sunan servistir. Bu servis ile aşağıdaki istek/yanıt yapıları ile ihtiyaç duyulabilecek ilgili bilgiler temin edilebilir. YÖS API için “yos_read” scope bilgisi kullanılır. \n YÖS API yanıtında, listelenen yönlendirme ve bildirim adresleri bulunmaktadır. HHS, işlem anında iletilen yonAdr ya da bldrAdr alanlarında gönderilen adreslere yetKod değerini iletmelidir. YÖS API içerisinde yer alan adresleri, rıza isteğinde gönderilen adreslerin doğruluğunu kontrol etme amacıyla kullanılmalıdır. Bu nedenle YÖS API içerisinde listelenen adreslerin hostname seviyesinde yer alması yeterlidir. \n YÖS API içerisinde yer alan YÖS rol bilgileri ve aktiflik/pasiflik durumları birbiriyle ilişkili değildir. \n YÖS'ün sahip olduğu öbhs,hbhs rolleri için herhangi bir fraud ya da teknik sebeplerden ötürü geçici süreyle geri alınabilir. \n YÖS'lerin hizmet verememesi durumunda rollerinin geri alınması yapılmayacaktır. YÖS rolleri sadece ilgili resmi kurumlardan gelen talep üzerine alınabilecektir. \n YÖS aktifliğini korurken problem çözülene kadar geçici olarak alınan roller(öbhs,hbhs) tekrardan aktif hale getirilir. \n GET /yos/{yosKod} \n İşlem Sorgu Örneği =  /yos  ⇨  bu sorgu yöntemi ile tüm YÖS'lerin dizi şeklinde verileri listelenir. \n İşlem Sorgu Örneği =  /yos/2501  ⇨  bu sorgu yöntemi ile gönderilmiş olan yosKodu’na ait bilgiler listelenir ya da “404 Not Found” hatası alır.\nYÖS API Tablo 20’deki istek parametrelerine göre sorgulanabilir.\nİşlem Sorgu Örneği (Belirli Bir Hesap)=  /yos?srlmKrtr=kod&srlmYon=A \n Tablo 22: YOS Bilgileri Sorgulama Yanıtı “Yos” nesnesi \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Yös kodu \n kod \n AN4 \n Z \n YÖS'ün kod bilgisi \n \n \n Yös unvanı \n unv \n AN3..140 \n Z \n YÖS unvan bilgisi \n \n \n Yös markası \n marka \n AN1..140 \n Z \n ÖHK'nın kolaylıkla algılayabileceği kısa unvan bilgisi. YÖS tarafından belirlenecektir. \n \n \n YÖS rolleri \n roller \n Array[AN4] \n Z \n YÖS’un rollerini belirten değer. Örnek: [ \"obhs\", \"hbhs\" ]  - obhs - Ödeme Bilgisi Hizmet Sağlayıcı Rolü  - hbhs - Hesap Bilgisi Hizmet Sağlayıcı Rolü \n \n \n Adresler \n adresler \n Kompleks:Adres[Array] [1..N] \n Z \n --- \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur sıralı veri türü değerlerlerinden birini alır. Adres detaylarının hangi GKD türüne ait olduğunu belirtir. \n \n \n > Adres Detayları \n adresDetaylari \n adresDetaylari\tKompleks: AdresDetayi[Array] [1..N] \n Z \n \n \n \n >> Temel Adres \n tmlAdr \n AN1..1024 \n Z \n yetYntm değeri “Y” olarak iletildiğinde Yönlendirmeli GKD sürecinde HHS’nin YOS’e authorizasyon kodunu hangi url e göndereceği bilgisini tutar. yetYntm değeri “A” olarak iletildiğinde Ayrık GKD sürecinde HHS’nin YOS’e authorizasyon kodunu hangi url e göndereceği bilgisini tutar. Riza isteklerinde bu değer ile uyumluluğu kontrol edilmelidir. Örnek: https://example.com https://example2.com/path deepLink://example/test deepLink://example2/test \n \n \n >> Açıklama \n aciklama \n AN1..1024 \n İ \n YÖS’ün gönderdiği adrese yönelik vermek istediği açıklama Örnek: WEB bireysel , WEB kurumsal  , APP \n \n \n Açık anahtar \n acikAnahtar \n AN1..1024 \n Z \n YÖS’ün mesaj imzalama için payla
16ştığı açık anahtar \n \n \n YÖS Api Bilgileri \n apiBilgileri \n Kompleks: YosApiBilgi[Array][0..N] \n Z \n Desteklenen Api ve sürüm bilgileri dönülecektir. \n \n \n > api \n api \n AN1..20 \n Z \n Api İsmi Örnek :ods \n \n \n > surum \n surum \n AN1..10 \n Z \n Api Sürüm Kodu Örnek: s1.0, s2.0 s1.0 \n \n \n Logo Bilgileri \n logoBilgileri \n Kompleks: LogoBilgisi [Array][1..N] \n Z \n YOS’e ait logo bilgileri. \n \n \n > logoTur \n logoTur \n AN3..50 \n Z \n Logonun türünü belirler. TR.OHVPS.DataCode.LogoTur sıralı veri türü değerlerlerinden birini alır. \n \n \n > logoAdr \n logoAdr \n AN1..255 \n Z \n YÖS tarafında tutulan ve HHS’lerle paylaşılacak olan url adres bilgisidir.  Örnek: https://via.placeholder.com/150?text=0001 \n \n \n > logoArkaPlan \n logoArkaPlan \n AN1 \n Z \n TR.OHVPS.DataCode.LogoArkaPlan sıralı veri türü değerlerlerinden birini alır. \n \n \n > logoFormat \n logoFormat \n AN3 \n Z \n TR.OHVPS.DataCode.LogoFormat sıralı veri türü değerlerlerinden birini alır. \n \n \n Durum \n durum \n AN1 \n Z \n YÖS'ün durum bilgisidir.  TR.OHVPS.DataCode.YOSDurumu sıralı veri tipinde alabileceği değerler belirtilmiştir. \n TEMSİLCİLİK API \n Temsilcilik API, ÖHVPS kapsamında hizmet sunan temsilcilere ilişkin bilgilerin HHS’ler tarafından sorgulanabilmesini sağlamak amacıyla sunulmaktadır. Bu API aracılığıyla, bir temsilcinin hangi YÖS (ler) aracılığı ile hizmet sunduğu ve hangi roller kapsamında faaliyet gösterdiği bilgilerine erişilebilecektir.\nTemsilcilik API için HHS'ler, mevcuttaki yos_read scope bilgisini kullanarak erişebilecektir. \n GET /temsilcilik/{temsilciKod} \n İşlem Sorgu Örneği =  /temsilcilik  ⇨  bu sorgu yöntemi ile tüm temsilcilerin dizi şeklinde verileri listelenir. \n İşlem Sorgu Örneği =  /temsilcilik/25015  ⇨  bu sorgu yöntemi ile gönderilmiş olan temsilciKod’a ait bilgiler listelenir. \n Tablo 23: Temsilcilik Bilgileri Sorgulama Yanıtı “Temsilcilik” nesnesi \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Temsilci kodu \n temsilciKod \n AN5 \n Z \n Temsilcinin kod bilgisi. \n \n \n Temsilci unvanı \n unvan \n AN6..140 \n Z \n Temsilcinin unvan bilgisi. \n \n \n Temsilci yös listesi \n calistigiYosListesi \n [Array][0..N] \n Z \n Temsilcinin çalıştığı Yös'lere ait özet bilgi. \n \n \n > Yös kodu \n yosKod \n AN4 \n Z \n YÖS'ün kod bilgisi \n \n \n > Temsilci durum kodu \n durum \n AN1 \n Z \n Örnek: [ \"A\", \"G\", \"K\" ]  - A - Açık  - G - Geçici Hizmet Veremiyor  - K - Kapalı \n \n \n > Temsilcinin hizmet sunduğu roller \n temsilcilikRoller \n [Array][1..N] \n Z \n Temsilcinin rollerini belirten değer. Örnek: [ \"obhs\", \"hbhs\" ]  - obhs - Ödeme Bilgisi Hizmet Sağlayıcı Rolü  - hbhs - Hesap Bilgisi Hizmet Sağlayıcı Rolü \n \n \n \n"},{title:"2.Kapsam ve Dayanak",frontmatter:{},regularPath:"/v2.0.1/contents/kapsam-ve-dayanak.html",relativePath:"v2.0.1/contents/kapsam-ve-dayanak.md",key:"v-a6caf7c6",path:"/v2.0.1/contents/kapsam-ve-dayanak.html",content:" 2.Kapsam ve Dayanak \n 12 Kasım 2019’da güncellenen “ 6493 sayılı Ödeme ve Menkul Kıymet Mutabakat Sistemleri, Ödeme Hizmetleri ve Elektronik Para Kuruluşları Hakkında Kanun ”un (Kanun) 12’nci maddesine yeni eklenen ve  Ödeme Hizmetleri Direktifi 2 'de (Payment Services Directive 2, PSD2) bulunan iki yeni ödeme hizmeti aşağıdaki gibi tanımlanmıştır (Şekil-1: Ödeme Hizmetleri Veri Paylaşım Servisleri): \n \n Ödeme Emri Başlatma Hizmeti : ÖHK’nın isteği üzerine başka bir ödeme hizmeti sağlayıcısında bulunan  ödeme hesabıyla  ilgili sunulan ödeme emri başlatma hizmeti [Madde 12, birinci fıkra, (f) bendi] \n Hesap Bilgisi Hizmeti : ÖHK’nın onayının alınması koşuluyla, ÖHK’nın ödeme hizmeti sağlayıcıları nezdinde bulunan bir veya daha fazla  ödeme hesabına  ilişkin konsolide edilmiş bilgilerin çevrim içi platformlarda sunulması hizmeti [Madde 12, birinci fıkra, (g) bendi] \n \n   \n Şekil 1: Ödeme Hizmetleri Veri Paylaşım Servisleri (ÖHVPS)- tanıtım \n Kanunun 14/A maddesinin ikinci fıkrasına göre , Kanunun 12’nci maddesinin birinci fıkrasının (f) veya (g) bentlerinde yer alan ödeme hizmetleri ile ilgili işlemlerin yürütülmesine ilişkin usul ve esaslar ile taraflarca uyulması gereken teknik ve operasyonel gereklilikler ikincil düzenlemeler uyarınca Türkiye Cumhuriyet Merkez Bankası (TCMB) tarafından belirlenir. Kanunun 12’nci maddesinin birinci fıkrasının (f) veya (g) bentlerinde yer alan ödeme hizmetlerinde kullanılan veri paylaşım servisleri  ödeme hizmetleri veri paylaşım servisleri (ÖHVPS)  olarak adlandırılmaktadır. \n Ödeme Hizmetleri ve Elektronik Para İhracı ile Ödeme Hizmeti Sağlayıcıları Hakkında Yönetmelik’in (Yönetmelik) 59’uncu maddesinin birinci fıkrası uyarınca hazırlanan bu belgede söz konusu ödeme hizmetlerini sunacak ödeme hizmeti sağlayıcısının, ödeme hesabının bulunduğu ödeme hizmeti sağlayıcısının, varsa ilgili diğer tarafların ve bu hizmetlerin sunulması için taraflar arasında kurulacak bağlantının teknik ve operasyonel gereklilikleri açıklanmaktadır. \n Düzenlemeler kapsamında yetkilendirilen üçüncü taraf hizmet sağlayıcısı  (Yetkili Ödeme Hizmeti Sağlayıcısı, YÖS) , ödeme hizmeti kullanıcılarının  Hesap Hizmeti Sağlayıcıları (HHS)  nezdindeki ödeme hesaplarına ulaşarak ödeme emri başlatma ve hesap bilgisi sağlama hizmetlerinden (ödeme hizmetleri veri paylaşım servislerinden) faydalanmasına aracılık eder. Ödeme hizmetleri veri paylaşım servisleri kapsamında iki tip YÖS bulunmaktadır:  1) Hesap Bilgisi Hizmeti Sağlayıcısı (HBHS) ve 2) Ödeme Emri Başlatma Hizmeti Sağlayıcısı (ÖBHS). \n Hesap Bilgisi Hizmeti Sağlayıcısı (HBHS) ÖHK’nın farklı Hesap Hizmeti Sağlayıcıları (HHS) nezdindeki hesaplarının bilgilerini derleyerek çevrim içi platformlarda  toplu şekilde  sunar. Ödeme Emri Başlatma Hizmeti Sağlayıcısı (ÖBHS) ise talebi üzerine ÖHK’nın HHS’de bulunan ödeme hesabından ödeme işlemi başlatır. \n ÖHVPS’nin üst düzey gösterimi Şekil-2’de verilmiştir. \n   \n Şekil 2: Ödeme Hizmetleri Veri Paylaşım Servisleri (ÖHVPS) -üst düzey gösterim \n Ödeme Hizmetleri Veri Paylaşım Servislerinin HHS’ler tarafından  GEÇİT  vasıtasıyla sunulduğu uygulama mimarisi ise Şekil-3’te sunulmuştur. \n  \n Şekil 3: ÖHVPS'nin GEÇİT vasıtasıyla sunumu \n"},{title:"7.\tİleri Tarihli Ödeme Emri Başlatma Hizmeti",frontmatter:{},regularPath:"/v2.0.1/contents/ileri-tarihli-odeme-emri-hizmeti.html",relativePath:"v2.0.1/contents/ileri-tarihli-odeme-emri-hizmeti.md",key:"v-dbcd7a7e",path:"/v2.0.1/contents/ileri-tarihli-odeme-emri-hizmeti.html",headers:[{level:2,title:"İleri Tarihli Ödeme Emri Başlatma Hizmeti için Erişim Adresleri (Endpoints)",slug:"ileri-tarihli-odeme-emri-baslatma-hizmeti-icin-erisim-adresleri-endpoints"},{level:2,title:"7.1.\tADIM 0 - İleri Tarihli Ödeme Emri Rızası Başlatma Isteği",slug:"_7-1-adim-0-ileri-tarihli-odeme-emri-rızası-baslatma-istegi"},{level:2,title:"7.2.\tADIM 1 - İleri Tarihli Ödeme Emri Rızasının Hazırlanması",slug:"_7-2-adim-1-ileri-tarihli-odeme-emri-rızasının-hazırlanması"},{level:2,title:"7.3.\tADIM 2- İleri Tarihli Ödeme Emri Rızasının Yetkilendirilmesi",slug:"_7-3-adim-2-ileri-tarihli-odeme-emri-rızasının-yetkilendirilmesi"},{level:2,title:"7.4.\tADIM 2.1 – İleri Tarihli Ödeme Emri Rızasının Sorgulanması (isteğe bağlı)",slug:"_7-4-adim-2-1-ileri-tarihli-odeme-emri-rızasının-sorgulanması-istege-baglı"},{level:2,title:"7.5.\tADIM 3- İleri Tarihli Ödeme Emrinin Oluşturulması",slug:"_7-5-adim-3-ileri-tarihli-odeme-emrinin-olusturulması"},{level:2,title:"7.6.\tADIM 3.1- İleri Tarihli Ödeme Emri Sorgusu (İsteğe bağlı)",slug:"_7-6-adim-3-1-ileri-tarihli-odeme-emri-sorgusu-istege-baglı"},{level:2,title:"7.7.\tADIM 4- İleri Tarihli Ödeme Emri Rıza İptali",slug:"_7-7-adim-4-ileri-tarihli-odeme-emri-rıza-iptali"}],content:" 7.\tİleri Tarihli Ödeme Emri Başlatma Hizmeti \n Ödeme hizmeti kullanıcısının ileri bir tarihte gerçekleşmesini istediği ödeme emirlerinde bu hizmeti kullanabilir. Ödemenin Havale / PÖS / FAST ödeme sistemlerinden hangisi ile gerçekleşeceğine, ödeme günü geldiğinde HHS karar verir. \n İleri tarihli ödeme hizmetini online bankacılık sistemlerinde sunan HHS'lerin, ÖHVPS üzerinden bu hizmetleri sunması zorunludur. Mevcutta online kanallarından bu hizmeti sundukları müşteri segmentine (bireysel,kurumsal vb.), ÖHVPS üzerinden hizmet sunmaya devam etmeleri gerekmektedir. YÖS, bireysel müşteri özelinde ileri tarihli ödeme hizmeti vermeyen HHS'ye ileri tarihli bir ödeme emri rızası isteği yapması durumunda HHS tarafından  TR.OHVPS.Business.IndividualCustomerNotSupported\"  hatası , kurumsal müşteri özelinde ileri tarihli ödeme emri rızası isteği yapıldığında HHS tarafından  TR.OHVPS.Business.CorporateCustomerNotSupported  hatası verilmelidir. \n HHS'ler ileri tarihli ödeme emri hizmetini sunuş bilgilerini HHS API aracılığı ile yayınlayacaklardır. YÖS, ileri tarihli ödeme hizmeti başlatabileceği HHS'lerin listesini HHS API'de yer alan \"hizmetTipi\":\"02\" parametresi ile alabilir. YÖS, ileri tarihli ödeme hizmeti sunmayan HHS'ye ileri tarihli bir ödeme emri rızası isteği yapması durumunda HHS tarafından  TR.OHVPS.Business.ScheduledPaymentNotSupported  hatası 
16iletilmelidir. \n İleri tarihli ödeme emri hizmetinde TRY dışındaki yabancı para birimleri için HHS tarafından destek verilmemesi durumunda  TR.OHVPS.Business.InvalidCurrencyCode  hataası verilmelidir. \n İleri tarihli ödeme emri güncelleme hizmeti YÖS üzerinden yapılamayacaktır. ÖHK aktif olan düzenli ödeme talimat rızasını iptal ederek, yeniden oluşturabilecektir. \n HHS üzerinden ilgili güncelleme hizmeti sağlanabilir. İleri tarihli talimat içerisinde yapılan güncelleme sonucunda olay bildirim ile YÖS'e bildirim sağlanacaktır. HHS üzerinden güncelleme yapılırken talimat tarihine dair ileri bir tarihe güncelleme adımı olmamalıdır. Sadece ilk oluşturulan talimat tarihinden öncesi olacak şekilde güncelleme yapılmasına izin verilmelidir. \n İleri Tarili Ödeme Emri Başlatma Hizmeti 5 temel akışdan oluşur: \n \n İleri Tarihli Ödeme Emri Rıza Başlatma İsteğinin tetiklenmesi:  ÖHK ÖBHS mobil uygulama ya da websitesinden ileri tarihli ödeme emrini başlatır. \n İleri Tarihli Ödeme Emri Rıza Hazırlanması:  ÖBHS, “İleri Tarihli Ödeme Emri Başlatma” işlemi için izin oluşturulması isteğini HHS’ye iletir. \n İleri Tarihli Ödeme Emri Rızasının Yetkilendirilmesi:  HHS, gerekli gördüğü durumlarda ÖHK’yı GKD ile doğrular ve ileri tarihli ödeme emri rızasına erişim için erişim belirteci tanımlanmasını temin eder. \n İleri Tarihli Ödeme Emrinin Başlatılması:  ÖBHS, “ileri tarihli ödeme emri”ni HHS’ye iletir. \n İleri Tarihli Ödeme Emri Rıza Durumu, İleri Tarihli Ödeme Emri Durumu, İleri Tarihli Ödeme Emri Detayı Sorguları:  ÖBHS, İleri Tarihli Ödeme Emri Rıza Durumu, İleri Tarihli Ödeme Emri Durumu, İleri Tarihli Ödeme Emri Detayı bilgilerini isteğe bağlı olarak sorgulayabilir. \n \n Nezdinde ödeme hesabı bulunduran hesap hizmeti sağlayıcılar(Banka, EPK, Ödeme Kuruluşları)  müşterilerine ait hesapları hesap referansı ya da hesap numarası üzerinden takip etmektedir. YÖS'lerin hem HBH hem de ÖBH servisleri için hesap referansı veya hesap numarası üzerinden işlem yapılabileceğini bilmeleri, sistemlerini API dokümanında belirtilen akışlara göre uyumlandırmaları ve müşteri bilgilendirmesini(önyüzlerinde hesap no ve hesap referansı ayrımını gözeterek) buna paralel yapmaları beklenmektedir. \n YÖS'ler gönderen hesap seçimini aşağıdaki yöntemlerden biri ya da birkaçı ile sağlayabilirler: \n \n YÖS, müşterisinin ödeme hesabını HHS ekranından seçtirebilir. \n YÖS, müşterisinden Hesap Bilgisi rızası alır. Rıza aldığı hesaplar üzerinden hesap referansı aracılığı ile ileri tarihli ödeme emri başlatabilir. \n YÖS, müşterisinin ödeme hesabını elle girmesine olanak tanıyabilir. IBAN'ı olmayan HHS'ler ileri tarihli ödeme emri rızası adımında  TR.OHVPS.Business.IBANNotSupported  hatasını vermelidir. IBAN'ı olan HHS'lerin bu akışı desteklemesi zorunludur. \n YÖS; müşterisinin hesap referansını elle girmesini sağlayabilir. Hesap Referansı bilgisi ile başlatılan ileri tarihli ödeme emri işlemlerinde HHS seçimi zorunludur. \n \n Ödeme Sistemine doğrudan katılımcı olmayan HHS'ler, müşterilerine IBAN sunmadıkları için, YÖS'ler hesap referansı ile ödeme başlatabilirler. Bunların dışındaki HHS'lerin, gönderen IBAN veya hesap referansı ile ödeme akışını desteklemesi zorunludur. \n İleri Tarihli Ödeme Emri Başlatma Hizmeti için Erişim Adresleri (Endpoints) \n İleri Tarihli Ödeme Emri Başlatma Hizmeti İçin Erişim Adreslerinin Etki Alanı (Scope) = “odeme_emri” olarak belirtilmelidir. Ödeme Emri Hizmeti ile aynı etki alanı(scope) kullanılmaktadır. \n Tablo : İleri Tarihli Ödeme Emri Başlatma Hizmeti İçin Erişim Adresleri \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu / İsteğe Bağlı \n Yetkilendirme Türü \n İmzalama \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n ileri-tarihli-odeme-emri-rizasi \n POST \n /ileri-tarihli-odeme-emri-rizasi \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n IleriTarihliOdemeEmriRizasiIstegi \n Iler
16iTarihliOdemeEmriRizasi \n \n \n 2 \n erisim-belirteci (GKD için) \n POST \n /erisim-belirteci \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n ErisimBelirteciIstegi \n ErisimBelirteci \n \n \n 3 \n ileri-tarihli-odeme-emri-rizasi \n GET \n /ileri-tarihli-odeme-emri-rizasi/{rizaNo} \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n - \n IleriTarihliOdemeEmriRizaYaniti \n \n \n 4 \n ileri-tarihli-odeme-emri \n POST \n /ileri-tarihli-odeme-emri \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı İstek ve Yanıt \n IleriTarihliOdemeEmriIstegi \n IleriTarihliOdemeEmri \n \n \n 5 \n ileri-tarihli-odeme-emri \n GET \n /ileri-tarihli-odeme-emri/{odmEmriNo} \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı Yanıt \n - \n IleriTarihliOdemeEmri \n \n \n 6 \n ileri-tarihli-odeme-emri-rizasi-iptal \n DELETE \n /ileri-tarihli-odeme-emri-rizasi/{rizaNo} \n Z \n İstemci Kimlik Bilgileri \n - \n - \n - \n 7.1.\tADIM 0 - İleri Tarihli Ödeme Emri Rızası Başlatma Isteği \n \n ÖHK, ÖBHS uygulamasında (web arayüzü/mobil uygulama) ileri tarihli ödeme emri rızası sürecini başlatır. \n Gönderen hesap detaylarının bu aşamada belirtilmesi zorunlu değildir. \n 7.2.\tADIM 1 - İleri Tarihli Ödeme Emri Rızasının Hazırlanması \n   \n Şekil : İleri Tarihli Ödeme Emri Rızasının Hazırlanması \n \n \n ÖBHS, ödeme hizmeti kullanıcı hesabının bulunduğu HHS’ye bağlanarak ileri tarihli ödeme emri rıza kaynağının oluşturulmasını (ileriTarihliOdemeEmriRizasi) sağlar. \n \n \n POST isteği TLS protokolü tesis edilen iletişim katmanı üzerinden gerçekleştirilir. TLS için nitelikli sertifikalar kullanılır. \n \n \n POST isteğinin başlığındaki alanlar ve istemcinin sertifikasındaki özel alanlar kullanılarak istemcinin yetkilendirilmesi sağlanır: \n \n İstekte bulunan ÖBHS yetkilendirilmiş olduğu geçit tarafından kontrol edilir. \n İstekte bulunan yetkilendirilmiş ödeme hizmeti sağlayıcısı ÖBHS rolüne sahipliği geçit tarafından kontrol edilir. \n HHS tarafından, istek başlığındaki x-aspsp-code ile katilimciBlg içerisinde yer alan hhsKod değeri ile aynı olduğunu kontrol edilir. Farklı olması durumunda  “TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n \n \n \n POST başarılı olursa, HHS, ileri tarihli ödeme emri için içeride rıza olup olmamasına bakılmaksızın yeni bir rıza tanımlayıcısı RizaNo içeren ileriTarihliOdemeEmriRizasi  yanıt olarak döner. \n \n \n 1 ÖHK'nın 1 YÖS için 1HHS'de istediği kadar rızası olabilir. \n \n \n HHS tarafında RizaDurumu değişkeninin durumu “Yetki Bekleniyor” olarak güncellenir. \n \n \n YÖS’ün doğrulama ekranı olarak ÖHK’ya açacağı URL adresini de ilgili rıza numarasına göre oluşturur. Burada 2 farklı yöntemle URL oluşturabilir. \n \n Statik URL  : \nHHS’nin base pathi/alt-dizin/{rızaNo} \nÖrnek hhsYonAdr : https://xbank.com.tr/ohvps/cb54834e36f742d09af3d534ece3352a \nBu adres için ilgili doğrulama sayfası önden hazırlanmalı ve ÖHK’nın doğrulama sayfasına erişimi için yayınlanmış olmalıdır (publish edilmelidir). \n Dinamik URL : \nHHS’nin base pathi/alt-dizin/GKD Karşılama Ekranı?rizano={rızano} \nÖrnek: https://xbank.com.tr/ohvps/gkd?rizano=cb54834e36f742d09af3d534ece3352a \n \n \n \n POST /ileri-tarihli-odeme-emri-rizasi \n İSTEK: \n ÖBHS, bu API erişim adresinden HHS’ye yeni bir IleriTarihliOdemeEmriRizasi oluşturulması için istekte bulunur: \n \n ÖBHS, ileri tarihli ödeme emri başlatma isteği olduğunu HHS’ye bildirir. \n ÖBHS, ÖHK’nın, ÖBHS arayüzünden verdiği rızanın (“Ön Onay”) bir kopyasının HHS nezdinde müşteri tarafından onaylanması için HHS’ye gönderilmesini sağlar. \n HHS'ler ileri tarihli ödeme emri hizmetini sunuş bilgilerini HHS API aracılığı ile yayınlayacaklardır. YÖS, ileri tarihli ödeme hizmeti başlatabileceği HHS'lerin listesini HHS API'de yer alan \"hizmetTipi\":\"02\" parametresi ile alabilir. YÖS, ileri tarihli ödeme hizmeti sunmayan HHS'ye ileri tarihli bir ödeme emri rızası isteği yapması durumunda HHS tarafından  TR.OHVPS.Business.ScheduledPaymentNotSupported  hatası 
16iletilmelidir. \n HHS; istek mesajında yer alan alanların ÖHVPS API İlke ve Kuralları dökümanında belirtilen şartları sağlayacak şekilde zorunluluk, uzunluk ve içerik kontrollerini yapar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Resource.InvalidFormat\"  hata kodu iletilmeli ve fieldErrors dolu olacak şekilde hatalı alanı belirten detaylı açıklama gönderilmelidir. InvalidFormat hata kodlarında fieldErrors içeriği gönderilmeli ve anlaşılır açıklama ile message, messageTr alanları doldurulması zorunludur. \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidTPP”  hatası dönülür. \n HHS, bireysel müşteri özelinde ileri tarihli ödeme hizmetini kendi kanallarında sunmuyor ise HHS'ye ileri tarihli bir ödeme emri rızası isteği yapması durumunda HHS tarafından  \"TR.OHVPS.Business.IndividualCustomerNotSupported\"  hatası ,\nkurumsal müşteri özelinde ileri tarihli ödeme emri rızası isteği yapıldığında HHS tarafından  \"TR.OHVPS.Business.CorporateCustomerNotSupported\"  hatası dönülür. \n HHS; YÖS API ile alınan ÖBHS bilgilerinin içerisinde yer alan yönlendirme adresleri ile ileri tarihli ödeme emri rızası nesnesi request mesajında paylaşılan adreslerin uyumlu olup olmadığının kontrollerini yapar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Business.TPPRedirectionAddressMismatch\"  hatası dönülür. \n HHS; kimlik bilgileri nesnesinde yer alan kimlik bilgisi ile ÖHK’nın HHS müşterisi olup olmadığının kontrollerini yapar. Bu kontrol hem bireysel hem de kurumsal ÖHK’lar için yapılmalıdır.  (Koşullu Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Business.CustomerNotFound\"  hatası dönülür. \n İleri Tarihli Ödeme Emri Başlatma Hizmeti rıza isteğinde bulunan ÖHK’nın “Açık Bankacılık Kanal Yetki” tanımı yok ise  \"TR.OHVPS.Business.OpenBankingChannelClosed\"  hatası dönülür. HHS insiyatifinde olup HHS bu kontrolü GKD sonrası gerçekleştirebilir. \n İleri tarihli ödeme emri rızasında alıcı hesap bilgileri Karekod ya da Kolas ile belirlenebilir. HHS online kanallarında ileri tarihli ödeme hizmetini Karekod ve Kolas aracılığı ile kabul ediyorsa, ÖHVPS servisleri ile de kabul etmek zorundadır. YÖS tarafından ileri tarihli ödeme emri rızası isteği içerisinde alıcı bilgisi için karekod ya da kolas kompleks alanları yer alması durumunda , destek vermeyen HHS'ler tarafından  TR.OHVPS.Business.RecipientAccountTypeNotSupported  hatası dönülür. \n HHS \"gkd\" nesnesi için alan kontrollerini gerçekleştirir. \"yetYntm\" = \"A\" gönderilmiş ise \"ayrikGkd\" nesnesinin dolu gönderilmesi zorunludur. Gönderilmemesi durumunda HHS tarafından  \"TR.OHVPS.Resource.InvalidFormat\"  hatası dönülür. \n Ayrık GKD desteklemeyen HHS'ye Ayrık GKD yöntemiyle rıza başlatma isteği yapılması durumunda HHS tarafından  \"TR.OHVPS.Business.DecoupledAuthenticationNotSupported\"  hatası dönülür. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n Ayrık GKD ile başlatılan rıza akışlarında HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder. YÖS iki olay tipine de abone olmak zorundadır. Eğer olay aboneliği yoksa HHS tarafından  \"TR.OHVPS.Business.EventSubscriptionNotFound\"  hatası dönülür. \n Rıza başlatma akışı içerisinde kimlik bilgisinin, ÖHK'ya ait kimlik verisi(kmlk.kmlkVrs) ile ayrık GKD içerisinde yer alan OHK Tanım Değer alanı (ayrikGkd.ohkTanimDeger) birebir aynı olmalıdır. Aynı olmadığı durumda HHS tarafından  \"TR.OHVPS.Business.CustomerInfoMismatch\"  hatası dönülür. \n HHS tarafında ÖHK'nın mobil uygulaması bulunmaması durumu tespit edilebildiği durumda Ayrık GKD ile başlatılan rıza akışlarında HHS tarafından  \"TR.OHVPS.Business.CustomerMobileApplicationNotFound\"  hatası dönülür. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n HHS kimlik bilgisi ile gönderen ünvanının uyumlu olduğunu kontrol eder. HHS'ler EFT/FAST işlemlerinde kabul ettikleri kontrol kriterleri ile işleme izin verebilirler. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Business.IncorrectSenderTitle\"  hatası dönülür. \n Gönderen Hesap Numarası ÖBHS tarafından iletildiği durumda;\n \n IBAN’ın doğruluğu (kontrol basamağı doğrulaması) kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.InvalidAccount\"  hatası dönülür. \n IBAN içerisindeki HHS kodunun istek başlığındaki HHS kodu ile aynı olduğu (hesabın HHS’ye aitliğinin kontrolü) kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.AccountCodeMismatch\"  hatası dönülür. \n Hesap numarasının ÖHK’ya ait olduğu kontrol edilir.Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.CustomerAccountMismatch\"  hatası dönülür. \n HHS’ye özel ödeme izni verilmeyen farklı statülerin bulunması durumu kontrol edilir. (İlgili hesabın para transfer işlemine yetkisi olmaması) Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.AccountUnauthorized\"  hatası dönülür. \n HHS’de gönderen hesabın aktifliği kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.AccountInactive\"  hatası dönülür. \n \n \n Gönderen Hesap Numarası için, He
16sap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir. Hesap referansı ile ileri tarihli ödeme emri rızası başlatılacak ise HHS hesap referansı değeri ile ilişkilendirilmiş mevcut bir hesap bilgisi rızası var mı kontrol etmelidir. Eğer aktif bir rızası yok ise  \"TR.OHVPS.Business.ActiveConsentNotFound\"  hatası dönülür. \n Talimat tarihi, talimat verilen günün tarihinden minimum 1 gün sonrası, maksimum ise 1 yıl sonrası olacak şekilde seçilebilir. Belirtilen tarih aralığı dışında ÖBHS tarafından talimat tarihi iletilmesi durumunda HHS tarafından  \"TR.OHVPS.Business.InvalidOrderDateRange\"  hatası dönülür. \n Talimati tarih bilgisi için ödeme gününün iş gününe gelmediği ve HHS'nin FAST/Havale ile anlık ödeme başlatamadığı durumda,  HHS tarafıdan  \"TR.OHVPS.Business.OrderDateNotWorkDay\"  hata mesajı ile işlemi kesmelidir. YÖS, ÖHK'ya tarih bilgisini güncelletebilir ya da kendisi otomatik atama yapabilir. Sonrasında tekrar rıza talebinde bulunmalıdır. \n Alıcı ve gönderen hesabın aynı olması durumunda  “TR.OHVPS.Business.SenderRecipientSame”  hatası dönmesi beklenmektedir. Bu hata HHS insiyatifindedir. \n Müşterinin kendi hesapları arasında talimat veremeyeceği durumların kontrolü için  “TR.OHVPS.Business.SameAccountTransferRestricted”  hatası dönmesi beklenmektedir. Bu hata HHS insiyatifindedir. \n \n Yukarıdaki kontroller tamamlandıktan sonra HHS, ödeme için benzersiz “RizaNo” ile “IleriTarihliOdemeEmriRizasi” nesnesi oluşturur ve ÖBHS’ye döner. \n HHS, IleriTarihliOdemeEmriRizasi oluşturduğu anda durumunu “Yetki Bekleniyor” olarak düzenler. \n Hesap bakiye kontrolünün rıza aşamasında yapılmaması gerekmektedir. Çünkü ÖHK ileri tarihli ödeme emri gerçekleşene kadar hesabına para eklemesi yapabilir. \n  BAŞARILI İSTEK: \n Tablo : “IleriTarihliOdemeEmriRizasiIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n HHS tarafından ileri tarihli ödeme emri rızası oluşturulması sırasında yapılması gereken kontrol ve işlemler \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n İ \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. Yetkilendirme yöntemi, ÖBHS tarafından belirtilmeyebilir. \n HHS, HBHS’nin belirlediği yöntemi dikkate alarak süreci ilgili akışa uygun olarak devam ettirir. Desteklemediği yöntem için (örn: Ayrık GKD) ayrıca hata mesajı verilmelidir. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu.  YÖS’ün ileteceği adrestir.  Durum kodu(drmKod), yönlendirme adresine parametre olarak eklenmelidir. \n HHS, müşteri uygulama / tarayıcısını bu alanda belirtilen adrese yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n yetYntm = A gönderilmiş ise ayrikGkd nesnesinin dolu gönderilmesi zorunludur.   HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder.  Bknz: Ayrık GKD \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir.  TR.OHVPS.DataCode.ohkTanimTip  sıralı veri tiplerinden birini alır. \n \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir. \n \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS geçerli bir Kimlik Numarası Türü olduğunu kontrol eder. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS, ÖBHS tarafından iletilmesi durumunda Kimlik Verisi üzeriden çapraz kontroller uygulamalı ve Kimlik Verisini temel alarak GKD gerçekleştirmelidir.  Pasaport numarasına ilişkin kontroller HHS'nin halihazırda kullandığı veri, akış ve tabi olduğu diğer düzenlemelerdeki işleyiş ile aynı şekilde ele alınmalıdır.  Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n Z \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur.  HHS geçerli bir Kurum Kimlik Numarası Türü olduğunu kontrol eder. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n Z \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur.  HHS, ÖBHS tarafından iletilmesi durumunda Kurum Kimlik Verisi üzeriden çapraz kontroller uygulamalıdır. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n Kurum adına yapılan ödemelerde K değerini alır. Kurum Kimlik Türü ve Kurum Kimlik Verisi alanlarının girilmiş olduğu çapraz olarak kontrol edilir. \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n \n >>
16 Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n HHS geçerli bir para birimi olduğu kontrol eder. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderenin ünvanıdır.  HHS, bu bilgiyi ÖBHS sisteminden gelen veri yerine FAST’a iletirken kendi sisteminden alabilir. \n HHS’nin bu veri ile kendi sistemlerindeki verinin farklı olması ve Kimlik Numarası ile eşleşmemesi durumunda ileri tarihli ödeme emri başlatma isteği reddedilir.  ÖBHS verisi ile HHS verisinin farklılaşması durumunun ise risk değerlendirme sistemlerine girdi olarak kullanması tavsiye edilir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n İ \n ÖBHS'nin ön yüzünden daha önce kayıt altına alınmış hesaplar arasından seçtirdiği veya müşteriye girdiği IBAN’dır.  ÖBHS tarafından iletilmediği durumda, gönderen hesap bilgisini müşteri tarafından HHS’nin dijital kanalında GKD sonrasında seçilebilir. Bu amaçla ÖBHS arayüzünde HHS seçtirilmelidir.  Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir. Hesap referansı ile ileri tarihli ödeme emri rızası başlatılacak ise HHS hesap referansı değeri ile ilişkilendirilmiş mevcut bir hesap bilgisi rızası var mı kontrol etmelidir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n ÖBHS tarafından iletildiği durumda; IBAN içerisindeki HHS kodunun istek başlığındaki HHS kodu ile aynı olduğu (hesabın HHS’ye aitliğinin kontrolü), IBAN’ın doğruluğu (kontrol basamağı doğrulaması), Hesap numarasının ÖHK’ya ait olduğu, HHS’ye özel ödeme izni verilmeyen farklı statülerin bulunması durumu kontrol edilir. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n İ \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez.  ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir.  Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan HHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n HspRef'e bağlı IBAN değiştiğinde yeni IBAN'ın da ilgili HspRef ile ilişkilendirilmesi beklenmektedir. Bu durumda, HBHS, HspRef ile sorguya geldiğinde HHS'nin yeni IBAN ve hesap hareketlerini dönebilmesi mümkün olacaktır. HspRef’in, IBAN değiştiğinde değiştirilmemesi tavsiye edilmektedir. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n K \n Kolay Adres Sistemi  kullanılmıyorsa zorunludur.  Alıcının ünvanıdır. ÖBHS ekranlarından girişi yapılabileceği gibi ÖBHS’nin kayıtlı alıcılarından yapılan seçimle de doldurup gönderebildiği bilgi olabilir.  FAST-TR Karekod Veri Organizasyonunda;  İşyeri tarafından sunulan uzun karekod yapısının  59:  alanında tanımlı İşyeri adı alanıdır, Kişiden Kişiye Ödeme Karekod Yapısının  07:  alanında tanımlı    Ödeme Alıcısının Adı ve Soyadı  alanıdır. \n \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n Alıcının Hesap Numarası (IBAN)  alanıdır.   Kolay Adres Sistemi  kullanılmıyorsa zorunludur.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  30-01:  alanında tanımlı İş Yeri IBAN verisi kullanılır.  Alıcının birden fazla hesabının kullanılabilir olduğu durumlarda (özellikle işyeri ödemelerinde HHS nezdindeki hesap (on-us havale akışı) tercih edilmelidir. \n HHS (Gönderen Katılımcı) tarafından IBAN doğrulaması (kontrol basamağı doğrulaması) yapılır. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n Talimatın gerçekleşeceği ana kadar KOLAS tanımınında değişiklik olabileceği için,  KOLAS ile yapılan ileri tarihli işlemler, talimatın verildiği anda çözülen IBAN'a yapılacaktır. \n Kolas ile ileri tarihli ödeme emri hizmeti desteklenmiyorsa; HHS tarafından hata dönülmelidir. \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n HHS (Gönderen FAST katılımcısı) tarafından KOLAS Servisine yapılan sorguda girdi olarak kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n HHS (Gönderen FAST katılımcısı) tarafından KOLAS Servisine yapılan sorguda girdi olarak kullanılır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n Karekod ile yapılan ileri tarihli işlemler, talimatın verildiği anda çözülen IBAN'a yapılacaktır. \n Karekod ile ileri tarihli ödeme emri hizmeti desteklenmiyorsa; HHS tarafından hata dönülmelidir. \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n TR.OHVPS.DataCode.KareKodAksTur  sıralı veri değerlerinden birini alır. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını  gösterir. Okunan karekodda referans değeri varsa kullanılması zorunludur.  Karekod ilke ve kurallar belgesinde tanımlandığı şekilde kullanılması gerekmektedir.  Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri veri değerlerinden “O” değeri atanarak iletilmelidir. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n HHS, YÖS'ün API deseninde \"O\" kodunu ilettiğini kontrol eder. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n HHS geçerli bir Ödeme Amacı kodu olduğunu kontrol eder. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarında: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.   -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -\tİşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n YÖS bu değeri ÖHK’yı HHS’ye yönlendirmeden önceki ekranda göstermeli, ve HHS bu değeri GKD için kullandığı önyüzünde “işlem doğrulama kodunun” bir unsuru olarak yine ÖHK’ya göstermelidir. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n \n \n >> Talimat Tarihi \n tlmtTrh \n ISODate \n Z \n ÖHK tarafından talep edilen, ödeme gerçekleşme zamanıdır. \n Talimat verilen günün tarihinden minimum 1 gün sonrası,maksimum ise 1 yıl sonrası olacak şekilde seçilebilir. \n  BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “IleriTarihliOdemeEmriRizasi” nesnesi Tablo’da parametrelerden oluşur: \n Tablo : “IleriTarihliOdemeEmriRizasi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n >
16 Rıza No \n rizaNo \n AN1..128 \n Z \n IleriTarihliOdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n IleriTarihliOdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n > Güncellenme Zamanı \n gnclZmn \n ISODateTime \n Z \n IleriTarihliOdemeEmriRizasi nesnesinin güncellenme zamanı \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n > Rıza Iptal Detay Kodu \n rizaIptDtyKod \n AN2 \n K \n Rıza durumunun iptal olduğu durumda zorunludur. Alabileceği değerler 4. Bölümde detaylandırılmıştır. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır.  HHS, ÖBHS’nin belirlediği yöntemi dikkate alarak kendi belirlediği yöntemi kullanır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   HHS tarafından maksimum 5 dk içinde işlem tamamlanacak şekil zaman damgası oluşturulur. Zaman aşımı olduğunda HHS’nin GKD’ye izin vermeyecek şekilde hata mesajı vermesi gerekmektedir.  Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n Z \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n Z \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n >>
16 Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderenin ünvanıdır.  HHS, bu bilgiyi ÖBHS sisteminden gelen veri yerine FAST’a iletirken kendi sisteminden alabilir.   Tek seferlik ödeme dışında YÖS'ün gönderen ünvanını göndermesi zorunludur. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n İ \n ÖBHS'nin ön yüzünden daha önce kayıt altına alınmış hesaplar arasından seçtirdiği veya müşteriye girdiği IBAN’dır.  ÖBHS tarafından iletilmediği durumda, gönderen hesap bilgisini müşteri tarafından HHS’nin dijital kanalında GKD sonrasında seçilebilir. Bu amaçla ÖBHS arayüzünde HHS seçtirilmelidir.   GKD sonrası HHS ekranında seçilen Hesap Numarası POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir.    Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n İ \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez.  ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir.   GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir.    Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.    Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari ünvan bilgisidir. Kolas’tan dönen “account owner” alanı kullanılmalıdır. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen ünvan bilgisidir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n ÖBHS tarafından istek mesajında iletilip doğrulanan veya Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen alıcı maskeli IBAN bilgisidir. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n TR.OHVPS.DataCode.KareKodAksTur  sıralı veri değerlerinden birini alır. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını  gösterir. \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O” değerini alır. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  - İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n >> Talimat Tarihi \n tlmtTrh \n ISODate \n Z \n ÖHK tarafından talep edilen, ödeme gerçekleşme zamanıdır. Talimat verilen günün tarihinden minimum 1 gün sonrası,maksimum ise 1 yıl sonrası olacak şekilde seçilebilir. Belirtilen tarih aralığı dışında ÖBHS tarafından talimat tarihi iletilmesi durumunda HHS tarafından  TR.OHVPS.Business.InvalidOrderDateRange  hatası verilmelidir. \n 7.3.\tADIM 2- İleri Tarihli Ödeme Emri Rızasının Yetkilendirilmesi \n   \n Şekil : İleri Tarihli Ödeme Emri Rızasının Yetkilendirilmesi \n ÖBHS, ÖHK’nın ileri tarihli ödeme emrini yetkilendirmesi isteğini iletir. Ödeme emrinin yetkilendirilmesi, HHS tarafından gerçekleştirilen Yönlendirme veya Ayrık GKD yöntemiyle yapılır. \n \n \n Yönlendirmeli doğrulama akışında , ÖBHS ÖHK’yı HHS’ye yönlendirir. \n \n ÖBHS tarafından yönlendirme, bir önceki adımdaki RizaNo’yu içerir. \n Yönlendirmenin RizaNo’yu içermesi sayesinde, HHS hangi ödeme emriyle ilişkili olarak yönlendirme yapıldığını ilişkilendirebilir. \n HHS, ÖHK için GKD sürecini işletir. \n \n ÖHK’yı doğrularsa, \n \n ÖHK -bir önceki adımda seçmediyse- borçlu hesabını seçer. \n HHS, ileri tarihli ödeme emri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n HHS, ÖHK’yı “olumlu yönlendirme akışı” ile ÖBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n \n \n \n yonAdr?rizaDrm=Y&yetKod=xx&rizaNo=yy&rizaTip=I&drmKod=zzz\n \n ÖHK’yı doğrulayamazsa, \n1. HHS, ileri tarihli ödeme emri rıza kaynağının durumunu “Yetki İptal” olarak günceller. \n2. HHS, ÖHK’yı “olumsuz yönlendirme akışı” ile ÖBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=I&rizaNo=yy&rizaTip=I&drmKod=zzz\n \n HHS tarafında oluşabilecek bir hata durumunun YÖS’e aktarılması gerektiği durumlar olabilir. Bu durumda yonlendirme adresinde hata kodu parametresi zorunlu olarak 
16iletilmelidir. \nHata açıklamalarının neler olabileceği ve YÖS’ün kendi uygulamasında bu hatayı ne şekilde göstereceği aşağıda tariflenmiştir. \n yonAdr?rizaDrm=I&rizaNo=yy&rizaTip=I&rizaIptDtyKod=11&drmKod=zzz\n \n URL’de iletilen “Rıza İptal Detay Kodu” Rıza durumları bölümünde (4. Bölüm) belirtilen hata kodları ile aynı olacak şekilde tasarlanmıştır. GKD sırasında yapılması gereken kontroller 5.3 bölümünde detaylandırılmıştır. \n \n Ayrık doğrulama akışında , HHS, ÖHK’nın ileri tarihli ödeme emri rızasını başlattığı uygulamadan farklı olabilecek bir “doğrulama” uygulamasında işlemi doğrulamasını ister.\n \n Ayrık akış ÖBHS’nin farklı bir kanal kullanarak yetkilendirme isteği göndermesiyle başlatılır. \n Bu yetkilendirme isteği, yetkilendirilecek ödeme emri rızasının eşleştirileceği ÖHK’nın bulunması için ilgili veriyi taşır. \n HHS, ÖHK’yı doğrular. \n ÖHK, bir önceki adımda seçmediyse- borçlandırılacak hesabını seçer. \n HHS, ileri tarihli ödeme emri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n \n Başarılı GKD sonrasında (rizaDrm=’Y’) ilgili rıza nesnesi için (belirli bir rizaNo) yetkilendirme kodunun (yetKod) alınmasının ardından erişim belirteci erişim adresine POST çağrısı yapılarak yetkilendirme kodu karşılığında erişim belirteci ve yenileme belirteci alınır. POST /erişim-belirteci erişim noktası EK-3’te açıklanmıştır. \n Erişim belirteci alındıktan sonra; HHS, ileri tarihli ödeme emri rıza kaynağının durumunu “Yetki Kullanıldı” olarak günceller. \n 7.4.\tADIM 2.1 – İleri Tarihli Ödeme Emri Rızasının Sorgulanması (isteğe bağlı) \n   \n Şekil 7: “IleriTarihliOdemeEmriRizasi” nesnesinin sorgulanması (isteğe bağlı) \n GKD işleminin başarıyla tamamlanıp İleri Tarihli Ödeme Emri Rızasının yetkilendirilmesi esnasında, gönderen hesap seçiminin HHS ekranında yapıldığı durumlar olabilir. Bu durumlarda ileri tarihli ödeme emri isteğinde gönderen hesap bilgileri alanının zorunlu olması nedeniyle,  IleriTarihliOdemeEmriRizasi  nesnesi sorgulanarak gönderen hesap bilgileri (hesap numarası ve/veya hesap referansı) alınmalıdır. HHS, “ ADIM 2 -Ileri Tarihli Ödeme Emri Rızasının Yetkilendirilmesi ” akışında ÖHK’nın hesapları arasında seçim yapmasını ve seçilen hesap bilgisinin  IleriTarihliOdemeEmriRizasi  nesnesine işler. \n \n Sorgulama yapılan İleri Tarihli Ödeme Emri HHS tarafında bulunmuyor ise  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n \n GET /ileri-tarihli-odeme-emri-rizasi/{RizaNo} \n ÖBHS, mevcut durumunu kontrol etmek için, oluşturulan bir  IleriTarihliOdemeEmriRizasi  kaynağının durumunu isteğe bağlı olarak alabilir. \n Durum \n IleriTarihliOdemeEmriRizasi  kaynağı için kullanılabilecek durum göstergeleri şu şekildedir: \n \n Yetki Bekleniyor \n Yetkilendirildi \n Yetki Kullanıldı \n Yetki Ödeme Emrine/Talimata Dönüştü \n Yetki Sonlandırıldı \n Yetki İptal \n \n İleri Tarihli Ödeme emri rıza durum değişiklikleri 4.2 bölümünde detaylandırılmıştır. \n BAŞARILI YANIT: \n GET /ileri-tarihli-odeme-emri-rizasi/{rizaNo}  yanıtının (RESPONSE) gövdesinde (BODY)  “IleriTarihliOdemeEmriRizasiİstegi” nesnesi kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “IleriTarihliOdemeEmriRizasi” nesnesi oluşturulur. \n Gönderen Hesap Bilgisinin, ADIM 2 (İleri Tarihli Ödeme Emri Rızasının Yetkilendirilmesi) sonrasında HHS ekranından seçildiği akışta “IleriTarihliOdemeEmriRizasi” nesnesi güncellenir ve ÖBHS  GET /ileri-tarihli-odeme-emri-rizasi/{rizaNo}  isteği yaparak güncel gönderen hesap bilgisi bilgisini de içeren “IleriTarihliOdemeEmriRizasi” nesnesini çekmelidir. \n 7.5.\tADIM 3- İleri Tarihli Ödeme Emrinin Oluşturulması \n   \n Şekil 8: İleri Tarihli Ödeme Emrinin Oluşturulması \n POST /ileri-tarihli-odeme-emri \n ÖHK’nın Güçlü Kimlik Doğrulama ile işlemi yetkilendirmesi sonrasında, ÖBHS OdemeEmri kaynağını oluşturur. \n İleri Tarihli Ödeme emri (IleriTarihliOdemeEmri) uygun ödeme kaynağına POST isteği yapılarak başlatılır. \n \n Erişim Belirteci kontrolü yapılır. Geçerli bir Erişim Belirteci yok ise  \"TR.OHVPS.Connection.InvalidToken\"  hatası dönülür. \n HHS; istek mesajında yer alan alanların ÖHVPS API İlke ve Kuralları dökümanında belirtilen şartları sağlayacak şekilde zorunluluk, uzunluk ve içerik kontrollerini y
16apar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Resource.InvalidFormat\"  hatası dönülür. \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidTPP”  hatası dönülür. \n Rıza durumu kontrol edilir.\n \n B: Yetki Bekleniyor, Y: Yetkilendirildi  ya da E: Yetki Ödeme Emrine Dönüştü ise  “TR.OHVPS.Resource.ConsentMismatch”  hatası dönülür. \n I: Rıza İptal ya da S: Yetki Sonlandırıldı ise  ”TR.OHVPS.Resource.ConsentRevoked”  hatası dönülür. \n RizaDurumu “K: Yetki Kullanıldı” ise kontrollere devam edilir. \n \n \n POST /ileri-tarihli-odeme-emri-rizasi ile POST /ileri-tarihli-odeme-emri isteklerinde istek alanların aynı olması beklenmektedir. HHS tarafından kontrolü sağlanmalıdır. İleri Tarihli Ödeme Emri rızasında gönderilen değerlerden farklı bir değer gönderildiği durumda  “TR.OHVPS.Business.FieldMismatch”  hatası dönülür. \n \n Yukarıdaki kontroller tamamlandıktan sonra, içerisinde odmEmriNo ve odmDrm değişkenleri de bulunan IleriTarihliOdemeEmri nesnesi ÖBHS’ye döner ve RizaDurumu değişkenin değeri “Yetki Ödeme Emrine/Talimata Dönüştü” olarak güncellenir. \n \n POST verisindeki Gönderen Hesap Numarası ve Alıcı Hesap Numarasının aynı bankaya aitse HAVALE değilse FAST veya PÖS iş akışına geçilir. \n \n BAŞARILI İSTEK: \n Tablo 9: “IleriTarihliOdemeEmriIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n HHS tarafından ileri tarihli ödeme emri oluşturulması sırasında yapılması gereken kontrol ve işlemler \n FAST A01 PÖS M01 mesaj mapping \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. \n Gönderen katılımcı kodu (yani bankanın FAST/PÖS’teki Katılımcı kodu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. \n YosKod \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n \n >Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n \n \n >Yönlendirme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunludur. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n \n \n >Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n yetYntm = A gönderilmiş ise ayrikGkd nesnesinin dolu gönderilmesi zorunludur. yetYntm = Y için bu nesne iletilmemelidir. \n \n \n \n >>OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n \n \n >>OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n \n \n >HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n \n \n >Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. İleri Tarihli Ödeme Emri Rizası Nesnesindeki Kimlik Numarası Türü verisi ile aynı olmalıdır. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS, ÖBHS tarafından iletilmesi durumunda Kimlik Verisi üzeriden çapraz kontroller uygulamalı ve Kimlik Verisini temel alarak GKD gerçekleştirmelidir. İleri Tarihli Ödeme Emri Rizası Nesnesindeki Kimlik Numarası verisi ile aynı olmalıdır. Gerçek kişi tarafından yapılan ödemelerde, 
161. HHS, Gönderen Adı ve Gönderen Hesap Numarasını ileri tarihli ödeme emri isteğinde (Havale/FAST/PÖS) gönderir. - Gönderen Adı ve diğer tüm müşteri bilgileri, Kimlik Numarası üzerinden elde edillir. Pasaport numarasına ilişkin kontroller HHS'nin halihazırda kullandığı veri, akış ve tabi olduğu diğer düzenlemelerdeki işleyiş ile aynı şekilde ele alınmalıdır. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik verisi bu alanda gönderilebilmesi zorunludur. \n GonKimN / Psp \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur. İleri Tarihli Ödeme Emri Rizası Nesnesindeki Kurum Kimlik Türü verisi ile aynı olmalıdır. \n \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur. İleri Tarihli Ödeme Emri Rizası Nesnesindeki Kurum Kimlik Verisi ile aynı olmalıdır. \n GonKimN / VKN \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n Kurum adına yapılan ödemelerde K değerini alır. Kurum Kimlik Türü ve Kurum Kimlik Verisi alanlarının giilmiş olduğu çapraz olarak kontrol edilir.  İleri Tarihli Ödeme Emri Rizası Nesnesindeki ÖHK Türü ile aynı olmalıdır. \n \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n İleri Tarihli Ödeme Emri Rizası Nesnesindeki Para Birimi verisi ile aynı olmalıdır. \n \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n İleri Tarihli Ödeme Emri Rizası Nesnesindeki İşlem Tutarı verisi ile aynı olmalıdır. HHS işlem tutarı ödeme mesajında (Havale/FAST/PÖS) aynen taşınmak durumundadır. \n Ttr \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderen kişinin ad soyad ya da ticari ünvan bilgisi. \n HHS ve ÖBHS verisi tutarlı olmalıdır.  ÖBHS verisi ile HHS verisinin farklılaşması durumunun ise risk değerlendirme sistemlerine girdi olarak kullanması tavsiye edilir. \n GonAd \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n ÖBHS'nin ön yüzünden seçtirdiği/kullanıcıya girdiği IBAN Hesap numarası ya da Hesap Referansı alanlarından en az birinin dolu olarak gelmesi gerekmektedir. \n İleri Tarihli Ödeme Emri Rizası Yanıtı Nesnesindeki Gönderen Hesap Numarası verisi ile aynı olmalıdır. \n GonHesN \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n K \n ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başlatılabilir. GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir. Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı 
16sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari ünvan bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen ünvan bilgisidir. \n YÖS’ten alıcı ad soyad bilgisi geliyorsa ve HHS'nin kontrolünden başarılı bir şekilde geçti ise HHS'nin tekrar alıcı ad soyad bilgisi için giriş yaptırmasına gerek bulunmamaktadır. \n AlAd \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n Alıcının Hesap Numarası alanıdır (IBAN). Kolay Adres  sorgusunda dönülen adres kaydı yaptırmış olan alıcının maskeli IBAN bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen IBAN bilgisidir. Karekod akışında, FAST Karekod Veri Organizasyonundaki 30-01: alanında tanımlı İş Yeri IBAN verisi kullanılır. \n İleri Tarihli Ödeme Emri Rizası Yanıtı Nesnesindeki Alıcı Hesap Numarası verisi ile aynı olmalıdır.  Kontroller başarıyla sonuçlanırsa, bilgi FAST/PÖS AlHesN alanına doğrudan aktarır ve FAST/PÖS Alan Katılımcı Kodu (AlKK) olarak Alıcı HHS Kodu kullanılır.  KOLAS sorgusu sonucunda ileri tarihli ödeme emrinde iletilen maskeli bilgi ile HHS’nin kendi ileri tarihli ödeme emri rızası isteğinde tuttuğu KOLAS sorgusundan dönülen bilgi maskelenerek karşılaştırılır. Eğer aynı değilse uygun hata kodu dönülerek işlem sonlandırılır. \n AlHesN \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n Müşterinin sorgulamak istediği Kolay Adres Tipi değeridir.  TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n İleri Tarihli Ödeme Emri Rizası Yanıtı Nesnesindeki Kolay Adres Tipi verisi ile aynı olmalıdır. \n \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n İleri Tarihli Ödeme Emri Rizası Yanıtı Nesnesindeki Kolay Adres Değeri verisi ile aynı olmalıdır. \n FAST (KolasRef) \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n KolasRef ( hem FAST hem de PÖS için aynı) \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  Kolay Adresi Sistemi ile birlikte kullanılmaz.  01: FAST katılımcısından dinamik doğrulama hizmeti alınan işyeri ödemesi  02: FAST katılımcısından statik doğrulama hizmeti alınan işyeri ödemesi 03: Kişiden kişiye ödemeler \n İleri Tarihli Ödeme Emri Rizası Nesnesindeki Kare Kod Akış Türü verisi ile aynı olmalıdır. \n FAST: KrkdAksTur \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını gösterir.  Okunan karekodda referans değeri varsa kullanılması zorunludur. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n İleri Tarihli Ödeme Emri Rizası Nesnesindeki Karekod Referansı verisi ile aynı olmalıdır.  Çevrimiçi doğrulama hizmeti alınmayan statik karekodlar için Referans numarasının bulunmadığı durumlarda HHS tarafından “NONREF” ifadesi girilir. \n FAST: Karekod Referansı (KrkdRef) \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O” değeri atanarak iletilmelidir. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n İleri Tarihli Ödeme Emri Rizası Nesnesindeki Ödeme Kaynağı verisi ile aynı olmalıdır. HHS tarafından ödeme mesajında (FAST/PÖS) aynen taşınmak durumundadır. \n FAST/PÖS: OdmKynk \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. \n İleri Tarihli Ödeme Emri Rizası Nesnesindeki Ödeme Amacı verisi ile aynı olmalıdır. HHS tarafından ödeme mesajında (FAST/PÖS) aynen taşınmak durumundadır. \n FAST (OdmAmc)/PÖS(OdmAmaci) \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n İleri Tarihli Ödeme Emri Rizası Nesnesindeki Referans Bilgisi verisi ile aynı olmalıdır. \n RefBlg (Hem FAST hem de PÖS için aynı) \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n FAST/PÖS Acklm \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n \n \n >> Talimat Tarihi \n tlmtTrh \n ISODate \n Z \n ÖHK tarafından talep edilen, ödeme gerçekleşme zamanıdır. Talimat verilen günün tarihinden minimum 1 gün sonrası,maksimum ise 1 yıl sonrası olacak şekilde seçilebilir. \n \n \n \n \n \n BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “IleriTarihliOdemeEmri” nesnesi Tablo-10’daki parametrelerden oluşur: \n Tablo 10: “IleriTarihliOdemeEmri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanıdır. \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n Z \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Emir Bilgileri \n emrBlg \n Kompleks: EmirBilgileri \n Z \n \n \n \n >
16 Ödeme Emri Numarası \n odmEmriNo \n AN1..128 \n Z \n IleriTarihliOdemeEmri nesnesinin UID'sidir. IleriTarihliOdemeEmri İlişkin sorgular bu ID üzerinden yapılır. \n \n \n > Ödeme Emri Zaman \n odmEmriZmn \n ISODateTime \n Z \n IleriTarihliOdemeEmri nesnesinin oluşturulduğu zaman bilgisi. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.    Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Gerçekleşen İşlem Tutarı \n grckIslTtr \n Kompleks:GerceklesenTutar \n K \n odmDrm:01 ,02 ve 06 olduğu durumda gönderilmesi zorunludur. Ödeme durumu 01 ve 02 durumlarında gerçekleştirilen tutarın tamamı bu alanda iletilmelidir. Ödeme durumu: 06 olan kısmi ödeme işlemlerinde ise gerçekleşen tutar bilgisi iletilmelidir. \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n Talimat gerçekleştiğinde ödeme yapılan tutar bilgisi.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.    Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderen kişinin ad soyad ya da ticari ünvan bilgisi. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n ÖBHS tarafından iletilip doğrulanan veya HHS ekranında seçilen Gönderen Hesap Numarası dönülür. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n K \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid)  YÖS bazında farklılaşması gerekmez. ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir. GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir. Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.  Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari ünvan bilgisidir. Kolas’tan dönen “account owner” alanı kullanılmalıdır. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen ünvan bilgisidir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n Alıcının Hesap Numarası alanıdır (IBAN). Kolay Adres  sorgusunda dönülen adres kaydı yaptırmış olan alıcının maskeli IBAN bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen IBAN bilgisidir. Karekod akışında, FAST Karekod Veri Organizasyonundaki 30-01: alanında tanımlı İş Yeri IBAN verisi kullanılır. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n Müşterinin sorgulamak istediği Kolay Adres Tipi değeridir.  TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>>
16 Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  Kolay Adresi Sistemi ile birlikte kullanılmaz.  01: FAST katılımcısından dinamik doğrulama hizmeti alınan işyeri ödemesi  02: FAST katılımcısından statik doğrulama hizmeti alınan işyeri ödemesi 03: Kişiden kişiye ödemeler \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını gösterir.  Okunan karekodda referans değeri varsa kullanılması zorunludur. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR Karekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O”  değerini alır. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n \n \n >> Ödeme Durumu \n odmDrm \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeDurumu  sıralı veri değerlerinden birini alır.      Ödeme Durumu alanı ile ilgili olarak HHS’ler tarafından YÖS’lere  IleriTarihliOdemeEmri servisi yanıtında  04:Onayda Bekliyor, 05:Ödeme Bekleniyor yanıtları gönderilebilir. 04:Onayda Bekliyor  ve  05:Ödeme Bekleniyor  durumları oluştuktan sonra YÖS tarafından ileri tarihli ödeme emri sorgulaması yapılarak ödeme durumunun güncel değeri öğrenilir. Güncel değerler  01:Gerçekleşti,03:Gerçekleşmedi , 06:Kısmen Gerçekleşti  ve  07:İptal Edildi  durumları olabilir. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  - İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n >> Ödeme Sistemi \n odmStm \n AN1 \n K \n TR.OHVPS.DataCode.OdemeSistemi  sıralı veri değerlerinden birini alır. odmDrm:01, 02 ve 06 olduğu durumda gönderilmesi zorunludur. \n \n \n >> Ödeme Sistem Numarası \n odmStmNo \n AN10..50 \n K \n Ödeme başarılı başlatıldıysa, ödemenin başlatıldığı sistemdeki referans numarası. Gerektiğinde ilgili ödeme sisteminde/HHS’de söz konusu ödemeye karşılık gelen mesajla bağlantı kurmada kullanılır.   Ödeme Hizmeti kullanıcısına işlemin takibi için gösterilebilir.  İşlemin yönlendirildiği ödeme sistemi FAST ya da PÖS ise sistemdeki ilgili mesajın Tarih, GönderenKatilimKodu ve SorguNumarasi değerlerinin birleşiminden oluşur. Bu 3 alan mevcutta kullanıldığı formatta aralarına dikey çizgi (Unicode U+2223) işareti koyularak, birleştirmeli ve iletilmelidir. Örn : Tarih|GönderenKatilimKodu|SorguNumarasi   Ödeme Havale/Virman işlemi ise HHS’nin üretmiş olduğu havale/virman numarasını içerir. Buradaki format da Tarih|GönderenKatilimKodu|Havale-virman numarası şeklinde olmalıdır. Havale/FAST/PÖS  ödeme yöntemleri için tarih alanı yyyy-aa-gg formatında 10 karakter olarak 
16iletilmelidir. odmDrm:01, 02 ve 06 olduğu durumda gönderilmesi zorunludur. \n \n \n >> Talimat Tarihi \n tlmtTrh \n ISODate \n Z \n ÖHK tarafından talep edilen, ödeme gerçekleşme zamanıdır. Talimat verilen günün tarihinden minimum 1 gün sonrası,maksimum ise 1 yıl sonrası olacak şekilde seçilebilir. \n \n \n >> Gerçekleşen Ödeme Zamanı \n grckOdmZmn \n ISODateTime \n K \n Gerçekleşen ödeme işlemine ait zaman bilgisi. odmDrm:01, 02 ve 06 olduğu durumda gönderilmesi zorunludur. \n 7.6.\tADIM 3.1- İleri Tarihli Ödeme Emri Sorgusu (İsteğe bağlı) \n   \n Şekil 9: İleri Tarihli Ödeme Emri Sorgusu \n GET /ileri-tarihli-odeme-emri/{odmEmriNo} \n ÖBHS, bu erişim adresi aracılığıyla ileri tarihli ödeme emrini sorgulayabilir. Maksimum ödemenin gerçekleşeceği günün 15 gün sonrasına kadar sorgulama yapılabilir. Sonrasında yapılacak sorgulamalarda erişim belirtecinin yetki süresi sonlandığı için HHS  \"TR.OHVPS.Resource.ConsentRevoked\"  hatasını dönmelidir.\nİptal edilmiş talimatın bilgileri sorgulanmak istendiğinde de yine  \"TR.OHVPS.Resource.ConsentRevoked\"  hatası verilmelidir. \n YÖS sadece kendi uygulaması üzerinden verilmiş ileri tarihli ödemeleri sorgulayabilir. Erişim izni olmayan bir ödeme emri numarası ile sorgulama yaptığında HHS'den  \"TR.OHVPS.Resource.NotFound\"  hatasını alır. \n Kısmi ödemelerde, kısmen gerçekleşen ödeme tutarı, \"gerçekleşen işlem tutarı\"(grckIslTtr) alanında gönderilirken, gönderilmesi talep edilen tutar alanı(rıza başlatma isteğinde ki tutar) da \"işlem tutarı\"(islTtr) alanında gönderilmeye devam edilmelidir. \n Gerçekleşen işlem tutarı ve para birimi, ödeme gerçekleşme zamanı alanları, ödeme gününden itibaren dolu olarak gelir. \n BAŞARILI YANIT: \n GET /ileri-tarihli-odeme-emri/{odmEmriNo} yanıtının (RESPONSE) gövdesinde (BODY)  “IleriTarihliOdemeEmri” nesnesi bulunur. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda Tablo-10’da yer alan parametreleri içeren “IleriTarihliOdemeEmri” nesnesi döner. \n 7.7.\tADIM 4- İleri Tarihli Ödeme Emri Rıza İptali \n \n Şekil 10: İleri Tarihli Ödeme Emri Rızası İptali \n DELETE /ileri-tarihli-odeme-emri-rizasi/{rizaNo} \n ÖBHS, bu erişim adresi aracılığıyla ileri tarihli ödeme emri rızasını iptal edebilir. \n DELETE /ileri-tarihli-odeme-emri-rizasi çağrısı, bir ÖBHS'nin önceden oluşturulmuş bir ileri tarihli ödeme emri rızasını silmesine izin verir. Müşteri, rızasını HHS üzerinden iptal etmek yerine, ÖBHS üzerinden bu rızasını kaldırmak isteyebilir. \n \n Erişim belirteci kontrolü yapılır. Geçerli bir erişim belirteci yok ise HHS tarafından  ”TR.OHVPS.Connection.InvalidToken”  hatası dönülür. \n İstek başlığında yer alan X-Access-Token ile ilişkili rıza, silinen rizaNo bilgisi ile aynı olup olmadığı kontrol edilir. Farklı olması durumunda  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n İptal edilmek istenen İleri Tarihli Ödeme Emri Rızası HHS tarafında bulunmuyor ise  ”TR.OHVPS.ResourceNotFound”  hatası dönülür. \n Rıza durumu Yetki Sonlandırıldı - S veya Yetki İptal - I ise  \"TR.OHVPS.Resource.ConsentRevoked\"  hatası dönülür. \n İptal edilmek istenen İleri Tarihli Ödeme Emri Rızası’nın ödeme durumu 04 ya da 05 değil ise  ”TR.OHVPS.Business.TransactionCompleted”  hatası dönülür. \n \n Yukarıda kontroller başarıyla tamamlandıktan sonra sırasıyla aşağıdaki işlemler yapılır. \n \n odmDrm değeri 04 ve 05 olan kayıtlar 07 durum kodu ile güncellenmelidir. \n İlişkili ileri tarihli ödeme emri talimatı iptal edilmelidir. \n Rıza iptal edilmelidir. \n \n Bu API çağrısı, müşterinin ÖBHS üzerinden ileri tarihli ödeme emri rızasını iptal etmesine ve HHS nezdindeki ileri tarihli ödeme emri rızası nesnesinin silinmesini sağlar.\nMüşterinin ÖBHS’nin veri erişim iznini iptal etmesi durumunda ÖBHS, HHS’de mevcut olan IleriTarihliOdemeEmriRizasi'na dair rıza ve talimat bilgilerini pratik olarak mümkün olan en kısa sürede silmelidir. Bu ise, ilgili kaynağa\nDELETE /ileri-tarihli-odeme-emri-rizasi/{RizaNo}
16\nçağrısı aracılığı ile yerine getirilir. \n Servis istek parametresi olarak sadece path’de iletilen Rıza No bilgisine ihtiyaç duymaktadır.\nÖHK rızası YÖS üzerinden başarı ile silindiğinde HTTP 204 response kodu ile işlem sonucu iletilir. Rıza tipi “I” yani “Yetki İptal” ve durum kodu \"03\" olarak güncellenir ve gnclZmn zaman damgası vurularak güncellenir.\nÖHK ile rıza iptali sırasında kurulacak iletişimde (e-posta, sms gibi) aşağıdaki alanların iletilmesi tavsiye edilmektedir:\nYÖS Adı, HHS adı, Rıza Oluşturma Zamanı, Servis Tipi Bilgisi (ÖBHS) \n"},{title:"4. Rıza Durumları",frontmatter:{},regularPath:"/v2.0.1/contents/riza-durumlari.html",relativePath:"v2.0.1/contents/riza-durumlari.md",key:"v-4c8f674f",path:"/v2.0.1/contents/riza-durumlari.html",headers:[{level:2,title:"4.1.\tHesap Bilgisi Hizmeti Rıza durum değişiklikleri",slug:"_4-1-hesap-bilgisi-hizmeti-rıza-durum-degisiklikleri"},{level:2,title:"4.2.\tÖdeme Bilgisi Hizmeti Rıza Durum Değişiklikleri",slug:"_4-2-odeme-bilgisi-hizmeti-rıza-durum-degisiklikleri"}],content:" 4. Rıza Durumları \n ÖHK, Ödeme Emri Başlatma Hizmetine ya da Hesap Bilgisi Hizmetine müşteri rızasının tesisi ile başlar. ÖHK’nın YÖS uygulaması üzerinden yaptığı işlemler neticesinde rıza durumları değişebilir.\nRıza’nın alabileceği durum kodları şu şekilde belirlenmiştir. \n B: Yetki Bekleniyor  – İlk rıza talebinde \n Y: Yetkilendirildi  – Başarılı GKD sonrası yetKod üretildiğinde \n K: Yetki Kullanıldı  – Erişim Belirteci alındığında \n E: Yetki ödeme emrine dönüştü  – ÖBHS için \n S: Yetki Sonlandırıldı \n    HBHS için : Erişimin Geçerli Olduğu Son Tarih geldiğinde \n    ÖBHS için : Yenileme belirteci Son Tarihi geldiğinde \n I :Yetki İptal \nRıza iptal durumu ise gerek raporlama gerekse müşteri deneyimi perspektifinden doğru   bilgilendirmeler yapılabilmesi açısından aşağıdaki gibi detay kodları ile zenginleştirilmiştir: \n \n Rıza İptal Detay Kodu: \n \n \n \n ‘01’ :\tYeni Rıza Talebi ile İptal \n ‘02’ :\tKullanıcı İsteği ile HHS üzerinden İptal \n ‘03’ :\tKullanıcı İsteği ile YÖS üzerinden İptal \n ‘04’ :\tSüre Aşımı : Yetki Bekleniyor \n ‘05’ :\tSüre Aşımı : Yetkilendirildi \n ‘06’ :\tSüre Aşımı : Yetki Ödemeye Dönüşmedi \n ‘07’ :\tGKD iptali : Aynı rıza no ile mükerrer çağrımı \n ‘08’ :\tGKD iptali : Rızano ile kimlik bilgileri uyuşmaması \n ‘09’ :\tGKD iptali : Uygun ürünü bulunmuyor \n ‘10’ :\tGKD iptali : HHS Açık Bankacılık kanalı işleme kapalı \n ’11’ :\tGKD iptali : Hesap Yetki Sorunu \n ‘12’ :\tGKD iptali : ÖHK HHS kontrollerini aşamadı \n ‘13’ :\tGKD iptali : ÖHK isteği ile GKD’den vazgeçildi \n ‘14’ :\tGKD iptali : Fraud Şüphesi \n ‘15’ :\tHesap Rıza Güncelleme Talebi ile İptal \n ‘99’ :\tGKD iptali : Diğer \n \n \n 4.1 ve 4.2 bölümlerinde detaylandırılan rıza durum değişikliklerinde rıza iptal detay kodları kullanılmıştır. \n Örneğin B⇨ I/01 denildiğinde “Yetki Bekleniyor” rıza durumundan “Yetki İptal” rıza durumuna Rıza İptal Detay Kodu da ‘01’ yani ‘Yeni Rıza Talebi ile İptal’ olarak güncellenmelidir ifade edilmiştir. \n ÖHK verdiği rıza sırasında seçtiği hesaplarından/kartlarından biri kapatılırsa, diğer hesaplara/kartlara ait bilgileri görmeye devam eder. Ancak ÖHK’nın hesabına/kartına ait bilgilerinin YÖS'e iletilmesini istemediği durumda, rızasını tamamen iptal ederek yeni hesap/kart listesi ile yeni rıza vermesi gerekmektedir. Yani hesap/kart kapanması nedeniyle rıza geçerliliğini yitirmez. ÖHK'nın proaktif olarak bu hesabı/kartı rızadan çıkarması durumunda rıza iptali olur. \n Rıza iptal edilmediği ve geçerli olduğu sürece kapalı hesaplar/kartlar için diğer çevrimiçi kanallarda uygulanan yöntem izlenmelidir. Diğer çevrimiçi kanallarda kapalı hesaplara/kartlara ilişkin bilgi dönülmüyor ise ÖHVPS'den de dönüş yapılmaz. ÖHK’nın rıza onayı verdiği açık hesaplarının/kartlarının tümü HHS tarafında kapatıldığı durumda, yine aynı şekilde HHS çevrimiçi kanallarında koyduğu kurallara göre bu hesaplarının/kartlarının YÖS uygulamasında gösterilmesine karar verir. \n Hesap/kart kapama ve ticari kullanıcıların hesaplar/kartlar üzerindeki yetki değişiklikleri HHS'nin iç sistemleri tarafından yapılan kontrollerle yönetilir. Buradaki değişiklikler ile HHS sistemsel olarak rıza iptali gerçekleştiremez. ÖHK izni ve onayı dahilinde rıza iptal gerçekleştirilmesi gerekmektedir. \n HHS'ler sunmuş oldukları Rıza İptal ekranını (sadece Hesap Bilgisi Rızası için), hangi ortamlardan GKD yapılmasına izin veriliyorsa (web/mobil) aynı ortamdan ÖHK'ya sunmalıdır.  Örneğin bir HHS bireysel müşterileri için web ve mobil, kurumsal müşteriler için web üzerinden GKD imkanı sunuyor ise, minimumda bireysel müşteriler için web ve mobil ortamlarından, kurumsal müşteriler için web ortamından Rıza İptal ekranı aracılığı ile rıza iptaline izin vermelidir. Bunun dışında çağrı merkezi ya da şube gibi ortamlardan sunacağı Rıza İptal imkanı HHS inisiyatifindedir. Bahsi geçen zorunluluk Ödeme Emri Rıza İptal ekranı için geçerli değildir. \n Benzer şekilde YÖS'ler hangi ortamlardan (web/mobil) hizmet veriyorsa, aynı ortam üzerinden Rıza İptal ekranını sunmalıdır. \n 4.1.\tHesap Bilgisi Hizmeti Rıza durum değişiklikleri \n Kural : Bir ÖHK'nın, bir YÖS için, bir HHS'de aktif tek bir rızası olabilir.\nBir ÖHK hem kişisel olarak hem de bir kurumun kullanıcısı olabilir. Bu durumda kurum ve kişisel rıza aynı anda mevcut olabilmelidir. Rıza nesneleri, HHS tarafından uygun şekilde yönetilmelidir. \nAynı kural YÖS’ün hizmet verdiği Temsilcisi için de geçerlidir. Örneğin: \n Bir müşterinin bir Hesap Hizmet Sağlayıcısı (HHS) nezdinde, aynı Yetkili Ödeme Hizmeti Sağlayıcı (YÖS) veya onun temsilcisi üzerinden yalnızca bir adet aktif hesap bilgisi rızası bulunabilir.\nBu sistematiğin temel kuralları ve uygulanması şu şekildedir: \n \n Çoklu Temsilci Kısıtı: Bir YÖS, birden fazla temsilci aracılığıyla hizmet verse dahi bu kural geçerlidir. Müşteri, ilg
16ili YÖS'ün herhangi bir temsilcisi üzerinden zaten bir HHS'de rıza vermişse, aynı YÖS'ün bir başka temsilcisi üzerinden yeni bir rıza veremez. \n Doğrulama ve Doğrudan Engelleme: HHS, bir müşteri için ilgili YÖS'e ait zaten aktif bir rıza olup olmadığını kontrol eder. Eğer temsilcilerden biri üzerinden mevcut bir rıza varsa, aynı müşteri başka bir temsilci üzerinden mükerrer rıza oluşturmaya çalıştığında işlem sistem tarafından reddedilmeli ve hata mesajı döndürülmelidir. Aynı durum YÖS’ün kendisi için de geçerlidir. HHS, bir müşteri için ilgili YÖS'e ait zaten aktif bir rıza olup olmadığını kontrol eder. Eğer temsilcilerden biri üzerinden mevcut bir rıza varsa, aynı müşteri YÖS’ün kendisi için mükerrer rıza oluşturmaya çalıştığında işlem sistem tarafından reddedilmeli ve hata mesajı döndürülmelidir. \n \n Temsilci kendi ad ve hesabına müşteri edinemez. Müşterinin, YÖS’ün müşterisi olması gerekmektedir.\nEğer temsilci kendi sunduğu başka hizmetler kapsamındaki müşterilerini açık bankacılık (f ve g) hizmetlerinden yararlandırmak istiyorsa, söz konusu açık bankacılık hizmetlerinden yararlanmak isteyen müşterilerinin YÖS’ün de müşterisi olmalarını sağlaması gerekmektedir. \n \n \n Hesap Bilgisi Rızası isteği HHS’ye iletilir. \na.\tHHS ÖHK'ya ait içeride rıza var mı kontrol eder. Eğer yoksa  Yetki Bekleniyor - B  rıza durumu ile yeni rıza oluşturur. \nb.\tEğer içeride rıza varsa ; \n \n Yeni hesap bilgisi rızası talebi başlatılmışsa (oncekiRizaNo alanının hiç gönderilmediği durum):  \ni. Rıza durumu Yetki Bekleniyor - B ise; \n        HHS, sistemde Yetki Bekleniyor - B rıza durumuna sahip kayıt olduğu için, öncelikle eski kaydı Yetki İptal - I durumuna getirir.  Rıza İptal Detay Kodu “Yeni Rıza Talebi ile iptal” olmalıdır.  B ⇨ I / 01  Sonrasında,  Yetki Bekleniyor - B  rıza durumu ile yeni rıza oluşturur. \n \n      ii. Rıza durumu Yetkilendirildi - Y veya Yetki Kullanıldı - K ise; \n    ÖHK'nın halihazırda verilmiş bir rızası vardır. HHS, önce mevcut rızanın iptalinin yapılması gerektiğine dair   TR.OHVPS.Business.ConsentAlreadyExists  hatasını döner. YÖS, HHS ya da YÖS uygulaması üzerinden bu rızanın iptal edilmesi gerektiğine dair ÖHK'ya bilgilendirme yapar. \n      iii.\tRıza durumu Yetki Sonlandırıldı - S  ise Yetki Bekleniyor - B durumunda yeni rıza no oluşturur. \n      iv.\tRıza durumu Yetki İptal - I ise  Yetki Bekleniyor - B  durumunda yeni rıza no oluşturur. \n \n \n Başlatılan rıza isteği güncelleme akışı ile başlatılması durumunda oncekiRizaNo değeri rıza isteğinde bulunan ÖHK’ya ait olmalıdır. ÖHK’ya ait olmaması durumunda  TR.OHVPS.Business.CustomerNotFound  hatası dönülür. Aynı ÖHK olması durumunda ; \n i. Önceki Rıza durumu B: Yetki Bekleniyor , Y: Yetkilendirildi ya da I :Yetki İptal  ise;  TR.OHVPS.Business.ConsentStatusNotforUpdate  hatası verilecektir. \n ii. Yetki Kullanıldı - K ise; hesap rızası başarılı gerçekleştiriliyor olup Yetki Bekleniyor - B durumunda yeni bir rıza oluşturulur. Önceki hesap bilgisi rızası durumunda bir güncelleme yapılmaz. \n iii. Yetki Sonlandırıldı - S ise; Rıza Güncelleme Zamanı kontrol edilir. \n •\tSonlandırıldı statüsüne geçmesiyle birlikte rıza güncelleme zamanı üzerinden 30 gün geçmiş ise  TR.OHVPS.Business.ConsentStatusNotforUpdate  hatası verilir. \n•\t30 gün geçmemiş ise; hesap rızası başarılı gerçekleştiriliyor olup Yetki Bekleniyor - B durumunda yeni bir rıza oluşturulur. Önceki hesap bilgisi rızası durumunda bir güncelleme yapılmaz. \n \n \n \n \n GKD başarılı bir şekilde tamamlandığında Rıza durumu Yetki Bekleniyor’dan Yetkilendirildi’ye güncellenir.  B ⇨ Y \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdar olmayabilir. \n ÖHK GKD yapmadan ayrılmış olabilir. (ÖR: Tarayıcıyı kapatmış olabilir) Rıza Yetki Bekleniyor - B rıza durumunda kalır.  5 dakika içerisinde sistem tarafından Yetki Bekleniyor - B rıza durumundaki kayıtlar Yetki İptal  : Yetki Bekleniyor Süre Aşımı olarak güncellenir.   B ⇨ I / 04  Bkz. 9. Madde. \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdardır. HHS yonlendirme adresinin query parametrelerine  rizaIptDtyKod  değerini ekleyerek bu durumu YÖS’e bildirmek zorundadır. \n \n \n Rıza durumunun  “Yetkilendirildi\" , “Yetki Kullanıldı” olduğu durum.  Yetki Bekleniyor ⇨ Yetki İptal   B ⇨  I / 07 \n \n \n Rızano ile kimlik bilgileri uyuşmazlığı.  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 08 \n \n \n ÖHK'nın HHS'de ilgili ürününün olmadığı durum (hesap/kart) Yetki Bekleniyor ⇨ Yetki İptal   B ⇨ I / 09 \n \n \n Açık bankacılık kanalınız işleme kapalıdır.Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 10 \n \n \n Kullanıcının HHS'deki hesaplarında/kartlarında yeterli yetkisinin olmama durumu  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 11 \n \n \n HHS’nin ÖHK için yaptığı kontrollerin başarısız olduğu durum Yetki Bekleniyor ⇨ Yetki İptal   B ⇨ I / 12 \n \n \n ÖHK isteği ile GKD’den vazgeçildiği durum Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 13 \n \n \n Fraud Şüphesi Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 14 \n \n \n Diğer Yetki Bekleniyor ⇨  Yetki İptal   B ⇨  I / 99 \n \n \n \n \n \n \n Erişim Belirteci API \n a. Erişim Belirteci'nin yetkilendirme kodu ile çağrımı yapıldığında;
16 \n      i. Rıza durumu Yetki İptal - I ya da Yetki Sonlandırıldı - S ise   TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     ii. Rıza durumu Yetki Bekleniyor - B ya da Yetki Kullanıldı - K  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iii. Rıza durumu Yetkilendirildi - Y olduğunda erişim belirteci tahsis edilir.\nErişim belirteci alındığında rıza durumu K: Yetki Kullanıldı yapılır.  Y ⇨K \n •  Hesap Rızası Güncelleme akışı ile hesap bilgi rızası güncelleniyor ise yeni hesap bilgisi rızası K durumuna güncellendiğinde önceki rıza no durumu I – 15 (Hesap Rıza Güncelleme ile İptal) ile iptale çekilir. \n b. Yenileme belirteci karşılığı erişim belirteci alınması sırasında; yenileme belirteci kontrolü ve sonrasında rıza kontrolü yapılmalıdır. \n      i. Öncelikle Yenileme Belirteci Geçerlik Süresi kontrolü yapılmalıdır. Geçerli bir Yenileme Belirteci olmadığı görülür ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n     ii. Rıza durumu Yetki İptal - I  ya da Yetki Sonlandırıldı - S ise  TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     iii. Rıza durumu Yetki Bekleniyor - B ya da Yetkilendirildi - Y  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iv. Rıza durumu Yetki Kullanıldı - K olduğunda, yenileme belirteci karşılığı erişim belirteci tahsis edilir. \n \n \n Sorgulama: HBHS, rıza alma akışına başlamadan önce, daha önce oluşturulmuş bir hesap bilgisi-rizasi kaynağının durumunu, isteğe bağlı olarak alabilir. Rıza numarası ile sorgulama yapılır. \n \n \n Hesap Bilgisi Rızasının İptali: HBHS üzerinden ya da HHS üzerinden yapılan rıza iptallerinde Rıza durumu  Yetki İptal - I olarak güncellenir. Rıza numarası ile iptal sağlanır. \n a. HHS üzerinden rıza iptali yapmış olabilir.  Rıza durumu sorgulanır. \n Rıza numarası Yetki Bekleniyor - B ve Yetkilendirildi - Y ve Yetki Kullanıldı - K durumlarında ise Yetki İptal durumuna getirilir. Rıza gnclzmn timestamp ile güncellenir.\nHHS, Rıza iptalinde aynı zamanda erişim belirtecini de invalid hale getirmelidir. \n B ⇨ I / 02 \n Y ⇨ I / 02 \n K ⇨ I / 02 \n b.\tYÖS üzerinden yapılacak iptal işleminde yine Y ve B ve K rıza durumlarında ise iptal edilebilir. \n B ⇨ I / 03 \n Y ⇨ I / 03 \n K ⇨ I / 03 \n Rıza durumu Yetki Sonlandırıldı - S  ise iptal gerçekleşmez. “Rıza durumunuz iptal etmeye uygun değildir.” hatası ÖHK'ya yansıtılır.  TR.OHVPS.Resource.ConsentRevoked \n \n \n ÖHK’nın verdiği rıza süresi dolmuş olabilir.\nErişimin Geçerli Olduğu Son Tarih geldiğinde Rıza durumu Yetki Kullanıldı’dan Yetki Sonlandırıldı durumuna çekilmelidir.   K ⇨ S \n \n \n Hesaplar, Bakiye ve İşlemler servislerinde erişim belirteci kontrolü ve sonrasında rıza kontrolü yapılmalıdır.\nGeçerli bir erişim belirteci yok ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n YÖS'ün; Rıza İptal - I ya da Yetki Sonlandırıldı - S rıza durumlarında Hesaplar, Bakiye ve İşlemler servislerini çağırmaması beklenir. HHS'nin bu rıza durumları ile yapılmış çağrılar olduğunda  TR.OHVPS.Resource.ConsentRevoked  hatasını dönmesi gereklidir. \n Rıza durumu Yetki Kullanıldı - K dışında ise  TR.OHVPS.Resource.ConsentMismatch  hatası verilmelidir. \n Rıza durumu Yetki Kullanıldı - K ise servis akışlarına devam edilir. \n Rıza sorgulama API'sinde ilgili rıza kaydı bulunamaz veya sorgulayan kurumun yetkisi yoksa (örn : YÖS’ün farklı bir YÖS’e ait rıza noyu sorgulaması) \n TR.OHVPS.Resource.NotFound hatası  verilmelidir. \n \n \n HHS/YÖS tarafında rıza bilgileri belirli aralıklarla sistem kullanıcısı tarafından taranır:\n5 dakikadan uzun süredir “Yetki Bekleniyor” durumunda kalan kayıtların durumları güncellenir.\nYetki Bekleniyor  ⇨ Rıza İptal  / Süre Aşımı : Yetki Bekleniyor  B ⇨ I / 04 \n 5 dakikadan uzun süredir “Yetkilendirildi” durumunda kalan kayıtlar güncellenir.\nYetkilendirildi     ⇨ Rıza İptal / Süre Aşımı: Yetkilendirildi  B ⇨ I / 05 \nYukarıda bahsedilen, YÖS Süre Aşımı nedeniyle rıza iptal durum güncellemelerini y
16apmadan önce HHS’yi sorgulayarak rıza durumunu öğrenmeli ve süre aşımı dışında bir kodu varsa aynı kodla kendi sistemini güncellemelidir. \nErişimin Geçerli Olduğu Son Tarih geldiğinde rıza durumu Yetki Kullanıldı’dan Yetki Sonlandırıldı’ya güncellenir.  K ⇨ S \n 4.2.\tÖdeme Bilgisi Hizmeti Rıza Durum Değişiklikleri \n Kural : Bir ÖHK'nın bir YÖS için bir HHS'de istediği kadar rızası olabilir. \n Kurum ve kişisel rıza aynı anda mevcut olabilmelidir. Rıza nesneleri, HHS tarafından uygun şekilde yönetilmelidir. \n \n \n Ödeme Emri Rızası isteği HHS’ye iletilir. İçeride rıza olup olmamasına bakılmaksızın  Yetki Bekleniyor - B  rıza durumu ile yeni rıza no oluşturur. \n \n \n GKD başarılı bir şekilde tamamlandığında rıza durumu Yetki Bekleniyor’dan Yetkilendirildi’ye güncellenir.   B ⇨ Y \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdar olmayabilir. \n ÖHK GKD yapmadan ayrılmış olabilir. (ÖR: Browserı kapatmış olabilir)\nRıza durumu Yetki Bekleniyor'dur. 5 dakika içerisinde sistem tarafından Yetki Bekleniyor - B durumundaki kayıtlar Rıza İptal : Yetki Bekleniyor Süre Aşımı olarak güncellenir. Bkz. 8. Madde. \n \n \n GKD'nin gerçekleşmediği durumlardan HHS haberdardır. HHS yonlendirme adresinin query parametrelerine rizaIptDtyKod değerini ekleyerek bu durumu YÖS’e bildirmek zorundadır. \n \n \n Rıza durumunun  “Yetkilendirildi\" , “Yetki Kullanıldı” olduğu durum.  Yetki Bekleniyor ⇨ Yetki İptal   B ⇨  I / 07 \n \n \n Rızano ile kimlik bilgileri uyuşmazlığı.  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 08 \n \n \n ÖHK'nın HHS'de ilgili ürününün olmadığı durum (hesap/kart) Yetki Bekleniyor ⇨ Yetki İptal   B ⇨ I / 09 \n \n \n Açık bankacılık kanalınız işleme kapalıdır.Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 10 \n \n \n Kullanıcının HHS'deki hesaplarında yeterli yetkisinin olmama durumu  Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 11 \n \n \n HHS’nin ÖHK için yaptığı kontrollerin başarısız olduğu durum Yetki Bekleniyor ⇨ Yetki İptal   B ⇨ I / 12 \n \n \n ÖHK isteği ile GKD’den vazgeçildiği durum Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 13 \n \n \n Fraud Şüphesi Yetki Bekleniyor ⇨ Yetki İptal  B ⇨ I / 14 \n \n \n Diğer Yetki Bekleniyor ⇨  Yetki İptal   B ⇨  I / 99 \n \n \n \n \n \n \n GKD muafiyeti olduğunda YÖS HHS’den arka planda onay alır. Bu onay sırasında rıza durumu  Yetkilendirildi  yapılır.  B ⇨ Y \n \n \n Erişim Belirteci API \na. Erişim Belirteci'nin yetkilendirme kodu ile çağrımı yapıldığında; \n      i. Rıza durumu Yetki İptal - I  ya da Yetki Sonlandırıldı - S ise   TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     ii. Rıza durumu Yetki Bekleniyor - B , Yetki Kullanıldı - K  ya da Yetki ödeme emrine dönüştü - E  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iii. Rıza durumu Yetkilendirildi - Y olduğunda erişim belirteci tahsis edilir.\nErişim belirteci alındığında rıza durumu K: Yetki Kullanıldı yapılır.  Y ⇨K \n b. Yenileme belirteci karşılığı erişim belirteci alınması sırasında; yenileme belirteci kontrolü ve sonrasında rıza kontrolü yapılmalıdır. \n      i. Öncelikle Yenileme Belirteci Geçerlik Süresi kontrolü yapılmalıdır. Geçerli bir Yenileme Belirteci olmadığı görülür ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n     ii. Rıza durumu Yetki İptal - I  ya da Yetki Sonlandırıldı - S ise  TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n     iii. Rıza durumu Yetki Bekleniyor - B ya da Yetkilendirildi - Y  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n     iv. Rıza durumu Yetki Kullanıldı - K veya Yetki Ödeme Emrine Dönüştü – E olduğunda, yenileme belirteci karşılığı erişim belirteci tahsis edilir. \n \n \n Ödeme Başlatma API önce erişim belirteci ve sonrasında rıza kontolü yapılarak gerçekleştirilmelidir \n \n Öncelikle Erişim Belirteci kontrolü yapılmalıdır. Geçerli bir Erişim Belirteci olmadığı görülür ise  TR.OHVPS.Connection.InvalidToken  hatası dönülmelidir. \n Rıza durumu Yetki İptal - I  ya da Yetki S
16onlandırıldı - S ise  TR.OHVPS.Resource.ConsentRevoked  hatası dönülmelidir. \n Rıza durumu Yetki Bekleniyor - B , Yetkilendirildi - Y, Yetki Ödeme Emrine Dönüştü - E  ise  TR.OHVPS.Resource.ConsentMismatch  hatası dönülmelidir. \n Rıza durumu Yetki Kullanıldı - K olduğunda ödeme emri gerçekleştirilir.  Rıza durumu Yetki Kullanıldı - K'dan Yetki Ödeme Emrine Dönüştü – E yapılmalıdır.   K ⇨E \n \n \n \n Sorgulama: GKD işleminin başarıyla tamamlanıp Ödeme Emri Rızasının yetkilendirilmesi esnasında, gönderen hesap seçiminin HHS ekranında yapıldığı durumlarda, ödeme emri isteğinde gönderen hesap bilgileri alanının zorunlu olması nedeniyle, ödemeEmriRizasi nesnesi sorgulanarak gönderen hesap bilgileri (hesap numarası ve/veya hesap referansı) alınmalıdır.\nRıza sorgulama, Ödeme Emri Sorgulama API'lerinde ilgili rıza kaydı bulunamaz veya sorgulayan kurumun yetkisi yoksa (örn : YÖS’ün farklı bir YÖS’e ait rıza noyu sorgulaması) \n TR.OHVPS.Resource.NotFound  hatası verilmelidir. \n \n \n Ödeme Emri Rızasının İptali bulunmamaktadır. \n \n \n HHS/YÖS tarafında rıza bilgileri belirli aralıklarla sistem kullanıcısı tarafından taranır:\n5 dakikadan uzun süredir Yetki Bekleniyor'da kalan kayıtların durumları güncellenir.\nYetki Bekleniyor ⇨ Rıza İptal / Süre Aşımı : Yetki Bekleniyor  B ⇨ I / 04 \n 5 dakikadan uzun süredir Yetkilendirildi'de kalan kayıtlar durumları güncellenir.\nYetkilendirildi     ⇨ Rıza İptal / Süre Aşımı : Yetkilendirildi  B ⇨ I / 05 \n 5 dakikadan uzun süredir Yetki kullanıldı'da kalan kayıtlar durumları güncellenir.\nYetki kullanıldı ⇨ Rıza İptal / Süre Aşımı : Yetki Ödemeye Dönüşmedi  B ⇨ I / 06 \n Yenileme belirteci Son Tarih geldiğinde rıza durumu Yetki ödeme emrine dönüştü’den Yetki Sonlandırıldı'ya güncellenir. \n E ⇨ S \n \n \n GKD muafiyeti sadece ödeme başlatma servislerinde bulunmaktadır. \n \n \n"},{title:"12.\tOlay Bildirim",frontmatter:{},regularPath:"/v2.0.1/contents/olay-bildirim.html",relativePath:"v2.0.1/contents/olay-bildirim.md",key:"v-0219a13d",path:"/v2.0.1/contents/olay-bildirim.html",headers:[{level:2,title:"Genel Bilgiler",slug:"genel-bilgiler"},{level:2,title:"Olay Abonelik Servisleri (OAS)",slug:"olay-abonelik-servisleri-oas"},{level:2,title:"ADIM 1: Olay Aboneliğinin gerçekleştirilmesi",slug:"adim-1-olay-aboneliginin-gerceklestirilmesi"},{level:2,title:"ADIM 2: Olay Aboneliğinin güncellenmesi",slug:"adim-2-olay-aboneliginin-guncellenmesi"},{level:2,title:"ADIM 3: Olay Aboneliğinin sorgulanması",slug:"adim-3-olay-aboneliginin-sorgulanması"},{level:2,title:"ADIM 4: Olay Aboneliğinin iptali",slug:"adim-4-olay-aboneliginin-iptali"},{level:2,title:"ADIM 5: Olay Aboneliğinin İletilemeyen Olayları",slug:"adim-5-olay-aboneliginin-iletilemeyen-olayları"},{level:2,title:"ADIM 6: Sistem Olay Dinleme",slug:"adim-6-sistem-olay-dinleme"},{level:2,title:"Olay Dinleme Servisleri (ODS)",slug:"olay-dinleme-servisleri-ods"},{level:2,title:"ADIM 1: Olay Dinleme",slug:"adim-1-olay-dinleme"},{level:2,title:"ADIM 2:  Sistem Olay Dinleme",slug:"adim-2-sistem-olay-dinleme"}],content:" 12.\tOlay Bildirim  \n Genel Bilgiler \n Olay Bildirim Abonelik API servisleri, HHS'lerin sunmuş oldukları olay bildirimlerini takip etmek amacıyla abonelik akışlarını tanımlar. \n YÖS'ler olay bildirimlerini takip edebilmek için talep ettikleri abonelik hizmetlerini belirterek HHS'ler özelinde bir abonelik kaydı oluştururlar. Bu abonelik kaydını okuyabilir, güncelleyebilir ya da silebilirler. \n Olay bildirimleri HHS'ler tarafından 2 yöntem ile sağlanır. İlki olay bildirimlerinin anlık olarak iletilmesi, diğeri ise anlık iletilemeyen olayların toplu olarak iletilmesidir. \n Olay Bildirimi 2 API ile yönetilecektir. \n 1 - Olay Abonelik Servisleri (OAS) \n2 - Olay Dinleme Servisleri  (ODS) \n Olay Abonelik ve Olay Dinleme API'lerinin istek ve yanıt başlığında beklenen parametreler ÖBH,HBH,GKD API'lerinden farklıdır.\n 3.15. İstek Başlığı  ve  3.16. Yanıt Başlığı  bölümlerinde zorunlu parametreler ve açıklamaları belirtilmiştir. \n Olay Abonelik Servisleri (OAS) \n Olay abonelik Servisleri; HHS'ler tarafından sunulacak olay bildirim abonelik servislerini ve iletilemeyen olaylar servisini içermektedir. \n HHS'nin sunacağı bu API ile YÖS'ler şu adımları gerçekleştirebilir. \n \n YÖS'ün olay bildirimlerini dinleyebilmek için öncelikle dinlemek istediği olaylara ait olay tipleri ve kaynak tiplerini belirlemesi gerekmektedir. \n Olay tipleri ve kaynak tiplerinin neler olacağı \"Olay Tipleri ve Kaynak Tipleri İlişkisi\" tablosunda belirtilmiştir. \n YÖS, belirlediği olaylar için HHS'ye olay abonelik endpointi aracılığı ile abonelik başlatır. \n YÖS, abonelik numarası aracılığı ile abonelik bilgilerini görüntüleyebilir, güncelleyebilir, silebilir. \n YÖS, olay bildirimlerini bu abonelik sayesinde kendisinin sunacağı Olay Dinleme API'si ile dinler. \n HHS anlık iletemediği olaylarını biriktirerek, iletilemeyen olaylar endpointi ile YÖS'e sunar. \n \n HHS'ler \"Olay Tipleri ve Kaynak Tipleri İlişkisi\" tablosunda belirlenen olay ve kaynak tiplerinin tümü için YÖS'lere bildirim sunmak zorundadır. \n Olay Abonelik Servislerinde Idempotency kurallarının işletilmesine gerek bulunmamaktadır. \n Nezdinde ödeme hesabı bulunduran bazı hesap hizmeti sağlayıcılar(EPK, Ödeme Kuruluşları) müşterilerine ait hesapları, diğer HHS'lerdeki havuz hesaplarını kullanarak yönetiyor olabilir. Bu durum ilgili hesap hizmeti sağlayıcılarının, ÖHVPS kapsamında HHS olduğu rolde sunması gereken olay bildirim servisleri ile ilgili uyması gereken kuralları değiştirmemektedir. İlgili hesap hizmeti sağlayıcılarının standartlara uygun şekilde YÖS'lere bildirimleri yapması gerekmektedir. \n YÖS'ler sahip oldukları rol özelinde olay abonelik servislerinden faydalanabilir. Bu yüzden olay bildirim etki alanı (scope) değerleri hesap_bilgisi ve/veya odeme_emri olarak belirlenmiştir. \n Olay Abonelik Servisine ait API Endpointleri aşağıdaki tabloda listelenmiştir. \n Olay Abonelik Servisleri için Erişim Adresleri (Endpoints) \n Etki Alanı (Scope) =“hesap_b
16ilgisi”  \"odeme_emri\" \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu (Z)/ İsteğe Bağlı(İ) \n Yetkilendirme Türü \n İmzalama \n Parametre \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n olay-abonelik \n POST \n /olay-abonelik \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n OlayAbonelikİstegi \n OlayAbonelik \n \n \n 2 \n olay-abonelik \n GET \n /olay-abonelik \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n \n - \n OlayAbonelik \n \n \n 3 \n olay-abonelik/{olayAbonelikNo} \n PUT \n /olay-abonelik/{olayAbonelikNo} \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n \n OlayAbonelik \n OlayAbonelik \n \n \n 4 \n olay-abonelik/{olayAbonelikNo} \n DELETE \n /olay-abonelik/{olayAbonelikNo} \n Z \n İstemci Kimlik Bilgileri \n - \n - \n - \n - \n \n \n 5 \n olay-abonelik/{olayAbonelikNo}/iletilemeyen-olaylar \n GET \n /olay-abonelik/{olayAbonelikNo}/iletilemeyen-olaylar \n Z \n İstemci Kimlik Bilgileri \n - \n Sayfalama \n \n Olaylar \n \n \n 6 \n sistem-olay-dinleme \n POST \n sistem-olay-dinleme \n Z \n İstemci Kimlik Bilgileri \n 
16- \n - \n Olaylar \n - \n ADIM 1: Olay Aboneliğinin gerçekleştirilmesi \n POST /olay-abonelik \n HHS'nin olay abonelik hizmeti sunduğu servistir.\nYÖS, seçeceği olay-kaynak tipleri için bu servis aracılığı ile abone olabilir. HHS POST işlemi sonucunda, YÖS adına bir olay abonelik kaynağı oluşturur ve tekil tanımlayıcı olan olayAbonelikNo değerini döner. olayAbonelikNo üretilirken farklı YÖS'ler için aynı değer kullanılamaz. olayAbonelikNo evrensel tekil olmalıdır. \n1 YÖS'ün 1 HHS'de 1 adet abonelik kaydı olabilir. \nBaşarılı POST isteği sonucu HTTP 201 cevabı ile iletilmelidir. \n YÖS tarafından daha önce oluşturulmuş olay abonelik kaydı varsa  \"HTTP 400 -TR.OHVPS.Business.EventSubscriptionAlreadyExists\"  hatasıyla uyarı mesajını döner. \n Olay Abonelik kaydı oluşturmak isteyen YÖS'ün ODS API tanımı HHS tarafından kontrol edilmelidir. YÖS'ün tanımı olmaması halinde  \"HTTP 400-TR.OHVPS.Business.InvalidContent\"  hatası verilmelidir. \n Olay Abonelik kaydı oluşturmak isteyen YÖS tarafından olay tipi ve kaynak tipi için iletilen değerler olması gereken sıralı veri tülerinden(TR.OHVPS.DataCode.OlayTip ve TR.OHVPS.DataCode.KaynakTip) farklı ise HHS tarafından   \"TR.OHVPS.Business.EventSubscriptionNotFound\"  hatası verilmelidir. \n Abonelik üzerinde görüntüleme, güncelleme, silme işlemlerini gerçekleştirebilir.\nYÖS'ün Aboneliği devam ettiği sürece; YÖS'ün açacağı Olay Dinleme API'sine, HHS tarafından abonelik kapsamında olay bildirimleri iletilir. \n BKM'nin sunacağı abonelik servisleri için HHS ve YÖS'lerin abonelik isteği yapmasına gerek bulunmamaktadır. BKM üretim ortamı tanımları yapılırken katılımcıları abonelik servislerine üye yapacaktır. BKM'nin sunacağı abonelik servislerinin olay tipi \"HHS_YOS_GUNCELLENDI\"dir. HHS ve YÖS API ile sunulan bilgilerde bir değişiklik olduğunda yapılacak olay bildirimlerini sağlar.\nÖrneğin; HHS logo bilgilerinde yapılacak bir değişiklik sonrasında, YÖS'lere yapılacak bildirim ile logo bilgisini değişen HHS'nin hhsKod değerini iletir. YÖS, HHS API'yi  hhsKod ile çağırarak HHS'nin güncel bilgilerini alır. Güncel bilgiler ile kendi sistemini günceller. \n Olay tipi ve kaynak tipine ekleme yapıldıkça YÖS'lerin olay abonelik kayıtlarını yeni tipleri içerecek şekilde güncel tutması gerekmektedir. \n OlayAbonelikIstegi nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n \n Abonelik Tipleri \n abonelikTipleri \n Kompleks: abonelikTipleri[Array][1..N] \n Z \n \n \n \n \n > Olay Tipi \n olayTipi \n AN1..36 \n Z \n YÖS abone olmak istediği olay tiplerini TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden değer ya da değerler ile doldurur. \n \"Olay Tipleri ve Kaynak Tipleri İlişkisi\" tablosunda \"Olay Bildirim Yapan\" kolonu \"HHS\" olan olay tipleri ile veri girişine izin verilir. \n \n \n > Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n Olay tiplerinin tanımlanabildiği kaynak listesi bulunmaktadır. Bu listeye uygun kaynak tipleri iletilmelidir. \n HHS, YÖS API üzerinden YÖS'ün rollerini alarak uygun kaynak tiplerine kayıt olmasını sağlar. \n \n \n \n OlayAbonelik nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Olay Abonelik Numarası \n olayAbonelikNo \n AN1..64 \n Z \n YÖS özelinde oluşturulan tekil tanımlayıcıdır. Farklı YÖS'ler için aynı değer kullanılamaz. \n \n \n Olay Abonelik Oluşturulma zamanı \n olusturmaZamani \n ISODateTime \n Z \n Olay Abonelik nesnesinin oluşturulma zaman damgası \n \n \n Olay Abonelik Güncelleme zamanı \n guncellemeZamani \n ISODateTime \n Z \n Olay Abonelik nesnesinin güncelleme zaman damgası iletilebilir. İlk değeri olay abonelik oluşturma zamanı bilgisidir. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n Abonelik Tipleri \n abonelikTipleri \n Kompleks: abonelikTipleri[Array][1..N] \n Z \n OlayAbonelikIstegi nesnesi içerisinde iletilen değerlerin yanıt içerisinde dönmesi beklenmektedir. \n \n \n > Olay Tipi \n olayTipi \n AN1..36 \n Z \n \n \n \n > Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n \n \n \n \n Olay Tipleri ve Kaynak Tipleri İlişkisi \n * Anlık : Olay gerçekleştikten sonra maksimum 5 saniye içerisindeki zaman \n \n \n \n Olay Tipleri \n YÖS Rolü \n Kaynak Tipleri \n Olay Oluşturulma durumu \n KaynakNo \n Asıl verinin elde edileceği API \n Olay Bildirimini Yapan \n Olay Bildirim Zamanı \n Retry Policy \n \n \n \n \n KAYNAK_GUNCELLENDI \n ÖBH \n ODEME_EMRI \n Tüm ödeme durum değişikliklerinde \n odmEmrNo \n GET /odeme-emri/{odemeEmriNo} \n HHS \n *Anlık \n 30 Dakika - 3 Deneme \n \n \n \n ÖBH \n ILERI_TARIHLI_ODEME_EMRI_RIZASI \n Rıza iptal detay kodu ‘02’ : Kullanıcı İsteği ile HHS üzerinden İptal durumunda \n rizaNo \n GET /ileri-tarihli-odeme-emri-rizasi/{rizaNo} \n HHS \n *Anlık \n 30 Dakika - 3 Deneme \n \n \n \n ÖBH \n ILERI_TARIHLI_ODEME_EMRI \n Tüm ödeme durum değişikliklerinde, ödeme emri içerisinde yer alan tutar, talimat tarihi değişikliklerinde \n odmEmrNo \n GET /ileri-tarihli-odeme-emri/{odemeEmriNo} \n HHS \n *Anlık \n 30 Dakika - 3 Deneme \n \n \n \n ÖBH \n DUZENLI_ODEME_EMRI_RIZASI \n Rıza iptal detay kodu ‘02’ : Kullanıcı İsteği ile HHS üzerinden İptal durumunda \n rizaNo \n GET /duzenli-odeme-emri-rizasi/{rizaNo} \n HHS \n *Anlık \n 30 Dakika - 3 Deneme \n \n \n \n ÖBH \n DUZENLI_ODEME_PLANI \n Düzenli ödeme planı içerisinde yer alan herhangi bir alan için değişiklik olduğu durumda \n tlmtNo \n /duzenli-odeme-emri/{tlmtNo}/odeme-plani \n HHS \n *Anlık \n 30 Dakika - 3 Deneme \n \n \n \n ÖBH \n DUZENLI_ODEME_EMRI \n Düzenli ödeme emri içerisinde gönderen hesap ve açıklama alanlarına dair değişiklik olduğu durumda \n tlmtNo \n /duzenli-odeme-emri/{tlmtNo} \n HHS \n *Anlık \n 30 Dakika - 3 Deneme \n \n \n \n HBH \n HESAP_BILGISI_RIZASI \n Rıza iptal detay kodu ‘02’ : Kullanıcı İsteği ile HHS üzerinden İptal durumunda ve Rıza iptal detay kodu ‘09’ : Uygun ürünü bulunmuyor durumunda \n rizaNo \n GET /hesap-bilgisi-rizasi/{rizaNo} \n HHS \n *Anlık \n 30 Dakika - 3 Deneme \n \n \n \n HBH \n BAKIYE \n Bakiye nesnesindeki tutarla ilgili bir bilgi değiştiğinde ve HBH rızası içerisinde \"06-Anlık Bakiye Bildirimi\" izin türü varsa oluşturulur. Mevcutta alınmış rızalar için  bakiye kaynak tipi özelinde 06 izin türü gerektiğinden; mevcut rızanın yenilenmesine dair müşteriye bilgilendirme yapılarak 06 izin türünü kapsayan yeni rıza alınması süreci YÖS tarafından gerçekleştirilebilir. Bloke tutar değişikliği için olay oluşturma ve bildirimi HHS inisiyatifindedir. KrdHsp içerisinde yer alan kulKrdTtr değerinin değiştiği durumda olay bildirim gönderilmesi gerekmektedir. \n hspRef \n GET /hesaplar/{hspRef}/bakiye, GET /hesaplar/{hspRef}/islemler \n HHS \n Maksimum 10 dakika içerisinde \n Retry policy uygulanmamalıdır. İlk istek gönderilemediği durumda İletilemeyen Olaylara eklenmelidir. \n \n \n \n HBH \n KART_BILGILERI \n Kart bilgileri nesnesindeki kart statüsü veya ekstre türleri içerisinde sadece yeni bir esktre türü eklendiğinde oluşturulur. Ekstre türünde azaltma yönünde güncelleme varsa olay bildirimi gönderilmemelidir. YÖS'e kart statüsünün veya ekstre türlerinin değiştiğine dair olay bildirimi gönderilir. \n kartRef \n GET /kartlar,  GET /kartlar/{kartRef},   GET /kartlar/{kartRef}/kart-detay,  GET /kartlar/{kartRef}/kart-hareketleri \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n \n HBH \n COKLU_ISLEM_TALEBI ( bulk-data) \n İlgili API İlke ve kurallarına eklendiğinde güncellenecektir. \n \n \n HHS \n \n 30 Dakika - 3 Deneme \n \n \n AYRIK_GKD_BASARILI \n ÖBH \n ODEME_EMRI_RIZASI \n HHS sisteminde ÖHK kendini doğruladığında rıza oluşturulur. YÖS'e rıza oluşturulduğuna dair bildirim yapılır. YÖS yetkod değerini sorgulama sonucunda elde eder. \n RizaNo \n GET /yetkilendirme-kodu?rizaNo={rizaNo}}&rizaTip=O \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n \n HBH \n HESAP_BILGISI_RIZASI \n HHS sisteminde ÖHK kendini doğruladığında rıza oluşturulur. YÖS'e rıza oluşturulduğuna dair bildirim yapılır. YÖS yetkod değerini sorgulama sonucunda elde eder. \n RizaNo \n GET /yetkilendirme-kodu?rizaNo={rizaNo}&rizaTip=H \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n \n ÖBH \n ILERI_TARIHLI_ODEME_EMRI_RIZASI \n HHS sisteminde ÖHK kendini doğruladığında rıza oluşturulur. YÖS'e rıza oluşturulduğuna dair bildirim yapılır. YÖS yetkod değerini sorgulama sonucunda elde eder. \n RizaNo \n GET /yetkilendirme-kodu?rizaNo={rizaNo}}&rizaTip=I \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n \n ÖBH \n DUZENLI_ODEME_EMRI_RIZASI \n HHS sisteminde ÖHK kendini doğruladığında rıza oluşturulur. YÖS'e rıza oluşturulduğuna dair bildirim yapılır. YÖS yetkod değerini sorgulama sonucunda elde eder. \n RizaNo \n GET /yetkilendirme-kodu?rizaNo={rizaNo}}&rizaTip=D \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n AYRIK_GKD_BASARISIZ \n ÖBH \n ODEME_EMRI_RIZASI \n HHS sisteminde ÖHK kendini doğruladıktan sonra yaptığı kontroller neticesinde logine izin vermez ise YÖS'e bildirim yapılır. YÖS rıza durumunu sorgulayarak işlemin neden iletilmediğine dair bilgi edinebilir. \n RizaNo \n GET /odeme-emri-rizasi/{RizaNo} \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n \n HBH \n HESAP_BILGISI_RIZASI \n HHS sisteminde ÖHK kendini doğruladıktan sonra yaptığı kontroller neticesinde logine izin vermez ise YÖS'e bildirim yapılır. YÖS rıza durumunu sorgulayarak işlemin neden iletilmediğine dair bilgi edinebilir. \n RizaNo \n GET /hesap-bilgisi-rizasi/{RizaNo} \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n \n ÖBH \n ILERI_TARIHLI_ODEME_EMRI_RIZASI \n HHS sisteminde ÖHK kendini doğruladıktan sonra yaptığı kontroller neticesinde logine izin vermez ise YÖS'e bildirim yapılır. YÖS rıza durumunu sorgulayarak işlemin neden iletilmediğine dair bilgi edinebilir. \n RizaNo \n GET /ileri-tarihli-odeme-emri-rizasi/{rizaNo} \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n \n ÖBH \n DUZENLI_ODEME_EMRI_RIZASI \n HHS sisteminde ÖHK kendini doğruladıktan sonra yaptığı kontroller neticesinde logine izin vermez ise YÖS'e bildirim yapılır. YÖS rıza durumunu sorgulayarak işlemin neden iletilmediğine dair bilgi edinebilir. \n RizaNo \n GET /duzenli-odeme-emri-rizasi/{rizaNo} \n HHS \n *Anlık \n 1 Dakika 3 kez \n \n \n HHS_YOS_GUNCELLENDI \n \n \n BKM sistemi tarafından üretilecek olayları dinlemek için kullanılacak kaynak tipidir. YÖS ve HHS'lerin BKM'ye abonelik oluşturmasına gerek bulunmamaktadır. BKM HHS ve YÖS üretim ortamı tanımı yaparken abonelikler
16ini başlatacaktır.   (HHS yaygınlaştırma durumundayken de aboneliği başlatılacaktır.) \n \n \n HHS \n \n \n \n \n \n YÖS \n HHS \n HHS bilgilerinde değişiklik olduğunda, YÖS'ün hhsKod ile sorgulama yapması ve değişen bilgiyi güncellemesi beklenmektedir. \n hhsKod \n GET /hhs/{hhsKod} \n BKM \n *Anlık \n 5 Dakika - 3 Deneme \n \n \n \n HHS \n YOS \n YÖS bilgilerinde değişiklik olduğunda, HHS'nin yosKod ile sorgulama yapması ve değişen bilgiyi güncellemesi beklenmektedir. \n yosKod \n GET /yos/{yosKod} \n BKM \n *Anlık \n 5 Dakika - 3 Deneme \n \n \n \n * Anlık : Olay gerçekleştikten sonra maksimum 5 saniye içerisindeki zaman \n ADIM 2: Olay Aboneliğinin güncellenmesi \n PUT\tolay-abonelik/{olayAbonelikNo} \n YÖS'ün olay aboneliğine ait abonelik tiplerini güncelleyebildiği servistir. Olay aboneliği oluşturulduğu zaman HHS tarafından iletilen olayAbonelikNo aracılığı ile güncelleme işlemi yapılır. YÖS abone olmak istediği olay-kayıt tiplerininin son halini güncelleme servisi ile HHS'ye iletir. HHS bu bilgilerle eski abonelik tiplerinin yerini değiştirir. \n Başarılı PUT isteği sonucu HTTP 200 cevabı ile iletilmelidir. \n OlayAbonelikIstegi nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n Olay Abonelik Numarası \n olayAbonelikNo \n AN1..64 \n Z \n YÖS özelinde oluşturulan tekil tanımlayıcıdır. Farklı YÖS'ler için aynı değer kullanılamaz. \n HHS geçerli bir olay abonelik numarası olduğunun kontrolünü yapar. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n \n Abonelik Tipleri \n abonelikTipleri \n Kompleks: abonelikTipleri[Array][1..N] \n Z \n HHS Sisteminde, YÖS'ün eski abonelikleri yeni aboneliklerle güncellenmelidir. \n \n \n \n > Olay Tipi \n olayTipi \n AN1..36 \n Z \n YÖS abone olmak istediği olay tiplerini TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden değer ya da değerler ile doldurur. \n \"Olay Tipleri ve Kaynak Tipleri İlişkisi\" tablosunda \"Olay Bildirim Yapan\" kolonu \"HHS\" olan olay tipleri ile veri girişine izin verilir.  Olay tipi AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ için, YÖS'ün ODS API'yi sunması zorunludur. HHS, bu olay tipleri özelinde YÖS API üzerinden YÖS'ün bu API'yi sunduğunu kontrol eder ve eğer sunmuyor ise TR.OHVPS.Business.InvalidContent hatası dönerek kayıt işlemini gerçekleştirmez. \n \n \n > Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n Olay tiplerinin tanımlanabildiği kaynak listesi bulunmaktadır. Bu listeye uygun kaynak tipleri iletilmelidir. \n HHS, YÖS API üzerinden YÖS'ün rollerini alarak uygun kaynak tiplerine kayıt olmasına izin verir. \n \n \n \n OlayAbonelik nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Olay Abonelik Numarası \n olayAbonelikNo \n AN1..64 \n Z \n YÖS özelinde oluşturulan tekil tanımlayıcıdır. Farklı YÖS'ler için aynı değer kullanılamaz. \n \n \n Olay Abonelik Oluşturulma zamanı \n olusturmaZamani \n ISODateTime \n Z \n Olay Abonelik nesnesinin oluşturulma zaman damgası \n \n \n Olay Abonelik Güncelleme zamanı \n guncellemeZamani \n ISODateTime \n Z \n Olay Abonelik nesnesinin güncelleme zaman damgası \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n Abonelik Tipleri \n abonelikTipleri \n Kompleks: abonelikTipleri[Array][1..N] \n Z \n OlayAbonelikIstegi nesnesi içerisinde iletilen değerlerin yanıt içerisinde dönmesi beklenmektedir. \n \n \n > Olay Tipi \n olayTipi \n AN1..36 \n Z \n OlayAbonelikIstegi nesnesi içerisinde iletilen değerlerin yanıt içerisinde dönmesi beklenmektedir. \n \n \n > Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n OlayAbonelikIstegi nesnesi içerisinde iletilen değerlerin yanıt içerisinde dönmesi beklenmektedir. \n ADIM 3: Olay Aboneliğinin sorgulanması \n GET /olay-abonelik \n YÖS olay abonelik bilgilerini sorgulamak isteyebilir. HHS, YÖS'e ait aktif durumdaki abonelik bilgisini iletir.\nBaşarılı GET sonucu HTTP 200 kodu ile iletilmelidir. \n OlayAbonelik nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Olay Abonelik Numarası \n olayAbonelikNo \n AN1..64 \n Z \n YÖS özelinde oluşturulan tekil tanımlayıcıdır. Farklı YÖS'ler için aynı değer kullanılamaz. \n \n \n Olay Abonelik Oluşturulma zamanı \n olusturmaZamani \n ISODateTime \n Z \n Olay Abonelik nesnesinin oluşturulma zaman damgası \n \n \n Olay Abonelik Güncelleme zamanı \n guncellemeZamani \n ISODateTime \n Z \n Olay Abonelik nesnesinin güncelleme zaman damgası \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n Abonelik Tipleri \n abonelikTipleri \n Kompleks: abonelikTipleri[Array][1..N] \n Z \n YÖS'ün abone olduğu olay - kaynak listesini döner. \n \n \n > Olay Tipi \n olayTipi \n AN1..36 \n Z \n TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden değerler içerir. \n \n \n > Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n TR.OHVPS.DataCode.KaynakTip sıralı veri tiplerinden değerler içerir. \n ADIM 4: Olay Aboneliğinin iptali \n DELETE /olay-abonelik/olayAbonelikNo \n YÖS'ün abonelik kaydını silmesi için HHS'nin sunduğu servistir.  Başarılı silme işlemi sonucu HTTP 204 ile YÖS'e iletilir. \n ADIM 5: Olay Aboneliğinin İletilemeyen Olayları \n GET /iletilemeyen-olaylar \n HHS kaynaklar üzerinde oluşacak olayları YÖS'e POST/olay-dinleme servisi ile gönderim sağlamaktadır. Bu gönderim belli bir yeniden gönderim politası (retry-policy) ile yapılmalıdır.  Ancak yine de iletilemeyen olaylar olursa (YÖS servisinden HTTP 202 alamama durumu) YÖS'e iletilemeyen-olaylar servisi üzerinden sunulmalıdır. Yani yeniden gönderim politikası sonunda gönderilemeyen olaylar bu servis ile sunulmalıdır. \n Aynı kaynak numarası ile aynı olay-kaynak tipinde, 1 YÖS’e ait, 1 adet iletilemeyen olay kaydı olabilir. \n Bu serviste 1 gün öncesinden sorgu anına kadar tüm kayıtlarına ait iletilemeyen olaylar listelenmelidir.\nÖrnek sorgu zamanı : 2023-04-06T15:14:00+03:00\nHHS'nin sunacağı veri 2023-04-05T00:00:00+03:00  ile 2023-04-06T15:14:00+03:00 arasında olmalıdır.\nSıralama yönü olay tarihine göre artan şekilde olmalıdır. Sayfalama 100'er kayıt dönülerek yapılmalıdır. \n YÖS tarafından iletilemeyen olaylar isteği 10 dakikada bir olacak şekilde yapılabilir. HHS bu limite uygun işlem kısıtı uygulayabilir. \n İşlem Sorgu Örneği GET İşlem Sorgu Örneği  : /iletilemeyen-olaylar?syfNo=1&olyZmnBslTrh=2024-01-08T16:42:00+03:00&olyZmnBtsTrh=2024-01-09T17:09:00+03:00 \n Örneğin; \n olyZmnBslTrh : 07/01/2024 10:00:00+03:00\n olyZmnBtsTrh : 09/01/2024 16:00:00+03:00\n Sorgu Zamanı : 09/01/2024 10:15:00+03:00 \n Yanıt içerisinde yer alan veriye ait tarih aralığı : 08/01/2024 00:00:00+03:00 - 09/01/2024 10:15:00+03:00 olmalıdır. \n Başlangıç ve bitiş zaman aralığı örnekte yer alan şekilde seçilse dahi ilgili servis yanıtı için öncelikle sorgu zamanına bakılıp 1 gün öncesinden sorgu anına kadar tüm kayıtların iletilemeyen olaylar içerisinde listelenmesi sağlanmalıdır. \n İlgili tarih aralığında uygun veri olmaması halinde yanıt gövdesi boş olacak şekilde dönülmelidir. \n İletilemeyen Olaylar Sorgulama İsteği Sorgu Parametreleri \n \n \n \n Alan Adı \n Parametre Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n HHS tarafından yapılması gereken kontrol ve işlemler \n \n \n \n \n İstenen Sayfa Numarasi \n syfNo \n N3 \n İ \n Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. \n Bu veri gönderildiği durumda, HHS İletilemeyen Olaylar listesine ait bu sayfadaki kayıtları göndermelidir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları göndermelidir. \n \n \n Olay Zamanı Başlangıç Tarihi \n olyZmnBslTrh \n ISODateTime \n İ \n Sorgulanacak Olay Zamanına ait başlangıç tarihi \n HHS'ler iletilemeyen olaylar listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. YÖS tarafından tetiklenen sorgularda; olyZmnBslTrh iletilmediği durumda ya da 1 gün öncesinin başlangıç saatine göre daha geri bir zaman dilimi gönderildiğinde, başlangıç zamanı(olyZmnBslTrh) değeri sorgu zamanından 1 gün öncesine ait günün başlangıç zamanı olarak kabul edilmelidir. \n \n \n Olay Zamanı Bitiş Tarihi \n olyZmnBtsTrh \n ISODateTime \n İ \n Sorgulanacak Olay Zamanına ait bitiş tarihi \n HHS'ler iletilemeyen olaylar listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. YÖS tarafından tetiklenen sorgularda;
16 olyZmnBtsTrh iletilmediği durumda ya da sorgu zamanından daha ileri bir zaman dilimi gönderildiğinde, bitiş zamanı(olyZmnBtsTrh) değeri sorgu zamanı olarak kabul edilmelidir. \n \n \n \n Tablo 17: Olaylar nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n Olaylar \n olaylar \n Kompleks: Olaylar \n Z \n \n \n \n >Olay No \n olayNo \n AN1..64 \n Z \n Olaya ait evrensel tekil numaradır. \n \n \n >Olay Zamani \n olayZamani \n ISODateTime \n Z \n Olayın oluştuğu tarih bilgisidir. \n \n \n >Olay Tipi \n olayTipi \n AN1..36 \n Z \n TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden birini alır. \n \n \n >Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n TR.OHVPS.DataCode.KaynakTip sıralı veri tiplerinden birini alır. \n \n \n >Kaynak Numarası \n kaynakNo \n AN1..128 \n Z \n Güncellenen kaynağa ait HHS sistemindeki tekil tanımlayıcı. \n \n \n \n Kaynak numarasında gönderilen değer ile ilgili kaynağı sorgulayarak almak YÖS'ün insiyatifindedir. \n ADIM 6: Sistem Olay Dinleme \n POST /sistem-olay-dinleme \n HHS'lerin sistem olaylarını dinleme amacıyla açması gereken endpoint bilgisidir. \n YÖS API içerisinde yapılan değişikliklerde, BKM tarafından HHS'lere olay bildirimlerini yapılır. \n Olaylar yanıt nesnesi içerisinde 1 adet kayıt yer almalıdır. \n Başarılı POST isteği sonucu HTTP 202 Accepted kodu ile dönülmelidir. \n HHS'den başarılı yanıt alınamadığı durumda, 5 dakika aralıklarla 3 kez deneme yapılacaktır. Hata alınmaya devam edilmesi durumunda başka bir aksiyon alınmayacaktır. \n Olay Dinleme Servisleri (ODS) \n YÖS sunacağı Olay Dinleme Servisi ile hem HHS'den hem de BKM'den gelen olayların bildirimini dinleyebilir. YÖS'ler HHS'de yer alan olay abonelik kayıtlarını iptal edebilir ancak BKM Sistem Olay Dinleme servisinin ileteceği bildirimlerin alınması zorunlu olduğundan ODS API her zaman aktif olmalıdır. \n HHS'den gelecek olay bildirimlerini olay-dinleme endpointi ile dinlerken, BKM'den gelecek olay bildirimlerini sistem-olay-dinleme endpointi ile dinlemelidir. \n Olay Dinleme Servislerinde Idempotency kurallarının işletilmesine gerek bulunmamaktadır. \n Olay Dinleme Servisine ait API Endpointleri aşağıdaki tabloda listelenmiştir. \n Olay Dinleme Servisleri için Erişim Adresleri (Endpoints) \n Etki Alanı (Scope) =“olay_dinleme” \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu (Z)/ İsteğe Bağlı(İ) \n Yetkilendirme Türü \n İmzalama \n Parametre \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n olay-dinleme \n POST \n /olay-dinleme \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek \n - \n Olaylar \n - \n \n \n 2 \n sistem-olay-dinleme \n POST \n /olay-dinleme \n Z \n İstemci Kimlik Bilgileri \n 
16- \n - \n Olaylar \n - \n ADIM 1: Olay Dinleme \n POST /olay-dinleme \n Olay abonelik servisi ile abone olunan olaylar, olay dinleme servisi ile YÖS'e iletilir.\nOlaylar yanıt nesnesi içerisinde en fazla 100 kayıt gönderilmelidir.\nBaşarılı POST isteği sonucu HTTP 202 Accepted ile dönülmelidir. \n HHS'nin işlem hata aldığında, başarılı işlem olana kadar 3 kez deneme yapılması gerekmektedir.\nİlk istekle son istek arasında 30 dakika olacak şekilde, zamana yayarak bu denemelerin yapılması gerekmektedir. (Exponential backoff policy uygulanması beklenmektedir. )\nHHS kendi sistemini yormayacak şekilde, belirleyeceği kurallar dahilinde bu geliştirmeyi yapmalıdır. \n Tablo 17: Olaylar nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format \n Zorunlu / Koşullu /  İsteğe bağlı \n Açıklama \n \n \n \n \n >Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >>Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n >> Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n >Olaylar \n olaylar \n Kompleks: Olaylar \n Z \n \n \n \n >>Olay Numarası \n olayNo \n AN1..64 \n Z \n Olaya ait atanmış tekil kimlik numarası \n \n \n >>Olay Zamanı \n olayZamani \n ISODateTime \n Z \n Olayın oluşma zamanı \n \n \n >>Olay Tipi \n olayTipi \n AN1..36 \n > \n TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden birini alır. \n \n \n >>Kaynak Tipi \n kaynakTipi \n AN1..36 \n Z \n TR.OHVPS.DataCode.KaynakTip sıralı veri tiplerinden birini alır. \n \n \n >>Kaynak Numarası \n kaynakNo \n AN1..128 \n Z \n Güncellenen kaynağa ait HHS sistemindeki tekil tanımlayıcı. \n ADIM 2:  Sistem Olay Dinleme \n POST /sistem-olay-dinleme \n YÖS'lerin sistem olaylarını dinleme amacıyla açması gereken endpoint bilgisidir. \n HHS API içerisinde yapılan değişikliklerde, BKM tarafından YÖS'lere olay bildirimlerini yapılır. \n Olaylar yanıt nesnesi içerisinde 1 adet kayıt yer almalıdır. \n Başarılı POST isteği sonucu HTTP 202 Accepted kodu ile dönülmelidir. \n YÖS'ten başarılı yanıt alınamadığı durumda, 5 dakika aralıklarla 3 kez deneme yapılacaktır. Hata alınmaya devam edilmesi durumunda başka bir aksiyon alınmayacaktır. \n"},{title:"6.\tÖdeme Emri Başlatma Hizmeti",frontmatter:{},regularPath:"/v2.0.1/contents/odeme-emri-baslatma-hizmeti.html",relativePath:"v2.0.1/contents/odeme-emri-baslatma-hizmeti.md",key:"v-4700a39d",path:"/v2.0.1/contents/odeme-emri-baslatma-hizmeti.html",headers:[{level:3,title:"Ödeme Emri Başlatma Hizmeti için Erişim Adresleri (Endpoints)",slug:"odeme-emri-baslatma-hizmeti-icin-erisim-adresleri-endpoints"},{level:2,title:"6.1.\tADIM 0 - Ödeme Emri Başlatma Isteği",slug:"_6-1-adim-0-odeme-emri-baslatma-istegi"},{level:2,title:"6.2.\tADIM 1 - Ödeme Emri Rızasının Hazırlanması",slug:"_6-2-adim-1-odeme-emri-rızasının-hazırlanması"},{level:2,title:"6.3.\tADIM 2- Ödeme Emri Rızasının Yetkilendirilmesi",slug:"_6-3-adim-2-odeme-emri-rızasının-yetkilendirilmesi"},{level:2,title:"6.4.\tADIM 2.1 – Ödeme Emri Rızasının Sorgulanması (isteğe bağlı)",slug:"_6-4-adim-2-1-odeme-emri-rızasının-sorgulanması-istege-baglı"},{level:2,title:"6.5.\tADIM 3- Ödeme Emrinin Oluşturulması",slug:"_6-5-adim-3-odeme-emrinin-olusturulması"},{level:2,title:"6.6.\tADIM 3.1- Ödeme Emri Sorgusu (İsteğe bağlı)",slug:"_6-6-adim-3-1-odeme-emri-sorgusu-istege-baglı"},{level:3,title:"GET /odeme-emri/{odemeEmriNo}",slug:"get-odeme-emri-odemeemrino"}],content:" 6.\tÖdeme Emri Başlatma Hizmeti \n Ödeme emri başlatma işlemi havale, FAST ya da PÖS ödemesiyle sonuçlanabilir. Ödeme işleminin amacı kişiden kişiye para transferi, e-ticaret ödemesi gibi farklı ödeme türleri olabilir. Ödemenin amacına göre ÖBHS’nin ileteceği veri setinde farklılaşmalar olabilir. \n Ödeme Emri Başlatma Hizmeti 5 temel akışdan oluşur: \n \n Ödeme Emri Başlatma İsteğinin tetiklenmesi:  ÖHK ÖBHS mobil uygulama ya da websitesinden ödeme emrini başlatır. \n Ödeme Emri Rıza Hazırlanması:  ÖBHS, “Ödeme Emri Başlatma” işlemi için izin oluşturulması isteğini HHS’ye iletir. \n Ödeme Emri Rızasının Yetkilendirilmesi:  HHS, gerekli gördüğü durumlarda ÖHK’yı GKD ile doğrular ve ödeme emri rızasına erişim için erişim belirteci tanımlanmasını temin eder. \n Ödeme Emrinin Başlatılması:  ÖBHS, “ödeme emri”ni HHS’ye iletir. \n Ödeme Emri Rıza Durumu, Ödeme Emri Durumu, Ödeme Emri Detayı Sorguları:  ÖBHS, Ödeme Emri Rıza Durumu, Ödeme Emri Durumu, Ödeme Emri Detayı bilgilerini isteğe bağlı olarak sorgulayabilir. \n \n Nezdinde ödeme hesabı bulunduran hesap hizmeti sağlayıcılar(Banka, EPK, Ödeme Kuruluşları)  müşterilerine ait hesapları hesap referansı ya da hesap numarası üzerinden takip etmektedir. YÖS'lerin hem HBH hem de ÖBH servisleri için hesap referansı veya hesap numarası üzerinden işlem yapılabileceğini bilmeleri, sistemlerini API dokümanında belirtilen akışlara göre uyumlandırmaları ve müşteri bilgilendirmesini(önyüzlerinde hesap no ve hesap referansı ayrımını gözeterek) buna paralel yapmaları beklenmektedir. \n YÖS'ler gönderen hesap seçimini aşağıdaki yöntemlerden biri ya da birkaçı ile sağlayabilirler: \n \n YÖS, müşterisinin ödeme hesabını HHS ekranından seçtirebilir. \n YÖS, müşterisinden Hesap Bilgisi rızası alır. Rıza aldığı hesaplar üzerinden hesap referansı aracılığı ile ödeme emri başlatabilir. \n YÖS, müşterisinin ödeme hesabını elle girmesine olanak tanıyabilir. IBAN'ı olmayan HHS'ler ödeme emri rızası adımında  TR.OHVPS.Business.IBANNotSupported  hatasını vermelidir. IBAN'ı olan HHS'lerin bu akışı desteklemesi zorunludur. \n YÖS; müşterisinin hesap referansını elle girmesini sağlayabilir. Hesap Referansı bilgisi ile başlatılan ödeme emri işlemlerinde HHS seçimi zorunludur. \n \n Ödeme Sistemine doğrudan katılımcı olmayan HHS'ler, müşterilerine IBAN sunmadıkları için, YÖS'ler hesap referansı ile ödeme başlatabilirler. Bu
16nların dışındaki HHS'lerin, gönderen IBAN veya hesap referansı ile ödeme akışını desteklemesi zorunludur. \n \n Şekil 4: Ödeme Emri Başlatma Hizmeti Üst Düzey İş Akışı \n Ödeme Emri Başlatma Hizmeti için Erişim Adresleri (Endpoints) \n Ödeme Emri Başlatma Hizmeti İçin Erişim Adreslerinin Etki Alanı (Scope) = “odeme_emri” olarak belirtilmelidir. \n Tablo 6: Ödeme Emri Başlatma Hizmeti İçin Erişim Adresleri \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Zorunlu / İsteğe Bağlı \n Yetkilendirme Türü \n İmzalama \n İstem Nesnesi \n Yanıt Nesnesi \n \n \n \n \n 1 \n odeme-emri-rizasi \n POST \n /odeme-emri-rizasi \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n OdemeEmriRizasiIstegi \n OdemeEmriRizasi \n \n \n 2 \n erisim-belirteci (GKD için) \n POST \n /erisim-belirteci \n Z \n İstemci Kimlik Bilgileri \n İmzalı İstek ve Yanıt \n ErisimBelirteciIstegi \n ErisimBelirteci \n \n \n 2.1 \n odeme-emri-rizasi \n GET \n /odeme-emri-rizasi/{rizaNo} \n Z \n İstemci Kimlik Bilgileri \n İmzalı Yanıt \n - \n OdemeEmriRizaYaniti \n \n \n 3 \n odeme-emri \n POST \n /odeme-emri \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı İstek ve Yanıt \n OdemeEmriIstegi \n OdemeEmri \n \n \n 3.1 \n odeme-emri \n GET \n /odeme-emri/{odemeEmriNo} \n Z \n İstemci Kimlik Bilgileri & Yetkilendirme Kodu (GKD) \n İmzalı Yanıt \n - \n OdemeEmri \n 6.1.\tADIM 0 - Ödeme Emri Başlatma Isteği \n \n ÖHK, ÖBHS uygulamasında (web arayüzü/mobil uygulama) ödeme emri başlatma işlemine onay verir. \n Gönderen hesap detaylarının bu aşamada belirtilmesi zorunlu değildir. \n 6.2.\tADIM 1 - Ödeme Emri Rızasının Hazırlanması \n   \n Şekil 5: Ödeme Emri Rızasının Hazırlanması \n \n \n ÖBHS, ödeme hizmeti kullanıcı hesabının bulunduğu HHS’ye bağlanarak ödeme emri rıza kaynağının oluşturulmasını (odemeEmriRizasi) sağlar. \n \n \n POST isteği TLS protokolü tesis edilen iletişim katmanı üzerinden gerçekleştirilir. TLS için nitelikli sertifikalar kullanılır. \n \n \n POST isteğinin başlığındaki alanlar ve istemcinin sertifikasındaki özel alanlar kullanılarak istemcinin yetkilendirilmesi sağlanır: \n \n İstekte bulunan ÖBHS yetkilendirilmiş olduğu geçit tarafından kontrol edilir. \n İstekte bulunan yetkilendirilmiş ödeme hizmeti sağlayıcısı ÖBHS rolüne sahipliği geçit tarafından kontrol edilir. \n HHS tarafından, istek başlığındaki x-aspsp-code ile katilimciBlg içerisinde yer alan hhsKod değeri ile aynı olduğunu kontrol edilir. Farklı olması durumunda  “TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n \n \n \n POST başarılı olursa, HHS, ödeme emri için içeride rıza olup olmamasına bakılmaksızın yeni bir rıza tanımlayıcısı RizaNo içeren odemeEmriRizasi  yanıt olarak döner. \n \n \n 1 ÖHK'nın 1 YÖS için 1HHS'de istediği kadar rızası olabilir. \n \n \n HHS tarafında RizaDurumu değişkeninin durumu “Yetki Bekleniyor” olarak güncellenir. \n \n \n YÖS’ün doğrulama ekranı olarak ÖHK’ya açacağı URL adresini de ilgili rıza numarasına göre oluşturur. Burada 2 farklı yöntemle URL oluşturabilir. \n \n Statik URL  : \nHHS’nin base pathi/alt-dizin/{rızaNo} \nÖrnek hhsYonAdr : https://xbank.com.tr/ohvps/cb54834e36f742d09af3d534ece3352a \nBu adres için ilgili doğrulama sayfası önden hazırlanmalı ve ÖHK’nın doğrulama sayfasına erişimi için yayınlanmış olmalıdır (publish edilmelidir). \n Dinamik URL : \nHHS’nin base pathi/alt-dizin/GKD Karşılama Ekranı?rizano={rızano} \nÖrnek: https://xbank.com.tr/ohvps/gkd?rizano=cb54834e36f742d09af3d534ece3352a \n \n \n \n POST /odeme-emri-rizasi \n İSTEK: \n ÖBHS, bu API erişim adresinden HHS’ye yeni bir OdemeEmriRizasi oluşturulması için istekte bulunur: \n \n ÖBHS, ödeme emri başlatma isteği olduğunu HHS’ye bildirir. \n ÖBHS, ÖHK’nın, ÖBHS arayüzünden verdiği rızanın (“Ön Onay”) bir kopyasının HHS nezdinde müşteri tarafından onaylanması için HHS’ye gönderilmesini sağlar. \n HHS; istek mesajında yer alan alanların ÖHVPS API İlke ve Kuralları dökümanında belirtilen şartları sağlayacak şekilde zorunluluk, uzunluk ve içerik kontrollerini y
16apar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Resource.InvalidFormat\"  hata kodu iletilmeli ve fieldErrors dolu olacak şekilde hatalı alanı belirten detaylı açıklama gönderilmelidir. InvalidFormat hata kodlarında fieldErrors içeriği gönderilmeli ve anlaşılır açıklama ile message, messageTr alanları doldurulması zorunludur. \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidTPP”  hatası dönülür. \n HHS; YÖS API ile alınan ÖBHS bilgilerinin içerisinde yer alan yönlendirme adresleri ile ödeme emri rızası nesnesi request mesajında paylaşılan adreslerin uyumlu olup olmadığının kontrollerini yapar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Business.TPPRedirectionAddressMismatch\"  hatası dönülür. \n HHS; kimlik bilgileri nesnesinde eğer kimlik bilgileri iletilmiş ise; bu veri ile ÖHK’nın HHS müşterisi olup olmadığının kontrollerini yapar. Bu kontrol hem bireysel hem de kurumsal ÖHK’lar için yapılmalıdır. (Koşullu Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Business.CustomerNotFound\"  hatası dönülür. Kurumsal müşteri ile başlatılan rızada yer alan müşteri bilgisinin karşı kurumda Kurumsal müşteri değil; bireysel müşteri olduğu durumda  TR.OHVPS.Business.BusinessCustomerMismatch  hatası dönülür. \n Ödeme Emri Başlatma Hizmeti rıza isteğinde bulunan ÖHK’nın “Açık Bankacılık Kanal Yetki” tanımı yok ise  \"TR.OHVPS.Business.OpenBankingChannelClosed\"  hatası dönülür. HHS insiyatifinde olup HHS bu kontrolü GKD sonrası gerçekleştirebilir. \n HHS \"gkd\" nesnesi için alan kontrollerini gerçekleştirir. \"yetYntm\" = \"A\" gönderilmiş ise \"ayrikGkd\" nesnesinin dolu gönderilmesi zorunludur. Gönderilmemesi durumunda HHS tarafından  \"TR.OHVPS.Resource.InvalidFormat\"  hatası dönülür. \n Ayrık GKD desteklemeyen HHS'ye Ayrık GKD yöntemiyle rıza başlatma isteği yapılması durumunda HHS tarafından  \"TR.OHVPS.Business.DecoupledAuthenticationNotSupported\"  hatası dönülür. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n Ayrık GKD ile başlatılan rıza akışlarında HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder. YÖS iki olay tipine de abone olmak zorundadır. Eğer olay aboneliği yoksa HHS tarafından  \"TR.OHVPS.Business.EventSubscriptionNotFound\"  hatası dönülür. \n Rıza başlatma akışı içerisinde kimlik bilgisinin olduğu durumlarda; ÖHK'ya ait kimlik verisi(kmlk.kmlkVrs) ile ayrık GKD içerisinde yer alan OHK Tanım Değer alanı (ayrikGkd.ohkTanimDeger) birebir aynı olmalıdır. Aynı olmadığı durumda HHS tarafından  \"TR.OHVPS.Business.CustomerInfoMismatch\"  hatası dönülür. Kimlik alanı içermeyen tek seferlik ödeme emri akışlarında bu kural geçerli değildir. GSM ve IBAN değerleri sadece tek seferlik ödemelerde kullanılabilir. \n HHS tarafında ÖHK'nın mobil uygulaması bulunmaması durumu tespit edilebildiği durumda Ayrık GKD ile başlatılan rıza akışlarında HHS tarafından  \"TR.OHVPS.Business.CustomerMobileApplicationNotFound\"  hatası dönülür. YÖS ilgili işlemi “Yönlendirmeli” akışa çekip süreci ilerletebilir. \n HHS kimlik bilgisi ile gönderen ünvanının uyumlu olduğunu kontrol eder. HHS'ler EFT/FAST işlemlerinde kabul ettikleri kontrol kriterleri ile işleme izin verebilirler. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Business.IncorrectSenderTitle\"  hatası dönülür. \n Gönderen Hesap Numarası ÖBHS tarafından iletildiği durumda;\n \n IBAN’ın doğruluğu (kontrol basamağı doğrulaması) kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.InvalidAccount\"  hatası dönülür. \n IBAN içerisindeki HHS kodunun istek başlığındaki HHS kodu ile aynı olduğu (hesabın HHS’ye aitliğinin kontrolü) kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.AccountCodeMismatch\"  hatası dönülür. \n Hesap numarasının ÖHK’ya ait olduğu kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.CustomerAccountMismatch\"  hatası dönülür. \n HHS’ye özel ödeme izni verilmeyen farklı statülerin bulunması durumu kontrol edilir. (İlgili hesabın para transfer işlemine yetkisi olmaması) Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.AccountUnauthorized\"  hatası dönülür. \n HHS’de gönderen hesabın aktifliği kontrol edilir. Kontrollere istinaden hata oluşması durumunda   \"TR.OHVPS.Business.AccountInactive\"  hatası dönülür. \n \n \n Gönderen Hesap Numarası için, He
16sap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir. Hesap referansı ile ödeme emri rızası başlatılacak ise HHS hesap referansı değeri ile ilişkilendirilmiş mevcut bir hesap bilgisi rızası var mı kontrol etmelidir. Eğer aktif bir rızası yok ise  \"TR.OHVPS.Business.ActiveConsentNotFound\"  hatası dönülür. \n Hesap bakiye kontrolünün rıza aşamasında yapılmaması gerekmektedir. Çünkü ÖHK ödeme emri gerçekleşene kadar hesabına para eklemesi yapabilir. \n Alıcı ve gönderen hesabın aynı olması durumunda  “TR.OHVPS.Business.SenderRecipientSame”  hatası dönmesi beklenmektedir. Bu hata HHS insiyatifindedir. \n Müşterinin kendi hesapları arasında talimat veremeyeceği durumların kontrolü için  “TR.OHVPS.Business.SameAccountTransferRestricted”  hatası dönmesi beklenmektedir. Bu hata HHS insiyatifindedir. \n \n Tek Seferlik Ödeme \n \n Tek seferlik ödeme akışı YÖS'ten HHS'ye giden istekte, gönderen kimlik bilgilerinin olmadığı durumda gerçekleşir. Gönderen kimlik bilgisi olmadığında, KOLAS sorgusu yapılamayacağından ötürü, HHS tarafından  \"TR.OHVPS.Resource.OneTimePaymentNotSupport\"  hatası dönülmelidir. ÖHK'nın YÖS'ün müşterisi olmadığı durumda tek seferlik ödeme başlatılabilir. \n Tek seferlik ödeme akışı hem işyeri ödemelerinde hem de kişiden kişiye para transferlerinde kullanılabilen bir akıştır. İşyeri tarafından başlatılan tek seferlik ödeme işlemlerinde katılımcılar gönderen ÖHK'dan ücret alınamaz. \n Tek seferlik ödeme akışı sadece bireysel müşteriler için kullanılabilir. Kurumsal müşteri ile ödeme emri başlatılması durumunda  \"TR.OHVPS.Resource.OneTimePaymentNotSupport\"  hatası dönülür.\nTek seferlik ödeme akışında hem yönlendirmeli hem de ayrık GKD akışı ile müşteri yetkilendirmesi sağlanabilir. \n Aşağıdaki senaryolar tek seferlik ödemeye örnek olarak gösterilebilir. \nİşyeri Ödemesi akışı örneği: Bir e-ticaret sitesinde, üye olmadan alışveriş yapılması ve ödemenin YÖS tarafından kimlik bilgisi olmadan başlatılması \nKişiden kişiye para transferi akışı örneği: QR veya diğer yöntemler ile alıcı bilgilerinin gönderici ile paylaşılması ve YÖS üzerinden gönderici bilgileri olmadan alıcıya para transferi yapılması için rıza verilmesi \n \n Yukarıdaki kontroller tamamlandıktan sonra HHS, ödeme için benzersiz “RizaNo” ile “OdemeEmriRizasi” nesnesi oluşturur ve ÖBHS’ye döner.  HHS, OdemeEmriRizasi oluşturduğu anda durumunu “Yetki Bekleniyor” olarak düzenler. \n Tek seferlik ödeme işlemlerinde (gönderen kimlik bilgilerinin boş olduğu durumda) ileri tarihli ve düzenli ödeme emri rızası başlatılabilir; ancak bu iş modelleri hizmete sunulmadan önce BKM ile paylaşılmalı ve onayı alınmalıdır. \n POST /odeme-emri-rizasi  isteğinin (REQUEST) gövdesinde (BODY)  “odemeEmriRizasiIstegi” nesnesi (Tablo-7) kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda “odemeEmriRizasi” (Tablo-8) nesnesi oluşturulur. \n  BAŞARILI İSTEK: \n Tablo 7: “OdemeEmriRizasiIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n HHS tarafından ödeme emri rızası oluşturulması sırasında yapılması gereken kontrol ve işlemler \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n İ \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. Yetkilendirme yöntemi, ÖBHS tarafından belirtilmeyebilir. \n HHS, HBHS’nin belirlediği yöntemi dikkate alarak süreci ilgili akışa uygun olarak devam ettirir. Desteklemediği yöntem için (örn: Ayrık GKD) ayrıca hata mesajı verilmelidir. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu.  YÖS’ün ileteceği adrestir.  Durum ko
16du(drmKod), yönlendirme adresine parametre olarak eklenmelidir. \n HHS, müşteri uygulama / tarayıcısını bu alanda belirtilen adrese yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n yetYntm = A gönderilmiş ise ayrikGkd nesnesinin dolu gönderilmesi zorunludur.   HHS, YÖS'ün AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ olay tipleri için olay aboneliğinin varlığını kontrol eder.  Bknz: Ayrık GKD \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir.  TR.OHVPS.DataCode.ohkTanimTip  sıralı veri tiplerinden birini alır. \n \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir. \n \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n K \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS geçerli bir Kimlik Numarası Türü olduğunu kontrol eder. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n K \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS, ÖBHS tarafından iletilmesi durumunda Kimlik Verisi üzeriden çapraz kontroller uygulamalı ve Kimlik Verisini temel alarak GKD gerçekleştirmelidir.  Pasaport numarasına ilişkin kontroller HHS'nin halihazırda kullandığı veri, akış ve tabi olduğu diğer düzenlemelerdeki işleyiş ile aynı şekilde ele alınmalıdır.  Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur.  HHS geçerli bir Kurum Kimlik Numarası Türü olduğunu kontrol eder. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur.  HHS, ÖBHS tarafından iletilmesi durumunda Kurum Kimlik Verisi üzeriden çapraz kontroller uygulamalıdır. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n Kurum adına yapılan ödemelerde K değerini alır. Kurum Kimlik Türü ve Kurum Kimlik Verisi alanlarının girilmiş olduğu çapraz olarak kontrol edilir. \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n HHS geçerli bir para birimi olduğu kontrol eder. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n İ \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n K \n Gönderenin ünvanıdır.  HHS, bu bilgiyi ÖBHS sisteminden gelen veri yerine FAST’a iletirken kendi sisteminden alabilir.  Tek seferlik ödeme dışında YÖS'ün gönderen ünvanını göndermesi zorunludur. \n HHS’nin bu veri ile kendi sistemlerindeki verinin farklı olması ve Kimlik Numarası ile eşleşmemesi durumunda ödeme emri başlatma isteği reddedilir.  ÖBHS verisi ile HHS verisinin farklılaşması durumunun ise risk değerlendirme sistemlerine girdi olarak kullanması tavsiye edilir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n İ \n ÖBHS'nin ön yüzünden daha önce kayıt altına alınmış hesaplar arasından seçtirdiği veya müşteriye girdiği IBAN’dır.  ÖBHS tarafından iletilmediği durumda, gönderen hesap bilgisini müşteri tarafından HHS’nin dijital kanalında GKD sonrasında seçilebilir. Bu amaçla ÖBHS arayüzünde HHS seçtirilmelidir.  Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir. Hesap referansı ile ödeme emri rızası başlatılacak ise HHS hesap referansı değeri ile ilişkilendirilmiş mevcut bir hesap bilgisi rızası var mı kontrol etmelidir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n ÖBHS tarafından iletildiği durumda; IBAN içerisindeki HHS kodunun istek başlığındaki HHS kodu ile aynı olduğu (hesabın HHS’ye aitliğinin kontrolü), IBAN’ın doğruluğu (kontrol basamağı doğrulaması), Hesap numarasının ÖHK’ya ait olduğu, HHS’ye özel ödeme izni verilmeyen farklı statülerin bulunması durumu kontrol edilir. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n İ \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez.  ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir.  Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan HHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n HspRef'e bağlı IBAN değiştiğinde yeni IBAN'ın da ilgili HspRef ile ilişkilendirilmesi beklenmektedir. Bu durumda, HBHS, Hs
16pRef ile sorguya geldiğinde HHS'nin yeni IBAN ve hesap hareketlerini dönebilmesi mümkün olacaktır. HspRef’in, IBAN değiştiğinde değiştirilmemesi tavsiye edilmektedir. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n K \n Kolay Adres Sistemi  kullanılmıyorsa zorunludur.  Alıcının ünvanıdır. ÖBHS ekranlarından girişi yapılabileceği gibi ÖBHS’nin kayıtlı alıcılarından yapılan seçimle de doldurup gönderebildiği bilgi olabilir.  FAST-TR Karekod Veri Organizasyonunda;  İşyeri tarafından sunulan uzun karekod yapısının  59:  alanında tanımlı İşyeri adı alanıdır, Kişiden Kişiye Ödeme Karekod Yapısının  07:  alanında tanımlı    Ödeme Alıcısının Adı ve Soyadı  alanıdır.  FAST-TR Karekod dışındaki iş yeri ödemelerinde; yine ünvan alanında işyeri adı bilgisi gönderilmelidir. \n \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n Alıcının Hesap Numarası (IBAN)  alanıdır.   Kolay Adres Sistemi  kullanılmıyorsa zorunludur.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  30-01:  alanında tanımlı İş Yeri IBAN verisi kullanılır.  Alıcının birden fazla hesabının kullanılabilir olduğu durumlarda (özellikle işyeri ödemelerinde HHS nezdindeki hesap (on-us havale akışı) tercih edilmelidir. \n HHS (Gönderen Katılımcı) tarafından IBAN doğrulaması (kontrol basamağı doğrulaması) yapılır. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n Tek seferlik ödemelerde ( kimlik bilgileri boş iletildiğinde) KOLAS nesnesi dolu iletiliyorsa; HHS tarafından hata dönülmelidir \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n HHS (Gönderen FAST katılımcısı) tarafından KOLAS Servisine yapılan sorguda girdi olarak kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n HHS (Gönderen FAST katılımcısı) tarafından KOLAS Servisine yapılan sorguda girdi olarak kullanılır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n TR.OHVPS.DataCode.KareKodAksTur  sıralı veri değerlerinden birini alır. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını  gösterir. Okunan karekodda referans değeri varsa kullanılması zorunludur.  Karekod ilke ve kurallar belgesinde tanımlandığı şekilde kullanılması gerekmektedir.  Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR Karekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri veri değerlerinden “O” değeri atanarak iletilmelidir. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n HHS, YÖS'ün API deseninde \"O\" kodunu ilettiğini kontrol eder. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n HHS geçerli bir Ödeme Amacı kodu olduğunu kontrol eder. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarında: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.   -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -\tİşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n YÖS bu değeri ÖHK’yı HHS’ye yönlendirmeden önceki ekranda göstermeli, ve HHS bu değeri GKD için kullandığı önyüzünde “işlem doğrulama kodunun” bir unsuru olarak yine ÖHK’ya göstermelidir. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n K \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği 
16için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda istekte yer alır.  İşyeri Ödeme Bilgileri, YÖS uygulama önyüzünde ÖHK’nın bildiği ve girişi yapılması beklenen bir bilgi olmamalıdır. YÖS tarafından sistemsel olarak doldurulması gereklidir. \n \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n K \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir.  4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n K \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). 4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n K \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n  BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “OdemeEmriRizasi” nesnesi Tablo-8’deki parametrelerden oluşur: \n Tablo 8: “OdemeEmriRizasi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n > Güncellenme Zamanı \n gnclZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin güncellenme zamanı \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n > Rıza Iptal Detay Kodu \n rizaIptDtyKod \n AN2 \n K \n Rıza durumunun iptal olduğu durumda zorunludur. Alabileceği değerler 4. Bölümde detaylandırılmıştır. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır.  HHS, ÖBHS’nin belirlediği yöntemi dikkate alarak kendi belirlediği yöntemi kullanır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n \n \n \n \n \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   HHS tarafından maksimum 5 dk içinde işlem tamamlanacak şekil zaman damgası oluşturulur. Zaman aşımı olduğunda HHS’nin GKD’ye izin vermeyecek şekilde hata mesajı vermesi gerekmektedir.  Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n K \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n K \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n >>
16 Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n İ \n \n \n \n >> Ünvan \n unv \n AN3..140 \n K \n Gönderenin ünvanıdır.  HHS, bu bilgiyi ÖBHS sisteminden gelen veri yerine FAST’a iletirken kendi sisteminden alabilir.   Tek seferlik ödeme dışında YÖS'ün gönderen ünvanını göndermesi zorunludur. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n İ \n ÖBHS'nin ön yüzünden daha önce kayıt altına alınmış hesaplar arasından seçtirdiği veya müşteriye girdiği IBAN’dır.  ÖBHS tarafından iletilmediği durumda, gönderen hesap bilgisini müşteri tarafından HHS’nin dijital kanalında GKD sonrasında seçilebilir. Bu amaçla ÖBHS arayüzünde HHS seçtirilmelidir.   GKD sonrası HHS ekranında seçilen Hesap Numarası POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir.    Hesap Referansı kullanılıyorsa Hesap Numarası kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n İ \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid). YÖS bazında farklılaşması gerekmez.  ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir.   GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir.    Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.    Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari ünvan bilgisidir. Kolas’tan dönen “account owner” alanı kullanılmalıdır. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen ünvan bilgisidir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n ÖBHS tarafından istek mesajında iletilip doğrulanan veya Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen alıcı maskeli IBAN bilgisidir. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n TR.OHVPS.DataCode.KareKodAksTur  sıralı veri değerlerinden birini alır. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını  gösterir. \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O” değerini alır. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. Karekod akışında, FAST Karekod Veri Organizasyonundaki 62-08: alanında tanımlı Ödeme Amacı verisi kullanılır. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  - İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n >> Ödeme Sistemi \n odmStm \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeSistemi  sıralı veri değerlerinden birini alır. \n \n \n >> Beklenen Ödeme Zamanı \n bekOdmZmn \n ISODateTime \n K \n İşlemin yönlendirildiği ödeme sistemi PÖS ise ve PÖS işlem saatleri dışında ise işlemin yapılabileceği ilk zaman bilgisidir. Bu alan ileri vadeli ödemeler için düşünülmüştür. İlk fazda doldurulmasına gerek olmadığı düşünülmektedir. \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n K \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda yanıtta yer alır. \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n K \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir. \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n K \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n K \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n 6.3.\tADIM 2- Ödeme Emri Rızasının Yetkilendirilmesi \n   \n Şekil 6: Ödeme Emri Rızasının Yetkilendirilmesi \n ÖBHS, ÖHK’nın ödeme emrini yetkilendirmesi isteğini iletir. Ödeme emrinin yetkilendirilmesi, HHS tarafından gerçekleştirilen Yönlendirme veya Ayrık GKD yöntemiyle yapılır. \n \n \n Yönlendirmeli doğrulama akışında , ÖBHS ÖHK’yı HHS’ye yönlendirir. \n \n ÖBHS tarafından yönlendirme, bir önceki adımdaki RizaNo’yu içerir. \n Yönlendirmenin RizaNo’yu içermesi sayesinde, HHS hangi ödeme emriyle ilişkili olarak yönlendirme yapıldığını ilişkilendirebilir. \n HHS, ÖHK için GKD sürecini işletir. \n \n ÖHK’yı doğrularsa, \n \n ÖHK -bir önceki adımda seçmediyse- borçlu hesabını seçer. \n HHS, ödeme emri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n HHS, ÖHK’yı “olumlu yönlendirme akışı” ile ÖBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n \n \n \n yonAdr?rizaDrm=Y&yetKod=xx&rizaNo=yy&rizaTip=O&drmKod=zzz\n \n ÖHK’yı doğrulayamazsa, \n1. HHS, ödeme emri rıza kaynağının durumunu “Yetki İptal” olarak günceller. \n2. HHS, 
16ÖHK’yı “olumsuz yönlendirme akışı” ile ÖBHS tarafından tanımlanan yönlendirme adresine yönlendirir: \n yonAdr?rizaDrm=I&rizaNo=yy&rizaTip=O&drmKod=zzz\n \n HHS tarafında oluşabilecek bir hata durumunun YÖS’e aktarılması gerektiği durumlar olabilir. Bu durumda yonlendirme adresinde hata kodu parametresi zorunlu olarak iletilmelidir. \nHata açıklamalarının neler olabileceği ve YÖS’ün kendi uygulamasında bu hatayı ne şekilde göstereceği aşağıda tariflenmiştir. \n yonAdr?rizaDrm=I&rizaNo=yy&rizaTip=O&rizaIptDtyKod=11&drmKod=zzz\n \n URL’de iletilen “Rıza İptal Detay Kodu” Rıza durumları bölümünde (4. Bölüm) belirtilen hata kodları ile aynı olacak şekilde tasarlanmıştır. GKD sırasında yapılması gereken kontroller 5.3 bölümünde detaylandırılmıştır. \n \n Ayrık doğrulama akışında , HHS, ÖHK’nın ödeme emrini başlattığı uygulamadan farklı olabilecek bir “doğrulama” uygulamasında işlemi doğrulamasını ister.\n \n Ayrık akış ÖBHS’nin farklı bir kanal kullanarak yetkilendirme isteği göndermesiyle başlatılır. \n Bu yetkilendirme isteği, yetkilendirilecek ödeme emri rızasının eşleştirileceği ÖHK’nın bulunması için ilgili veriyi taşır. \n HHS, ÖHK’yı doğrular. \n ÖHK -bir önceki adımda seçmediyse- borçlandırılacak hesabını seçer. \n HHS, ödeme emri rıza kaynağının durumunu “Yetkilendirildi” olarak günceller. \n \n \n \n Başarılı GKD sonrasında (rizaDrm=’Y’) ilgili rıza nesnesi için (belirli bir rizaNo) yetkilendirme kodunun (yetKod) alınmasının ardından erişim belirteci erişim adresine POST çağrısı yapılarak yetkilendirme kodu karşılığında erişim belirteci ve yenileme belirteci alınır. POST /erişim-belirteci erişim noktası EK-3’te açıklanmıştır. \n Erişim belirteci alındıktan sonra; HHS, ödeme emri rıza kaynağının durumunu “Yetki Kullanıldı” olarak günceller. \n 6.4.\tADIM 2.1 – Ödeme Emri Rızasının Sorgulanması (isteğe bağlı) \n   \n Şekil 7: “odemeEmriRizasi” nesnesinin sorgulanması (isteğe bağlı) \n GKD işleminin başarıyla tamamlanıp Ödeme Emri Rızasının yetkilendirilmesi esnasında, gönderen hesap seçiminin HHS ekranında yapıldığı durumlar olabilir. Bu durumlarda ödeme emri isteğinde gönderen hesap bilgileri alanının zorunlu olması nedeniyle,  OdemeEmriRizasi  nesnesi sorgulanarak gönderen hesap bilgileri (hesap numarası ve/veya hesap referansı) alınmalıdır. HHS, “ ADIM 2 -Ödeme Emri Rızasının Yetkilendirilmesi ” akışında ÖHK’nın hesapları arasında seçim yapmasını ve seçilen hesap bilgisinin  OdemeEmriRizasi  nesnesine işler. \n GET /odeme-emri-rizasi/{RizaNo} \n ÖBHS, mevcut durumunu kontrol etmek için, oluşturulan bir  OdemeEmriRizasi  kaynağının durumunu isteğe bağlı olarak alabilir. \n \n Sorgulama yapılan ödeme emri rızası HHS tarafında bulunmuyor ise  \"TR.OHVPS.ResourceNotFound\"  hatası dönülür. \n \n Servis başarılı yanıtında Tablo 8’de belirtilen \"OdemeEmriRizasi\" nesnesini dönmektedir. \n Durum \n OdemeEmriRizasi  kaynağı için kullanılabilecek durum göstergeleri şu şekildedir: \n \n Yetki Bekleniyor \n Yetkilendirildi \n Yetki Kullanıldı \n Yetki Ödeme Emrine Dönüştü \n Yetki Sonlandırıldı \n Yetki İptal \n \n Ödeme Emri Rızası sonlandırıldı ve iptal statüsünde olan rıza'ların güncellenme zamanından(gnclZmn) 6 ay sonrasına kadar sorgulanabilir olması beklenmektedir. HHS'ler ilgili süre sonrasında yapılacak rıza sorgularına \" TR.OHVPS.Resource.NotFound\"  uyarısı verebilir. YÖS'ler tarafından iptal ve sonlandırıldı statüsünde olan rızalar için sorgulama yapmamalıdır. \n Ödeme emri rıza durum değişiklikleri 4.2 bölümünde detaylandırılmıştır. \n BAŞARILI YANIT: \n GET /odeme-emri-rizasi/{RizaNo}  yanıtının (RESPONSE) gövdesinde (BODY)  “OdemeEmriRizasiİstegi” nesnesi kullanılır. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda Tablo-8’de yer alan parametreleri içeren “OdemeEmriRizasi” oluşturulur. \n Gönderen Hesap Bilgisinin, ADIM 2 (Ödeme Emri Rızasının Yetkilendirilmesi) sonrasında HHS ekranından seçildiği akışta “OdemeEmriRizasi” nesnesi güncellenir ve ÖBHS  GET /odeme-emri-rizasi/{RizaNo}  isteği yaparak güncel gönderen hesap bilgisi bilgisini de içeren “OdemeEmriRizasi” nesnesini çekmelidir. \n Çerçeve sözleşme kapsamında olmayan tek seferlik ödeme işlemlerinde, Kimlik Türü ve Kimlik Verisi bilgilerinin ödeme emri rızası sırasında gönderimi zorunlu değildir. Başarılı GKD sonrası, yani erişim belirteci alındığında, ödeme emri oluşmadan önce, YÖS’ün ödeme emri rızasını sorgulayarak bu bilgileri alması ve ödeme emrini oluştururken Kimlik Türü, Kimlik Verisi ve Gönderen Ünvan alanlarını dolu olarak göndermesi beklenmektedir.  Ancak rıza durumu “Yetki Bekleniyor - B”, “Yetkilendirildi - Y” ve “Yetki İptal - I” statülerinde ise, ödeme emri rızası sorgulamasında, HHS’nin Kimlik Türü ve Kimlik Verisi bilgisini Y
16ÖS ile paylaşmaması gerekmektedir. \n 6.5.\tADIM 3- Ödeme Emrinin Oluşturulması \n   \n Şekil 8: Ödeme Emrinin Oluşturulması \n POST /odeme-emri \n ÖHK’nın Güçlü Kimlik Doğrulama ile işlemi yetkilendirmesi sonrasında, ÖBHS OdemeEmri kaynağını oluşturur. \n Ödeme emri (OdemeEmri) uygun ödeme kaynağına POST isteği yapılarak başlatılır. \n \n Erişim Belirteci kontrolü yapılır. Geçerli bir Erişim Belirteci yok ise  \"TR.OHVPS.Connection.InvalidToken\"  hatası dönülür. \n HHS; istek mesajında yer alan alanların ÖHVPS API İlke ve Kuralları dökümanında belirtilen şartları sağlayacak şekilde zorunluluk, uzunluk ve içerik kontrollerini yapar. (Zorunlu) Kontrollere istinaden hata oluşması durumunda  \"TR.OHVPS.Resource.InvalidFormat\"  hatası dönülür. \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidASPSP”  hatası dönülür. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. Farklı olması durumunda  ”TR.OHVPS.Connection.InvalidTPP”  hatası dönülür. \n Rıza durumu kontrol edilir.\n \n B: Yetki Bekleniyor, Y: Yetkilendirildi  ya da E: Yetki Ödeme Emrine Dönüştü ise  “TR.OHVPS.Resource.ConsentMismatch”  hatası dönülür. \n I: Rıza İptal ya da S: Yetki Sonlandırıldı ise  ”TR.OHVPS.Resource.ConsentRevoked”  hatası dönülür. \n RizaDurumu “K: Yetki Kullanıldı” ise kontrollere devam edilir. \n \n \n POST /odeme-emri-rizasi ile POST /odeme-emri isteklerinde istek alanların aynı olması beklenmektedir. HHS tarafından kontrolü sağlanmalıdır. Ödeme emri rızasında gönderilen değerlerden farklı bir değer gönderildiği durumda  “TR.OHVPS.Business.FieldMismatch”  hatası dönülür. \n HHS tarafından Ödeme Emrinin Oluşturulması API'sine istek yapıldığında müşterinin bakiyesi kontrol edilir. Bakiye yetersiz ise HHS tarafından  \"TR.OHVPS.Business.BalanceInsufficient\"  hatası dönülür. Müşterinin hesabında bakiye olması ancak günlük işlem limitine takılması durumunda ise  TR.OHVPS.Business.ExceededTransactionLimit  hatası dönülür. \n \n Yukarıdaki kontroller tamamlandıktan sonra, içerisinde OdemeEmriNo ve OdemeEmriDurumu değişkenleri de bulunan OdemeEmri nesnesi ÖBHS’ye döner ve RizaDurumu değişkenin değeri “Yetki Ödeme Emrine Dönüştü” olarak güncellenir. \n \n POST verisindeki Gönderen Hesap Numarası ve Alıcı Hesap Numarasının aynı bankaya aitse HAVALE değilse FAST veya PÖS iş akışına geçilir. \n OdemeEmriDurumu “Gerçekleşti” / “Gönderildi” / “Gerçekleşmedi” olarak güncellenir. \n \n BAŞARILI İSTEK: \n Tablo 9: “OdemeEmriIstegi” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n HHS tarafından ödeme emri oluşturulması sırasında yapılması gereken kontrol ve işlemler \n FAST A01 PÖS M01 mesaj mapping \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanı \n \n \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n \n \n >Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n HHS, hhsKod’un kendisine ait olduğunu ve istek başlığındaki x-aspsp-code değeri ile aynı olduğunu kontrol eder. \n Gönderen katılımcı kodu (yani bankanın FAST/PÖS’teki Katılımcı kodu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n HHS, yosKod’un geçerli bir Ödeme Hizmeti Sağlayıcısı Kodu olduğunu ve istek başlığındaki x-tpp-code değeri ile aynı olduğunu kontrol eder. \n YosKod \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n \n \n >Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n \n \n >Yönlendirme Adresi \n yonAdr \n AN1..1024 \n K \n Yönlendirmeli güçlü kimlik doğrulama için zorunludur. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n \n \n \n \n \n \n \n \n \n \n \n >Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n yetYntm = A gönderilmiş ise ayrikGkd nesnesinin dolu gönderilmesi zorunludur. yetYntm = Y için bu nesne iletilmemelidir. \n \n \n \n >>OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n \n \n >>OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n \n \n >HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n \n \n >Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. Ödeme Emri Rizası Nesnesindeki Kimlik Numarası Türü verisi ile aynı olmalıdır. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik türünün bu alanda gönderilmesi zorunludur. \n \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n Çerçeve sözleşme kapsamındaki ödemelerde kullanımı zorunludur. HHS, ÖBHS tarafından iletilmesi durumunda Kimlik Verisi üzeriden çapraz kontroller uygulamalı ve Kimlik Verisini temel alarak GKD gerçekleştirmelidir. Ödeme Emri Rizası Nesnesindeki Kimlik Numarası verisi ile aynı olmalıdır. Gerçek kişi tarafından yapılan ödemelerde, 
161. HHS, Gönderen Adı ve Gönderen Hesap Numarasını ödeme emri isteğinde (Havale/FAST/PÖS) gönderir. - Gönderen Adı ve diğer tüm müşteri bilgileri, Kimlik Numarası üzerinden elde edillir. Pasaport numarasına ilişkin kontroller HHS'nin halihazırda kullandığı veri, akış ve tabi olduğu diğer düzenlemelerdeki işleyiş ile aynı şekilde ele alınmalıdır. Kurum adına yapılan (ticari) ödemelerde, kurum adına işlem yapan kullanıcının kimlik verisi bu alanda gönderilebilmesi zorunludur. \n GonKimN / Psp \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur. Ödeme Emri Rizası Nesnesindeki Kurum Kimlik Türü verisi ile aynı olmalıdır. \n \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n Kurum adına yapılan (ticari) ödemelerde kullanımı zorunludur. Ödeme Emri Rizası Nesnesindeki Kurum Kimlik Verisi ile aynı olmalıdır. \n GonKimN / VKN \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n Kurum adına yapılan ödemelerde K değerini alır. Kurum Kimlik Türü ve Kurum Kimlik Verisi alanlarının giilmiş olduğu çapraz olarak kontrol edilir.  Ödeme Emri Rizası Nesnesindeki ÖHK Türü ile aynı olmalıdır. \n \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n Ödeme Emri Rizası Nesnesindeki Para Birimi verisi ile aynı olmalıdır. \n \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.   Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n Ödeme Emri Rizası Nesnesindeki İşlem Tutarı verisi ile aynı olmalıdır. HHS işlem tutarı ödeme mesajında (Havale/FAST/PÖS) aynen taşınmak durumundadır. \n Ttr \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderen kişinin ad soyad ya da ticari ünvan bilgisi. \n HHS ve ÖBHS verisi tutarlı olmalıdır.  ÖBHS verisi ile HHS verisinin farklılaşması durumunun ise risk değerlendirme sistemlerine girdi olarak kullanması tavsiye edilir. \n GonAd \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n ÖBHS'nin ön yüzünden seçtirdiği/kullanıcıya girdiği IBAN Hesap numarası ya da Hesap Referansı alanlarından en az birinin dolu olarak gelmesi gerekmektedir. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Gönderen Hesap Numarası verisi ile aynı olmalıdır. \n GonHesN \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n K \n ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başlatılabilir. GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir. Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.   Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı 
16sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari ünvan bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen ünvan bilgisidir. \n YÖS’ten alıcı ad soyad bilgisi geliyorsa ve HHS'nin kontrolünden başarılı bir şekilde geçti ise HHS'nin tekrar alıcı ad soyad bilgisi için giriş yaptırmasına gerek bulunmamaktadır. \n AlAd \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n Alıcının Hesap Numarası alanıdır (IBAN). Kolay Adres  sorgusunda dönülen adres kaydı yaptırmış olan alıcının maskeli IBAN bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen IBAN bilgisidir. Karekod akışında, FAST Karekod Veri Organizasyonundaki 30-01: alanında tanımlı İş Yeri IBAN verisi kullanılır. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Alıcı Hesap Numarası verisi ile aynı olmalıdır.  Kontroller başarıyla sonuçlanırsa, bilgi FAST/PÖS AlHesN alanına doğrudan aktarır ve FAST/PÖS Alan Katılımcı Kodu (AlKK) olarak Alıcı HHS Kodu kullanılır.  KOLAS sorgusu sonucunda ödeme emrinde iletilen maskeli bilgi ile HHS’nin kendi ödeme emri rızası isteğinde tuttuğu KOLAS sorgusundan dönülen bilgi maskelenerek karşılaştırılır. Eğer aynı değilse uygun hata kodu dönülerek işlem sonlandırılır. \n AlHesN \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n Müşterinin sorgulamak istediği Kolay Adres Tipi değeridir.  TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Kolay Adres Tipi verisi ile aynı olmalıdır. \n \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n Ödeme Emri Rizası Yanıtı Nesnesindeki Kolay Adres Değeri verisi ile aynı olmalıdır. \n FAST (KolasRef) \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n KolasRef ( hem FAST hem de PÖS için aynı) \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  Kolay Adresi Sistemi ile birlikte kullanılmaz.  01: FAST katılımcısından dinamik doğrulama hizmeti alınan işyeri ödemesi  02: FAST katılımcısından statik doğrulama hizmeti alınan işyeri ödemesi 03: Kişiden kişiye ödemeler \n Ödeme Emri Rizası Nesnesindeki Kare Kod Akış Türü verisi ile aynı olmalıdır. \n FAST: KrkdAksTur \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını gösterir.  Okunan karekodda referans değeri varsa kullanılması zorunludur. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n Ödeme Emri Rizası Nesnesindeki Karekod Referansı verisi ile aynı olmalıdır.  Çevrimiçi doğrulama hizmeti alınmayan statik karekodlar için Referans numarasının bulunmadığı durumlarda HHS tarafından “NONREF” ifadesi girilir. \n FAST: Karekod Referansı (KrkdRef) \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR K
16arekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O” değeri atanarak iletilmelidir. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n Ödeme Emri Rizası Nesnesindeki Ödeme Kaynağı verisi ile aynı olmalıdır. HHS tarafından ödeme mesajında (FAST/PÖS) aynen taşınmak durumundadır. \n FAST/PÖS: OdmKynk \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. \n Ödeme Emri Rizası Nesnesindeki Ödeme Amacı verisi ile aynı olmalıdır. HHS tarafından ödeme mesajında (FAST/PÖS) aynen taşınmak durumundadır. \n FAST (OdmAmc)/PÖS(OdmAmaci) \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  -İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n Ödeme Emri Rizası Nesnesindeki Referans Bilgisi verisi ile aynı olmalıdır. \n RefBlg (Hem FAST hem de PÖS için aynı) \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n FAST/PÖS Acklm \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n \n \n >> Ödeme Sistemi \n odmStm \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeSistemi  sıralı veri değerlerinden birini alır. \n Ödeme Emri Rizası Nesnesindeki Ödeme Sistemi verisi ile aynı olmalıdır. \n \n \n \n >> Beklenen Ödeme Zamanı \n bekOdmZmn \n ISODateTime \n K \n İşlemin yönlendirildiği ödeme sistemi PÖS ise ve PÖS işlem saatleri dışında ise işlemin yapılabileceği ilk zaman bilgisi \n \n \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n K \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda istekte yer alır.  İşyeri Ödeme Bilgileri, YÖS uygulama önyüzünde ÖHK’nın bildiği ve girişi yapılması beklenen bir bilgi olmamalıdır. YÖS tarafından sistemsel olarak doldurulması gereklidir. \n \n \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n K \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir. 4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n K \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). 4 karakterden küçük değerlerin başına 0 eklenerek iletilmesi gereklidir. \n \n \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n K \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n \n \n \n \n \n BAŞARILI YANIT: \n POST işleminin RESPONSE gövdesini (BODY) oluşturan “OdemeEmri” nesnesi Tablo-10’daki parametrelerden oluşur: \n Tablo 10: “OdemeEmri” nesnesi \n \n \n \n Alan Adı \n JSON Alan Adı \n Format: Veri modeli İsmi \n Zorunlu / Koşullu / İsteğe bağlı \n Açıklama \n \n \n \n \n Riza Bilgileri \n rzBlg \n Kompleks: RizaBilgileri \n Z \n \n \n \n > Rıza No \n rizaNo \n AN1..128 \n Z \n OdemeEmriRızasi nesnesinin oluşturulması esnasında HHS kaynak sunucusu tarafından atanan biricik tanımlayıcı \n \n \n > Oluşturma Zamanı \n olusZmn \n ISODateTime \n Z \n OdemeEmriRizasi nesnesinin oluşturulma zamanıdır. \n \n \n > Rıza Durumu \n rizaDrm \n AN1 \n Z \n TR.OHVPS.DataCode.RizaDurumu  sıralı veri tipini değerlerinden birini alır. \n \n \n Katılımcı Bilgisi \n katilimciBlg \n Kompleks:KatilimciBilgisi \n Z \n Katılımcılara atanmış kod bilgileridir. \n \n \n >
16Hesap Hizmeti Sağlayıcısı Kodu \n hhsKod \n AN4 \n Z \n İsteğin iletildiği Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n \n \n > Yetkili Ödeme Hizmeti Sağlayıcısı Kodu \n yosKod \n AN4 \n Z \n İsteği gönderen Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur. \n \n \n GKD \n gkd \n Kompleks:Gkd \n Z \n \n \n \n > Yetkilendirme Yöntemi \n yetYntm \n AN1 \n Z \n TR.OHVPS.DataCode.GkdTur  sıralı veri türü değerlerinden birini alır. \n \n \n > Yönlenme Adresi \n yonAdr \n AN1..1024 \n Z \n Yönlendirmeli güçlü kimlik doğrulama için zorunlu. HHS, müşteri uygulama / tarayıcısını yönlendirmeli akışta bu alanda belirtilen YÖS adresine yönlendirir. \n \n \n > Ayrık GKD \n ayrikGkd \n Kompleks:AyrikGkd \n K \n Ayrık güçlü kimlik doğrulama için zorunlu. \n \n \n >> OHK Tanım Tip \n ohkTanimTip \n AN8 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım tipleridir. İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n >> OHK Tanım Değer \n ohkTanimDeger \n AN1..30 \n K \n ÖHK'nın HHS uygulaması tarafından tanınmasını sağlayacak tanım değeridir. ohkTanimTip'i ile uyumlu değerdir.  İstek içerisindeki veri değiştirilmeden iletilir. \n \n \n > HHS Yönlenme Adresi \n hhsYonAdr \n AN1..1024 \n K \n Yönlendirmeli akış türünde GKD doğrulama bilgilerinin girilebilmesi için uygulamadan açılacak yönlendirme sayfasının adresi. Ayrık GKD akışında bu alan dönülmemelidir. \n \n \n > Yetkilendirme Tamamlanma Zamanı \n yetTmmZmn \n ISODateTime \n Z \n Yetkilendirme akışının tamamlanması gereken son zamanı gösterir.   Rıza durumu Yetkilendirildi statüsüne geçene kadarki süredir. \n \n \n Emir Bilgileri \n emrBlg \n Kompleks: EmirBilgileri \n Z \n \n \n \n > Ödeme Emri Numarası \n odmEmriNo \n AN1..128 \n Z \n odemeEmri nesnesinin UID'sidir. OdemeEmrine İlişkin sorgular bu ID üzerinden yapılır. \n \n \n > Ödeme Emri Zaman \n odmEmriZmn \n ISODateTime \n Z \n odemeEmri nesnesinin oluşturulma zamanıdır. \n \n \n Ödeme Başlatma \n odmBsltm \n Kompleks: OdemeBaslatma \n Z \n \n \n \n > Kimlik \n kmlk \n Kompleks:Kimlik \n Z \n \n \n \n >> Kimlik Türü \n kmlkTur \n AN1 \n Z \n TR.OHVPS.DataCode.KimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kimlik Verisi \n kmlkVrs \n AN1..30 \n Z \n HHS nezdinde kullanıcı doğrulamasında kullanılan tanımlayıcıdır. TR.OHVPS.DataCode.KimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Kurum Kimlik Türü \n krmKmlkTur \n AN1 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik türüdür. TR.OHVPS.DataCode.KurumKimlikTur  sıralı veri türü değerlerinden birini alır. \n \n \n >> Kurum Kimlik Verisi \n krmKmlkVrs \n AN1..30 \n K \n Kurum adına yapılan ödemelerde ÖHK’nın altında tanımlı olduğu tüzel kişilik için kullanılan kurum kimlik verisidir.   TR.OHVPS.DataCode.KurumKimlikTur  değerine göre uzunluk ve formatı değişir. \n \n \n >> Ödeme Hizmeti Kullanıcısı Türü \n ohkTur \n AN1 \n Z \n TR.OHVPS.DataCode.OhkTur  sıralı veri türü değerlerinden birini alır  (B: Bireysel, K:Kurumsal) \n \n \n > İşlem Tutarı \n islTtr \n Kompleks:Tutar \n Z \n \n \n \n >> Para Birimi \n prBrm \n AN3 \n Z \n Para Birimi.  Karekod akışında, FAST Karekod Veri Organizasyonundaki  53: (Para Birimi)  alanında tanımlı Para Birimi verisi kullanılır. \n \n \n >> Tutar \n ttr \n AN1..24 \n Z \n ÖBHS'nin ön yüzde kullanıcıdan teyit aldığı tutar.   Karekod akışında, FAST Karekod Veri Organizasyonundaki  54: (Tutar)  alanında tanımlı Tutar verisi kullanılır.    Tutar alanı regex patterni şu şekildedir: '^\\d{1,18}$|^\\d{1,18}\\.\\d{1,5}$' \n \n \n > Gönderen \n gon \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Gönderen kişinin ad soyad ya da ticari ünvan bilgisi. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n K \n ÖBHS tarafından iletilip doğrulanan veya HHS ekranında seçilen Gönderen Hesap Numarası dönülür. \n \n \n >> Hesap Referansı \n hspRef \n AN5..40 \n K \n HHS tarafından hesap için atanan biricik tanımlıyıcıdır (uuid)  YÖS bazında farklılaşması gerekmez. ÖBHS’nin aynı zamanda HBHS olduğu durumda müşteri rızası tesis edilmiş bir hesabın referansı üzerinden de ödeme başaltılabilir. GKD sonrası HHS ekranında seçilen Hesap Referansı POST işleminin yanıtında dönülemez ancak isteğe bağlı GET sorgusu ile dönülebilir. Hesap Numarası kullanılıyorsa Hesap Referansı kullanılmayabilir.  Ödeme Sistemine doğrudan katılımcı olmayan ÖHS'ler müşterilerine IBAN sunmadıkları için hspRef üzerinden ödeme başlatabilirler. Bu durumda hesap numarası boş olacaktır. \n \n \n > Alıcı \n alc \n Kompleks:Hesap \n Z \n \n \n \n >> Ünvan \n unv \n AN3..140 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı 
16sorgu sonucunda dönülen adres kaydı yaptırmış olan alıcının maskeli ad-soyadı veya maskeli ticari ünvan bilgisidir. Kolas’tan dönen “account owner” alanı kullanılmalıdır. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen ünvan bilgisidir. \n \n \n >> Hesap Numarası \n hspNo \n AN26 \n Z \n Alıcının Hesap Numarası alanıdır (IBAN). Kolay Adres  sorgusunda dönülen adres kaydı yaptırmış olan alıcının maskeli IBAN bilgisidir. Kolay adres değil ise ÖBHS tarafından istek mesajında iletilen IBAN bilgisidir. Karekod akışında, FAST Karekod Veri Organizasyonundaki 30-01: alanında tanımlı İş Yeri IBAN verisi kullanılır. \n \n \n >> Kolay Adres \n kolas \n Kompleks:Kolas \n K \n \n \n \n >>> Kolas Türü \n kolasTur \n AN1 \n Z \n Müşterinin sorgulamak istediği Kolay Adres Tipi değeridir.  TR.OHVPS.DataCode.KolasTur  sıralı veri türü değerlerinden birini alır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Değeri \n kolasDgr \n AN7..50 \n Z \n Müşterinin eklediği, HHS (FAST katılımcısı) tarafından doğrulanmış Kolay Adres değeridir. Alabileceği değerler BKM “Kolay Adresleme Sistemi Uygulama Kuralları” belgesinde tanımlıdır.  Alıcı Hesap Numarası girilmediyse kullanımı zorunludur ve  Kolay Adres Tipi  alanıyla birlikte kullanılır. \n \n \n >>> Kolas Referans Numarası \n kolasRefNo \n N12 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı KOLAS tarafından ilgili sorguya özel olarak üretilmiş referans numarasıdır. \n \n \n >>> Kolas Hesap Türü \n kolasHspTur \n AN1 \n Z \n Kolay Adres Alıcı Sorgusunda başarılı sorgu sonucunda dönülen, BKM Kolay Adresleme Sistemi Uygulama Kuralları’nda tanımlı hesap türü bilgisidir:   TR.OHVPS.DataCode.KolasHspTur  sıralı veri değerlerinden birini alır. \n \n \n > Karekod \n kkod \n Kompleks:Karekod \n K \n \n \n \n >> Akış Türü \n aksTur \n AN2 \n Z \n Karekod Akış Türü Karekod ödemesinin hangi akışla gerçekleştirildiğini gösterir.  Kolay Adresi Sistemi ile birlikte kullanılmaz.  01: FAST katılımcısından dinamik doğrulama hizmeti alınan işyeri ödemesi  02: FAST katılımcısından statik doğrulama hizmeti alınan işyeri ödemesi 03: Kişiden kişiye ödemeler \n \n \n >> Referansı \n kkodRef \n AN1..12 \n K \n Karekod referans numarasını gösterir.  Okunan karekodda referans değeri varsa kullanılması zorunludur. Kolay Adresi Sistemi ile birlikte kullanılmaz. \n \n \n >> Üretici Kodu \n kkodUrtcKod \n AN4 \n Z \n Karekod üreticisinin kodu.  Ödeme Hizmeti Sağlayıcıları ve TCMB tarafından uygun görülen ödeme sistemi işleticisi TR Karekod üretebilmek için BKM’ye kayıt başvurusu yaparak karekod üretici kodu alabileceklerdir. Bankalar EFT kodlarını kullanacak olup ayrıca kayıt yaptırmalarına gerek bulunmamaktadır. 4 haneden kısa değerlerin sol tarafı ’0’ karakteri ile tamamlanmalıdır. \n \n \n > Ödeme Ayrıntıları \n odmAyr \n Kompleks: OdemeAyrintilari \n Z \n \n \n \n >> Ödeme Kaynağı \n odmKynk \n AN1 \n Z \n Ödemenin başlatıldığı kaynağı belirtir.  TR.OHVPS.DataCode.OdemeKaynak  sıralı veri değerlerinden “O”  değerini alır. “O” değeri “Açık bankacılık aracılığı ile gönderilen ödemelerde kullanılır.” anlamını taşımaktadır. \n \n \n >> Ödeme Durumu \n odmDrm \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeDurumu  sıralı veri değerlerinden birini alır.      Ödeme Durumu alanı ile ilgili olarak HHS’ler tarafından YÖS’lere  OdemeEmri servisi yanıtında 02:Gönderildi, 04:Onayda Bekliyor,05:İşleme Alındı yanıtları gönderilebilir.   05:İşleme Alındı  durumu YÖS tarafından müşteriye gösterilmeyen bir koddur. Bu kod dönüldüğünde YÖS uygulamasında ÖHK’ya ödeme durumu  02:Gönderildi  olarak gösterilir. İşlemin son durumunun teyidi için YÖS ödeme emri sorgulaması yapmalıdır.   02:Gönderildi  durumu oluştuktan sonra YÖS tarafından ödeme emri sorgulaması yapılarak ödeme durumunun güncel değeri öğrenilir. Güncel değerler  01:Gerçekleşti,03:Gerçekleşmedi  durumları olabilir. \n \n \n >> Ödeme Amacı \n odmAmc \n AN2 \n Z \n TR.OHVPS.DataCode.OdemeAmaci  sıralı veri değerlerinden birini alır. \n \n \n >> Referans Bilgisi \n refBlg \n AN1..140 \n K \n Ödemeye özel  Referans Bilgisi  alanıdır. Karekod işlemi değil ise zorunludur.  -\tKişiden kişiye fon aktarımlarda: Gün içerisinde ÖHK özelinde, her işleme özel biricik olarak oluşturulan referans bilgisidir.  Karekod P2P akışı için referans bilgisi (Karekod referans numarası değil, işleme özel üretilecek referans bilgisidir.) YÖS tarafından atanacaktır.  -\tE-ticaret işlemlerinde sipariş/takip numarası/müşteri/abone numarası  - İşyeri Ödemesi Karekod akışında, FAST Karekod Veri Organizasyonundaki  -\t62-01: alanında tanımlı Fatura Numarası   -\t62-06: alanında tanımlı Müşteri Numarası   verilerinden biri kullanılır. \n \n \n >> Açıklama \n odmAcklm \n AN1..200 \n İ \n ÖBHS’nin ÖHK’dan aldığı ya da kendisinin atadığı işlem açıklaması bilgisi.  FAST/PÖS sistemi üzerinden yapılan ödemeler için açıklama bilgisi girilirse boşluk karakteri girilerek geçilemez. En az bir alfasayısal karakter girilmesi zorunludur. \n \n \n >> ÖHK Mesaj Alanı \n ohkMsj \n AN1..200 \n İ \n HHS’nin ÖHK’ya göstermek üzere ilettiği mesaj. \n \n \n >> Ödeme Sistemi \n odmStm \n AN1 \n Z \n TR.OHVPS.DataCode.OdemeSistemi  sıralı veri değerlerinden birini alır. \n \n \n >> Ödeme Sistem Numarası \n odmStmNo \n AN10..50 \n K \n Ödeme başarılı başlatıldıysa, ödemenin başlatıldığı sistemdeki referans numarası. Gerektiğinde ilgili ödeme sisteminde/HHS’de söz konusu ödemeye karşılık gelen mesajla bağlantı kurmada kullanılır.   Ödeme Hizmeti kullanıcısına işlemin takibi için gösterilebilir.  İşlemin yönlendirildiği ödeme sistemi FAST ya da PÖS ise sistemdeki ilgili mesajın Tarih, GönderenKatilimKodu ve SorguNumarasi değerlerinin birleşiminden oluşur. Bu 3 alan mevcutta kullanıldığı formatta aralarına dikey çizgi (Unicode U+2223) işareti koyularak, birleştirmeli ve iletilmelidir. Örn : Tarih|GönderenKatilimKodu|SorguNumarasi   Ödeme Havale/Virman işlemi ise HHS’nin üretmiş olduğu havale/virman numarasını içerir. Buradaki format da Tarih|GönderenKatilimKodu|Havale-virman numarası şeklinde olmalıdır. Havale/FAST/PÖS  ödeme yöntemleri için tarih alanı yyyy-aa-gg formatında 10 karakter olarak 
16iletilmelidir. \n \n \n >> Beklenen Ödeme Zamanı \n bekOdmZmn \n ISODateTime \n K \n İşlemin yönlendirildiği ödeme sistemi PÖS ise ve PÖS işlem saatleri dışında ise işlemin yapılabileceği ilk zaman bilgisi \n \n \n İşyeri Ödeme Bilgileri \n isyOdmBlg \n Kompleks:IsyeriOdemeBilgileri \n K \n İşyeri ödemelerinde kullanılabilecek alanlardır. Karekodlu işyeri ödemesi akışında bu alanlar dolu geldiği için isteğe bağlı olarak gönderilebilir. isyOdmBlg alanlarının en az birinin dolu olması durumunda yanıtta yer alır. \n \n \n > İşyeri Kategori Kodu \n isyKtgKod \n AN4 \n K \n İşlemin, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). Ödeme Amacı = ‘06’ ya da ‘04’ olan ödeme işlemleri için doldurulabilir. \n \n \n > Alt İşyeri Kategori Kodu \n altIsyKtgKod \n AN4 \n K \n İşlem alt işyerinden gerçekleştiriliyorsa, ISO 18245:2003 uyumlu İşyeri Kategori Kodudur (Merchant Category Code, MCC). \n \n \n >Üye İş Yeri Tekil Kimlik \n genelUyeIsyeriNo \n AN8 \n K \n İşyeri kayıt sisteminde kayıtlı İşyeri için BKM tarafından üretilmiş olan genel işyeri numarasıdır (GlobalMerchantId) 8 haneden küçük gönderiminde başa ‘0’ eklenmelidir. Örnek değer ‘01630618’ \n 6.6.\tADIM 3.1- Ödeme Emri Sorgusu (İsteğe bağlı) \n   \n Şekil 9: Ödeme Emri Sorgusu \n GET /odeme-emri/{odemeEmriNo} \n ÖBHS, bu erişim adresi aracılığıyla ödeme emrini sorgulayabilir. \n BAŞARILI YANIT: \n GET /odeme-emri/{odemeEmriNo} yanıtının (RESPONSE) gövdesinde (BODY)  “OdemeEmri” nesnesi bulunur. İstek başarıyla sonuçlanırsa HHS kaynak sunucusunda Tablo-10’da yer alan parametreleri içeren “OdemeEmri” nesnesi döner. \n \n İstek başlığında yer alan X-Access-Token ile ilişkili rızada, yer alan odemeEmriNo için, ödeme emri sorgusundaki odemeEmriNo bilgisinin aynı olup olmadığı kontrol edilir. Farklı olması durumunda  \"TR.OHVPS.Resource.NotFound\"  hatası dönülür. \n Sorgulama yapılan ödeme emri numarası HHS tarafında bulunmuyor ise  \"TR.OHVPS.ResourceNotFound\"  hatası dönülür. \n \n"},{frontmatter:{},regularPath:"/v2.0.1/deneyalani/duzenli-odeme-emri-api.html",relativePath:"v2.0.1/deneyalani/duzenli-odeme-emri-api.md",key:"v-2b804dc9",path:"/v2.0.1/deneyalani/duzenli-odeme-emri-api.html",content:" \n   \n "},{frontmatter:{},regularPath:"/v2.0.1/contents/tanim-ve-kisitlamalar.html",relativePath:"v2.0.1/contents/tanim-ve-kisitlamalar.md",key:"v-666ae106",path:"/v2.0.1/contents/tanim-ve-kisitlamalar.html",content:"  1.\tTanım ve Kısaltmalar   \n Tablo 1: Tanım ve Kısaltmalar \n \n \n \n Kısaltma \n Tanım \n Açıklama \n İngilizce Açıklama \n İngilizce Kısaltma \n \n \n \n \n ÇS \n Çerçeve Sözleşme \n Ödeme hizmeti sağlayıcısı ile müşteri arasında tekil veya süreklilik arz eden ödeme işlemlerinin yürütülmesine ve mümkün olan durumlarda ödeme hesabının açılmasına ilişkin usul ve esasları belirleyen sözleşme \n \n \n \n \n EPK \n Elektronik Para Kuruluşu \n Kanun kapsamında elektronik para ihraç etme yetkisi verilen tüzel kişi \n Electronic Money Institution \n EMI \n \n \n FAST \n Fonların Anlık ve Sürekli Transferi \n TCMB tarafından işletilen Fonların Anlık ve Sürekli Transferi Sistemi \n \n \n \n \n FAST TR-Karekod \n FAST-TR Karekod Teknik İlke ve Kurallar Rehberi \n TR Karekod’un FAST Sistemi aracılığıyla gerçekleşecek işlemlerde kullanılmasına ilişkin detaylı teknik ilke ve kurallarını içeren doküman \n \n \n \n \n GEÇİT \n BKM API Geçidi \n Bankalararası Kart Merkezi (BKM) tarafından geliştirilen ve taraflara standart Açık Bankacılık işlemleri sunulmasını sağlayan API Geçidi uygulaması \n \n \n \n \n GKD \n Güçlü Kimlik Doğrulama \n Kimlik doğrulamada kullanılan ve bir bileşenin ele geçirilmesinin diğer bileşenin güvenliğini tehlikeye atmayacağı en az iki bileşenden oluşan, bu iki bileşenin de müşterinin bildiği, sahip olduğu veya biyometrik bir karakteristiği olan bileşen sınıflarından farklı ikisine ait olacak şekilde seçildiği yöntem \n Strong Customer Authentication \n SCA \n \n \n İB \n İşlem Bilgisi \n Gerçekleştirilen işleme ilişkin işlem zamanını, işlemin niteliğini ve ödeme işlemi için ödeme emrinin masraf, komisyon ve ücretler de dahil hesabın borçlandırılacağı toplam tutarını ve ödemenin göndereni ile alıcısını veya toplu ödeme emrinin masraf, komisyon ve ücretler de dahil hesabın borçlandırılacağı toplam tutarını ve göndereni ile alıcılarını içeren bilgi \n \n \n \n \n İDK \n İşlem Doğrulama Kodu \n Kimlik doğrulama yöntemlerinden biriyle kendisini sisteme tanıtan bir müşterinin gerçekleştirmek istediği 
16işleme özgü olmak ve belirli bir geçerlilik süresi içinde işlem onayında kullanılmak üzere oluşturulan, finansal sonuç doğrunan işlemlerde kişiye onay anında ilgili işlem bilgisi (İB) ile birlikte gösterilen, alıcı veya tutarın değişmesiyle geçersiz hale gelen bilgi \n Authentication Code \n AC \n \n \n KOLAS \n Kolay Adresleme Servisi \n Fon transferlerinde hesap numarası ile ad soyad yerine kullanılan ve belirli bir hesap ile eşleştirilmiş telefon numarası, e-posta adresi, T.C. Kimlik Numarası (TCKN), Vergi Kimlik Numarası (VKN), Yabancı Kimlik Numarası veya Pasaport Numarası gibi Kolay Adres bilgilerinin kaydedilmesini, güncellenmesini ve sorgulamasını sağlayan katman servis \n \n \n \n \n HBHS \n Hesap Bilgisi Hizmeti Sağlayıcısı \n Kanunun 12 inci maddesinin birinci fıkrasının (g) bendinde tanımlanan ödeme hizmetini (hesap bilgisi hizmetini) sunan tüzel kişi \n Account Information Service Provider \n AISP \n \n \n HHS \n Hesap Hizmeti Sağlayıcısı \n Nezdinde ödeme hesabı bulunan ödeme hizmeti sağlayıcısı \n Account Servicing Payment Service Provider \n ASPSP \n \n \n ÖBHS \n Ödeme Emri Başlatma Hizmeti Sağlayıcısı \n Kanunun 12 inci maddesinin birinci fıkrasının (f) bendinde tanımlanan ödeme hizmetini (ödeme emri başlatma hizmetini) sunan tüzel kişi \n Payment Initiation Service Provider \n PISP \n \n \n ÖDK \n Ödeme Kuruluşu \n Ödeme hizmeti sağlamak ve gerçekleştirmek için Kanun kapsamında yetkilendirilmiş tüzel kişi \n Payment Institution \n PI \n \n \n ÖH \n Ödeme Hesabı \n Ödeme hizmeti kullanıcısı adına açılan ve ödeme işleminin yürütülmesinde kullanılan hesap \n Payment Account \n PA \n \n \n ÖHK \n Ödeme Hizmeti Kullanıcısı (Müşteri) \n Gönderen, alıcı veya her ikisi sıfatıyla belirli bir ödeme hizmetinden faydalanan gerçek veya tüzel kişi \n Payment Service User \n PSU \n \n \n ÖHS \n Ödeme Hizmeti Sağlayıcısı \n 5411 sayılı Kanun kapsamındaki bankalar, EPK, ÖDK ve Posta ve Telgraf Teşkilatı Anonim Şirketi(PTT) \n Payment Service Provider \n PSP \n \n \n ÖHVPS \n Ödeme Hizmetleri Veri Paylaşım Servisleri \n Kanunun 12’nci maddesinin birinci fıkrasının (f) veya (g) bentlerinde yer alan ödeme hizmetlerinde kullanılan veri paylaşım servisleri \n \n \n \n \n PÖS \n Perakende Ödeme Sistemi \n TCMB tarafından işletilen, işlemlerin Türk Lirası üzerinden gerçekleştiği Müşteriler Arası Türk Lirası Aktarım Sistemi \n \n \n \n \n TR-Karekod \n TR-Karekod İlke ve Kuralları \n Ulusal karekod (TR Karekod) ilke ve kurallarının belirlendiği belge \n \n \n \n \n YÖS \n Yetkili Ödeme Hizmeti Sağlayıcısı \n Ödeme emri başlatma hizmeti ve/veya hesap bilgisi hizmeti sunan tüzel kişi \n Third Party Payment Service Providers \n TPP \n \n \n Temsilci \n Temsilci \n Kuruluş adına ve hesabına hareket eden gerçek veya tüzel kişi. \n \n \n \n \n \n"},{title:"3. Temel Prensipler",frontmatter:{},regularPath:"/v2.0.1/contents/temel-prensipler.html",relativePath:"v2.0.1/contents/temel-prensipler.md",key:"v-5617815a",path:"/v2.0.1/contents/temel-prensipler.html",headers:[{level:2,title:"3.1 Genel",slug:"_3-1-genel"},{level:2,title:"3.2.\tİstem (Çağrı) ve Oturum",slug:"_3-2-istem-cagrı-ve-oturum"},{level:2,title:"3.3.\tRESTful API",slug:"_3-3-restful-api"},{level:2,title:"3.4.\tSürüm Yönetimi",slug:"_3-4-surum-yonetimi"},{level:2,title:"3.5.\tKaynak URI Yol Yapısı",slug:"_3-5-kaynak-uri-yol-yapısı"},{level:2,title:"3.6.\tKarakter Kodlama",slug:"_3-6-karakter-kodlama"},{level:2,title:"3.7.\tVeri Formatı",slug:"_3-7-veri-formatı"},{level:2,title:"3.8.\tİstemci Sertifika Yönetimi",slug:"_3-8-istemci-sertifika-yonetimi"},{level:2,title:"3.9.\tYetkilendirme Türleri",slug:"_3-9-yetkilendirme-turleri"},{level:2,title:"3.10. İstek/Cevap Mesajlarında Kullanılan Nesne Yapıları",slug:"_3-10-istek-cevap-mesajlarında-kullanılan-nesne-yapıları"},{level:2,title:"3.11. Sayfalandırma ve Filtreleme",slug:"_3-11-sayfalandırma-ve-filtreleme"},{level:2,title:"3.12. Mesaj İmzalama",slug:"_3-12-mesaj-imzalama"},{level:2,title:"3.13. Durum Kodu",slug:"_3-13-durum-kodu"},{level:2,title:"3.14. Gereksinimlerinin Sınıflandırılması",slug:"_3-14-gereksinimlerinin-sınıflandırılması"},{level:2,title:"3.15. İstek Başlığı",slug:"_3-15-istek-baslıgı"},{level:2,title:"3.16. Yanıt Başlığı",slug:"_3-16-yanıt-baslıgı"},{level:2,title:"3.17. Idempotency Kuralları",slug:"_3-17-idempotency-kuralları"},{level:2,title:"3.18. HTTP Durum Kodları",slug:"_3-18-http-durum-kodları"},{level:2,title:"3.19. Maskeleme Kuralları",slug:"_3-19-maskeleme-kuralları"},{level:2,title:"3.20. Fonksiyonel Olmayan Gereksinimler",slug:"_3-20-fonksiyonel-olmayan-gereksinimler"},{level:2,title:"3.21. Otomatik Sorgular",slug:"_3-21-otomatik-sorgular"}],content:' 3. Temel Prensipler  \n Bu bölümde Ödeme Hizmetleri Veri Paylaşım Servisleri (Hesap Bilgisi Hizmeti, Ödeme Emri Başlatma Hizmeti) için tanımlanan temel prensipler açıklanmaktadır. \n 3.1 Genel \n \n \n HHS’ler Yönetmeliğin 59. maddesinin beşinci fıkrası ve Ödeme ve Elektronik Para Kuruluşlarının Bilgi Sistemleri ile Ödeme Hizmeti Sağlayıcılarının Ödeme Hizmetleri Alanındaki Veri Paylaşım Servislerine İlişkin Tebliğin (Tebliğ) 23. maddesinin birinci fıkrası uyarınca, ödeme hizmetleri veri paylaşım servislerini GEÇİT aracılığıyla HBHS ve ÖBHS’ye sunmakla yükümlüdür. \n \n \n Tebliğin 23. maddesinin ikinci fıkrası uyarınca ödeme emri başlatma hizmetinde açık iletişim servisinin tarafları ÖBHS ile HHS’dir. \n \n \n Tebliğin 23. maddesinin üçüncü fıkrası uyarınca hesap bilgisi hizmetinde açık iletişim servisinin tarafları HBHS ile HHS’dir. \n \n \n Yönetmeliğin 60. maddesinin birinci fıkrası uyarınca müşteri, ödeme emri başlatma hizmetini  ödeme hesabının çevrim içi olarak erişilebilir olduğu durumlarda , kullanmayı tercih edebilir. \n \n \n Yönetmeliğin 61. maddesinin birinci fıkrası uyarınca müşteri, hesap bilgisi hizmetini  ödeme hesabının çevrim içi olarak erişilebilir olduğu durumlarda , kullanmayı tercih edebilir. \n \n \n Tebliğin 25. maddesi uyarınca HHS ve YÖS (ÖBHS ve HBHS) arasında bağlantı uçtan uca güvenli bir şekilde sağlanır. Bu amaçla iletim katmanında TLS (asgari 1.2 sürümü) ile şifreli iletişim sağlanır. \n \n \n Tebliğin 23. maddesinin dördüncü fıkrası uyarınca HHS tarafından sunulan ödeme hizmetleri veri paylaşım servislerini kullanan yetkilendirilmiş ödeme hizmeti sağlayıcılarının TCMB tarafından ilgili ödeme hizmeti için yetkilendirilmiş olduğu kontrol edilir. \n \n \n Tebliğin 25. maddesinin beşinci fıkrası uyarınca zaman damgası, 15/1/2004 tarihli 5070 sayılı Elektronik İmza Kanunu kapsamında tanımlanan zaman damgasına dayanır. \n \n \n API alan isimleri Türkçe olarak tanımlanmıştır. Ancak API başlığı (header) alanındaki alan isimleri özelinde, API Geçitleri tarafından otomatik olarak tanınabilmesi gözetilerek, İngilizce isimlendirme tercih edilmiştir. \n \n \n ÖHK halihazırda ödeme hesaplarına, çevrim içi (mobil bankacılık, internet bankacılığı vb.) erişebilir durumda ise, HHS\'nin varsa Açık Bankacılık kanal veya yetki tanımını varsayılan değeri AÇIK olacak şekilde sunması gerekmektedir. HHS’nin, Bireysel/Kurumsal/Ticari müşteri ayrımı yapmaksızın tüm müşterileri için, çevrim içi kanallarda hesap hareketlerine erişim ve ödeme yapabilme yetkisi bulunması durumunda, yine aynı şekilde Açık Bankacılık kanal veya yetki tanımını da varsayılan değeri AÇIK olacak şekilde sunması gerekmektedir. HHS Açık Bankacılık hizmetini kanal/yetki tanımı ile yönetmesi durumunda hizmeti verdiği ilgili kanallar(web,mobil) üzerinden müşterisine Açma/Kapama olanağı şeklinde sunması gerekmektedir. \n \n \n 5411 Sayılı Kanun kapsamındaki bankalar, HHS API içerisinde Aktif durumda listelenmemişken, YÖS API içerisinde listelenemezler. \n \n \n Temsilci, Yönetmelik’in 3’üncü maddesinin birinci fıkrasının (tt) bendinde "Kuruluş adına ve hesabına hareket eden gerçek veya tüzel kişi" olarak tanımlanmakta olup aynı Yönetmelik’in 18’inci maddesi uyarınca, Kuruluşların ödeme hizmetlerini ele
16ktronik veya fiziki kanallar üzerinden temsilci aracılığıyla yürütebilmesi mümkün kılınmaktadır. \n Bu kapsamda, Kuruluşların (YÖS\'lerin) ÖHVPS kapsamında Yetkili Ödeme Sağlayıcı rolünde vermiş olduğu hizmetleri temsilcilik ilişkisi kapsamında 3. Taraflarca sunulabilmesi için ilk olarak e-posta yolu ile BKM’ye başvuruda bulunması gereklidir. \n Başvuru sonrasında temsilcilik ilişkisi kurulacak 3.tarafa BKM tarafından bir kod ataması yapılacaktır. \n Kuruluşlar (YÖS\'ler) BKM’nin ilgili temsilci için belirleyeceği ve Kuruluşa ileteceği kodu, temsilci üzerinden başlatılan işlemlerde “X-Agent-Code” başlığında iletecektir.\nİstek başlığında gönderilen X-Agent-Code HHS\'ler tarafından başarılı bir şekilde yanıt dönülmesi beklenmektedir. \n 3.2.\tİstem (Çağrı) ve Oturum \n \n \n Her istek tekil istek numarası ve ÖHK’lı işlemler için zaman damgası (PSU-Timestamp) içerir. Birden fazla istek içeren işlem YÖS tarafından belirlenen çağrıya özgü talep kimliği (istek numarası: X-Request-ID) ve rıza sürecine özgü talep kimliği (işlem grup numarası: X-Group-ID) değerleri kullanılmalıdır. Aynı rıza no’ya ait tüm isteklerde aynı X-Group-ID bilgisi değeri gönderilmelidir. \n \n \n Oturum takibi ise PSU-Session-ID ile yapılır. Oturum numarası (PSU-Session-ID) ÖHK’lı işlemler için zaman damgası (PSU-Timestamp) ile birlikte ilgili tüm işlem verilerini içerecek şekilde kayıt altına alınır. \n \n \n Örneğin, bir ödeme emri başlatma işlemi birden fazla istekten oluşur. Her istek yukarıda belirtildiği gibi biricik istek numarası ve ÖHK’lı işlemler için zaman damgası (PSU-Timestamp) içerir. Ancak işlemin oturum bütünlüğü PSU-Session-ID ile sağlanır. \n \n \n Taraflar açtıkları oturumu işlem bütünlüğünü sağlayacak süre içerisinde açık tutar ve işlem biter bitmez kapatır. \n 3.3.\tRESTful API \n API’ler, dünya ölçeğinde yaygın bir şekilde kullanılan Temsili Durum Transferi (Representational State Transfer, REST) mimari tarzı ve JavaScript Nesne Notasyonu (JavaScript Object Notation, JSON) veri formatlarına uygun olarak geliştirilir. En üst seviye Veri Tanımlama Dili (Data Description Language) ve en iyi uygulama örnekleri için  ^JSON Şeması  temel alınır. \n İstek ve yanıt mesajlarında, isteğe bağlı veya koşullu bir alan, değer içermiyorsa, bu alan JSON payloadunda yer almamalıdır. \n Örnek kod bloğu. \n "rzBlg":{\n         "rizaNo":"aa9bd7e7-0ccd-4edc-9639-5a358dbf2335",\n         "olusZmn":"2022-11-28T12:00:21+03:00",\n         "gnclZmn":null,    --\x3e hatalı\n         "rizaDrm":"K",\n         "rizaIptDtyKod":"" --\x3e hatalı \n      },\n \n Örnek kod bloğu: \n \n         "alc":{\n            "hspNo": "TR800800004162387689546019",\n            "unv": "AHMET YILMAZ", \n            "kolas":{}  --\x3e nesne gönderimi hatalı\n         },\n 3.4.\tSürüm Yönetimi \n API sonraki aşamalarda doğabilecek gereksinimleri ve daha karmaşık kullanım durumlarını karşılamak için sürümler halinde geliştirilir ve bu durum tasarım sırasında göz önünde bulundurulur. \n API v1.0.2 sürümünde ; \n \n Kapsamdaki ödeme hesapları : Vadesiz TL, Döviz(yabancı para hesapları), Altın/Gümüş/ Platin/Paladyum hesapları, Kredili Mevduat Hesapları \n Tekil ödeme (Virman/Havale/FAST/Müşterilerarası TL Aktarım Sistemi)\n \n Virman ve havale işlemleri kapsamında yabancı para transferi yapılabilir. \n \n \n Hesap bilgisi hizmetleri\n \n Temel veya ayrıntılı hesap bilgisi \n Bakiye \n Gerçekleşen işlemler için Hesap hareketleri \n \n \n Karekodlu ödemelerdeki 01, 02 ve 03 akış türleri\nyer almaktadır. \n \n API v1.1.0 sürümünde ; \n \n \n API v1.0.2 sürümüne ek Olay Bildirim ve Ayrık GKD özellikleri eklenmiştir. Süreçlerin daha iyi işlemesi için çeşitli güncellemeler yapılmıştır. \n \n \n API v2.0 sürümünde ileri tarihli ödeme emri, düzenli ödeme emri, hesap bilgisi hizmeti içerisinde kart hizmetleri, YÖS üzerinden rıza güncelleme hizmetine dair güncellemeler eklenmiştir. \n \n \n Her sürüm değişikliğinde bir önceki sürüm belirli bir süre desteklenecektir. Diğer bir ifadeyle, sadece belirli bir süre için mevcut ve bir önceki sürüm aynı anda erişilebilir olacaktır. \n 3.5.\tKaynak URI Yol Yapısı \n YÖS’lerin başlattığı çağrılarda URI yolu aşağıdaki yapıyı takip eder: \n [hhs-yol-ön-eki]/ohvps/ [kaynak-grubu]/ [sürüm]/ [kaynak]/[kaynak-no]/[alt-kaynak] \n Bu, aşağıdaki unsurlardan oluşur: \n \n [hhs-yol-ön-eki] \nİsteğe bağlı, HHS\'ye özgü yol ön ekini ifade eder. \nGEÇİT üzerinden yapılan çağrılarda BKM tarafından belirlenen sistem adı ve yol ön eki kullanılır. \n ohvps \nSabit metin “ohvps” (Ödeme Hizmetleri Veri Paylaşım Servisleri kısaltması) \n [kaynak-grubu] \nKaynak grubu, API’ye erişmek için kullanılan ödeme hizmetine (HBH, ÖBH) göre erişim adresi (end point) grubunu tanımlar (“hbh” veya “obh”). \n [sürüm] \nAPI sürümünü ifade eder (“/s[ana-sürüm].[alt-sürüm]/”). \n [kaynak]/[kaynak-no] \nKaynak detaylarını ifade eder. \n [alt-kaynak] \nAlt kaynak detaylarını ifade eder. \n \n HHS, tüm kaynakları için aynı katılımcı yolu ön ekini ve sistem adını kullanmalıdır. \n BKM API’lerine erişmek isteyen uygulamaların yetkilerine göre aşağıdaki API’lere abone olmaları gerekmektedir: \n OBH: \n https://gecit-api.bkmtest.com.tr/ohvps/obh/s2.0/odeme-emri-rizasi \n https://gecit-api.bkmtest.com.tr/ohvps/obh/s2.0/odeme-emri \nHBH: \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s2.0/hesap-bilgisi-rizasi \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s2.0/hesaplar \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s2.0/hesaplar/1234/islemler \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s2.0/hesaplar/1234/bakiye \nGKD \n https://gecit-api.bkmtest.com.tr/ohvps/gkd/s2.0/erisim-belirteci \nHHS – YÖS - Temsilcil
16ik API \n https://gecit-api.bkmtest.com.tr/hhs-api/s2.0/hhs \n https://gecit-api.bkmtest.com.tr/hhs-api/s2.0/hhs/1234 \n https://gecit-api.bkmtest.com.tr/yos-api/s2.0/yos \n https://gecit-api.bkmtest.com.tr/yos-api/s2.0/yos/1234 \n https://gecit-api.bkmtest.com.tr/temsilcilik-api/s2.0/temsilcilik \n https://gecit-api.bkmtest.com.tr/temsilcilik-api/s2.0/temsilcilik/12345 \n HHS’lerin sağlayacakları API’lerdeki URI çevrimi örnekleri aşağıdaki gibidir. \n \n https://xbank.com.tr/api-portal/ohvps/obh/s2.0/odeme-emri \n https://gecit-api.bkmtest.com.tr/ohvps/obh/s2.0/odeme-emri  (BKM API) \n https://xbank.com.tr/api-portal/ohvps/hbh/s2.0/hesap-bilgisi-rizasi \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s2.0/hesap-bilgisi-rizasi  (BKM API) \n https://xbank.com.tr/api-portal/ohvps/hbh/s2.0/hesaplar \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s2.0/hesaplar   (BKM API) \n https://xbank.com.tr/api-portal/ohvps/hbh/s2.0/hesaplar/1234 \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s2.0/hesaplar/1234  (BKM API) \n \n GEÇİT üzerinden yapılan çağrılarda, istek başlığında bulunan “x-aspsp-code” (isteğin iletildiği Hesap Hizmeti Sağlayıcısının kodu) değerine göre HHS API’de standart olarak tanımlanmış olan “basePath” bilgisine servis uzantısı eklenerek HHS’ye yönlendirme yapılır. \n Örneğin, istek başlığında  xbank ’ın kodu varsa, YÖS tarafından yapılan \n https://gecit-api.bkmtest.com.tr/ohvps/hbh/s2.0/hesap-bilgisi-rizasi \nçağrısı GEÇİT tarafından karşılanarak \n https://xbank.com.tr/api-portal/ohvps/hbh/s2.0/hesap-bilgisi-rizasi \nadresine yönlendirilir. \n Bu örnekte,  https://xbank.com.tr/api-portal  basePath bilgisi HHS tarafından HHS API’ye girilen değerdir. \n ÖNEMLİ :  URI Query parametreleri GET ile iletilirken değerlerde url-encode yapılmalıdır. Örnek bir API isteği; \nGET /ohvps/hbh/s2.0/hesaplar/xxx/islemler?hesapIslemBslTrh=2023-02-07T16:42:38%2B03:00&hesapIslemBtsTrh=2023-02-07T17:09:18%2B03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfKytSayi=10&syfNo=1 \n Burada \'+\' karakterinin boşluk olarak algılanmaması için %2B değeri ile iletilmiştir. \n 3.6.\tKarakter Kodlama \n API istekleri ve yanıtlarının  Başlık  parametrelerinde ISO-8859-1 standartında yer alan karakter kümesi kullanılmalıdır.  3.15. İstek Başlığı  bölümünde detaylandırılmıştır. \n API istekleri ve yanıtlarında  Gövde  parametrelerinde UTF-8 karakter kodlaması kullanılır. Bu, JSON için varsayılan karakter kodlamasıdır. \n Ancak, bir HHS\'nin kendi uygulamaları ve ödeme başlattığı ödeme sistemi (Havale vb.) bazı UTF-8 karakterlerini kabul etmeyebilir. HHS, UTF-8 kodlaması içeren bir mesajı işleyemez ve reddederse, HTTP 400 (Hatalı İstek) durum kodu ile yanıt vermelidir. \n ÖHVPS kapsamında iletilen değerler içerisinde işlenemeyecek karakterler var ise  "TR.OHVPS.Business.InvalidCharacter"  hatası verilir. \n Gövde parametrelerinde desteklenen UTF-8 karakter kümesi aşağıda listelenmiştir. \n \n \n \n Karakter \n UTF 8   Hex. \n Karakter \n UTF 8   Hex. \n Karakter \n UTF 8   Hex. \n Karakter \n UTF 8   Hex. \n \n \n \n \n \n 20 \n = \n 3d \n X \n 58 \n r \n 72 \n \n \n ! \n 21 \n ? \n 3f \n Y \n 59 \n s \n 73 \n\n 23 \n @ \n 40 \n Z \n 5a \n t \n 74 \n \n \n % \n 25 \n A \n 41 \n [ \n 5b \n u \n 75 \n \n \n & \n 26 \n B \n 42 \n \\ \n 5c \n v \n 76 \n \n \n \' \n 27 \n C \n 43 \n ] \n 5d \n w \n 77 \n \n \n ( \n 28 \n D \n 44 \n ^ \n 5e \n x \n 78 \n \n \n ) \n 29 \n E \n 45 \n _ \n 5f \n y \n 79 \n \n \n * \n 2a \n F \n 46 \n a \n 61 \n z \n 7a \n \n \n + \n 2b \n G \n 47 \n b \n 62 \n { \n 7b \n \n \n , \n 2c \n H \n 48 \n c \n 63 \n } \n 7d \n \n \n - \n 2d \n I \n 49 \n d \n 64 \n Ç \n c3 87 \n \n \n . \n 2e \n J \n 4a \n e \n 65 \n Ö \n c3 96 \n \n \n / \n 2f \n K \n 4b \n f \n 66 \n Ü \n c3 9c \n \n \n 0 \n 30 \n L \n 4c \n g \n 67 \n ç \n c3 a7 \n \n \n 1 \n 31 \n M \n 4d \n h \n 68 \n ö \n c3 b6 \n \n \n 2 \n 32 \n N \n 4e \n i \n 69 \n ü \n c3 bc \n \n \n 3 \n 33 \n O \n 4f \n j \n 6a \n Ğ \n c4 9e \n \n \n 4 \n 34 \n P \n 50 \n k \n 6b \n ğ \n c4 9f \n \n \n 5 \n 35 \n Q \n 51 \n l \n 6c \n İ \n c4 b0 \n \n \n 6 \n 36 \n R \n 52 \n m \n 6d \n ı \n c4 b1 \n \n \n 7 \n 37 \n S \n 53 \n n \n 6e \n Ş \n c5 9e \n \n \n 8 \n 38 \n T \n 54 \n o \n 6f \
16n ş \n c5 9f \n \n \n 9 \n 39 \n U \n 55 \n p \n 70 \n \n \n \n \n : \n 3a \n V \n 56 \n q \n 71 \n \n \n \n \n ; \n 3b \n W \n 57 \n \n \n \n \n \n \n \n Ancak  Erişim belirteci, Yenileme belirteci ve Authorization  parametreleri daha dar bir karakter kümesi ile doldurulmalıdır. \n Bearer HTTP Authorization Şeması RFC 6750\'de tanımlanmıştır.  https://www.rfc-editor.org/rfc/rfc6750#section-2.1  bölümünde izin verilen karakterlerin gönderilmesi beklenmektedir. Buradaki standartın her 3 parametre için de uygulanmasına karar verilmiştir. \n RFC 6750 içerisinde bearer token formatı şu şekildedir : 1*( ALPHA / DIGIT / "-" / "." / "_" / "~" / "+" / "/" ) *"=" \nAugmented BNF for Syntax Specifications (ABNF) ile ifade edilen bu formatta token en az 1 adet alfanumerik karakter veya özel karakter ("-", "." , "_" , "~" , "+" , "/")  içermeli ve 0 ya da daha çok sayıda "=" karakteri ile bitmelidir. \n ALPHA = A-Z / a-z aralığındaki harflerdir. \nDIGIT = 0-9 aralığındaki rakamlardır. \n 3.7.\tVeri Formatı \n \n Açık bankacılık kapsamındaki zaman damgası, ISO 8601 standartına uygun olarak yerel saat bilgisini ve timezone bilgisini de içerecek şekilde " yyyy-MM-dd’T’HH:mm:ssXXX " formattaki haliyle hazırlanmalıdır. \n \n Örnek:  "timestamp": "2021-05-30T20:34:15+03:00" \nyyyy : 4 hane yıl \nMM : Başa ‘0’ eklenmiş, toplam 2 hane ay \ndd    : Başa ‘0’ eklenmiş, toplam 2 hane gün \nHH    : Başa ‘0’ eklenmiş, toplam 2 hane saat (0-23 arası değer alabilir.) \nmm : Başa ‘0’ eklenmiş, toplam 2 hane dakika \nss    : Başa ‘0’ eklenmiş, toplam 2 hane saniye \nXXX : ISO 8601 Time zone \n \n \n Zaman damgası hesaplamalarında, yeni günün başlangıç saatinin 00:00:00 olduğu kabul edilmiştir. \n \n \n JWT veri paketlerinde kullanılan zaman damgaları, 1 Ocak 1970 Saat 00:00:00 (UTC) anından itibaren geçen saniye sayısı değerini (Unix Time) kullanmalıdır. \n \n \n Bir HHS, tarihi yanlış biçimlendirilmiş bir istek aldığında, 400 (Hatalı İstek) durum kodu ve ilgili hata kodu ile yanıt vermelidir. \n \n \n ISO 4217 Standartında para birimleri ve kaç basamak ondalık değer içerebilecekleri belirlenmiştir. \n https://www.iso.org/iso-4217-currency-codes.html   adresinden ücretsiz olarak listeye erişilebilir.  \nAPI Standartlarında da para birimleri  ISO 4217’de tanımlanmış olan 3 harfli kodlarla iletilir.   Tüm tutar alanları ISO 4217\'de tanımlanmış para birimlerinin ondalık basamak değerleri de göz önünde bulundurularak iletilmelidir. Tutar alanları artı ya da eksi değer alabileceği için API deseninde tanımlanmış regular expressionlar dikkate alınmalıdır. \nÖrneğin; Bakiye API\'sindeki "Kredili Mevduat Hesabı Bakiyesi" alanı "-100.25" ve "Para Birimi" alanı "TRY" olarak iletildiğinde 25 değerinin kuruş olduğu anlaşılmalıdır. \nÖdeme Emri Rızası API\'sinde yer alan "İşlem Tutarı" alanı "104.75" TRY olarak iletildiğinde "75" değerinin kuruş olduğu anlaşılmalıdır. \n"12000" Japon Yeni için, ISO 4217’de JPY para biriminin ondalık kısmı olmadığından "İşlem Tutarı" alanında "12000" ve "Para Birimi" alanında "JPY" değeri  iletilmelidir. \n \n \n Altın para birimi özelinde ISO 4217’ye uygun olarak "XAU" cinsinde ve 2 basamak ondalık rakam içerecek şekilde iletilmelidir. Örneğin içerisinde "13,50 gr" altın olan hesap için bakiye "13.50", para birimi "XAU" olarak gönderilmelidir. \n \n \n Diğer madenlerde ondalık basamak ISO 4217 standartında tanımlandığı gibi olmalıdır. \n \n \n Sıralı veri tipleri büyük küçük harfe duyarlı olmalıdır. \n 3.8.\tİstemci Sertifika Yönetimi \n ÖHVPS kapsamında YÖS ve HHS’lerin güvenli bir şekilde tanımlanması amacıyla elektronik sertifikalar kullanılır. \n ÖHVPS kapsamında tarafların güvenli bir şekilde tanımlaması, uçtan uca güvenli iletişim, mesaj şifreleme ve mesaj imzalama işlevleri 15/1/2004 tarihli ve 5070 sayılı Elektronik İmza Kanunu’nda açıklanan elektronik sertifikalar kullanılarak sağlanır. Elektronik sertifikada Türkiye Cumhuriyet Merkez Bankası tarafından verilen kuruluş kodu ve kuruluşun türüne dair bilgiler bulunur. \n GEÇİT üzerinden yapılan erişimlerde YÖS ve HHS’lere önceden dağıtılmış olan istemci sertifikaları kullanılarak tarafların (sunucu) kimlikler
16inin doğrulanması sağlanacaktır. İstemci sertifikaları hem test hem de üretim ortamında kullanılacaktır. Sertifikaların işlevselliği ve geçerliliği sertifikasyon sürecinde de sınanacaktır. Söz konusu sertifikaların dağıtım prosedürleri ve kullanımlara yönelik açıklamalar EK-3’te yer verilmiştir. \n 3.9.\tYetkilendirme Türleri \n GEÇİT üzerinden yapılan çağrılarda iki temel yetkilendirme türü kullanılır: \n 1.\tİstemci Kimlik Bilgileri:  Müşteri onayının gerekmediği, sadece YÖS’ün tanımlanıp doğrulandığı API çağrılarında kullanılır. YÖS’ün yetkilendirilmiş olduğu ve faaliyet izninin yaptığı hizmet çağrısına uygun olduğu kontrol edilir.  Bu amaçla, YÖS’lere clientId ve clientSecret tahsis edilecektir. YÖS’ler ilgili clientId ve clientSecret ile sadece yetkilendirilmiş oldukları servislere erişebileceklerdir. YÖS’ler kendilerine BKM tarafından sunulacak API’yi, kendi clientID ve clientSecret değerleri ile sorgulayarak “İstemci Kimlik Bilgileri” belirtecini (access token) elde edeceklerdir.\nHHS’ler de GEÇİT üzerindeki YÖS API’sini sorgulama maksadı ile GEÇİT\'e geldiklerinde, kendilerine atanmış olan clientID ve clientSecret bilgileri ile yetki kontrolleri yapılır.\nHHS ve YÖS’ler ; ilettikleri client id ve secret değerleri kullanılarak oluşturulacak bearer authentication metodu ile servislerini sunacaklardır. \n 2.\tYetkilendirme Kodu:  YÖS’ün doğrulanmasının yanısıra müşterinin GKD ile doğrulanması gereken API çağrılarında kullanılır. Müşteri doğrulanarak yetkilendirme kodu oluşturulması HHS’nin yetkilendirme arayüzüne yönlendirilir. GKD’nin başarıyla tamamlanması sonrasında yetkilendirme kodu YÖS’e dönülür. YÖS daha sonra HHS’nin  erişim belirteci  (access token) erişim adresini (EK-3: POST /erisim-belirteci) çağırmak suretiyle yetkilendirme kodunu bir erişim belirteci (access token) ile değiştirerek ilgili kaynakları kullanabilir. \n Ödeme emri başlatma ve hesap bilgisi hizmetlerinde hangi yetkilendirme türlerinin kullanılacağı bilgisi, ilgili başlıklardaki erişim adresleri (endpoints) tablolarında yer almaktadır. \n erisim-belirteci  erisim noktasından elde edilen  erisimBelirteci  ilişkilendirildiği nesne veya işlem için gönderilen POST isteği başlığında  x-access-token  alanında iletilir.\nBelirli bir süre için tanımlanan erişim belirteci (access token) değerinin yenileme belirteci (refresh token) ile yenilenmesi gerekir. \n Erişim adreslerinde kullanılan yetkilendirme türü ilgili erişim adresi tablolarında belirtilmiştir. \n 3.10. İstek/Cevap Mesajlarında Kullanılan Nesne Yapıları \n İstek ve Cevap mesajlarında kullanılacak olan nesneler tüm elemanlarını kapsayacak şekilde Ek-1 de listelenmiştir. Tüm listelenen elemanlar açısından (Uç nokta mesaj yapılarının belirtildiği tablolarda belirtildiği üzere) alanın Zorunlu (z) veya İsteğe Bağlı (İ) olma durumlarına göre bazı alanlar gönderilebilir veya gönderilmeyebilir. \n 3.11. Sayfalandırma ve Filtreleme \n Sayfalandırma \n Çağrıya dönülen kaynak nesnesi içerisindeki kayıtlar bir sayfalandırma yapısı ile çağrılacak şekilde istek oluşturulur. \n Oluşturulacak isteğin içerisinde parametreler ile filtreleme, sayfa başına gösterilecek kayıt sayısı ve hangi sayfanın önyüzde gösterileceği bilgileri erişim noktasına iletilir ve ilgili kayıtlar cevap olarak alınır. \n Filtreleme \n HHS, birden çok kayıt dönülmesi gereken GET çağrılarında sınırlı filtreleme desteği sağlamalıdır. Filtre parametreleri her zaman kaynak nesnesinin belirli alanlarına özgüdür ve nesne için tanımlanan kurallara uymalıdır. \n 3.12. Mesaj İmzalama \n Elektronik imzalar, ÖHVPS API’de gerçekleştirilen işlemlerin ve taşınan verilerin bütünlük ve inkâr edilemezliğini destekler. İmzaların kaynak bazında hangi istek ve yanıtlara uygulandığı belirlidir. \n API yalnızca TLS\'ye dayanırsa, dijital kayıtları ve inkâr edilemezlik kanıtlarını tutmak zor olur. Bu nedenle, TLS\'ye dayanmayan bir inkâr edilemezlik çözümü olarak API isteğinin HTTP başlığında bir JWS kullanılarak sağlanabilir. \n HTTP isteğinin gövdesinin hash fonksiyonu (SHA256) ile özeti alınacaktır. Elde edilen özet, asimetrik anahtarları de
16stekleyen bir algoritma kullanılarak imzalanacak ve JWS elde edilecektir. İsteğin kendinize geldiği durumda body üzerinde hiç bir değişikliğe tabi tutmadan (serialize/deserialize, minify, trim, vb yapmadan) doğrulama yapmanız gerekmektedir. Aynı şekilde isteğin kendinizden çıktığı aşamada da response body üzerinde hiç bir değişikliğe tabi tutmadan (serialize/deserialize, minify, trim, vb yapmadan) mesaj imzalama yapılmalıdır. \n Bir istek, YÖS\'nin özel anahtarı ile imzalanacak ve bu isteğe karşılık gelen yanıt, HHS\'nin özel anahtarı tarafından imzalanacaktır. \n Tüm API istekleri ve yanıtları imzalanmaz. Mesaj imzalamanın zorunlu olup olmadığı, desteklenip desteklenmediği her API özelinde belirlenir. \n Anahtar Deposu \n HHS\'ler ve YÖS\'ler tarafından güvenilen bir Güven Otoritesi (Trust Anchor), taraflar için bir genel anahtar deposu sağlamaktan sorumludur. \n Güven Otoritesi, taraflardan herhangi birisinin oluşturduğu bir anahtar çiftinin açık bölümünü saklayan merkezi bir dizin (BKM tarafından tutulan merkezi kayıt sistemi vb.) olacaktır. \n Mesajları doğrulamak için tarafların genel anahtarlarının paylaşılması için BKM bir servis sağlayacaktır. HHS API olarak adlandırılımış olan bu servis ile HHS ve YÖS listelerine ulaşılabildiği gibi doğrulama işlemi için ihtiyaç duyulacak olan genel anahtarlara da bu servis üzerinden erişilebilinecektir. \n İlgili Mesaj şifreleme için genel akış, Ek-5 bölümünde detaylarıyla paylaşılmaktadır. \n 3.13. Durum Kodu \n API’ler, iki farklı amaca hizmet eden iki durum kodu kullanır: \n \n HTTP Durum Kodu, API çağrısının (kaynaktaki HTTP işlemi) sonucunu yansıtır. \n Bazı kaynak payload’larındaki Durum alanı, kaynakların durumunu yansıtır. \n 3.14. Gereksinimlerinin Sınıflandırılması \n Erişim adreslerinin ve alanların kullanımı Zorunlu(Z), İsteğe Bağlı(İ) veya Koşullu(K) olabilir. Kullanımlara ilişkin durumlar ve kullanımın (K) koşullu olduğu duruma ilişkin açıklamalar ilgili tablolarda belirtilmiştir. \n ÖHVPS API\'lerinin (HBH,ÖBH,GKD) istek ve yanıtta kullanılacak başlık isimleri, ilgili RFC dokümanlarında ve aşağıdaki tabloda yer aldığı şekilde kullanılacaktır.  Uygulamaya özelleşmiş başlıklar "X-" ile başlayacaktır. Başlık isimlerinde yer alacak kısaltmalar (örn. PSU, ASPSP gibi) tamamı büyük harfle yazılacak şekilde tanımlanacaktır. Başlık isimleri büyük – küçük harfe duyarlı olmamalıdır. Örneğin x-request-id ya da X-Request-ID olarak gönderilmiş olan bir istek başlığı değişkeni, sunucu tarafında hata vermeyecek şekilde işlenebilmelidir. \n 3.15. İstek Başlığı \n \n "Başlık isimleri" yorumlanırken küçük büyük harfe duyarlı olmamalıdır. Örneğin "x-ReQuEsT-Id" geçerli bir başlık ismidir. \n "Başlık değerleri" yorumlanırken ise küçük büyük harf duyarlılığı olmalıdır. Örneğin "xyz123" ile "XYZ123" değerleri farklıdır. \n Başlık değerlerinde ISO-8859-1 standartında yer alan karakter kümesi kullanılmalıdır. Örneğin "PSU-Device-Data" değerinde "İOS12" yazmak, büyük "İ" harfinin ISO-8859-1 içerisinde yer almamasından dolayı, hataya yol açacaktır. \n İstek başlığında aşağıdaki tabloda belirtilen alanlar dışında gönderim yapılmamalıdır. \n İstek başlığında boş değer içeren bir başlık ismiyle gönderim yapılmamalıdır. Örnek; "PSU-Initiated":"" \n İstek ve Yanıt başlığında yer alan alanların; POST GET DELETE methodlarında, OBH,HBH,GKD,OAS,ODS API\'leri bazında Zorunlu/Koşullu/İsteğe Bağlı kullanım durumları aşağıdaki tabloda listelenmiştir. \n \n Tablo 2: İstek Başlığında Yer Alan Veriler \n \n \n \n Başlık İsimleri \n Format \n Notlar \n POST \n GET \n DELETE \n POST \n GET \n DELETE \n \n \n \n \n \n \n \n OBH HBH GKD \n OBH HBH GKD \n OBH HBH GKD \n OAS ODS \n OAS ODS \n OAS ODS \n \n \n X-Request-ID \n AN1..36 \n İsteği başlatan YÖS tarafından belirlenen çağrıya özgü talep kimliği. İstek numarası.   Örnek: Ödeme emri başlatma iş akışının her adımda farklı “x-request-id” değeri kullanılır.   Çağrıların aynı yanıtı dönmesinin beklendiği durumlarda (idempotent işlemlerde) aynı değer ile çağrı yapılır. \n Z \n Z \n Z \n Z \n Z \n Z \n \n \n X-Group-ID \n AN1..36 \n İsteği başlatan YÖS tarafından belirlenen işlem akışına özgü talep kimliği. İşlem grup numarası.  Aynı rıza no’ya ait tüm isteklerde aynı x-group-id bilgisi değeri gönderilmelidir. Örnek: Ödeme emri başlatma/hesap bilgisi iş akışının her adımında aynı “x-group-id” değeri kullanılır. \n Z \n Z \n Z \n - \n 
16- \n - \n \n \n Content-Type \n AN1..20 \n Standart HTTP Başlığı; Talepte sağlanan payload’ın biçimini temsil eder. Bu değerin application/json olarak gönderilmesi gerekmektedir. Hata durumlarında application/problem+json da iletilebilir.  (Başka bir değere ayarlanırsa, HHS, 415 Desteklenmeyen Ortam Türü (Unsupported Media Type) ile yanıt vermelidir) \n Z \n - \n - \n Z \n - \n - \n \n \n X-ASPSP-Code \n AN4 \n Hesap Hizmeti Sağlayıcısının (HHS) kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n Z \n Z \n Z \n Z \n Z \n Z \n \n \n X-TPP-Code \n AN4 \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur \n Z \n Z \n Z \n Z \n Z \n Z \n \n \n PSU-Auth-Date \n ISODateTime \n ÖHK’nın YÖS üzerinde en son oturum açtığı saat. [RFC7231] Örneğin:  auth-date: Tue, 11 Sep 2012 19:43:31 GMT \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-IP-Address \n AN7..15 \n ÖHK YÖS üzerinde oturum açmışsa, işlemi başlattığı cihazın IP adresi. \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-IP-Port \n AN1..5 \n ÖHK YÖS üzerinde oturum açmışsa, işlemi başlattığı cihazın Port adresi. \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-GEO-Location \n AN1..36 \n ÖHK’nın işlemi başlattığı cihazın konum bilgisi. RFC2426 standartına uygun olarak paylaşılmalıdır. Örneğin  GEO:"<enlem >, <boylam>GEO:52.506931,13.144558 \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-User-Agent \n AN 1.. 255 \n ÖHK’nın işlemi başlattığı cihazın sağladığı user-agent bilgisi. (Tarayıcı, versiyon, işletim sistemi bilgileri) \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-Timestamp \n ISODateTime \n ÖHK’nın işlemi başlattığı cihazın tarih saat içeren zaman bilgisi. \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-Device-ID \n AN5..40 \n ÖHK işlemi mobil uygulama aracılığıyla başlattıysa, kullanılan mobil uygulama ilk yüklendiğinde oluşturulan tekil cihaz veya uygulama belirteci. ÖHK cihazının UUID değeri kullanılabilir. \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-Device-Data \n AN1..1024 \n ÖHK’nın işlemi başlattığı mobil cihaza ait veriler.  Örnek alanlar:   - Platform - (Android, iOS, Windows 10 Mobile)  - Device Model   - OS Name   - OS Version - Locale - Time zone \n İ \n İ \n İ \n - \n - \n - \n \n \n PSU-Initiated \n AN1 \n İşlemin ÖHK tarafından başlatılması durumunda E , sistem tarafından başlatıldığı durumda H değerini, olay bildirimine istinaden yapılacak isteklerde O değerini alması beklenir. İşlemler servisinde yapılacak sistemsel sorgulardaki işlem limitlerini kontrol amacıyla kullanılır. O değerinin gönderilebileceği API\'ler  Asıl Verinin Elde Edileceği API  olarak ilgili sayfada yer alan Olay Tipleri ve Kaynak Tipleri İlişkisi tablosunda yer almaktadır. Asıl verinin elde edileceği API\'ler özelinde O gönderimi yapılabilir. O olarak yapılan her isteğe HHS\'nin yanıt vermesi gereklidir. Otomatik sorgularda uygulanan üst limitler, O gönderimi durumunda geçerli değildir. \n Z \n Z \n Z \n - \n - \n - \n \n \n PSU-Fraud-Check \n AN1..4096 \n YÖS\'lerin çeşitli güvenlik kontrollerini gerçekleştirerek, önemli görülen aşağıdaki bilgileri HHS\'ler ile paylaşmaları gerekmektedir. Bu bilgiler ışığında müşterinin profili oluşturulmasına katkı sağlanacaktır.   ÖHK’lı işlemlerde (PSU-Initiated = E gönderildiği durumlarda) gönderilmesi zorunludur.  Sistemsel yapılan API çağrımlarımda, Olay Bildirim Servis Çağrımlarında ve HHS-YÖS API çağrımlarında gönderilmesine gerek bulunmamaktadır.  Paylaşılacak bilgiler şu şekildedir.   FirstLoginFlag  : ÖHK\'nın, müşterilik ömründe ilgili YÖS sistemine (mobil ya da web uygulaması) ilk login olma süresini ifade eden değer. ÖHK\'nın ilk yaptığı HBH ya da ÖBH işlemi değil, YÖS sisteminde kendini aktifleştirme tarih aralığı bilgisidir.   YÖS, kullanıcının ilk login bilgisini tutarak sonraki işlemlerinde bu bilgiyi belirlenen format ile HHS\'ye aktaracaktır. Örneğin; YÖS\'ün 7 aydır müşterisi olan bir kullanıcı için bu alan "5" olarak YÖS tarafından beslenecektir. Burada amaç; ilgili kullanıcının YÖS\'ün eski bir müşterisi mi, yoksa yeni bir müşterisi mi olup olmadığını anlamaktır.   Gönderilmesi Zorunlu alandır. TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.   DeviceFirstLoginFlag  : ÖHK\'nın, müşterilik ömründe işlem anında kullandığı cihazla YÖS uygulamasına (web ya da uygulama tabanlı) ilk login olma süresini ifade eden değer. ÖHK cihaz değişikliği yaparsa FirstLoginFlag değeri sabit kalmalı  ancak DeviceFirstLoginFlag değeri değişmelidir.  FirstloginFlag değeri ile ÖHK’nın YÖS uygulamasına ilk login tarih bilgisi ile ilgili bilgi verilirken, DeviceFirstLoginFlag ile de ÖHK’nın YÖS uygulamasına farklı bir cihaz aracılığı ile ilk login tarihinin bilgisi verilmektedir.  Örneğin; ÖHK 7 aydır YÖS\'ün müşterisi olabilir, böyle bir durumda FirstLoginFlag değeri "5" olacaktır. Ancak son işlemini daha önce hiç kullanmadığı bir cihazdan yapmıştır. Yeni cihazdaki login süre aralığı 0-2 sa
16at aralığında  olduğu için DeviceFirstLoginFlag değeri "1" olacaktır.FirstLoginFlag değeri yine "5" olarak kalmaya devam edecektir.Bu bilgi ile YÖS, ilgili HHS\'ye ilk kez geliyor olsa bile; HHS, müşterinin YÖS\'ü uzun süredir kullandığını ama yeni bir cihazla işlemlerine devam ettiğini anlayabilecektir. Bir ÖHK, farklı cihazlar veya platformlar üzerinden YÖS ile etkileşime girebilir.  Kullanıcı ve YÖS arasında bir oturum başlatılmış ise YÖS’ün tutarlı ve kalıcı bir kimlik (device id) ataması beklenmektedir.  Device ID: Web sitesi veya mobil uygulama kullanıcıları için üretilen, tarayıcı ya da mobil uygulama tabanlı benzersiz (tekil) tanımlayıcı değer. Mobil uygulamalar için ÖHK’nın ilk defa ilgili cihaza aktivasyon yaptığı tarih bilgisi alınmalıdır.   Device ID bilgileri YÖS uygulama ortamı (web ya da uygulama tabanlı) ve ÖHK cihazı bazında tutulmalıdır. YÖS’ten başlatılan işlem hangi uygulama ortamına ait ise ilgili ortamala ilişkili tutulan Device ID’nin ilk login tarihine bakılarak güncel flag değeri hesaplanmalıdır.  Gönderilmesi Zorunlu alandır. TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.   LastPasswordChangeFlag  : ÖHK\'nın, YÖS (cihaz bağımsız)  uygulamasına login olduğu şifre bilgisinin en son değiştirildiği süreyi ifade eden değer. Müşterinin en son ne zaman şifre değişikliği yaptığını anlamak için kullanılan alandır. Yeni müşteri ve hiç şifre değişikliği yapmamış olabilir, böyle bir durumda ilgili alan "0" olarak beslenecektir.   Gönderilmesi Zorunlu alandır. TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.   BlacklistFlag  : ÖHK\'nın herhangi bir sebeple YÖS\'ün sakıncalı müşteriler listesinde bulunup bulunmadığını ifade eden değer.   Burada amaç herhangi bir sebeple YÖS tarafında yasaklı olarak kayıtlı olan ÖHK bilgisinin, dolandırıcılığı önceden tespit etmek amaçlı HHS\'ye aktarılması olarak açıklanabilir. Örneğin, YÖS tarafından tespit edilen dolandırıcı kullancılara ait device id bilgisi, bu kara listede tutulur daha sonra aynı cihazla başka bir ÖHK işlem yapacak olsa bile bu alanda ilgili bilgi "1" değeri ile HHS\'ye aktarılır. HHS\'de olmayıp YÖS tarafında olan bu örnekteki sakıncalı müşteri/cihaz bilgisinin, dolaylı yoldan HHS\'ye aktarılması amaçlanmaktadır.  Gönderilmesi Opsiyonel alandır. TR.OHVPS.DataCode.VarYok sıralı veri tipinin alabileceği değerleri alabilir.   MalwareFlag  : YÖS uygulamasının çalıştığı cihaz üzerindeki son 21 güne ait zararlı yazılım tespit bilgisini ifade eden değer. Örneğin ÖHK\'nın cihazında zararlı yazılım olduğu ayın 1\'inde YÖS tarafından tespit edildi. Zararlı yazılım tespitinden 2 saat sonra YÖS üzerinden login olan ÖHK\'nın durumu,  "1" olarak iletilecektir. Bir gün sonra ayın 2\'sinde, yeni bir zararlı yazılım tespiti yok ancak mevcut zararlı yazılım aktifse alan "2" değeri ile iletilecektir. Süreler artarak 21 güne kadar TR.OHVPS.DataCode.ZmnAralik değerlerine göre iletilecektir.Son 21 gün içinde yeni bir tespit yoksa ayın 22\'sinden itibaren ilgili alan  "0" değeri ile beslenecektir. Not: Zararlı yazılım, bankacılık işlemlerinin yapıldığı uygulamalara girişte kullanılan bilgilerin (şifre, kullanıcı kodu gibi) ele geçirilmesi amacıyla kullanılan bir uygulama ya da kod parçacığı olabilir. Bu amaçlar dışında kullanılan (bankacılığa yönelik bir zararlı yazılım olmayan) yazılım tespitleri iletilmemelidir. YÖS kanallarına her bir loginde, kullanılan cihazda bir zararlı yazılım var mı yok mu kontrolü yapılmalıdır.   Gönderilmesi Opsiyonel alandır. TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.   AnomalyFlag  : Diğer şüpheli durumların varlığını ifade eden değer. Gönderilmesi Opsiyonel alandır. TR.OHVPS.DataCode.VarYok sıralı veri tipinin alabileceği değerleri alabilir.   UnsafeAccountFlag : HHS tarafından aktarılan bilgi ile son 21 gün içinde ÖHK\'nın dolandırıcılık mağduru olması durumunu ifade eden değer. Örneğin; HHS 1, ayın 1\'inde süphe veya sahtekarlık nedeniyle bir ödeme işlemine izin vermediği durumda, bu bilgiyi rıza iptal detay kodu ile YÖS\'e aktarmış olur. Bu bilgiyi tutan YÖS, ilgili müşterinin 15 dakika sonra HHS 2\'de yaptığı işlem için ilgili alanı "1" değeri ile besler. Böylece HHS 2, ÖHK\'nın farklı bir HHS\'de son 15 dakika içinde şüpheli veya sahte bir işlemi olduğunu anlayabilecektir. Ayın 22\'sinde yeni bir tespit/kayıt yoksa bu alan YÖS tarafından "0" olarak beslenecektir. Gönderilmesi Opsiyonel alandır.TR.OHVPS.DataCode.ZmnAralik sıralı veri tipinin alabileceği değerleri alabilir.     Flaglar JWT claims içine key value şeklinde eklenerek gönderilecektir. EK-5: Mesaj İmzalama Akışı\'nda belirtilen yöntemle imzalanarak oluşturulan JWT PSU-Fraud-Check alanına konularak YÖS\'ler tarafından HHS\'ye iletilmelidir. \n K \n K \n Z \n - \n 
16- \n - \n \n \n PSU-Session-ID \n AN1..100 \n İsteği başlatan YÖS tarafından belirlenen oturuma özgü talep kimliği. ÖHK\'nın YÖS uygulaması üzerinden kimlik doğrulama mekanizması ile bilgi sistemlerine dâhil olmalarından işlemlerini tamamlayıp sistemden ayrılmalarına kadar geçecek tüm süreci kapsayacak şekilde aynı değeri almalıdır. Tek seferlik ödeme gibi ÖHK’nın tanınmadan başlatıldığı işlemlerde bu değer boş olarak iletilmelidir. \n İ \n İ \n İ \n - \n - \n - \n \n \n Authorization \n AN1..4096 \n Katılımcı ile GEÇİT arasındaki otorizasyon için kullanılan token bilgisidir.  Yekilendirme türlerinden İstemci Kimlik Bilgileri’ni adresler.    Bölüm 3.6 Karakter Kodlama  bölümünde açıklanan karakter formatında gönderilmesi beklenmektedir. \n Z \n Z \n Z \n Z \n Z \n Z \n \n \n X-Access-Token \n AN1..4096 \n ÖHK’nın GKD sürecinde doğrulanması sonrasında kullanılan erişim simgesi. Yetkilendirme türlerinden Yetkilendirme Kodu (GKD)’nu adresler.  Bölüm 3.6 Karakter Kodlama  bölümünde açıklanan karakter formatında gönderilmesi beklenmektedir. \n İ \n İ \n İ \n - \n - \n - \n \n \n X-JWS-Signature \n AN1..4096 \n Payload gövdesinin ayrılmış bir JWS imzasını içeren üstbilgi.  Bu başlığın ne zaman belirtilmesi gerektiği hususu ilgili endpoint için belirtilmiştir.  Mesaj imzalama kullanılan API ve methoda göre gönderimi zorunludur. \n K \n K \n K \n K \n - \n - \n \n \n X-Agent-Code \n AN5 \n Temsilci kodunu ifade etmektedir. Bu kod, YÖS’lerin ÖHVPS kapsamındaki hizmetleri temsilcilik ilişkisi çerçevesinde üçüncü taraflar aracılığıyla sunabilmesi amacıyla BKM’ye yapılan başvurunun uygun bulunmasının ardından BKM tarafından atanır. Temsilci aracılığıyla gerçekleştirilen tüm işlemlerde, ilgili temsilciye ait X-Agent-Code bilgisinin request header’ında iletilmesi zorunludur. HHS’ler, YÖS’ler tarafından iletilen X-Agent-Code bilgisini kendi sistemlerinde saklayabilir ve işlem kayıtlarıyla ilişkilendirebilir. \n K \n K \n K \n K \n K \n K \n 3.16. Yanıt Başlığı \n \n "Başlık isimleri" yorumlanırken küçük büyük harfe duyarlı olmamalıdır. Örneğin "x-ReQuEsT-Id" geçerli bir başlık ismidir. \n "Başlık değerleri" yorumlanırken ise küçük büyük harf duyarlılığı olmalıdır. Örneğin "xyz123" ile "XYZ123" değerleri farklıdır. \n Başlık değerlerinde ISO-8859-1 standartında yer alan karakter kümesi kullanılmalıdır. Örneğin "Link" değerinde "İOS12" yazmak, büyük "İ" harfinin ISO-8859-1 içerisinde yer almamasından dolayı, hataya yol açacaktır. \n Yanıt başlığında aşağıdaki tabloda belirtilen alanlar dışında gönderim yapılmamalıdır. \n Yanıt başlığında boş değer içeren bir başlık ismiyle gönderim yapılmamalıdır. Örnek; "PSU-Initiated":"" \n \n Tablo 3: Yanıt Başlığında Yer Alan Veriler \n \n \n \n Başlık İsimleri \n Format \n Notlar \n Kullanım Durumu  OBH HBH GKD \n Kullanım Durumu  OAS ODS \n \n \n \n \n X-Request-ID \n AN1..36 \n YÖS tarafından belirlenen çağrıya özgü talep kimliği. İstek numarası    İlgili istek başlığındaki bilgi geri dönülür. \n Z \n Z \n \n \n X-Group-ID \n AN1..36 \n İsteği başlatan YÖS tarafından belirlenen işlem akışına özgü talep kimliği. İşlem grup numarası. İlgili istek başlığındaki bu değer geri dönülür. \n Z \n - \n \n \n X-ASPSP-Code \n AN4 \n Hesap Hizmeti Sağlayıcısının (HHS) kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu) \n Z \n Z \n \n \n X-TPP-Code \n AN4 \n Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur \n Z \n Z \n \n \n Content-Type \n AN1..20 \n Standart HTTP Başlığı; Talepte sağlanan payload’ın biçimini temsil eder:  application/json \n Z \n Z \n \n \n X-JWS-Signature \n AN1..4096 \n JWS imzasını içeren üstbilgi. Bu başlığın hangi yanıtlar için kullanılması gerektiği ilgili endpoint için belirtilmiştir.  Hata durumlarında, yanıt gövdesi değeri dönülüyor ise imzalanmalı ve imza bilgisi x-jws-signature alanında iletilmelidir.  Ancak uygulama katmanı tarafından yakalanamayan dolayısı ile imzalanamayan hata durumlarında x-jws-signature alanı HHS\'ler tarafından boş gönderilebilir.  Hatalı yanıt alındığı durumlarda ise X-JWS-Signature başlık değeri dolu ise doğrulama yapılmalıdır. (4**, 5**) \n K \n K \n \n \n X-RateLimit-Limit \n N 1..18 \n İstek kısıtı uygulanan servislerde en fazla kaç adet istek yapılabileceğini gösterir. Kısıt uygulanan servislerde bu başlığın dönmesi zorunludur. \n K \n 
16- \n \n \n X-RateLimit-Remaining \n N 1..18 \n İstek kısıtı uygulanan servislerde kaç adet istek hakkı kaldığını gösterir. Kısıt uygulanan servislerde bu başlığın dönmesi zorunludur. \n K \n - \n \n \n X-RateLimit-Reset \n AN 1..255 \n İstek kısıtı uygulanan servislerde çağrım hakkı bittikten sonra yeniden denemeden önce beklemesi gereken süreyi (saniye cinsinden) gösterir. HTTP 429 durum kodu (Too Many Requests) ile dönülen yanıtların başlığında dönülmesi zorunludur.  YÖS olarak yaptığınız sistemsel sorgularda; HTTP 429 durum kodu (Too Many Requests) ile dönülen yanıt aldığınızda tekrar sorgu yapmadan önce “X-RateLimit-Reset” yanıt başlığını kontrol ederek, bu başlıktaki süre kadar bekledikten sonra yeniden sorgulama yapılması gerekmektedir. \n K \n - \n \n \n x-total-count \n N 1..18 \n Hesaplar, İşlemler, Bakiye, İletilemeyen Olaylar servislerinde sayfalama kullanıldığı durumda, sorgu sonucu dönecek toplam kayıt sayısı bilgisi, bu alanda HHS isteğine bağlı olarak gönderilebilir.   Kayıt sayısı 0 olduğu durumda gönderimi zorunludur. \n K \n K \n \n \n Link \n 1..4096 \n “Link” alanının  Hesap Bilgisi Hizmeti için Erişim Adresleri    tablosundaki parametre  = Sayfalama olan API’lerde ve İletilemeyen Olaylar API\'sinde gönderim yapılması zorunludur.  Sayfalama yapısı kullanıldığında gelen yanıtta birden fazla sayfa var ise; önceki, sonraki, ilk, son sayfalara gitmek için gerekli referanslar link headerında aşağıdaki örnekteki gibi doldurulabilir.  x-total-count alanının gönderimi kayıt sayısı 0 olduğu durum dışında isteğe bağlı olduğu için; Link içerisindeki son sayfa bilgisi  (last) isteğe bağlı hale getirilmiştir. “Önceki”( prev) ve “Sonraki” (next) adımlarının uygun olan her durumda yer alması zorunludur. İlk sayfada “Önceki” seçeneği olmamalı, son sayfada ise “Sonraki” seçeneği olmamalıdır.    </ohvps/hbh/s2.0/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=6&syfKytSayi=100>; rel="next",  </ohvps/hbh/s2.0/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=4&syfKytSayi=100>; rel="prev",  </ohvps/hbh/s2.0/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=14&syfKytSayi=100>; rel="last",  </ohvps/hbh/s2.0/hesaplar/hspref/islemler?hesapIslemBslTrh=2022-01-01T00:00:00+03:00&hesapIslemBtsTrh=2023-12-12T23:59:59+03:00&srlmKrtr=islGrckZaman&srlmYon=Y&syfNo=0&syfKytSayi=100>; rel="first"    Hiç hesap hareketinin olmadığı durumda dönen yanıt başlığınızın şu şekilde olması beklenmektedir.  Response body: [] Response header: Link: </ohvps/hbh/s2.0/hesaplar?srlmKrtr=hspRef&srlmYon=A&syfNo=1&syfKytSayi=100>; rel="last",</ohvps/hbh/s2.0/hesaplar?srlmKrtr=hspRef&srlmYon=A&syfNo=1&syfKytSayi=100>; rel="first"  x-total-count alanı da 0 olarak iletilmelidir. \n K \n K \n 3.17. Idempotency Kuralları \n YÖS’ün aşağıdaki durumlarda aynı istek numarası (x-request-id) ve aynı veri gövdesiyle çağrıyı tekrarlaması; HHS’nin de bu durumlarda aynı yanıtı dönmesi gereklidir. \n \n HHS’nin yanıtı kesinti/arıza nedeniyle YÖS’e ulaşmaz ve zaman aşımı söz konusu olması, \n ÖHK, YÖS uygulaması üzerinden çift tıklama ile mükerrer defa HHS API’lerini çağırılması,\n(API kontrollerinden önce YÖS uygulamasının, çift tıklama kontrolü yapması önerilmektedir.) \n YÖS, yanıt almasına rağmen işleyemeden kaybedilmesi, \n \n durumlarında HHS aşağıdaki kuralları işletir: \n \n HHS gelen istek numarasını ve veri gövdesini birleştirerek checksum değeri üretir. \nchesksum değeri x-request-id|request.body ‘nin hash algoritmalarından (CRC32,MD5 vb)  geçirilerek üretilebilir. \n HHS bu checksum değeri ile YÖS’e dönmüş olduğu yanıtı 5 dk boyunca saklar.  Saklama yöntemi olarak veri tabanı veya önbellek araçları kullanılabilir. \n YÖS aynı istek numarası ve aynı veri gövdesi ile yeni bir çağrı yaptığında, aynı checksum değeri üretileceği için 5dk boyunca bu değere karşılık gelen yanıtı döner. \n 5 dk sonrasında istek numarası veya veri gövdesi değişmemiş olsa dahi bu HHS tarafından yeni istek olarak kabul edilir. \n \n Aşağıdaki Public Post işlemleri için bu kural setinin işletilmesi gerekmektedir: \n 1- Ödeme emri rızası oluşturma \n2- Erişim belirteci oluşturma \n3- Ödeme emri \n4- Hesap bilgisi rızası oluşturma \n5- İleri Tarihli Ödeme Emri Rızası oluşturma \n6- İleri Tarihli Ödeme Emri \n7- Düzenli Tekrarlı Ödeme Emri Rızası oluşturma \n8- Düzenli Tekrarlı Ödeme Emri \n 3.18. HTTP Durum Kodları \n RFC 2616\'da belirlenmiş olan durum ko
16dları (status code) gönderilen isteğin durumunu YÖS’a standart bir şekilde ifade eder. Eğer bir hata varsa hatayı, gönderilen istek başarılı bir şekilde işlem gördüyse ona ilişkin durumu aktarır. Durum kodları genel olarak 5 kategoridedir. \n \n 1xx Bilgi \n 2xx Başarılı \n 3xx Yönlendirme \n 4xx İstemci Hatası \n 5xx Sunucu Hatası \n \n errorCode Alanında Kullanılabilecek Sıralı Hata Tipleri : \n \n TR.OHVPS.Resource \n \n ⇨\tInvalidFormat \n ⇨\tConsentMismatch \n ⇨\tNotFound \n ⇨\tInvalidSignature \n ⇨\tMissingSignature \n ⇨\tMethodNotAllowed \n ⇨\tNotAcceptable \n ⇨\tUnsupportedMediaType \n ⇨\tConsentRevoked \n \n \n \n TR.OHVPS.Business \n \n ⇨\tInvalidContent \n ⇨\tInvalidAccount \n \n \n \n TR.OHVPS.Connection \n \n ⇨\tInvalidCertificate \n ⇨\tExceededRate \n ⇨\tInvalidTPP \n ⇨\tInvalidASPSP \n ⇨\tInvalidToken \n ⇨\tInvalidTPPRole \n \n \n \n TR.OHVPS.Server \n \n ⇨\tInternalError \n ⇨\tServiceUnavailable \n \n \n TR.OHVPS.Resource.InvalidFormat hatası alındığı durumda; fieldErrors nesnesi içerisinde verilecek hata kodları : \n \n TR.OHVPS.Field \n \n ⇨\tMissing \n ⇨\tInvalid \n \n \n Veri Tipi Örneği: \n { \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "d8bd4e5f-f094-48a6-aee1-3a800e2709d9" , \n     "timestamp" :   "2022-12-22T10:33:15+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "Validation error" , \n     "moreInformationTr" :   "Şema kontrolleri başarısız" , \n     "fieldErrors" :   [ \n         { \n             "objectName" :   "odemeEmriRizasiIstegi" , \n             "field" :   "odmBsltm.islTtr.prBrm" , \n             "messageTr" :   "boş değer olamaz" , \n             "message" :   "must not be null" , \n             "code" :   "TR.OHVPS.Field.Missing" \n         } , \n         { \n             "objectName" :   "odemeEmriRizasiIstegi" , \n             "field" :   "odmBsltm.kmlk.kmlkVrs" , \n             "messageTr" :   "boyut \'1\' ile \'30\' arasında olmalı" , \n             "message" :   "size must be between 1 and 30" , \n             "code" :   "TR.OHVPS.Field.Invalid" \n         } \n     ] , \n     "errorCode" :   "TR.OHVPS.Resource.InvalidFormat" \n }  \n \n Tablo 4: HTTP Durum Kodları \n \n \n \n HTTP Durum \n İstek Sonucu ve Açıklamalar \n POST \n GET \n DELETE \n \n \n \n \n 200 OK \n İstek Başarıyla Tamamlandı. Kaynak güncellemek için yapılan (örneğin, GET) ve başarıyla tamamlanan isteklerinde kullanılır. \n H \n E \n H \n \n \n 201 Created \n İstek Başarılı Oldu. Kaynak yaratma isteği (örneğin, POST /ödeme-emri-rizasi) başarıyla sonuçlandı. \n E \n H \n H \n \n \n 204 No Content \n Silme işlemi başarıyla tamamlandı. Kaynak silme isteği (örneğin,  DELETE /hesap-rizasi/{RizaNo} ) başarıyla sonuçlandı. \n H \n H \n E \n \n \n 400 Bad Request \n İstekte bozuk, eksik veya uyumlu olmayan JSON gövdesi, URL parametreleri veya başlık alanları var.  İstekle başlatılan işlem yapısal bozukluk, eksik veya tutarsız veri veya HHS tarafındaki kontrollerin hatalı sonuçlanması nedeniyle hata ile sonuçlanır ve hataya ilişkin veriler hata nesnesi içerisinde dönülür. \n E \n E \n E \n \n \n 401 Unauthorized \n Yetkilendirme başlığı eksik, hatalı veya geçersiz olduğundan istek yetkilendirilmediğinde ve erişim reddedildiğinde http 401 kodu dönülmelidir. \n E \n E \n E \n \n \n 403 Forbidden \n Erişim belirtecinin veya rızanın kapsamı uyuşmuyor. YÖS bir hesaba/işlem kaynağına erişmeye çalışır ve YÖS, istenen kaynağa erişmek için geçerli izinlere sahip bir rızası yoktur.  Örneğin; hesap bilgisi rızası bakiye izni almamıştır ancak /bakiyeler adresinden istekte bulunmuştur. \n \n \n \n \n \n 404 Not Found \n **HHS geçerli bir API erişim adresini sağlamıyorsa, o URL\'ye gelen istekler için 404 (Bulunamadı) ile yanıt vermelidir.**YÖS, uygulama esaslarında tanımlanmayan bir 
16kaynak için bir URL\'ye erişmeye çalışırsa (örneğin, GET /yurtdisi-odeme), HHS, 404 (Bulunamadı) ile yanıt vermeyi seçebilir. \n E \n E \n E \n \n \n 405 Method Not Allowed \n YÖS, desteklenmeyen bir yöntemle kaynağa erişmeye çalıştı. \n E \n E \n E \n \n \n 406 Not Acceptable \n İstek, geçersiz bir karakter kümesi içeriyor. \n E \n E \n E \n \n \n 415 Unsupported Media Type \n İstek gövdesi hedef kaynakta bu yöntem tarafından desteklenmeyen bir biçimde oluşturulduğu için işlem reddedildi \n E \n H \n H \n \n \n 429 Too Many Requests \n Belirli bir süre içinde çok fazla talepte bulunulduğu için işlem reddedildi.  HHS’ler adil kullanım politikalarını aşan talepleri kısıtlayabilir. \n E \n E \n E \n \n \n 500 Internal Server Error \n API sunucu / servis katmanında sorun oluştu. İşlem başarısız.  5XX hata durumlarında yanıt gövde değeri olmadığı için mesaj imzalama yapılamaz ve x-jws-signature alanı boş olarak iletilir.  Bu durumda x-jws-signature kontrolü yapılmamalıdır. \n E \n E \n E \n \n \n 503 Service Unavailable \n Hizmet sürümü kullanımdan kaldırıldı.  Bir API\'nin kullanımdan kaldırıldığı ve artık bir HHS tarafından operasyonel olarak desteklenmediği durumlarda, URI yolu hala etkin olabilir ve API isteklerini kabul edebilir.  Bu durumda, YÖS\'ün API sürümünün çevrimdışı olduğunun farkında olması için 503 Hizmet Kullanılamıyor dönmesi önerilir. \n E \n E \n E \n \n \n \n İş kuralları nezdinde ilgili hata kodları özelleştirilmiş olup HHS tarafından verilecek olan hata kodları ÖHVPS API İlke ve Kuralları dokümanında ilgili alanlarda paylaşılmıştır. Bu çalışmaya ek olarak, HHS\'lerin YÖS\'lere; YÖS\'lerin de ÖHK\'lara iletecekleri hata mesaj içeriklerinde standartlaşmaya gidilmiştir. Bu çalışmaya Türkiye\'nin İletişim Platformu altında yer alan ÖHVPS > Dokümanlar alanından ulaşabilirsiniz. HHS\'lerin ve YÖS\'lerin ilgili dokümanı referans alarak mesaj içeriklerini, kurumların kendi müşteri iletişim dili kapsamında düzenleyerek ÖHK\'lara gösterebilir olması beklenmektedir. \n Hata Örnekleri: \n 400 Bad Request \n TR.OHVPS.Resource.InvalidFormat  hatası şema validasyonu, alan uzunluk ve varlık kontrollerinin başarısız olduğu durumda verilmelidir. \n \n { \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "7f115b9c-d7c2-4a2a-bc45-5a9891c79072" , \n     "timestamp" :   "2022-12-22T10:47:57+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "Validation error" , \n     "moreInformationTr" :   "Şema kontrolleri başarısız" , \n     "fieldErrors" :   [ \n         { \n             "objectName" :   "odemeEmriRizasiIstegi" , \n             "field" :   "odmBsltm.alc.unv" , \n             "messageTr" :   "boyut \'3\' ile \'140\' arasında olmalı" , \n             "message" :   "size must be between 3 and 140" , \n             "code" :   "TR.OHVPS.Field.Invalid" \n         } , \n         { \n             "objectName" :   "odemeEmriRizasiIstegi" , \n             "field" :   "odmBsltm.islTtr.ttr" , \n             "messageTr" :   "boş değer olamaz" , \n             "message" :   "must not be null" , \n             "code" :   "TR.OHVPS.Field.Missing" \n         } \n     ] , \n     "errorCode" :   "TR.OHVPS.Resource.InvalidFormat" \n }  \n\n \n Zorunlu header alanlarından biri ya da birkaçı eksik olarak gönderilirse aşağıdaki gibi bir hata dönüşü gerçekleşebilir. \n HHS uygulaması tarafından dönülebilecek hata örnekleri: \n \n { \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "2005515d-f0e6-4a07-a439-0ef3b0f56011" , \n     "timestamp" :   "2022-12-22T10:39:26+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "Validation error" , \n     "moreInformationTr" :   "Şema kontrolleri başarısız" , \n     "errorCode" :   "TR.OHVPS.Resource.InvalidFormat" , \n     "fieldErrors" :   [ \n         {          \n             "field" :   "X-Request-ID" , \n             "messageTr" :   "X-Request-ID değeri boş olamaz." , \n             "message" :   "X-Request-ID cannot be null." , \n             "code" :   "TR.OHVPS.Field.Invalid" \n         } \n     ] \n }  \n\n \n Business hata örneği - 1: \n { \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "677cfd9d-77c1-4ea3-8bdf-74a6e9887177" , \n     "timestamp" :   "2022-12-22T11:05:59+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "gonUnvan wrong" , \n     "moreInformationTr" :   "Gönderen Ünvan hatalı" , \n     "errorCode" :   "TR.OHVPS.Business.IncorrectSenderTitle" \n }  \n \n Business hata örneği - 2: \n { \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "5df3b402-3aca-4305-a35b-5af0f3184b40" , \n     "timestamp" :   "2022-12-22T11:06:47+03:00" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" , \n     "moreInformation" :   "Sender account is disabled or not found." , \n     "moreInformationTr" :   "Gonderen hesap aktif değil veya bulunamadı." , \n     "errorCode" :   "TR.OHVPS.Business.InvalidAccount" \n }  \n \n GEÇİT\'te yapılan zorunlu header kontrollerinde aşağıdaki hatalar dönebilir: \n \n { \n     "timestamp" :   "2022-12-22T10:40:28+03:00" , \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "d4375748-6fc7-4f7e-94f3-6411cab1d59f" , \n     "moreInformationTr" :   "Geçersiz HHS kodu." , \n     "errorCode" :   "TR.OHVPS.Connection.InvalidASPSP" , \n     "moreInformation" :   "Invalid ASPSP Code" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" \n }  \n \n GEÇİT tarafından dönülecek hata örneği: \n \n { \n     "timestamp" :   "2022-12-22T10:40:28+03:00" , \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "d4375748-6fc7-4f7e-94f3-6411cab1d59f" , \n     "moreInformationTr" :   "Geçersiz HHS kodu." , \n     "errorCode" :   "TR.OHVPS.Connection.InvalidTPP" , \n     "moreInformation" :   "Invalid TPP Code" , \n     "httpCode" :   400 , \n     "httpMessage" :   "Bad Request" \n }  \n \n GEÇİT tarafından dönülecek hata örneği: \n \n { \n     "timestamp" :   "2022-12-22T11:14:05+03:00" , \n     "path" :   "/ohvps/hbh/s2.0/hesap-bilgisi-rizasi" , \n     "id" :   "ee1e3ea7-a5e5-468b-bb02-314148f84e6a" , \n     "moreInformationTr" :   "Geçersiz yös rolü. İlgili api çağrısı için yetkisi yok." , \n     "errorCode" :   "TR.OHVPS.Connection.InvalidTPPRole" , \n     "moreInformation" :   "Invalid TPP Role" , \n     "httpCode" :   403 , \n     "httpMessage" :   "Forbidden" \n }  \n\n \n 401 Unauthorized \n YÖS, süresi dolmuş bir erişim belirteci kullandığında, HHS 401 (Yetkisiz) http kodu ile aşağıdaki hata kodunu dönmelidir.  Aşağıdaki nedenlerden herhangi biri nedeniyle bir Erişim Belirtecinin süresi dolduğunda bu durum ortaya çıkabilir: \n \n Rızanın süresi doldu (Son Kullanma Tarihi geçti) \n Erişim Belirtecinin şüpheli kullanımı veya sahtekarlık şüphesi \n Rızada belirlenen gün s
16ayısının aşımı\nBu hata, müşteriden doğru izinlerle yeniden kimlik doğrulaması isteyerek çözülebilir. \n \n \n { \n     "path" :   "/ohvps/gkd/s2.0/erisim-belirteci" , \n     "id" :   "ed3fd667-fc58-40ad-a982-e8937faccd15" , \n     "timestamp" :   "2022-12-22T11:17:33+03:00" , \n     "httpCode" :   401 , \n     "httpMessage" :   "Unauthorized" , \n     "moreInformation" :   "Refresh token expired or not found in database" , \n     "moreInformationTr" :   "Yenileme belirteci zaman aşımına uğramış veya veri tabanında yok" , \n     "errorCode" :   "TR.OHVPS.Connection.InvalidToken" \n }  \n \n\n \n 403 Forbidden \n Örn; YÖS yetkisi olmayan rol(ÖBH/HBH) ile işlem yapmaya çalıştığı durumda 403 hatası alarak işleme devam edemez. \n { \n   "path" :   "/ohvps/hbh/s2.0/bakiye" , \n   "id" :   "3e48ea98-f889-48b9-aa6e-28aabc6cfb14" , \n   "timestamp" :   "2022-12-22T11:20:05+03:00" , \n   "httpCode" :   403 , \n   "httpMessage" :   "Forbidden" , \n   "moreInformation" :   "Forbidden" , \n   "moreInformationTr" :   "Bakiye Bilgileri için ÖHK izni bulunmamaktadır." , \n   "errorCode" :   "TR.OHVPS.Resource.Forbidden" \n }  \n \n 404 Not Found \n Örn; GET /odeme-emri-rizasi/123456 çağrısı durumunda 123456 geçerli bir ödeme kaynağı değilse, HHS, 404 koduyla cevap vermelidir. \n { \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi/123456" , \n     "id" :   "22f52b2d-d442-4a6a-8f39-d23eba45a34b" , \n     "timestamp" :   "2022-12-22T10:53:53+03:00" , \n     "httpCode" :   404 , \n     "httpMessage" :   "Not Found" , \n     "moreInformation" :   "Resource not found" , \n     "errorCode" :   "TR.OHVPS.Resource.NotFound" , \n     "moreInformationTr" :   "Kaynak bulunamadı" \n }  \n\n \n 405 Method Not Allowed \n { \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "3e5c6b28-7ee4-4469-b541-843fb4a94eec" , \n     "timestamp" :   "2022-12-22T11:35:10+03:00" , \n     "httpCode" :   405 , \n     "httpMessage" :   "Method Not Allowed" , \n     "moreInformation" :   "Method not allowed" , \n     "errorCode" :   "TR.OHVPS.Resource.MethodNotAllowed" , \n     "moreInformationTr" :   "İstek yapılan URL için izin verilmeyen metot" \n }  \n \n 406 Not Acceptable \n { \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "3e5c6b28-7ee4-4469-b541-843fb4a94eec" , \n     "timestamp" :   "2022-12-22T11:35:10+03:00" , \n     "httpCode" :   406 , \n     "httpMessage" :   "Not Acceptable" , \n     "moreInformation" :   "Not Acceptable" , \n     "errorCode" :   "TR.OHVPS.Resource.NotAcceptable" , \n     "moreInformationTr" :   "Kabul edilmedi" \n }  \n \n 415 Unsupported Media Type \n İstek başlığında content-type, JSON dışında bir veri iletilirse bu hata verilebilir. \n \n { \n     "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n     "id" :   "63cc94b6-1b51-4648-9671-95e6e2e7e03d" , \n     "timestamp" :   "2022-12-22T11:37:12+03:00" , \n     "httpCode" :   415 , \n     "httpMessage" :   "Unsupported Media Type" , \n     "moreInformation" :   "Content type not supported" , \n     "errorCode" :   "TR.OHVPS.Resource.UnsupportedMediaType" , \n     "moreInformationTr" :   "Desteklenmeyen içerik tipi’" \n }  \n \n 429 Too Many Requests \n { \n   "path" :   "/ohvps/hbh/s2.0/hesaplar/aef6061f-2978-4bb4-980d-b4c634c8055b/islemler" , \n   "id" :   "20473c5f-2f4f-4b2e-8b66-7978aec442f7" , \n   "timestamp" :   "2022-12-22T00:21:07+03:00" , \n   "httpCode" :   429 , \n   "httpMessage" :   "Too Many Requests" , \n   "moreInformation" :   "Exceeded rate" , \n   "moreInformationTr" :   "Erişim sıklığı limiti aşımı" , \n   "errorCode" :   "TR.OHVPS.Connection.ExceededRate" \n }  \n \n 500 Internal Server Error \n { \n   "id" :   "1b90c6dc-0277-4755-8b05-9297ddfab743" , \n   "path" :   "/ohvps/obh/s2.0/odeme-emri-rizasi" , \n   "timestamp" :   "2022-12-22T11:41:34+03:00" , \n   "httpCode" :   500 , \n   "httpMessage" :   "Internal Server Error" , \n   "moreInformation" :   "Unexpected condition was encountered." , \n   "moreInformationTr" :   "Beklenmeyen bir durumla karşılaşıldı." , \n   "errorCode" :   "TR.OHVPS.Server.InternalError" \n }  \n\n \n 503 Service Unavailable \n \n   "timestamp" :   "2022-12-20T23:18:56+03:00" , \n   "path" :   "/ohvps/hbh/s2.0/hesap-bilgisi-rizasi/2a72678ee3d24de2be47887e4903a8c6" , \n   "id" :   "e76315b7-09f4-4295-b6d8-1f7fec632159" , \n   "moreInformationTr" :   "HHS şu anda hizmet veremiyor." , \n   "errorCode" :   "TR.OHVPS.Server.ServiceUnavailable" , \n   "moreInformation" :   "HHS is currently unavailable" , \n   "httpCode" :   503 , \n   "httpMessage" :   "Service Unavailable" \n 3.19. Maskeleme Kuralları \n Maskeli olarak iletilmesi gereken verilerin maskeleme kuralları şu şekildedir: \n \n IBAN verileri Hesap Numarası : İlk 4 ve son 4 karakteri açık, diğer karakterler maskeli olmalıdır. Örnek: TR54******************4812 \n Ad-Soyadı / Ticari Unvan : Her kelimenin ilk 2 karakteri açık, sonraki karakterler yerine 4 adet ‘ ’ karakteri konumlandırılmalıdır.\nÖrneğin: “FATİH SERKAN EREN” ifadesi “FA *** SE**** ER****” şeklinde gösterilmelidir. \n Tabela Unvanı : Her kelimenin ilk 2 karakteri açık, sonraki karakterler yerine 4 adet \' \' karakteri konumlandırılmalıdır. Örneğin “BANKALARARASI KART MERKEZİ ANONİM ŞİRKETİ” ifadesi “BA *** KA**
16** ME**** AN**** Şİ****” şeklinde gösterilmelidir. \n YÖS’ten girilen alıcı unvan ve IBAN bilgileri ödeme emri rızası ve ödeme emri yanıtında açık dönülür, Kolas akışında ödeme emri rızası yanıtı ve ödeme emri istek ve yanıtında maskeli taşınır. \n 3.20. Fonksiyonel Olmayan Gereksinimler \n \n \n HHS’lerin sunuyor oldukları servisleri en fazla 6000 ms içinde yanıt dönecek şekilde tasarlamalıdır. \n \n \n HHS\'ler mevcut online işlem kanallarından sundukları erişilebilirlik ve performans kriterlerinden daha düşük bir hizmet kalitesi sunmamalıdır. \n \n \n HHS’lerin sunuyor oldukları servislere sistemin güvenlik ve sürekliliğini sağlamak adına rate limit koyma ihtiyaçları olur ise, standartlar ve ihtiyaçlara uygun şekilde bir konfigürasyon yapabilirler.  \n \n \n HHS rate limit tanımı uyguluyor ise; YÖS\'ler arasında ayrım yapmadan, adil ve makul sınırlar dahilinde uygulamalıdır.    \n \n \n YÖS tarafından kullanıcının başlatmadığı otomatik sorgu limitleri  3.21 Otomatik Sorgular  bölümünde detaylandırılmıştır. HHS\'lerin bu servisler için minimumda cevap vermesi gereken sorgu sayıları belirlenmiştir. Bu sayıların üzerinde yapılan servis çağrısına yanıt dönmek HHS inisiyatifindedir. Diğer taraftan kullanıcının başlattığı istekler için uygulanacak limitler, HHS\'nin online işlem kanallarından sunulan sorgu limitlerinden daha az olmamalıdır. \n \n \n HHS\'ler, çağrım limitlerini aşan istekler için HTTP 429 - Too Many Request hatasını dönmelidir. Örnek hata mesajı  3.18 HTTP Durum Kodları  bölümünde bulunmaktadır. Rate Limit özelinde tanımlanmış parametreler olan X-RateLimit-Limit, X-RateLimit-Remaining ve X-RateLimit-Reset alanları da   3.16 Yanıt Başlığı  bölümünde açıklanmıştır. YÖS\'ler de HHS\'nin belirlediği rate limit kurallarına uymakla yükümlüdür. \n 3.21. Otomatik Sorgular \n YÖS uygulaması, ÖHK\'nın başlattığı işlemler neticesinde API çağrımı yapabileceği gibi, sistemsel bir şekilde otomatik API çağrımı da yapabilir. \nHHS, API çağrımının ÖHK\'lı ya da ÖHK\'sız olduğunu istek parametreleri içerisinde yer alan PSU-Initiated parametresi ile anlar. Bu parametre “E” ise ÖHK’lı, “H” ise sistemsel yapılmış bir sorgu anlamına gelmektedir. \n ÖHK YÖS uygulamasına giriş yaptığı andan çıkış yaptığı ana kadar yani ÖHK oturumu boyunca yapılan API çağrımlarında, PSU-Initiated  değerinin "E" olması gerekmektedir.  YÖS uygulamasında ÖHK oturumu boyunca,  ÖHK\'nın bilgilerinden minimumda "bakiye" bilgisinin, uygulama arayüzlerinde güncel değeri ile online sorgularla gösterimi YÖS\'ün insiyatifindedir. \n ÖHK’nın başlattığı sorgular için HHS tarafından belirlenen üst rate limitler dahilinde çağrım yapılabilir. \n YÖS, aşağıdaki API\'leri sistemsel bir şekilde çağırabilir. \nHHS\'lerin bu servisler için minimumda cevap vermesi gereken sorgu sayıları belirlenmiştir. Bu sayıların üzerinde yapılan servis çağrısına yanıt dönmek HHS inisiyatifindedir. \nHHS tarafından izin verilen sorgu sayısının üzerinde yapılan bir sorgu için HTTP 429 durum kodu (Too Many Requests) hatası dönülmelidir. Yanıt gövdesinde tekrar hata nesnesinin oluşturulması HHS inisiyatifindedir.  HHS yanıt headerı alanında iletilecek X-RateLimit-Reset (saniye cinsinden) değeri kadar süre sonunda\nYÖS\'ün tekrar sorgulama yapması beklenmektedir. \n \n \n \n No \n Kaynak \n HTTP işlemi \n Erişim Adresi \n Otomatik Sorgu Sayısı \n \n \n \n \n 1 \n erisim-belirteci \n POST \n /erisim-belirteci \n --- \n \n \n 2 \n odeme-emri-rizasi \n GET \n /odeme-emri-rizasi/{rizaNo} \n Rıza bazında günde 4 \n \n \n 3 \n odeme-emri \n GET \n /odeme-emri/{odemeEmriNo} \n Rıza bazında günde 24 \n \n \n 4 \n ileri-tarihli-odeme-emri-rizasi \n GET \n /ileri-tarihli-odeme-emri-rizasi/{rizaNo} \n Rıza bazında günde 4 \n \n \n 5 \n ileri-tarihli-odeme-emri \n GET \n /ileri-tarihli-odeme-emri
16/{odemeEmriNo} \n Rıza bazında günde 24 \n \n \n 6 \n ileri-tarihli-odeme-emri-rizasi \n DELETE \n /ileri-tarihli-odeme-emri-rizasi/{rizaNo} \n --- \n \n \n 7 \n duzenli-odeme-emri-rizasi \n GET \n /duzenli-odeme-emri-rizasi/{rizaNo} \n Rıza bazında günde 4 \n \n \n 8 \n duzenli-odeme-emri \n GET \n /duzenli-odeme-emri/{talimatNo} \n Rıza bazında günde 24 \n \n \n 9 \n duzenli-odeme-emri-rizasi \n DELETE \n /duzenli-odeme-emri-rizasi/{rizaNo}} \n --- \n \n \n 10 \n hesap-bilgisi-rizasi \n GET \n /hesap-bilgisi-rizasi/{RizaNo} \n Rıza bazında günde 4 \n \n \n 11 \n duzenli-odeme-talimat-plani \n GET \n /duzenli-odeme-emri/{talimatNo}/odeme-plani \n Rıza bazında günde 24 \n \n \n 12 \n hesap-bilgisi-rizasi \n DELETE \n /hesap-bilgisi-rizasi/{RizaNo} \n --- \n \n \n 13 \n hesaplar \n GET \n /hesaplar \n Bireysel günde 4  Kurumsal günde 4 \n \n \n 14 \n hesaplar \n GET \n /hesaplar/{hspRef} \n Bireysel günde 4 Kurumsal günde 4 \n \n \n 15 \n bakiye \n GET \n /hesaplar/{hspRef}/bakiye \n Bireysel günde 24 Kurumsal ÖHK - günde 24 \n \n \n 16 \n bakiye \n GET \n /bakiye \n Bireysel günde 24 Kurumsal ÖHK - günde 24 \n \n \n 17 \n islemler \n GET \n /hesaplar/{hspRef}/işlemler \n Bireysel günde 4 Kurumsal ÖHK - saatte 12 \n \n \n 18 \n kartlar \n GET \n /kartlar \n Bireysel günde 4  Kurumsal günde 4 \n \n \n 19 \n kartlar \n GET \n /kartlar/{kartRef} \n Bireysel günde 4 Kurumsal günde 4 \n \n \n 20 \n kart-detay \n GET \n /kartlar/{kartRef}/kart-detay \n Bireysel günde 24 Kurumsal ÖHK - günde 24 \n \n \n 21 \n kart-hareketleri \n GET \n /kartlar/{kartRef}/kart-hareketleri \n Bireysel günde 32 Kurumsal ÖHK - günde 32 \n \n \n \n YÖS ve HHS son 24 saat içerisindeki sorgu sayılarını toplayarak elde ettiği sonuçlarla limit kontrolü yapmalıdır (Pencere yöntemi). \n İşlemler servisinin çağrım detaylarına  ^Bölüm 7.8  üzerinden ulaşılabilir. \n Hesap bilgisi rızasının YÖS tarafından otomatik bir şekilde iptal edilmesi durumu  ^Bölüm 9\'da  açıklanmıştır. \n Kart hareketleri için sistemsel sorgu yapıldığı durumda aynı ekstre türü için dönem değeri değiştikçe limit düşmeyecektir. Sayfalama yapıldığı durumlarda ise değişen sayfa numaraları özelinde de limit düşmeyecektir. Aynı sayfa ve aynı dönem özelinde tekrar sorgu yapılması halinde limit düşümü gerçekleşecektir. \n Ekstre türü değişmesi durumunda da limit düşümü olmalıdır. \n'},{frontmatter:{},regularPath:"/v2.0.1/deneyalani/hesap-bilgisi-api.html",relativePath:"v2.0.1/deneyalani/hesap-bilgisi-api.md",key:"v-43c4777d",path:"/v2.0.1/deneyalani/hesap-bilgisi-api.html",content:" \n   \n "},{frontmatter:{},regularPath:"/v2.0.1/deneyalani/genel-bilgiler.html",relativePath:"v2.0.1/deneyalani/genel-bilgiler.md",key:"v-6cd49697",path:"/v2.0.1/deneyalani/genel-bilgiler.html",content:" GENEL BiLGİLER: \n ÖHVPS API İlke ve Kuralları dokümanına istinaden geliştirmelerini yapan/yapacak olan katılımcılar geliştirdikleri sürüme ait API’lerin nasıl çalıştıklarını görmek istediklerinde “Deney Alanı” üzerinden gözlem yapabilirler. Bu kapsamda, Deney Alanı katılımcılara tarayıcı üzerinden statik verilerle işlem başlatarak, dönen yanıtı inceleme imkanı sunar. \n Deney Alanı ile sunulan imkanlar şu şekildedir: \n \n Servisler durum bilgisi içermeyecek şekilde (stateless) olarak sunulmaktadır. \n Güçlü Kimlik Doğrulama akışlarında kurum özelinde oluşturulan yetkilendirme kimlik bilgilerine ihtiyaç duyulmamaktadır. \n Yanıt veri kümesi statiktir. Servislere yapılan istekler, her zaman aynı yanıtı dönmektedir. \n Yeni oluşturma, güncelleme, silme işlemleri kaynak veri üzerinde değişiklik yapmamaktadır. \n Deney alanı genelin kullanımına açıktır. Üyelik kaydı olmaksızın Deney Alanı üzerinden API incelemeleri gerçekleştirilebilmektedir. \n API dokümanında yapılacak minor değişiklikler deney alanına yansıtılmayacaktır. \n \n Not: Deney Alanı’nın kapsamı genişletilmiş versiyonu – “BKM ÖHVPS Simülatör” uygulaması hem HHS hem de YÖS katılımcılarının; test uygulamalarını uçtan uca test edebilebileceği bir ortamdır. Simülatör uygulaması üzerinden dinamik veri girişi yaparak, geliştirilen servisler ile zorunlu senaryoların tümünün simülasyonu gerçekleştirilebilir. Simülatör ortamındaki API’ler, üretim ortamının bir kopyası olacak şekilde oluşturulmuştur ve kurumların üretim ortamına hazır hale gelmelerine aracılık eder. Bu uygulama, pürüzsüz bir üretim ortamı geçişi imkanı sağlar ve ÖHVPS BKM Teknik Sertifikasyonu geçmek için koşulması gereken sertifikasyon senaryoları BKM ÖHVPS Simülatör’ü üzerinden sunulmaktadır. BKM Simülatör kullanımı için ayrı bir süreç işletilmekte olup daha fazla detaylı bilgi almak için [email protected] adresine taleplerinizi iletmeniz gerekmektedir. \n Ödeme Emri Başlatma API Deney Alanı \n"},{frontmatter:{},regularPath:"/v2.0.1/deneyalani/ileri-tarihli-odeme-emri-api.html",relativePath:"v2.0.1/deneyalani/ileri-tarihli-odeme-emri-api.md",key:"v-3f5d6285",path:"/v2.0.1/deneyalani/ileri-tarihli-odeme-emri-api.html",content:" \n   \
16n "},{frontmatter:{},regularPath:"/v2.0.1/deneyalani/odeme-emri-api.html",relativePath:"v2.0.1/deneyalani/odeme-emri-api.md",key:"v-09a8c185",path:"/v2.0.1/deneyalani/odeme-emri-api.html",content:" \n   \n "},{frontmatter:{},regularPath:"/v2.0.1/deneyalani/hhs-yos-api.html",relativePath:"v2.0.1/deneyalani/hhs-yos-api.md",key:"v-512f5cfd",path:"/v2.0.1/deneyalani/hhs-yos-api.html",content:" \n   \n "},{frontmatter:{},regularPath:"/v2.0.1/deneyalani/test.html",relativePath:"v2.0.1/deneyalani/test.md",key:"v-6b037b83",path:"/v2.0.1/deneyalani/test.html",content:" \n   \n "},{frontmatter:{},regularPath:"/v2.0.1/deneyalani/olay-bildirim-api.html",relativePath:"v2.0.1/deneyalani/olay-bildirim-api.md",key:"v-49107346",path:"/v2.0.1/deneyalani/olay-bildirim-api.html",content:" \n   \n "}],themeConfig:{searchMaxSuggestions:20,footer:'\n      &copy; <a href="https://github.com/Renovamen" target="_blank">Renovamen</a> 2018-2021\n      <br>\n      Powered by <a href="https://vuepress.vuejs.org" target="_blank">VuePress</a> &\n      <a href="https://github.com/Renovamen/vuepress-theme-gungnir" target="_blank">Gungnir</a>\n    ',sidebar:[{title:"SÜRÜM 2.0.1 - Taslak Sürüm",path:"/v2.0.1/contents/tanim-ve-kisitlamalar",children:[{title:"1. Tanımlar ve Kısıtlamalar",path:"/v2.0.1/contents/tanim-ve-kisitlamalar"},{title:"2. Kapsam ve Dayanak",path:"/v2.0.1/contents/kapsam-ve-dayanak"},{title:"3. Temel Prensipler",path:"/v2.0.1/contents/temel-prensipler"},{title:"4. Rıza Durumları",path:"/v2.0.1/contents/riza-durumlari"},{title:"5. Güçlü Kimlik Doğrulama",path:"/v2.0.1/contents/gkd"},{title:"6. Ödeme Emri Başlatma Hizmeti",path:"/v2.0.1/contents/odeme-emri-baslatma-hizmeti"},{title:"7. İleri Tarihli Ödeme Emri Başlatma Hizmeti",path:"/v2.0.1/contents/ileri-tarihli-odeme-emri-hizmeti"},{title:"8. Düzenli Ödeme Emri Başlatma Hizmeti",path:"/v2.0.1/contents/duzenli-odeme-emri-hizmeti"},{title:"9. Hesap Bilgisi Hizmeti",path:"/v2.0.1/contents/hesap-bilgisi-hizmeti"},{title:"10. HHS, YÖS ve Temsilcilik API",path:"/v2.0.1/contents/hhs-yos-api"},{title:"11. Güçlü Kimlik Doğrulama API",path:"/v2.0.1/contents/erisim-belirteci"},{title:"12. Olay Bildirim",path:"/v2.0.1/contents/olay-bildirim"},{title:"13. Ekler",path:"/v2.0.1/contents/ekler"},{title:"14. Deney Alanı",path:"/v2.0.1/deneyalani/genel-bilgiler",children:[{title:"1. Ödeme Emri Başlatma API",path:"/v2.0.1/deneyalani/odeme-emri-api"},{title:"2. İleri Tarihli Ödeme Emri Başlatma API",path:"/v2.0.1/deneyalani/ileri-tarihli-odeme-emri-api"},{title:"3. Düzenli Ödeme Emri Başlatma API",path:"/v2.0.1/deneyalani/duzenli-odeme-emri-api"},{title:"4. Hesap Bilgisi API",path:"/v2.0.1/deneyalani/hesap-bilgisi-api"},{title:"5. HHS - YÖS API",path:"/v2.0.1/deneyalani/hhs-yos-api"},{title:"6. Olay Bildirim",path:"/v2.0.1/deneyalani/olay-bildirim-api"}]}]},{title:"SÜRÜM 2.0.0 - Aktif Sürüm",path:"/v2.0.0/contents/tanim-ve-kisitlamalar",children:[{title:"1. Tanımlar ve Kısıtlamalar",path:"/v2.0.0/contents/tanim-ve-kisitlamalar"},{title:"2. Kapsam ve Dayanak",path:"/v2.0.0/contents/kapsam-ve-dayanak"},{title:"3. Temel Prensipler",path:"/v2.0.0/contents/temel-prensipler"},{title:"4. Rıza Durumları",path:"/v2.0.0/contents/riza-durumlari"},{title:"5. Güçlü Kimlik Doğrulama",path:"/v2.0.0/contents/gkd"},{title:"6. Ödeme Emri Başlatma Hizmeti",path:"/v2.0.0/contents/odeme-emri-baslatma-hizmeti"},{title:"7. İleri Tarihli Ödeme Emri Başlatma Hizmeti",path:"/v2.0.0/contents/ileri-tarihli-odeme-emri-hizmeti"},{title:"8. Düzenli Ödeme Emri Başlatma Hizmeti",path:"/v2.0.0/contents/duzenli-odeme-emri-hizmeti"},{title:"9. Hesap Bilgisi Hizmeti",path:"/v2.0.0/contents/hesap-bilgisi-hizmeti"},{title:"10. HHS ve YÖS API",path:"/v2.0.0/contents/hhs-yos-api"},{title:"11. Güçlü Kimlik Doğrulama API",path:"/v2.0.0/contents/erisim-belirteci"},{title:"12. Olay Bildirim",path:"/v2.0.0/contents/olay-bildirim"},{title:"13. Ekler",path:"/v2.0.0/contents/ekler"},{title:"14. Deney Alanı",path:"/v2.0.0/deneyalani/genel-bilgiler",children:[{title:"1. Ödeme Emri Başlatma API",path:"/v2.0.0/deneyalani/odeme-emri-api"},{title:"2. İleri Tarihli Ödeme Emri Başlatma API",path:"/v2.0.0/deneyalani/ileri-tarihli-odeme-emri-api"},{title:"3. Düzenli Ödeme Emri Başlatma API",path:"/v2.0.0/deneyalani/duzenli-odeme-emri-api"},{title:"4. Hesap Bilgisi API",path:"/v2.0.0/deneyalani/hesap-bilgisi-api"},{title:"5. HHS - YÖS API",path:"/v2.0.0/deneyalani/hhs-yos-api"},{title:"6. Olay Bildirim",path:"/v2.0.0/deneyalani/olay-bildirim-api"}]}]},{title:"Dijital Cüzdanlardan TR Karekod ile Ödeme",path:"/dijital-cuzdan"},{title:"Sürüm Yönetimi",path:"/surum-yonetimi"},{title:"SÜRÜM 1.0.1",path:"/v1.0.1/contents/tanim-ve-kisitlamalar",children:[{title:"1. Tanımlar ve Kısıtlamalar",path:"/v1.0.1/contents/tanim-ve-kisitlamalar"},{title:"2. Kapsam ve Dayanak",path:"/v1.0.1/contents/kapsam-ve-dayanak"},{title:"3. Temel Prensipler",path:"/v1.0.1/contents/temel-prensipler"},{title:"4. Rıza Durumları",path:"/v1.0.1/contents/riza-durumlari"},{title:"5. Güçlü Kimlik Doğrulama",path:"/v1.0.1/contents/gkd"},{title:"6. Ödeme Emri Başlatma Hizmeti",path:"/v1.0.1/contents/odeme-emri-baslatma-hizmeti"},{title:"7. Hesap Bilgisi Hizmeti",path:"/v1.0.1/contents/hesap-bilgisi-hizmeti"},{title:"8. HHS ve YÖS API",path:"/v1.0.1/contents/hhs-yos-api"},{title:"9. Erişim Belirteci API",path:"/v1.0.1/contents/erisim-belirteci"},{title:"10. Ekler",path:"/v1.0.1/contents/ekler"}]},{title:"SÜRÜM 1.0.2",path:"/v1.0.2/contents/tanim-ve-kisitlamalar",children:[{title:"1. Tanımlar ve Kısıtlamalar",path:"/v1.0.2/contents/tanim-ve-kisitlamalar"},{title:"2. Kapsam ve Dayanak",path:"/v1.0.2/contents/kapsam-ve-dayanak"},{title:"3. Temel Prensipler",path:"/v1.0.2/contents/temel-prensipler"},{title:"4. Rıza Durumları",path:"/v1.0.2/contents/riza-durumlari"},{title:"5. Güçlü Kimlik Doğrulama",path:"/v1.0.2/contents/gkd"},{title:"6. Ödeme Emri Başlatma Hizmeti",path:"/v1.0.2/contents/odeme-emri-baslatma-hizmeti"},{title:"7. Hesap Bilgisi Hizmeti",path:"/v1.0.2/contents/hesap-bilgisi-hizmeti"},{title:"8. HHS ve YÖS API",path:"/v1.0.2/contents/hhs-yos-api"},{title:"9. Erişim Belirteci API",path:"/v1.0.2/contents/erisim-belirteci"},{title:"10. Ekler",path:"/v1.0.2/contents/ekler"}]},{title:"SÜRÜM 1.1.0",path:"/v1.1.0/contents/tanim-ve-kisitlamalar",children:[{title:"1. Tanımlar ve Kısıtlamalar",path:"/v1.1.0/contents/tanim-ve-kisitlamalar"},{title:"2. Kapsam ve Dayanak",path:"/v1.1.0/contents/kapsam-ve-dayanak"},{title:"3. Temel Prensipler",path:"/v1.1.0/contents/temel-prensipler"},{title:"4. Rıza Durumları",path:"/v1.1.0/contents/riza-durumlari"},{title:"5. Güçlü Kimlik Doğrulama",path:"/v1.1.0/contents/gkd"},{title:"6. Ödeme Emri Başlatma Hizmeti",path:"/v1.1.0/contents/odeme-emri-baslatma-hizmeti"},{title:"7. Hesap Bilgisi Hizmeti",path:"/v1.1.0/contents/hesap-bilgisi-hizmeti"},{title:"8. HHS ve YÖS API",path:"/v1.1.0/contents/hhs-yos-api"},{title:"9. Güçlü Kimlik Doğrulama API",path:"/v1.1.0/contents/erisim-belirteci"},{title:"10. Olay Bildirim",path:"/v1.1.0/contents/olay-bildirim"},{title:"11. Ekler",path:"/v1.1.0/contents/ekler"},{title:"12. Deney Alanı",path:"/v1.1.0/deneyalani/genel-bilgiler",children:[{title:"1. Ödeme Emri Başlatma API",path:"/v1.1.0/deneyalani/odeme-emri-api"},{title:"2. Hesap Bilgisi API",path:"/v1.1.0/deneyalani/hesap-bilgisi-api"},{title:"3. HHS - YÖS API",path:"/v1.1.0/deneyalani/hhs-yos-api"},{title:"4. Olay Bildirim",path:"/v1.1.0/deneyalani/olay-bildirim-api"}]}]},{title:"ÖHVPS Sıkça Sorulan Sorular",path:"/sorulan-sorular"},{title:"ÖHVPS Uyum Tarihleri",path:"/uyum-tarihleri"}],logo:"/assets/TCMB_logo.svg.png"}};n(274);a.default.component("BodyBox",()=>Promise.all([n.e(0),n.e(1),n.e(2),n.e(6),n.e(42)]).then(n.bind(null,783))),a.default.component("DeleteBox",()=>Promise.all([n.e(0),n.e(53)]).then(n.bind(null,784))),a.default.component("DuzenliOdemeEmriAPIv20",()=>Promise.all([n.e(0),n.e(1),n.e(2),n.e(3),n.e(19)]).then(n.bind(null,771))),a.default.component("GetBox",()=>Promise.all([n.e(0),n.e(54)]).then(n.bind(null,785))),a.default.component("Gkd",()=>Promise.all([n.e(0),n.e(46)]).then(n.bind(null,786))),a.default.component("HesapBilgisiV11",()=>Promise.all([n.e(0),n.e(1),n.e(2),n.e(3),n.e(17)]).then(n.bind(null,772))),a.default.component("HesapBilgisiV20",()=>Promise.all([n.e(0),n.e(1),n.e(2),n.e(3),n.e(20)]).then(n.bind(null,773))),a.default.component("HhsYosAPIV11",()=>Promise.all([n.e(0),n.e(1),n.e(2),n.e(3),n.e(15)]).then(n.bind(null,774))),a.default.component("KeyValueGrid",()=>
16Promise.all([n.e(1),n.e(2),n.e(3),n.e(6),n.e(43)]).then(n.bind(null,787))),a.default.component("OdemeEmriAPIv11",()=>Promise.all([n.e(0),n.e(1),n.e(2),n.e(3),n.e(18)]).then(n.bind(null,775))),a.default.component("OlayDinlemeAPIV11",()=>Promise.all([n.e(0),n.e(1),n.e(2),n.e(3),n.e(16)]).then(n.bind(null,776))),a.default.component("PostBox",()=>Promise.all([n.e(0),n.e(55)]).then(n.bind(null,788))),a.default.component("ProcessButton",()=>Promise.all([n.e(1),n.e(63)]).then(n.bind(null,789))),a.default.component("ProcessTitle",()=>Promise.all([n.e(0),n.e(56)]).then(n.bind(null,790))),a.default.component("PutBox",()=>Promise.all([n.e(0),n.e(57)]).then(n.bind(null,791))),a.default.component("Request",()=>n.e(75).then(n.bind(null,395))),a.default.component("Response",()=>Promise.all([n.e(1),n.e(2),n.e(3),n.e(64)]).then(n.bind(null,792))),a.default.component("RizaOnay",()=>Promise.all([n.e(0),n.e(58)]).then(n.bind(null,793))),a.default.component("RizaOnayHesapBilgisi",()=>Promise.all([n.e(0),n.e(59)]).then(n.bind(null,794))),a.default.component("TitleBox",()=>Promise.all([n.e(0),n.e(60)]).then(n.bind(null,795))),a.default.component("ileriTarihliOdemeEmriAPIv20",()=>Promise.all([n.e(0),n.e(1),n.e(2),n.e(3),n.e(21)]).then(n.bind(null,777))),a.default.component("Badge",()=>Promise.all([n.e(0),n.e(9)]).then(n.bind(null,796))),a.default.component("CodeBlock",()=>Promise.all([n.e(0),n.e(10)]).then(n.bind(null,779))),a.default.component("CodeGroup",()=>Promise.all([n.e(0),n.e(11)]).then(n.bind(null,780)));n(275);var Di=[({Vue:e,options:i,router:n,siteData:a})=>{a.pages=a.pages.reverse().map(e=>(e.regularPath.includes("content")?e.title=`${e.title} -> ${e.regularPath.split("/")[1]}`:e.title=""+e.title,e))},{},({Vue:e})=>{e.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{}],Ii=[];class Ei extends class{constructor(){this.store=new a.default({data:{state:{}}})}$get(e){return this.store.state[e]}$set(e,i){a.default.set(this.store.state,e,i)}$emit(...e){this.store.$emit(...e)}$on(...e){this.store.$on(...e)}}{}Object.assign(Ei.prototype,{getPageAsyncComponent:mi,getLayoutAsyncComponent:si,getAsyncComponent:ui,getVueComponent:ki});var Zi={install(e){const i=new Ei;e.$vuepress=i,e.prototype.$vuepress=i}};function Gi(e,i){const n=i.toLowerCase();return e.options.routes.some(e=>e.path.toLowerCase()===n)}var Vi={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(e){const i=this.pageKey||this.$parent.$page.key;return yi("pageKey",i),a.default.component(i)||a.default.component(i,mi(i)),a.default.component(i)?e(i):e("")}},Ci={functional:!0,props:{slotKey:String,required:!0},render:(e,{props:i,slots:n})=>e("div",{class:["content__"+i.slotKey]},n()[i.slotKey])},Mi={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},Fi=(n(276),n(277),Object(Yi.a)(Mi,(function(){var e=this._self._c;return e("span",[e("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[e("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),this._v(" "),e("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})]),this._v(" "),e("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports),_i={functional:!0,render(e,{parent:i,children:n}){if(i._isMounted)return n;i.$once("hook:mounted",()=>{i.$forceUpdate()})}};a.default.config.productionTip=!1,a.default.use(je),a.default.use(Zi),a.default.mixin(function(e,i,n=a.default){!function(e){e.locales&&Object.keys(e.locales).forEach(i=>{e.locales[i].path=i});Object.freeze(e)}(i),n.$vuepress.$set("siteData",i);const r=new(e(n.$vuepress.$get("siteData"))),l=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),t={};return Object.keys(l).reduce((e,i)=>(i.startsWith("$")&&(e[i]=l[i].get),e),t),{computed:t}}(e=>class{setPage(e){this.__page=e}get $site(){return e}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:e={}}=this.$site;let i,n;for(const a in e)"/"===a?n=e[a]:0===this.$page.path.indexOf(a)&&(i=e[a]);return i||n||{}}
16get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:e}=this.$page.frontmatter;return"string"==typeof e&&e}get $title(){const e=this.$page,{metaTitle:i}=this.$page.frontmatter;if("string"==typeof i)return i;const n=this.$siteTitle,a=e.frontmatter.home?null:e.frontmatter.title||e.title;return n?a?a+" | "+n:n:a||"VuePress"}get $description(){const e=function(e){if(e){const i=e.filter(e=>"description"===e.name)[0];if(i)return i.content}}(this.$page.frontmatter.meta);return e||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(e,i){for(let n=0;n<e.length;n++){const a=e[n];if(a.path.toLowerCase()===i.toLowerCase())return a}return{path:"",frontmatter:{}}}(this.$site.pages,this.$route.path)}},Oi)),a.default.component("Content",Vi),a.default.component("ContentSlotsDistributor",Ci),a.default.component("OutboundLink",Fi),a.default.component("ClientOnly",_i),a.default.component("Layout",si("Layout")),a.default.component("NotFound",si("NotFound")),a.default.prototype.$withBase=function(e){const i=this.$site.base;return"/"===e.charAt(0)?i+e.slice(1):e},window.__VUEPRESS__={version:"1.9.10",hash:"bf9a320"},async function(e){const i="undefined"!=typeof window&&window.__VUEPRESS_ROUTER_BASE__?window.__VUEPRESS_ROUTER_BASE__:Oi.routerBase||Oi.base,n=new je({base:i,mode:"history",fallback:!1,routes:Pi,scrollBehavior:(e,i,n)=>n||(e.hash?!a.default.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(e.hash)}:{x:0,y:0})});!function(e){e.beforeEach((i,n,a)=>{if(Gi(e,i.path))a();else if(/(\/|\.html)$/.test(i.path))if(/\/$/.test(i.path)){const n=i.path.replace(/\/$/,"")+".html";Gi(e,n)?a(n):a()}else a();else{const n=i.path+"/",r=i.path+".html";Gi(e,r)?a(r):Gi(e,n)?a(n):a()}})}(n);const r={};try{await Promise.all(Di.filter(e=>"function"==typeof e).map(i=>i({Vue:a.default,options:r,router:n,siteData:Oi,isServer:e})))}catch(e){console.error(e)}return{app:new a.default(Object.assign(r,{router:n,render:e=>e("div",{attrs:{id:"app"}},[e("RouterView",{ref:"layout"}),e("div",{class:"global-ui"},Ii.map(i=>e(i)))])})),router:n}}(!1).then(({app:e,router:i})=>{i.onReady(()=>{e.$mount("#app")})})}]);

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.