{"id":29181,"date":"2026-09-12T02:27:43","date_gmt":"2026-09-12T02:27:43","guid":{"rendered":"https:\/\/umang.pk\/2026\/09\/12\/hmrc-%da%a9%db%92-%d9%85%db%8c%da%a9%d9%86%da%af-%d9%b9%db%8c%da%a9%d8%b3-%da%88%db%8c%d8%ac%db%8c%d9%b9%d9%84-api-%d8%b3%db%92-%da%a9%db%8c%d8%b3%db%92-%d8%ac%da%91%db%8c%da%ba-%d8%a7%db%8c%da%a9\/"},"modified":"2026-09-12T02:27:44","modified_gmt":"2026-09-12T02:27:44","slug":"hmrc-%da%a9%db%92-%d9%85%db%8c%da%a9%d9%86%da%af-%d9%b9%db%8c%da%a9%d8%b3-%da%88%db%8c%d8%ac%db%8c%d9%b9%d9%84-api-%d8%b3%db%92-%da%a9%db%8c%d8%b3%db%92-%d8%ac%da%91%db%8c%da%ba-%d8%a7%db%8c%da%a9","status":"publish","type":"post","link":"https:\/\/umang.pk\/ur\/2026\/09\/12\/hmrc-%da%a9%db%92-%d9%85%db%8c%da%a9%d9%86%da%af-%d9%b9%db%8c%da%a9%d8%b3-%da%88%db%8c%d8%ac%db%8c%d9%b9%d9%84-api-%d8%b3%db%92-%da%a9%db%8c%d8%b3%db%92-%d8%ac%da%91%db%8c%da%ba-%d8%a7%db%8c%da%a9\/","title":{"rendered":"HMRC \u06a9\u06d2 \u0645\u06cc\u06a9\u0646\u06af \u0679\u06cc\u06a9\u0633 \u0688\u06cc\u062c\u06cc\u0679\u0644 API \u0633\u06d2 \u06a9\u06cc\u0633\u06d2 \u062c\u0691\u06cc\u06ba: \u0627\u06cc\u06a9 \u0627\u0628\u062a\u062f\u0627\u0626\u06cc \u0631\u06c1\u0646\u0645\u0627"},"content":{"rendered":"\n<div id=\"\">\n<p>\u0627\u06af\u0631 \u0622\u067e \u06cc\u0648 \u06a9\u06d2 \u0679\u06cc\u06a9\u0633 \u0627\u062f\u0627 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0644\u0648\u06af\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0627\u0641\u0679 \u0648\u06cc\u0626\u0631 \u0644\u06a9\u06be \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0634\u0627\u06cc\u062f \u0622\u067e \u06a9\u0648 \u062c\u0644\u062f \u06cc\u0627 \u0628\u062f\u06cc\u0631 HMRC \u0633\u06d2 \u0631\u0627\u0628\u0637\u06c1 \u06a9\u0631\u0646\u0627 \u067e\u0691\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u0627\u0646\u06a9\u0645 \u0679\u06cc\u06a9\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0679\u06cc\u06a9\u0633 \u0688\u06cc\u062c\u06cc\u0679\u0644 (MTD) 6 \u0627\u067e\u0631\u06cc\u0644 2026 \u06a9\u0648 \u0634\u0631\u0648\u0639 \u06c1\u0648\u0627 \u0627\u0648\u0631 \u00a350,000 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06a9\u06cc \u06a9\u0648\u0627\u0644\u06cc\u0641\u0627\u0626\u0646\u06af \u0622\u0645\u062f\u0646\u06cc \u0648\u0627\u0644\u06d2 \u0633\u06cc\u0644\u0641 \u0627\u06cc\u0645\u067e\u0644\u0627\u0626\u0688 \u0644\u0648\u06af\u0648\u06ba \u0627\u0648\u0631 \u0632\u0645\u06cc\u0646\u062f\u0627\u0631\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u0644\u0627\u0632\u0645\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u062d\u062f \u0627\u067e\u0631\u06cc\u0644 2027 \u0645\u06cc\u06ba \u00a330,000 \u0627\u0648\u0631 \u0627\u067e\u0631\u06cc\u0644 2028 \u0645\u06cc\u06ba \u00a320,000 \u062a\u06a9 \u06af\u0631 \u062c\u0627\u0626\u06d2 \u06af\u06cc\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0627\u06af\u0644\u06d2 \u062f\u0648 \u0633\u0627\u0644\u0648\u06ba \u0645\u06cc\u06ba \u0622\u0628\u0627\u062f\u06cc \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u062a\u06cc\u0646 \u06af\u0646\u0627 \u06c1\u0648 \u062c\u0627\u0626\u06d2 \u06af\u06cc\u06d4<\/p>\n<p>\u0639\u0645\u0644\u06cc \u0637\u0648\u0631 \u067e\u0631\u060c \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u0628\u06c1\u062a \u0633\u06d2 \u0686\u06be\u0648\u0679\u06d2 \u06a9\u0627\u0631\u0648\u0628\u0627\u0631\u0648\u06ba \u06a9\u0648 \u0627\u067e\u0646\u06d2 \u0627\u0639\u062f\u0627\u062f \u0648 \u0634\u0645\u0627\u0631 HMRC \u06a9\u0648 \u0628\u06be\u06cc\u062c\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0627\u0641\u0679 \u0648\u06cc\u0626\u0631 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u06af\u06cc\u060c \u0627\u0648\u0631 \u06a9\u0633\u06cc \u06a9\u0648 \u06cc\u06c1 \u0633\u0627\u0641\u0679 \u0648\u06cc\u0626\u0631 \u0628\u0646\u0627\u0646\u0627 \u06c1\u0648\u06af\u0627\u06d4<\/p>\n<p>\u062c\u0628 \u0622\u067e \u067e\u06c1\u0644\u06cc \u0628\u0627\u0631 HMRC \u06a9\u06cc \u0688\u0648\u06cc\u0644\u067e\u0631 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u06be\u0648\u0644\u06cc\u06ba \u06af\u06d2\u060c \u062a\u0648 \u0622\u067e \u06a9\u0648 \u0645\u062e\u0641\u0641\u0627\u062a \u0633\u06d2 \u0628\u06be\u0631\u06cc \u062f\u06cc\u0648\u0627\u0631 \u0646\u0638\u0631 \u0622\u0626\u06d2 \u06af\u06cc: MTD\u060c ITSA\u060c OAuth \u0627\u0633\u06a9\u0648\u067e\u0633\u060c \u0627\u06cc\u0646\u0679\u06cc \u0641\u0631\u0627\u0688 \u06c1\u06cc\u0688\u0631\u0632\u060c \u0630\u0645\u06c1 \u062f\u0627\u0631\u06cc\u0627\u06ba\u060c \u0648\u063a\u06cc\u0631\u06c1\u06d4 \u06cc\u06c1 \u062e\u0648\u0641\u0646\u0627\u06a9 \u0644\u06af\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0627\u0633 \u0645\u06cc\u06ba \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0648\u0627\u0642\u0639\u06cc \u0645\u0634\u06a9\u0644 \u06c1\u06d2\u06d4 \u062a\u0627\u06c1\u0645\u060c 0 \u0633\u06d2 \u067e\u06c1\u0644\u06cc \u062a\u0648\u062b\u06cc\u0642 \u0634\u062f\u06c1 API \u06a9\u0627\u0644 \u062a\u06a9 \u06a9\u0627 \u0631\u0627\u0633\u062a\u06c1 \u0627\u0633 \u0633\u06d2 \u06a9\u06c1\u06cc\u06ba \u0632\u06cc\u0627\u062f\u06c1 \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0648\u0626\u06cc \u0622\u067e \u06a9\u0648 \u0627\u0633 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0642\u062f\u0645 \u0628\u06c1 \u0642\u062f\u0645 \u0644\u06d2 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0628\u0627\u0644\u06a9\u0644 \u0648\u06c1\u06cc \u06c1\u06d2 \u062c\u0648 \u06cc\u06c1 \u06af\u0627\u0626\u06cc\u0688 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u06cc\u06ba \u0646\u06d2 \u0645\u06cc\u06a9\u0646\u06af \u0679\u06cc\u06a9\u0633 \u0688\u06cc\u062c\u06cc\u0679\u0644 \u0627\u06cc\u067e \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 HMRC \u0627\u0646\u0679\u06cc\u06af\u0631\u06cc\u0634\u0646 \u0628\u0646\u0627\u06cc\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0645\u06cc\u06ba \u0622\u067e \u06a9\u0648 \u0627\u0646\u06c1\u06cc \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0633\u06d2 \u0622\u06af\u0627\u06c1 \u06a9\u0631\u0648\u06ba \u06af\u0627 \u062c\u0648 \u0645\u06cc\u06ba \u0646\u06d2 \u0627\u0679\u06be\u0627\u0626\u06d2 \u062a\u06be\u06d2\u060c \u0628\u0634\u0645\u0648\u0644 MTD \u06a9\u06cc\u0627 \u06c1\u06d2\u060c \u0633\u06cc\u0646\u0688 \u0628\u0627\u06a9\u0633\u0688 \u0627\u06cc\u067e \u06a9\u06cc\u0633\u06d2 \u062d\u0627\u0635\u0644 \u06a9\u06cc \u062c\u0627\u0626\u06d2\u060c OAuth \u0644\u0627\u06af \u0627\u0646 \u0641\u0644\u0648 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u06cc\u0646\u0679\u06cc \u0641\u0631\u0627\u0688 \u06c1\u06cc\u0688\u0631\u0632 \u06a9\u06cc\u0627 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0627\u0635\u0644 \u06a9\u0627\u0644 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4 \u06a9\u0648\u0688 Node \u0627\u0648\u0631 TypeScript \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u062e\u06cc\u0627\u0644\u0627\u062a \u06a9\u0633\u06cc \u0628\u06be\u06cc \u0632\u0628\u0627\u0646 \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-table-of-contents\">\u0627\u0646\u0688\u06cc\u06a9\u0633<\/h2>\n<h2 id=\"heading-what-making-tax-digital-actually-is\">\u0688\u06cc\u062c\u06cc\u0679\u0627\u0626\u0632\u0646\u06af \u0679\u06cc\u06a9\u0633\u0632 \u06a9\u06cc\u0627 \u06c1\u06d2\u061f<\/h2>\n<p>\u0679\u06cc\u06a9\u0633 \u0688\u06cc\u062c\u06cc\u0679\u0644 \u0628\u0646\u0627\u0646\u0627 HMRC \u06a9\u0627 \u067e\u0631\u0648\u06af\u0631\u0627\u0645 \u06c1\u06d2 \u062c\u0648 \u0679\u06cc\u06a9\u0633 \u0631\u06cc\u06a9\u0627\u0631\u0688 \u0645\u06cc\u0646\u062c\u0645\u0646\u0679 \u0627\u0648\u0631 \u0641\u0627\u0626\u0644\u0646\u06af \u06a9\u0648 \u0633\u0627\u0641\u0679 \u0648\u06cc\u0626\u0631 \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u0633\u06cc \u0648\u06cc\u0628 \u0633\u0627\u0626\u0679 \u067e\u0631 \u0633\u0627\u0644\u0627\u0646\u06c1 \u0633\u06cc\u0644\u0641 \u0627\u0633\u06cc\u0633\u0645\u0646\u0679 \u0631\u06cc\u0679\u0631\u0646 \u062f\u0627\u062e\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c MTD \u0628\u0631\u0627\u0626\u06d2 \u0627\u0646\u06a9\u0645 \u0679\u06cc\u06a9\u0633 \u0644\u0648\u06af\u0648\u06ba \u0633\u06d2 \u0688\u06cc\u062c\u06cc\u0679\u0644 \u0631\u06cc\u06a9\u0627\u0631\u0688 \u0631\u06a9\u06be\u0646\u06d2 \u0627\u0648\u0631 HMRC \u06a9\u0648 \u0633\u0627\u0644 \u06a9\u06d2 \u0622\u062e\u0631 \u0645\u06cc\u06ba \u062d\u062a\u0645\u06cc \u0631\u06cc\u0679\u0631\u0646 \u0628\u06be\u06cc\u062c\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06c1\u0631 \u0633\u06c1 \u0645\u0627\u06c1\u06cc \u0645\u06cc\u06ba \u0627\u067e\u0646\u06cc \u0622\u0645\u062f\u0646\u06cc \u0627\u0648\u0631 \u0627\u062e\u0631\u0627\u062c\u0627\u062a \u06a9\u06cc \u0645\u062c\u0645\u0648\u0639\u06cc \u0627\u067e \u0688\u06cc\u0679 \u0628\u06be\u06cc\u062c\u0646\u06d2 \u06a9\u0648 \u06a9\u06c1\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>(\u0633\u0631\u06a9\u0627\u0631\u06cc \u062f\u0627\u0626\u0631\u06c1 \u06a9\u0627\u0631 \u0627\u0648\u0631 \u0646\u0638\u0627\u0645 \u0627\u0644\u0627\u0648\u0642\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2\u060c GOV.UK \u067e\u0631 \u0627\u0646\u06a9\u0645 \u0679\u06cc\u06a9\u0633 \u06af\u0627\u0626\u06cc\u0688\u0646\u0633 MTD \u062f\u06cc\u06a9\u06be\u06cc\u06ba)<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/09\/1789180063_285_HMRC-\u06a9\u06d2-\u0645\u06cc\u06a9\u0646\u06af-\u0679\u06cc\u06a9\u0633-\u0688\u06cc\u062c\u06cc\u0679\u0644-API-\u0633\u06d2-\u06a9\u06cc\u0633\u06d2-\u062c\u0691\u06cc\u06ba-\u0627\u06cc\u06a9.png\" alt=\"\u0627\u06cc\u06a9 \u0633\u0627\u0644 \u0622\u06af\u06d2\u060c HMRC \u0645\u06c1\u0645 \u06a9\u0627 \u06af\u0631\u0627\u0641\u06a9 \u0688\u06cc\u062c\u06cc\u0679\u0627\u0626\u0632\u0646\u06af \u0627\u0646\u06a9\u0645 \u0679\u06cc\u06a9\u0633 \u067e\u0691\u06be\u06cc\u06ba\" style=\"display: block;\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<p>\u0688\u0648\u06cc\u0644\u067e\u0631\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06c1\u0645 \u062d\u0635\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 HMRC \u0627\u06cc\u06a9 \u0628\u06be\u06cc &quot;\u0631\u067e\u0648\u0631\u0679 \u0679\u06cc\u06a9\u0633\u0632&#8221; \u0628\u0679\u0646 \u0641\u0631\u0627\u06c1\u0645 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0688\u06cc\u0648\u0644\u067e\u0631 \u062d\u0628 REST APIs \u06a9\u0627 \u0627\u06cc\u06a9 \u0633\u06cc\u0679 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0641\u0631\u062f \u06a9\u06d2 \u06a9\u0627\u0631\u0648\u0628\u0627\u0631 \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u06cc\u06a9 \u0631\u067e\u0648\u0631\u0679\u0646\u06af \u06a9\u06cc \u0630\u0645\u06c1 \u062f\u0627\u0631\u06cc\u0648\u06ba \u06a9\u0648 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 (\u0628\u0642\u0648\u0644 \u0627\u0648\u0631 \u06a9\u0628)\u060c \u0627\u06cc\u06a9 \u0633\u06c1 \u0645\u0627\u06c1\u06cc \u06a9\u06d2 \u0627\u0639\u062f\u0627\u062f \u0648 \u0634\u0645\u0627\u0631 \u062c\u0645\u0639 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u06cc\u06a9 \u0679\u06cc\u06a9\u0633 \u06a9\u06d2 \u062d\u0633\u0627\u0628\u0627\u062a \u0686\u0644\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u0648\u0631 \u0627\u0633\u06cc \u0637\u0631\u062d \u06a9\u06d2 \u062f\u06cc\u06af\u0631\u06d4<\/p>\n<p>\u06c1\u0645 \u0627\u0633\u06d2 \u0627\u06cc\u06a9 \u0633\u0641\u0631 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0648\u06c1 \u0633\u0628 \u0627\u06cc\u06a9 \u06c1\u06cc \u062f\u0648 \u062f\u0631\u0648\u0627\u0632\u0648\u06ba \u06a9\u06d2 \u067e\u06cc\u0686\u06be\u06d2 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba: \u0627\u06cc\u06a9 OAuth 2.0 \u0631\u0633\u0627\u0626\u06cc \u0679\u0648\u06a9\u0646 \u0627\u0648\u0631 \u0627\u06cc\u0646\u0679\u06cc \u0641\u0631\u0627\u0688 \u06c1\u06cc\u0688\u0631\u0632 \u06a9\u0627 \u0627\u06cc\u06a9 \u0633\u06cc\u0679\u06d4 \u0627\u06af\u0631 \u0622\u067e \u0627\u0646 \u062f\u0648 \u0686\u06cc\u0632\u0648\u06ba \u06a9\u0648 \u0635\u062d\u06cc\u062d \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648\u060c \u0628\u0627\u0642\u06cc HTTPS \u067e\u0631 \u0633\u0627\u062f\u06c1 JSON \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-step-1-create-a-sandbox-application\">\u0645\u0631\u062d\u0644\u06c1 1: \u0627\u06cc\u06a9 \u0633\u06cc\u0646\u0688 \u0628\u0627\u06a9\u0633 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h2>\n<p>\u0631\u06cc\u0626\u0644 \u0679\u0627\u0626\u0645 \u0679\u06cc\u06a9\u0633 \u062f\u06c1\u0646\u062f\u06af\u0627\u0646 \u06a9\u06d2 \u0688\u06cc\u0679\u0627 \u067e\u0631 \u0645\u062c\u06be\u06d2 \u0634\u0631\u0648\u0639 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4 HMRC \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u0633\u06cc\u0646\u0688 \u0628\u0627\u06a9\u0633 \u0686\u0644\u0627\u062a\u0627 \u06c1\u06d2: <code>test-api.service.hmrc.gov.uk<\/code> \u06cc\u06c1 \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0645\u06cc\u0632\u0628\u0627\u0646 \u06a9\u0627 \u0622\u0626\u06cc\u0646\u06c1 \u062f\u0627\u0631 \u06c1\u06d2 (<code>api.service.hmrc.gov.uk<\/code>) \u0622\u067e \u062c\u0627\u0646\u0686\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062c\u0639\u0644\u06cc \u0679\u06cc\u06a9\u0633 \u062f\u06c1\u0646\u062f\u06c1 \u0628\u0646\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0635\u0644 \u062a\u0631\u062a\u06cc\u0628 \u062d\u0633\u0628 \u0630\u06cc\u0644 \u06c1\u06d2:<\/p>\n<ol>\n<li>\n<p>HMRC \u0688\u0648\u06cc\u0644\u067e\u0631 \u06c1\u0628 \u067e\u0631 \u0627\u06cc\u06a9 \u0645\u0641\u062a \u0627\u06a9\u0627\u0624\u0646\u0679 \u0631\u062c\u0633\u0679\u0631 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4 \u062a\u0645 \u06c1\u0648 <strong>\u06a9\u0644\u0627\u0626\u0646\u0679 \u0622\u0626\u06cc \u0688\u06cc<\/strong> \u0627\u0648\u0631 <strong>\u06a9\u0644\u0627\u0626\u0646\u0679 \u067e\u0627\u0633 \u0648\u0631\u0688<\/strong>. \u067e\u0627\u0633 \u0648\u0631\u0688 \u06a9\u06cc \u0637\u0631\u062d \u0631\u0627\u0632\u0648\u06ba \u06a9\u0627 \u0639\u0644\u0627\u062c \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u0633\u06d2 \u0645\u0627\u062d\u0648\u0644 \u06a9\u06d2 \u0645\u062a\u063a\u06cc\u0631 \u0645\u06cc\u06ba \u0631\u06a9\u06be\u06cc\u06ba\u060c \u0630\u0631\u06cc\u0639\u06c1 \u0645\u06cc\u06ba \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u062a\u0631\u062a\u06cc\u0628 <strong>URI \u06a9\u0648 \u0631\u06cc \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/strong>. \u06cc\u06c1 \u0648\u06c1 URL \u06c1\u06d2 \u062c\u0633\u06d2 HMRC \u0622\u067e \u06a9\u06d2 \u0644\u0627\u06af \u0627\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u0622\u067e \u06a9\u0648 \u0648\u0627\u067e\u0633 \u0628\u06be\u06cc\u062c\u06d2 \u06af\u0627\u06d4 \u0645\u0642\u0627\u0645\u06cc \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2: <code>http:\/\/localhost:3000\/auth\/hmrc\/callback<\/code> \u062a\u0645 \u0679\u06be\u06cc\u06a9 \u06c1\u0648\u061f \u0628\u0639\u062f \u0645\u06cc\u06ba\u060c \u0622\u067e \u06a9\u0648 \u0628\u0627\u0644\u06a9\u0644 \u06a9\u0631\u06cc\u06a9\u0679\u0631 \u0633\u06d2 \u06a9\u0631\u06cc\u06a9\u0679\u0631 \u0633\u06d2 \u0645\u0644\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0633\u0628\u0633\u06a9\u0631\u0627\u0626\u0628 \u06a9\u0631\u06cc\u06ba<\/strong> \u0627\u067e\u0646\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u0645\u0637\u0644\u0648\u0628\u06c1 APIs \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0648\u06c1 \u0645\u0631\u062d\u0644\u06c1 \u06c1\u06d2 \u062c\u0633 \u0633\u06d2 \u0627\u0628\u062a\u062f\u0627\u0626\u06cc \u06a9\u0645\u06cc \u0645\u062d\u0633\u0648\u0633 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u0635\u0631\u0641 \u0627\u0646 \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u062f\u06cc\u0646\u0627 \u06a9\u0627\u0641\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u06c1\u0631 API \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0633\u0628\u0633\u06a9\u0631\u0627\u0626\u0628 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0622\u067e \u0628\u06be\u0648\u0644 \u06af\u0626\u06d2 \u062a\u0648 \u0622\u067e \u062f\u0648\u0628\u0627\u0631\u06c1 \u06a9\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u06af\u06d2\u06d4 <code>403 Forbidden<\/code> \u0628\u063a\u06cc\u0631 \u06a9\u0633\u06cc \u0638\u0627\u06c1\u0631\u06cc \u0648\u062c\u06c1 \u06a9\u06d2\u06d4<\/p>\n<\/li>\n<\/ol>\n<p>\u0622\u067e \u06a9\u06d2 \u06a9\u0648\u0688 \u0645\u06cc\u06ba\u060c \u0633\u06cc\u0646\u0688 \u0628\u0627\u06a9\u0633 \u0627\u0648\u0631 \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0641\u0631\u0642 \u0635\u0631\u0641 \u0628\u0646\u06cc\u0627\u062f\u06cc \u06cc\u0648 \u0622\u0631 \u0627\u06cc\u0644 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u0628\u06c1\u062a\u0631 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0633\u06d2 \u06c1\u0627\u0631\u0688 \u06a9\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0627\u067e\u0646\u06cc \u062a\u0631\u062a\u06cc\u0628 \u0645\u06cc\u06ba \u0631\u06a9\u06be\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-ts\">const config = {\n  sandbox: {\n    baseUrl: 'https:\/\/test-api.service.hmrc.gov.uk',\n    authUrl: 'https:\/\/test-api.service.hmrc.gov.uk\/oauth\/authorize',\n    tokenUrl: 'https:\/\/test-api.service.hmrc.gov.uk\/oauth\/token',\n  },\n  production: {\n    baseUrl: 'https:\/\/api.service.hmrc.gov.uk',\n    authUrl: 'https:\/\/api.service.hmrc.gov.uk\/oauth\/authorize',\n    tokenUrl: 'https:\/\/api.service.hmrc.gov.uk\/oauth\/token',\n  },\n};\n<\/code><\/pre>\n<p>\u0627\u06cc\u06a9 \u0686\u06cc\u0632 \u062c\u0648 \u0645\u06cc\u06ba \u0646\u06d2 \u0645\u0634\u06a9\u0644 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u0633\u06cc\u06a9\u06be\u06cc \u06c1\u06d2 \u0648\u06c1 \u06c1\u06d2 \u0627\u067e\u0646\u06d2 \u0645\u0627\u062d\u0648\u0644 \u06a9\u0648 \u0648\u0627\u0636\u062d \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u0645\u06cc\u06ba \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u0646\u0627\u06d4 <code>NODE_ENV<\/code>. \u0622\u062e\u0631 \u06a9\u0627\u0631 \u0622\u067e \u0686\u0627\u06c1\u06cc\u06ba \u06af\u06d2 \u06a9\u06c1 \u0622\u067e \u06a9\u06cc \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u06a9\u06cc \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc\u0627\u06ba HMRC \u0633\u06cc\u0646\u0688 \u0628\u0627\u06a9\u0633 \u06a9\u06cc \u0637\u0631\u0641 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u06cc\u06ba\u060c \u06cc\u06c1\u0627\u06ba \u062a\u06a9 \u06a9\u06c1 \u0628\u06cc\u0679\u0627 \u0645\u062f\u062a \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646\u060c \u0686\u0627\u06c1\u06d2 URL \u0628\u0646\u062f \u06c1\u0648\u06d4 <code>NODE_ENV<\/code> \u0627\u06a9\u06cc\u0644\u06d2\u060c \u06cc\u06c1 \u0645\u062c\u0645\u0648\u0639\u06c1 \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 HMRC \u06a9\u0648 \u0633\u06cc\u0646\u0688 \u0628\u0627\u06a9\u0633 \u06a9\u06cc \u0627\u0633\u0646\u0627\u062f \u06a9\u0648 \u0645\u0633\u062a\u0631\u062f \u06a9\u0631\u0646\u06d2 \u067e\u0631 \u0645\u062c\u0628\u0648\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1: <code>client_id is invalid<\/code>. \u0686\u06be\u0648\u0679\u0627 <code>HMRC_BASE_URL<\/code> \u0645\u0627\u062d\u0648\u0644\u06cc\u0627\u062a\u06cc \u0645\u062a\u063a\u06cc\u0631\u0627\u062a\u060c \u062c\u0648 \u06c1\u0645\u06cc\u0634\u06c1 \u062c\u06cc\u062a\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0633 \u0627\u0644\u062c\u06be\u0646 \u06a9\u0648 \u06a9\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-step-2-understand-the-oauth-scopes\">\u0645\u0631\u062d\u0644\u06c1 2: OAuth \u062f\u0627\u0626\u0631\u06c1 \u06a9\u0627\u0631 \u06a9\u0648 \u0633\u0645\u062c\u06be\u06cc\u06ba\u06d4<\/h2>\n<p>\u062c\u0628 \u06a9\u0648\u0626\u06cc \u0627\u06cc\u067e \u0635\u0627\u0631\u0641 \u0633\u06d2 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u062a\u0648 \u0648\u06c1 \u06a9\u0686\u06be \u062e\u0627\u0635 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0637\u0644\u0628 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 <strong>\u0631\u06cc\u0646\u062c<\/strong>\u06cc\u06c1 \u0627\u06cc\u06a9 \u0646\u0627\u0645 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u06c1\u06d2\u06d4 MTD \u0627\u0646\u06a9\u0645 \u0679\u06cc\u06a9\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0622\u067e \u06a9\u06cc\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba: <code>read:self-assessment<\/code> \u0627\u0648\u0631 <code>write:self-assessment<\/code> (HMRC \u0628\u06be\u06cc \u0628\u06d2 \u0646\u0642\u0627\u0628 <code>read:vat<\/code> \u0627\u0648\u0631 <code>write:vat<\/code> VAT API \u06a9\u06d2 \u0644\u06cc\u06d2)\u06d4 HMRC \u0627\u0633\u06d2 \u0627\u067e\u0646\u06cc OAuth 2.0 \u062a\u0648\u062b\u06cc\u0642 \u06af\u0627\u0626\u06cc\u0688 \u0645\u06cc\u06ba \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633\u067e\u06cc\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062c\u0691\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-ts\">const scopes = ['read:self-assessment', 'write:self-assessment'].join(' ');\n<\/code><\/pre>\n<p>\u0635\u0627\u0631\u0641\u06cc\u0646 \u0627\u0646 \u06a9\u0648 HMRC \u06a9\u06cc \u0631\u0636\u0627\u0645\u0646\u062f\u06cc \u0648\u0627\u0644\u06cc \u0627\u0633\u06a9\u0631\u06cc\u0646\u0648\u06ba \u067e\u0631 \u06c1\u062c\u06d2 \u062f\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u0635\u0631\u0641 \u0627\u0633 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u067e\u0648\u0686\u06be\u06cc\u06ba \u06a9\u06c1 \u0648\u06c1 \u0627\u0635\u0644 \u0645\u06cc\u06ba \u06a9\u06cc\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-step-3-the-oauth-20-authorization-code-flow\">\u0645\u0631\u062d\u0644\u06c1 3: OAuth 2.0 \u062a\u0635\u062f\u06cc\u0642\u06cc \u06a9\u0648\u0688 \u06a9\u0627 \u0628\u06c1\u0627\u0624<\/h2>\n<p>\u06cc\u06c1 \u0627\u0646\u0636\u0645\u0627\u0645 \u06a9\u0627 \u062f\u0644 \u06c1\u06d2\u060c \u0645\u0639\u06cc\u0627\u0631\u06cc \u062a\u06cc\u0646 \u0679\u0627\u0646\u06af\u0648\u06ba \u0648\u0627\u0644\u0627 OAuth \u0631\u0642\u0635\u06d4 \u0627\u0633\u06d2 \u0627\u06cc\u067e \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0633\u0648\u0686\u06cc\u06ba\u060c \u0635\u0627\u0631\u0641 \u0627\u0648\u0631 HMRC \u0644\u0627\u0679\u06be\u06cc \u0633\u06d2 \u06af\u0632\u0631 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0686\u0627\u0631 \u0644\u0645\u062d\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u0635\u0627\u0631\u0641 \u06a9\u0648 HMRC \u067e\u0631 \u0628\u06be\u06cc\u062c\u062a\u06d2 \u06c1\u06cc\u06ba\u060c HMRC \u0627\u0633\u06d2 \u06a9\u0648\u0688 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0648\u0627\u067e\u0633 \u0628\u06be\u06cc\u062c\u062a\u0627 \u06c1\u06d2\u060c \u06a9\u0648\u0688 \u06a9\u0648 \u0679\u0648\u06a9\u0646 \u0645\u06cc\u06ba \u0628\u062f\u0644 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u0627\u0633 \u0679\u0648\u06a9\u0646 \u06a9\u0648 \u0631\u06cc\u0641\u0631\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/umang.pk\/wp-content\/uploads\/2026\/09\/1789180063_519_HMRC-\u06a9\u06d2-\u0645\u06cc\u06a9\u0646\u06af-\u0679\u06cc\u06a9\u0633-\u0688\u06cc\u062c\u06cc\u0679\u0644-API-\u0633\u06d2-\u06a9\u06cc\u0633\u06d2-\u062c\u0691\u06cc\u06ba-\u0627\u06cc\u06a9.png\" alt=\"\u0635\u0627\u0631\u0641\u060c \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u060c \u0627\u0648\u0631 HMRC API \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 OAuth \u0628\u06c1\u0627\u0624 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628 \u06a9\u0627 \u062e\u0627\u06a9\u06c1\" style=\"display: block;\" width=\"600\" height=\"400\" loading=\"lazy\" title=\"\"><\/p>\n<h3 id=\"heading-3a-send-the-user-to-hmrc\">3a \u0635\u0627\u0631\u0641 \u06a9\u0648 HMRC \u067e\u0631 \u0628\u06be\u06cc\u062c\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u06cc\u06a9 \u062a\u0635\u062f\u06cc\u0642\u06cc \u06cc\u0648 \u0622\u0631 \u0627\u06cc\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u0628\u0631\u0627\u0624\u0632\u0631 \u06a9\u0648 \u0627\u0633 \u06cc\u0648 \u0622\u0631 \u0627\u06cc\u0644 \u067e\u0631 \u0631\u06cc \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u06d2 \u0627\u0633\u0679\u0631\u0646\u06af \u0645\u06cc\u06ba \u06a9\u0644\u0627\u0626\u0646\u0679 ID\u060c \u062f\u0627\u0626\u0631\u06c1 \u06a9\u0627\u0631\u060c \u0631\u06cc \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679 URI\u060c <code>response_type=code<\/code>\u0627\u0648\u0631 <code>state<\/code> \u0642\u062f\u0631:<\/p>\n<pre><code class=\"language-ts\">function getAuthorizationUrl(state: string): string {\n  const params = new URLSearchParams({\n    response_type: 'code',\n    client_id: hmrcConfig.clientId,\n    scope: hmrcConfig.scopes,\n    state: state,\n    redirect_uri: hmrcConfig.redirectUri,\n  });\n  return hmrcConfig.authUrl + '?' + params.toString();\n}\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>state<\/code> \u0627\u0642\u062f\u0627\u0631 \u06a9\u06cc \u0627\u06c1\u0645\u06cc\u062a \u06c1\u06d2\u06d4 \u06cc\u06c1 \u06a9\u0631\u0627\u0633 \u0633\u0627\u0626\u0679 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062c\u0639\u0644\u0633\u0627\u0632\u06cc (CSRF) \u06a9\u06d2 \u062e\u0644\u0627\u0641 \u062f\u0641\u0627\u0639 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0628\u06d2 \u062a\u0631\u062a\u06cc\u0628\u060c \u0646\u0627\u0642\u0627\u0628\u0644 \u06cc\u0642\u06cc\u0646 \u0633\u0679\u0631\u0646\u06af \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0633\u06d2 \u0633\u0631\u0648\u0631 \u0633\u0627\u0626\u06cc\u0688 \u067e\u0631 \u0627\u0633\u0679\u0648\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0633\u06d2 \u0627\u0633 \u0633\u06d2 \u0645\u0646\u0633\u0644\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u0648\u0627\u067e\u0633 \u0622\u0646\u06d2 \u067e\u0631 \u0627\u0633\u06d2 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u0627\u0644 \u0628\u06cc\u06a9 \u06a9\u0648 \u0645\u0633\u062a\u0631\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u06af\u0631 \u0648\u0627\u067e\u0633 \u06a9\u06cc \u06af\u0626\u06cc \u0642\u06cc\u0645\u062a \u062c\u0627\u0631\u06cc \u06a9\u0631\u062f\u06c1 \u0642\u06cc\u0645\u062a \u0633\u06d2 \u0645\u0645\u0627\u062b\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0639\u0627\u0645 \u067e\u06cc\u0679\u0631\u0646 UUID \u0628\u0646\u0627\u0646\u0627 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0635\u0627\u0631\u0641 \u06a9\u06cc \u0634\u0646\u0627\u062e\u062a \u0627\u0648\u0631 \u0679\u0627\u0626\u0645 \u0627\u0633\u0679\u06cc\u0645\u067e \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0686\u06be\u067e\u0627\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-ts\">const state = uuidv4();\nawait setStateToken(state, { createdAt: Date.now(), userId });\nres.redirect(getAuthorizationUrl(state));\n<\/code><\/pre>\n<p>\u0635\u0627\u0631\u0641\u06cc\u0646 \u0627\u0628 HMRC \u06a9\u06d2 \u0627\u067e\u0646\u06d2 \u0635\u0641\u062d\u06c1 \u067e\u0631 \u0644\u0627\u06af \u0627\u0646 \u06c1\u0648\u0646\u06d2 \u0627\u0648\u0631 \u062f\u0627\u0626\u0631\u06c1 \u06a9\u0627\u0631 \u06a9\u0648 \u0645\u0646\u0638\u0648\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u067e\u0646\u06d2 \u0633\u0631\u06a9\u0627\u0631\u06cc \u06af\u06cc\u0679 \u0648\u06d2 \u06a9\u06cc \u0627\u0633\u0646\u0627\u062f \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u06af\u06d2\u06d4 \u0622\u067e \u06a9\u06cc \u0627\u06cc\u067e \u06a9\u0628\u06be\u06cc \u0628\u06be\u06cc \u0622\u067e \u06a9\u0627 \u067e\u0627\u0633 \u0648\u0631\u0688 \u0646\u06c1\u06cc\u06ba \u062f\u06cc\u06a9\u06be\u062a\u06cc \u06c1\u06d2\u060c \u062c\u0648 OAuth \u06a9\u0627 \u062f\u0644 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-3b-handle-the-callback\">3b. \u06a9\u0627\u0644 \u0628\u06cc\u06a9 \u06c1\u06cc\u0646\u0688\u0644\u0646\u06af<\/h3>\n<p>HMRC \u0631\u06cc \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679 URI \u067e\u0631 \u0648\u0627\u067e\u0633 \u0628\u06be\u06cc\u062c\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0648 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u06d2 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>code<\/code> \u0627\u0648\u0631 <code>state<\/code> (\u06cc\u0627 <code>error<\/code> \u0627\u06af\u0631 \u0635\u0627\u0631\u0641 \u0627\u0646\u06a9\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2)\u06d4 \u06cc\u06c1 \u067e\u06c1\u0644\u06d2 \u0631\u06cc\u0627\u0633\u062a \u06a9\u06cc \u062a\u0648\u062b\u06cc\u0642 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u067e\u06be\u0631 \u0627\u0633\u06d2 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062d\u0630\u0641 \u06a9\u0631 \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u062a\u0627\u06a9\u06c1 \u0627\u0633\u06d2 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0646\u06c1\u06cc\u06ba \u0686\u0644\u0627\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u06d2\u060c \u0627\u0633\u06d2 \u0688\u0633\u067e\u0648\u0632\u0627\u06cc\u0628\u0644 \u0628\u0646\u0627 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<pre><code class=\"language-ts\">const stored = await getStateToken(state);\nif (!state || !stored) {\n  return redirectError('Invalid or expired authorization request');\n}\nawait deleteStateToken(state); \/\/ single-use: delete the moment it validates\n\n\/\/ Optional but sensible: expire stale requests (here, 10 minutes).\nif (Date.now() - stored.createdAt > 10 * 60 * 1000) {\n  return redirectError('Authorization request has expired. Please try again.');\n}\n<\/code><\/pre>\n<h3 id=\"heading-3c-exchange-the-code-for-tokens\">3c \u0679\u0648\u06a9\u0646\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u067e\u0646\u06d2 \u06a9\u0648\u0688 \u06a9\u0627 \u062a\u0628\u0627\u062f\u0644\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u06a9\u06c1 <code>code<\/code> \u06cc\u06c1 \u0627\u067e\u0646\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0642\u0644\u06cc\u0644 \u0627\u0644\u0645\u062f\u062a \u0627\u0648\u0631 \u0628\u06cc\u06a9\u0627\u0631 \u06c1\u06d2\u06d4 \u0631\u0633\u0627\u0626\u06cc \u0679\u0648\u06a9\u0646 \u0627\u0648\u0631 \u0631\u06cc\u0641\u0631\u06cc\u0634 \u0679\u0648\u06a9\u0646\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0631\u0648\u0631 \u0633\u06d2 \u0633\u0631\u0648\u0631 \u062a\u06a9 \u062a\u0628\u0627\u062f\u0644\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4 \u06cc\u06c1 \u06c1\u06d2 <code>POST<\/code> \u0679\u0648\u06a9\u0646 \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679 \u062a\u06a9 <code>grant_type=authorization_code<\/code>\u0627\u0633\u06d2 \u0641\u0627\u0631\u0645 \u0645\u06cc\u06ba \u0627\u0646\u06a9\u0648\u0688 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u060c \u0628\u0634\u0645\u0648\u0644 \u06a9\u0644\u0627\u0626\u0646\u0679 \u0633\u06cc\u06a9\u0631\u0679\u06d4 \u0631\u0627\u0632 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0627\u06cc\u0633\u0627 \u0628\u06cc\u06a9 \u0627\u06cc\u0646\u0688 \u0645\u06cc\u06ba \u06a9\u06cc\u0648\u06ba \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u06cc\u06ba \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-ts\">async function exchangeCodeForTokens(code: string) {\n  const response = await axios.post(\n    hmrcConfig.tokenUrl,\n    new URLSearchParams({\n      grant_type: 'authorization_code',\n      code,\n      client_id: hmrcConfig.clientId,\n      client_secret: hmrcConfig.clientSecret,\n      redirect_uri: hmrcConfig.redirectUri,\n    }).toString(),\n    { headers: { 'Content-Type': 'application\/x-www-form-urlencoded' } },\n  );\n\n  return {\n    accessToken: response.data.access_token,\n    refreshToken: response.data.refresh_token,\n    expiresIn: response.data.expires_in, \/\/ seconds until the access token dies\n  };\n}\n<\/code><\/pre>\n<p>\u0627\u0646 \u0679\u0648\u06a9\u0646\u0632 \u06a9\u0648 \u0633\u0631\u0648\u0631 \u0633\u0627\u0626\u06cc\u0688 \u067e\u0631 \u0627\u0633\u0679\u0648\u0631 \u06a9\u0631\u06cc\u06ba\u060c \u0627\u0646\u06c1\u06cc\u06ba \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062c\u0648\u0691\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0627\u0646\u06c1\u06cc\u06ba \u06a9\u0644\u0627\u0626\u0646\u0679 \u06a9\u0648 \u06a9\u0628\u06be\u06cc \u0646\u06c1 \u0628\u06be\u06cc\u062c\u06cc\u06ba\u06d4 \u0631\u0633\u0627\u0626\u06cc \u0679\u0648\u06a9\u0646 \u0645\u0633\u062a\u0642\u0628\u0644 \u06a9\u06cc \u062a\u0645\u0627\u0645 API \u06a9\u0627\u0644\u0648\u06ba \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u06cc\u0645\u0648 <code>expires_in<\/code>: HMRC \u0631\u0633\u0627\u0626\u06cc \u0679\u0648\u06a9\u0646 \u0645\u062e\u062a\u0635\u0631 \u0645\u062f\u062a \u06a9\u06d2 \u06c1\u06cc\u06ba (\u0641\u06cc \u0627\u0644\u062d\u0627\u0644 4 \u06af\u06be\u0646\u0679\u06d2) \u0627\u0633 \u0644\u06cc\u06d2 \u0645\u0631\u062d\u0644\u06c1 3d \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-3d-refresh-the-token\">3d \u0679\u0648\u06a9\u0646 \u0631\u06cc\u0641\u0631\u06cc\u0634<\/h3>\n<p>\u0627\u06af\u0631 \u0631\u0633\u0627\u0626\u06cc \u0679\u0648\u06a9\u0646 \u06a9\u06cc \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u060c \u062a\u0648 \u0635\u0627\u0631\u0641 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0644\u0627\u06af \u0627\u0646 \u06a9\u0631\u0646\u06d2 \u067e\u0631 \u0645\u062c\u0628\u0648\u0631 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4 \u0646\u0626\u06d2 \u062c\u0648\u0691\u06d2 \u062d\u0627\u0635\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0631\u06cc\u0641\u0631\u06cc\u0634 \u0679\u0648\u06a9\u0646 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>grant_type=refresh_token<\/code>:<\/p>\n<pre><code class=\"language-ts\">async function refreshAccessToken(refreshToken: string) {\n  const response = await axios.post(\n    hmrcConfig.tokenUrl,\n    new URLSearchParams({\n      grant_type: 'refresh_token',\n      refresh_token: refreshToken,\n      client_id: hmrcConfig.clientId,\n      client_secret: hmrcConfig.clientSecret,\n    }).toString(),\n    { headers: { 'Content-Type': 'application\/x-www-form-urlencoded' } },\n  );\n  return {\n    accessToken: response.data.access_token,\n    refreshToken: response.data.refresh_token,\n    expiresIn: response.data.expires_in,\n  };\n}\n<\/code><\/pre>\n<p>\u0627\u06cc\u06a9 \u0627\u0686\u06be\u06cc \u067e\u0631\u06cc\u06a9\u0679\u0633 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u06c1\u0631 \u06a9\u0627\u0644 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0630\u062e\u06cc\u0631\u06c1 \u0634\u062f\u06c1 \u0679\u0648\u06a9\u0646\u0632 \u06a9\u06cc \u0645\u06cc\u0639\u0627\u062f \u062e\u062a\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u06cc \u062c\u0627\u0626\u06d2 \u0627\u0648\u0631 \u062c\u0628 \u0679\u0648\u06a9\u0646 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u062e\u062a\u0645 \u06c1\u0648 \u062c\u0627\u0626\u06cc\u06ba \u062a\u0648 \u0627\u0646\u06c1\u06cc\u06ba \u0641\u0639\u0627\u0644 \u0637\u0648\u0631 \u067e\u0631 \u062a\u0627\u0632\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4 HMRC \u06a9\u06d2 OAuth \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u0627 \u0645\u06a9\u0645\u0644 \u0644\u0627\u0626\u0641 \u0633\u0627\u0626\u06cc\u06a9\u0644 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-step-4-fraud-prevention-headers-the-part-nobody-warns-you-about\">\u0645\u0631\u062d\u0644\u06c1 4: \u0627\u06cc\u0646\u0679\u06cc \u0641\u0631\u0627\u0688 \u06c1\u06cc\u0688\u0631\u0632 (\u0648\u06c1 \u062d\u0635\u06c1 \u062c\u0633 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u06a9\u0648\u0626\u06cc \u0622\u067e \u06a9\u0648 \u062e\u0628\u0631\u062f\u0627\u0631 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627)<\/h2>\n<p>\u062d\u06cc\u0631\u062a \u06a9\u06cc \u0628\u0627\u062a \u06cc\u06c1 \u06c1\u06d2: \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 APIs \u0628\u06cc\u0626\u0631\u0631 \u0679\u0648\u06a9\u0646 \u0633\u06d2 \u062e\u0648\u0634 \u06c1\u06cc\u06ba\u06d4 HMRC \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627\u06d4 \u0642\u0627\u0646\u0648\u0646 \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642\u060c \u0622\u067e \u06a9\u0627 \u0633\u0627\u0641\u0679 \u0648\u06cc\u0626\u0631 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0633\u06cc\u0679\u0648\u06ba \u0645\u06cc\u06ba \u0628\u06be\u06cc\u062c\u0627 \u062c\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2: <strong>\u0627\u06cc\u0646\u0679\u06cc \u0641\u0631\u0627\u0688 \u06c1\u06cc\u0688\u0631<\/strong> \u062a\u0645\u0627\u0645 MTD \u06a9\u0627\u0644\u0632: \u062f\u0631\u062c\u0646\u0648\u06ba <code>Gov-Client-*<\/code> \u0627\u0648\u0631 <code>Gov-Vendor-*<\/code> \u0627\u06cc\u06a9 \u06c1\u06cc\u0688\u0631 \u062c\u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0688\u06cc\u0648\u0627\u0626\u0633\u060c \u0646\u06cc\u0679 \u0648\u0631\u06a9 \u067e\u0627\u062a\u06be\u060c \u0627\u0648\u0631 \u0633\u0627\u0641\u0679 \u0648\u06cc\u0626\u0631 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 HMRC \u06a9\u0648 \u06c1\u0632\u0627\u0631\u0648\u06ba \u0641\u0631\u06cc\u0642 \u062b\u0627\u0644\u062b \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0646\u0646\u062f\u06af\u0627\u0646 \u0645\u06cc\u06ba \u0627\u0633\u0646\u0627\u062f \u06a9\u06d2 \u063a\u0644\u0637 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0627 \u067e\u062a\u06c1 \u0644\u06af\u0627\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0686\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u06af\u0627\u0626\u06cc\u0688 \u06a9\u0646\u06cc\u06a9\u0679\u06cc\u0648\u06cc\u0679\u06cc \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u06c1\u06d2\u060c \u0627\u0633 \u0644\u06cc\u06d2 \u06c1\u0645 \u0627\u0633\u06d2 \u0627\u0639\u0644\u06cc\u0670 \u0645\u0639\u06cc\u0627\u0631 \u067e\u0631 \u0631\u06a9\u06be\u06cc\u06ba \u06af\u06d2\u06d4 HMRC \u06a9\u06d2 \u0627\u06cc\u0646\u0679\u06cc \u0641\u0631\u0627\u0688 \u06c1\u06cc\u0688\u0631 \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644\u0627\u062a \u06a9\u0648 \u0628\u063a\u0648\u0631 \u067e\u0691\u06be\u06cc\u06ba \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0642\u0648\u0627\u0639\u062f \u0628\u0627\u0644\u06a9\u0644 \u062f\u0631\u0633\u062a \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u062e\u0631\u0627\u0628\u06cc \u06a9\u06d2 \u0637\u0631\u06cc\u0642\u06d2 \u062e\u0627\u0645\u0648\u0634 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0633\u0628 \u0633\u06d2 \u0627\u06c1\u0645 \u0641\u06cc\u0635\u0644\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u06a9\u0633 \u0637\u0631\u062d \u062c\u0691\u06cc\u06ba \u06af\u06d2\u06d4 <code>Gov-Client-Connection-Method<\/code>. \u0633\u0631\u0648\u0631 \u062b\u0627\u0644\u062b\u06cc \u0648\u06cc\u0628 \u0627\u06cc\u067e\u0633 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba: <code>WEB_APP_VIA_SERVER<\/code>; \u0633\u0631\u0648\u0631 \u06a9\u06cc \u062b\u0627\u0644\u062b\u06cc \u0648\u0627\u0644\u06cc \u0645\u0648\u0628\u0627\u0626\u0644 \u0627\u06cc\u067e\u0633 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba: <code>MOBILE_APP_VIA_SERVER<\/code>. \u06cc\u06c1 \u0627\u0646\u062a\u062e\u0627\u0628 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0648\u0646 \u0633\u06d2 \u06c1\u06cc\u0688\u0631 \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u06a9\u0648\u0646 \u0633\u06d2 \u0645\u0645\u0646\u0648\u0639 \u06c1\u06cc\u06ba\u060c \u0644\u06c1\u0630\u0627 \u062a\u0645\u0627\u0645 \u06c1\u06cc\u0688\u0631 \u0628\u0631\u0622\u0645\u062f \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0628\u062a\u062f\u0627\u0626\u06cc \u0627\u0641\u0631\u0627\u062f \u06a9\u06d2 \u0644\u06cc\u06d2 \u0648\u0627\u0642\u0639\u06cc \u0627\u0686\u06be\u06cc \u062e\u0628\u0631 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 HMRC \u0627\u06cc\u06a9 \u0679\u06cc\u0633\u0679 \u0641\u0631\u0627\u0688 \u067e\u0631\u06cc\u0648\u0646\u0634\u0646 \u06c1\u06cc\u0688\u0631\u0632 API \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0622\u067e \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0627 \u0645\u0639\u0627\u0626\u0646\u06c1 \u06a9\u0631\u06d2 \u06af\u0627 \u0627\u0648\u0631 \u0622\u067e \u06a9\u0648 \u0628\u062a\u0627\u0626\u06d2 \u06af\u0627 \u06a9\u06c1 \u06a9\u0648\u0646 \u0633\u06d2 \u06c1\u06cc\u0688\u0631\u0632 \u063a\u0627\u0626\u0628 \u06c1\u06cc\u06ba \u06cc\u0627 \u062e\u0631\u0627\u0628 \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u06a9\u06cc \u067e\u06c1\u0644\u06cc \u06a9\u0645\u0679 \u067e\u0631 \u0627\u0633 \u062a\u0648\u062b\u06cc\u0642 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u06cc \u062a\u0639\u0645\u06cc\u0631 \u0627\u06cc\u06a9 \u0627\u0646\u062f\u0627\u0632\u06c1 \u0644\u06af\u0627\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u06be\u06cc\u0644 \u06a9\u0648 \u0686\u06cc\u06a9 \u0644\u0633\u0679 \u0645\u06cc\u06ba \u0628\u062f\u0644 \u062f\u06cc\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u067e\u0646\u06cc \u067e\u06c1\u0644\u06cc \u0633\u06cc\u0646\u0688 \u0628\u0627\u06a9\u0633 \u06a9\u0627\u0644 \u06a9\u0648 \u06a9\u0627\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0622\u067e \u06a9\u0648 \u0627\u0633 \u062a\u0641\u0635\u06cc\u0644\u0627\u062a \u06a9\u06cc \u0645\u06a9\u0645\u0644 \u06af\u06c1\u0631\u0627\u0626\u06cc \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0622\u067e \u06a9\u0648 \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0688\u06cc\u0679\u0627 \u06a9\u06d2 \u0642\u0631\u06cc\u0628 \u06a9\u06c1\u06cc\u06ba \u062c\u0627\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0633 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u0627\u0633\u06d2 \u0622\u062e\u0631 \u062a\u06a9 \u0646\u06c1 \u0686\u06be\u0648\u0691\u06cc\u06ba \u0627\u0648\u0631 \u062d\u0642\u06cc\u0642\u06cc \u0648\u0642\u062a \u0645\u06cc\u06ba \u0627\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u062c\u0679 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-step-5-make-your-first-authenticated-call\">\u0645\u0631\u062d\u0644\u06c1 5: \u0627\u067e\u0646\u06cc \u067e\u06c1\u0644\u06cc \u062a\u0635\u062f\u06cc\u0642\u06cc \u06a9\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u0628 \u06c1\u0645\u0627\u0631\u06d2 \u067e\u0627\u0633 \u0627\u06cc\u06a9 \u0679\u0648\u06a9\u0646 \u0627\u0648\u0631 \u06c1\u06cc\u0688\u0631 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u06cc\u06a9 \u062d\u0642\u06cc\u0642\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0627 \u0648\u0642\u062a \u06c1\u06d2\u06d4 \u06c1\u0631 MTD \u06a9\u0627\u0644 \u0679\u0648\u06a9\u0646 \u06a9\u06d2 \u0627\u0648\u067e\u0631 \u062f\u0648 \u0686\u06cc\u0632\u06cc\u06ba \u0633\u06cc\u0679 \u06a9\u0631\u062a\u06cc \u06c1\u06d2: <code>Accept<\/code> \u06c1\u06cc\u0688\u0631\u0632 \u062c\u0648 API \u0648\u0631\u0698\u0646 \u06a9\u0648 \u067e\u0646 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0641\u0631\u0627\u0688 \u06c1\u06cc\u0688\u0631\u0632:<\/p>\n<pre><code class=\"language-ts\">async function request(method, path, accessToken, req, data = null, apiVersion = '2.0') {\n  const headers = {\n    Authorization: `Bearer ${accessToken}`,\n    Accept: `application\/vnd.hmrc.${apiVersion}+json`,\n    ...hmrcConfig.getFraudHeaders(req),\n  };\n  \/\/ Only set a JSON Content-Type when there is actually a body (see gotcha 3).\n  if (data !== null && data !== undefined) {\n    headers['Content-Type'] = 'application\/json';\n  }\n  const res = await axios({ baseURL: hmrcConfig.baseUrl, method, url: path, headers, data });\n  return res.data;\n}\n<\/code><\/pre>\n<p>\u0628\u06c1\u062a\u0631\u06cc\u0646 \u0637\u0631\u06cc\u0642\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0646\u06cc\u0634\u0646\u0644 \u0627\u0646\u0634\u0648\u0631\u0646\u0633 \u0646\u0645\u0628\u0631 (NINO) \u0627\u0648\u0631 \u06a9\u0627\u0631\u0648\u0628\u0627\u0631\u06cc \u062a\u0641\u0635\u06cc\u0644\u0627\u062a API \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 &quot;\u0627\u0633 \u0634\u062e\u0635 \u06a9\u06d2 \u06a9\u0627\u0631\u0648\u0628\u0627\u0631 \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u0628\u0646\u0627\u0626\u06cc\u06ba&#8221;\u06d4 \u0686\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u0635\u0631\u0641 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u06d2\u060c \u06cc\u06c1 \u0686\u06cc\u06a9 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0627\u06cc\u06a9 \u0645\u062d\u0641\u0648\u0638 \u0637\u0631\u06cc\u0642\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u0679\u0648\u06a9\u0646\u0632 \u0627\u0648\u0631 \u06c1\u06cc\u0688\u0631\u0632 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-ts\">\/\/ GET \/individuals\/business\/details\/{nino}\/list  (Business Details API v2.0)\nconst businesses = await request(\n  'GET',\n  `\/individuals\/business\/details\/${nino}\/list`,\n  accessToken,\n  req,\n  null,\n  '2.0',\n);\n<\/code><\/pre>\n<p>\u0627\u06cc\u06a9 \u0628\u0627\u0631 \u0648\u0627\u067e\u0633 \u0622\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0642\u062f\u0631\u062a\u06cc \u0627\u06af\u0644\u06cc \u06a9\u0627\u0644 \u0644\u0627\u0632\u0645\u06cc \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u060c \u062c\u06cc\u0633\u06d2 \u06a9\u06c1 \u06a9\u0628 \u0627\u0648\u0631 \u06a9\u0628 \u0633\u06c1 \u0645\u0627\u06c1\u06cc \u0627\u067e \u0688\u06cc\u0679\u0633 \u0648\u0627\u062c\u0628 \u0627\u0644\u0627\u062f\u0627 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 API \u0648\u0631\u0698\u0646 \u0645\u06cc\u06ba \u06c1\u06d2 \u062c\u0648 \u0645\u0633\u0626\u0644\u06c1 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u0631\u06c1\u0646\u0645\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-ts\">\/\/ GET \/obligations\/details\/{nino}\/income-and-expenditure  (Obligations API v3.0)\nconst obligations = await request(\n  'GET',\n  `\/obligations\/details\/${nino}\/income-and-expenditure`,\n  accessToken,\n  req,\n  null,\n  '3.0',\n);\n<\/code><\/pre>\n<p>\u0633\u06cc\u0646\u0688 \u0628\u0627\u06a9\u0633 \u0645\u06cc\u06ba \u0627\u0633 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c HMRC \u06a9\u06d2 &quot;Create Test User&#8221; API \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2\u060c OAuth \u0641\u0644\u0648 \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u0644\u0627\u06af \u0627\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 NINO \u0627\u0648\u0631 \u06af\u0648\u0631\u0646\u0645\u0646\u0679 \u06af\u06cc\u0679 \u0648\u06d2 \u06a9\u06cc \u0627\u0633\u0646\u0627\u062f \u06a9\u0648 \u067e\u0627\u0633 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u06cc\u06a9 \u062c\u0639\u0644\u06cc \u0679\u06cc\u06a9\u0633 \u062f\u06c1\u0646\u062f\u06c1 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-common-gotchas-that-will-cost-you-an-afternoon\">\u0639\u0627\u0645 \u0645\u0633\u0627\u0626\u0644 \u062c\u0648 \u0622\u067e \u06a9\u06cc \u062f\u0648\u067e\u06c1\u0631 \u06a9\u0648 \u0636\u0627\u0626\u0639 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/h2>\n<p>\u06a9\u0626\u06cc \u067e\u06be\u0646\u062f\u06d2 \u0644\u06af \u0628\u06be\u06af \u0633\u0628 \u06a9\u0648 \u067e\u06c1\u0644\u06d2 \u067e\u06a9\u0691 \u0644\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-1-pin-the-api-version-or-get-a-406\">1. API \u0648\u0631\u0698\u0646 \u062f\u0631\u0633\u062a \u06a9\u0631\u06cc\u06ba \u06cc\u0627 406 \u062d\u0627\u0635\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0645\u062e\u062a\u0644\u0641 HMRC APIs \u0645\u062e\u062a\u0644\u0641 \u0648\u0631\u0698\u0646 \u0645\u06cc\u06ba \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u06cc\u06ba\u06d4 \u06a9\u0627\u0631\u0648\u0628\u0627\u0631 \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644\u0627\u062a \u0622\u0646 \u06c1\u06cc\u06ba\u06d4 <code>2.0<\/code>\u0688\u06cc\u0648\u0679\u06cc <code>3.0<\/code>\u06a9\u0645\u067e\u06cc\u0648\u0679 API \u06a9\u0648 \u0645\u0633\u062a\u0642\u0628\u0644 \u06a9\u06d2 \u0648\u0631\u0698\u0646 \u0645\u06cc\u06ba \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0648\u0631\u0698\u0646 \u06cc\u06c1\u0627\u06ba \u0645\u0648\u062c\u0648\u062f \u06c1\u06d2: <code>Accept<\/code> \u06c1\u06cc\u0688\u0631 (<code>application\/vnd.hmrc.3.0+json<\/code>)\u06d4 \u0627\u06af\u0631 \u0622\u067e \u063a\u0644\u0637 \u0648\u0631\u0698\u0646 \u0628\u06be\u06cc\u062c\u062a\u06d2 \u06c1\u06cc\u06ba \u06cc\u0627 \u06c1\u06cc\u0688\u0631 \u0628\u06be\u0648\u0644 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 HMRC \u062c\u0648\u0627\u0628 \u062f\u06d2 \u06af\u0627\u06d4 <code>406 Not Acceptable<\/code>. \u0627\u06af\u0631 \u06a9\u0627\u0644 \u0639\u062c\u06cc\u0628 \u0637\u0648\u0631 \u067e\u0631 \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648\u062c\u0627\u062a\u06cc \u06c1\u06d2 \u062a\u0648 \u067e\u06c1\u0644\u06d2 \u0648\u0631\u0698\u0646 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-2-the-state-token-is-single-use\">2. <code>state<\/code> \u0679\u0648\u06a9\u0646 \u0688\u0633\u067e\u0648\u0632\u0627\u06cc\u0628\u0644 \u06c1\u06cc\u06ba\u06d4<\/h3>\n<p>\u0628\u0631\u0627\u06c1 \u06a9\u0631\u0645 \u062a\u0648\u062b\u06cc\u0642 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u067e\u06be\u0631 \u06a9\u0686\u06be \u0627\u0648\u0631 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0633\u06d2 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062d\u0630\u0641 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0686\u06cc\u06a9 \u0646\u06c1 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u062a\u0648 CSRF \u062a\u062d\u0641\u0638 \u06a9\u0645\u0632\u0648\u0631 \u06c1\u0648 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4 \u067e\u0631\u0627\u0646\u06d2 \u0628\u06be\u06cc \u062e\u062a\u0645\u06d4<\/p>\n<h3 id=\"heading-3-dont-send-content-type-applicationjson-on-a-bodyless-get\">3. \u0627\u0633\u06d2 \u0645\u062a \u0628\u06be\u06cc\u062c\u06cc\u06ba\u06d4 <code>Content-Type: application\/json<\/code> \u062c\u0633\u0645 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 GET \u0633\u06d2\u06d4<\/h3>\n<p>\u06cc\u06c1 \u0648\u0627\u0642\u0639\u06cc \u062d\u06cc\u0631\u062a \u0627\u0646\u06af\u06cc\u0632 \u06c1\u06d2\u06d4 HMRC \u06a9\u0627 Edge (CloudFront) JSON \u067e\u0627\u0633 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 GETs \u06a9\u0648 \u0645\u0633\u062a\u0631\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>Content-Type<\/code> \u062c\u0633\u0645 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 <code>403 Bad request<\/code>\u0622\u067e \u062a\u0645\u0627\u0645 \u067e\u0691\u06be\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u06a9\u0627\u062a \u06a9\u0648 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u0631\u0648\u06a9 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0628\u0633 \u0633\u06cc\u0679 \u0627\u067e <code>Content-Type<\/code> \u0627\u06af\u0631 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u0627\u0648\u067e\u0631 \u06a9\u06d2 \u0679\u06a9\u0691\u0648\u06ba \u06a9\u06cc \u0637\u0631\u062d \u0628\u06be\u06cc\u062c\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0635\u0644 \u0628\u0627\u0688\u06cc \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-4-subscribe-your-app-to-each-api\">4. \u0627\u067e\u0646\u06cc \u0627\u06cc\u067e \u0645\u06cc\u06ba \u06c1\u0631 API \u06a9\u0648 \u0633\u0628\u0633\u06a9\u0631\u0627\u0626\u0628 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u062c\u06cc\u0633\u0627 \u06a9\u06c1 \u0645\u0631\u062d\u0644\u06c1 1 \u0645\u06cc\u06ba \u0628\u062a\u0627\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u060c \u0627\u0646 \u0633\u0628\u0633\u06a9\u0631\u0627\u0626\u0628 \u0634\u062f\u06c1 API \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>403<\/code>\u06cc\u06c1 \u062a\u0648\u062b\u06cc\u0642 \u06a9\u06d2 \u0645\u0633\u0626\u0644\u06d2 \u06a9\u06cc \u0637\u0631\u062d \u0644\u06af\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0627\u06cc\u0633\u0627 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-5-the-redirect-uri-must-match-exactly\">5. \u0631\u06cc \u0688\u0627\u0626\u0631\u06cc\u06a9\u0679 URIs \u0628\u0627\u0644\u06a9\u0644 \u0645\u0645\u0627\u062b\u0644 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/h3>\n<p>\u0679\u0631\u06cc\u0644\u0646\u06af \u0633\u0644\u06cc\u0634 \u06cc\u0627 <code>http<\/code> ~ \u06a9\u06d2 \u0644\u06cc\u06d2 <code>https<\/code> \u0639\u062f\u0645 \u0645\u0645\u0627\u062b\u0644\u062a \u06a9\u06d2 \u0646\u062a\u06cc\u062c\u06d2 \u0645\u06cc\u06ba \u0631\u0636\u0627\u0645\u0646\u062f\u06cc \u06a9\u06cc \u0627\u0633\u06a9\u0631\u06cc\u0646 \u067e\u0631 \u0627\u06cc\u06a9 \u0645\u0628\u06c1\u0645 \u062e\u0631\u0627\u0628\u06cc \u067e\u06cc\u062f\u0627 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u0633\u06d2 \u06a9\u0627\u067e\u06cc \u06a9\u0631\u06cc\u06ba\u06d4 \u0628\u0631\u0627\u06c1 \u06a9\u0631\u0645 \u062f\u0648\u0628\u0627\u0631\u06c1 \u062f\u0627\u062e\u0644 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-where-to-go-next\">\u0622\u06af\u06d2 \u06a9\u06c1\u0627\u06ba \u062c\u0627\u0646\u0627 \u06c1\u06d2\u06d4<\/h2>\n<p>\u06cc\u06c1 \u06a9\u0644\u06cc\u062f \u06c1\u06d2\u06d4 \u0633\u06cc\u0646\u0688 \u0628\u0627\u06a9\u0633 \u0627\u06cc\u067e \u06a9\u0648 \u0631\u062c\u0633\u0679\u0631 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0633\u0628\u0633\u06a9\u0631\u0627\u0626\u0628 \u06a9\u0631\u06cc\u06ba\u060c \u0679\u0648\u06a9\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 OAuth \u062a\u0635\u062f\u06cc\u0642\u06cc \u06a9\u0648\u0688 \u0641\u0644\u0648 \u06a9\u0648 \u0686\u0644\u0627\u0626\u06cc\u06ba\u060c \u0627\u06cc\u0646\u0679\u06cc \u0641\u0631\u0627\u0688 \u06c1\u06cc\u0688\u0631 \u0645\u0646\u0633\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u0648\u0631\u0698\u0646 \u0648\u0627\u0644\u06cc JSON \u06a9\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1\u0627\u06ba \u0633\u06d2 \u0628\u0627\u0642\u06cc \u0627\u06cc\u0645 \u0679\u06cc \u0688\u06cc \u06a9\u0627\u0641\u06cc \u062d\u062f \u062a\u06a9 \u0627\u06cc\u06a9 \u062c\u06cc\u0633\u0627 \u06c1\u06d2\u06d4 \u0627\u067e\u0646\u06d2 \u0633\u06c1 \u0645\u0627\u06c1\u06cc \u0645\u062c\u0645\u0648\u0639\u06cc \u0627\u0639\u062f\u0627\u062f \u0648 \u0634\u0645\u0627\u0631 \u062c\u0645\u0639 \u06a9\u0631\u0648\u0627\u0626\u06cc\u06ba\u060c \u0627\u067e\u0646\u06d2 \u0679\u06cc\u06a9\u0633 \u06a9\u0627 \u062d\u0633\u0627\u0628 \u0644\u06af\u0627\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u060c \u0627\u067e\u0646\u06d2 \u0646\u062a\u0627\u0626\u062c \u067e\u0691\u06be\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0627\u067e\u0646\u0627 \u062d\u062a\u0645\u06cc \u0631\u06cc\u0679\u0631\u0646 \u0641\u0627\u0626\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u06c1\u0631 \u0627\u06cc\u06a9 \u0627\u06cc\u06a9 \u0627\u0648\u0631 \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06c1 \u06c1\u06d2 \u062c\u0633 \u0633\u06d2 \u0622\u067e \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u06af\u0632\u0631 \u0686\u06a9\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0633\u0628 \u0633\u06d2 \u0645\u06c1\u0631\u0628\u0627\u0646 \u0686\u06cc\u0632 \u062c\u0648 \u0645\u06cc\u06ba \u0634\u0631\u0648\u0639\u0627\u062a \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0648\u06ba \u0633\u06d2 \u06a9\u06c1\u06c1 \u0633\u06a9\u062a\u0627 \u06c1\u0648\u06ba \u0648\u06c1 \u06c1\u06d2 HMRC \u06a9\u06d2 \u0627\u067e\u0646\u06d2 \u0679\u0648\u0644\u0632 \u067e\u0631 \u0627\u0646\u062d\u0635\u0627\u0631 \u06a9\u0631\u0646\u0627: \u0633\u06cc\u0646\u0688 \u0628\u0627\u06a9\u0633\u060c \u0679\u06cc\u0633\u0679 \u0635\u0627\u0631\u0641 \u0627\u0648\u0631 \u062e\u0627\u0635 \u0637\u0648\u0631 \u067e\u0631 \u0641\u0631\u0627\u0688 \u06c1\u06cc\u0688\u0631 \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0646\u0646\u062f\u06c1\u06d4 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u062c\u0628 \u0622\u067e \u06c1\u0631 \u0627\u06cc\u06a9 \u06a9\u0648 \u0635\u0627\u0641 \u0633\u062a\u06be\u0631\u0627 \u0646\u062a\u06cc\u062c\u06c1 \u06a9\u06cc \u0637\u0631\u0641 \u0631\u06c1\u0646\u0645\u0627\u0626\u06cc \u06a9\u0631 \u0644\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0627\u0646\u0636\u0645\u0627\u0645 \u0627\u06cc\u06a9 \u0631\u06cc\u06af\u0648\u0644\u06cc\u0679\u0631\u06cc \u0628\u06be\u0648\u0644\u0628\u0644\u06cc\u06cc\u0627 \u06a9\u06cc \u0637\u0631\u062d \u0645\u062d\u0633\u0648\u0633 \u06a9\u0631\u0646\u0627 \u0628\u0646\u062f \u06a9\u0631 \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u0628\u0627\u0642\u0627\u0639\u062f\u06c1 REST API \u06a9\u06cc \u0637\u0631\u062d \u0628\u0631\u062a\u0627\u0624 \u06a9\u0631\u0646\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0631 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u060c \u0686\u0627\u06c1\u06d2 \u0622\u067e \u063a\u06cc\u0631 \u0645\u0639\u0645\u0648\u0644\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0645\u062d\u062a\u0627\u0637 \u06c1\u0648\u06ba\u06d4<\/p>\n<p>\u0645\u06cc\u06ba TapTax \u067e\u0631 \u06a9\u0627\u0645 \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u0648\u06ba\u060c \u062c\u0648 \u06a9\u06c1 \u0628\u0631\u0637\u0627\u0646\u06cc\u06c1 \u06a9\u06d2 \u0648\u0627\u062d\u062f \u062a\u0627\u062c\u0631\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0645\u06cc\u06a9\u0646\u06af \u0679\u06cc\u06a9\u0633 \u0688\u06cc\u062c\u06cc\u0679\u0644 \u0627\u06cc\u067e \u06c1\u06d2\u060c \u062c\u06c1\u0627\u06ba \u0633\u06d2 \u0645\u062c\u06be\u06d2 \u0627\u0648\u067e\u0631 \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644\u0627\u062a \u0645\u0644\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<p><em>\u0645\u0635\u0646\u0641 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba: Solomon Amos TapTax \u06a9\u06d2 \u0628\u0627\u0646\u06cc \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0646\u06c1\u0648\u06ba \u0646\u06d2 HMRC \u0645\u06cc\u06a9\u0646\u06af \u0679\u06cc\u06a9\u0633 \u0688\u06cc\u062c\u06cc\u0679\u0644 \u0627\u0646\u0679\u06cc\u06af\u0631\u06cc\u0634\u0646 \u0628\u0646\u0627\u06cc\u0627 \u06c1\u06d2\u06d4 \u0627\u0646\u06c1\u0648\u06ba \u0646\u06d2 \u06af\u0632\u0634\u062a\u06c1 \u062a\u06cc\u0646 \u0633\u0627\u0644\u0648\u06ba \u0633\u06d2 HMRC \u06a9\u06d2 \u0688\u06cc\u062c\u06cc\u0679\u0644 \u0645\u0627\u0688\u0631\u0646\u0627\u0626\u0632\u06cc\u0634\u0646 \u067e\u0631\u0648\u06af\u0631\u0627\u0645 \u06a9\u06d2 \u0686\u06cc\u0641 \u0679\u06cc\u06a9\u0646\u06cc\u06a9\u0644 \u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0679 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0627\u0645 \u06a9\u06cc\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0645\u0634\u06cc\u0646 \u0644\u0631\u0646\u0646\u06af \u0645\u06cc\u06ba \u062a\u062d\u0642\u06cc\u0642 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u0646\u062c\u06cc\u0646\u0626\u0631\u0646\u06af \u0645\u06cc\u06ba \u067e\u06cc \u0627\u06cc\u0686 \u0688\u06cc \u06a9\u06cc \u0688\u06af\u0631\u06cc \u062d\u0627\u0635\u0644 \u06a9\u06cc \u06c1\u06d2\u06d4 \u0622\u067e \u0627\u0633\u06d2 \u0688\u06be\u0648\u0646\u0688 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/em> <em>\u0644\u0646\u06a9\u0688<\/em><em>.<\/em><\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0627\u06af\u0631 \u0622\u067e \u06cc\u0648 \u06a9\u06d2 \u0679\u06cc\u06a9\u0633 \u0627\u062f\u0627 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0644\u0648\u06af\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0627\u0641\u0679 \u0648\u06cc\u0626\u0631 \u0644\u06a9\u06be \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0634\u0627\u06cc\u062f \u0622\u067e \u06a9\u0648 \u062c\u0644\u062f \u06cc\u0627 \u0628\u062f\u06cc\u0631 HMRC \u0633\u06d2 \u0631\u0627\u0628\u0637\u06c1 \u06a9\u0631\u0646\u0627 \u067e\u0691\u06d2 \u06af\u0627\u06d4 \u0627\u0646\u06a9\u0645 \u0679\u06cc\u06a9\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0679\u06cc\u06a9\u0633 \u0688\u06cc\u062c\u06cc\u0679\u0644 (MTD) 6 \u0627\u067e\u0631\u06cc\u0644 2026 \u06a9\u0648 \u0634\u0631\u0648\u0639 \u06c1\u0648\u0627 \u0627\u0648\u0631 \u00a350,000 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06a9\u06cc \u06a9\u0648\u0627\u0644\u06cc\u0641\u0627\u0626\u0646\u06af \u0622\u0645\u062f\u0646\u06cc \u0648\u0627\u0644\u06d2 \u0633\u06cc\u0644\u0641 \u0627\u06cc\u0645\u067e\u0644\u0627\u0626\u0688 \u0644\u0648\u06af\u0648\u06ba \u0627\u0648\u0631 \u0632\u0645\u06cc\u0646\u062f\u0627\u0631\u0648\u06ba [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":29182,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-29181","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts\/29181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/comments?post=29181"}],"version-history":[{"count":1,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts\/29181\/revisions"}],"predecessor-version":[{"id":29183,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts\/29181\/revisions\/29183"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/media\/29182"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/media?parent=29181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/categories?post=29181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/tags?post=29181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}