12 āļ.āļ„. 2568·āļ­āđˆāļēāļ™ 2 āļ™āļēāļ—āļĩ

āļ›āļĢāļąāļšāļāļŽāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļ‡ API āđ‚āļ”āļĒāđ„āļĄāđˆāļ—āļģāđƒāļŦāđ‰āđāļ­āļ›āļĄāļ·āļ­āļ–āļ·āļ­āļžāļąāļ‡

āđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰āļ§āļīāļ˜āļĩāļ›āļĢāļąāļšāļāļŽāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļ‡ API āđ‚āļ”āļĒāđ„āļĄāđˆāļ—āļģāđƒāļŦāđ‰āđāļ­āļ›āļĄāļ·āļ­āļ–āļ·āļ­āļžāļąāļ‡ āđ‚āļ”āļĒāđƒāļŠāđ‰āļ„āļģāđ€āļ•āļ·āļ­āļ™ āļāļēāļĢāļĄāđ‰āļ§āļ™āļ­āļ­āļāđ€āļ›āđ‡āļ™āļ‚āļąāđ‰āļ™ āđāļĨāļ°āļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļšāļ—āļĩāđˆāđ€āļ‚āđ‰āļēāļāļąāļ™āđ„āļ”āđ‰āļĒāđ‰āļ­āļ™āļŦāļĨāļąāļ‡

āļ›āļĢāļąāļšāļāļŽāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļ‡ API āđ‚āļ”āļĒāđ„āļĄāđˆāļ—āļģāđƒāļŦāđ‰āđāļ­āļ›āļĄāļ·āļ­āļ–āļ·āļ­āļžāļąāļ‡

āļ—āļģāđ„āļĄāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ–āļķāļ‡āļ—āļģāđƒāļŦāđ‰āļœāļđāđ‰āđƒāļŠāđ‰āļĄāļ·āļ­āļ–āļ·āļ­āđ„āļ”āđ‰āļĢāļąāļšāļœāļĨāļāļĢāļ°āļ—āļš\n\nāđāļ­āļ›āļĄāļ·āļ­āļ–āļ·āļ­āđ„āļĄāđˆāđ„āļ”āđ‰āļ­āļąāļ›āđ€āļ”āļ•āļ—āļąāļ™āļ—āļĩāđ€āļŠāļĄāļ­āđ„āļ› āļ–āđ‰āļēāļ„āļļāļ“āđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”āļāļŽāļšāļ™āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļ§āļąāļ™āļ™āļĩāđ‰ āļāđ‡āļ­āļēāļˆāļ—āļģāđƒāļŦāđ‰āļœāļđāđ‰āđƒāļŠāđ‰āļ—āļĩāđˆāļĒāļąāļ‡āđƒāļŠāđ‰āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđ€āļāđˆāļēāļ­āļĒāļđāđˆāļžāļąāļ‡āđƒāļ™āđ€āļŠāđ‰āļēāļ§āļąāļ™āļĢāļļāđˆāļ‡āļ‚āļķāđ‰āļ™ āđāļšāđ‡āļāđ€āļ­āļ™āļ”āđŒāļ›āļĨāđˆāļ­āļĒāđ„āļ”āđ‰āđ€āļĢāđ‡āļ§ āđāļ•āđˆāļāļēāļĢāļ›āļĨāđˆāļ­āļĒāđāļ­āļ›āļ‚āļķāđ‰āļ™āļ­āļĒāļđāđˆāļāļąāļšāđ€āļ§āļĨāļēāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļ‡āļŠāđ‚āļ•āļĢāđŒ, āļāļēāļĢāļĄāđ‰āļ§āļ™āļ­āļ­āļāđ€āļ›āđ‡āļ™āļ‚āļąāđ‰āļ™ āđ† āđāļĨāļ°āļœāļđāđ‰āđƒāļŠāđ‰āļ—āļĩāđˆāđ„āļĄāđˆāļĒāļ­āļĄāļ­āļąāļ›āđ€āļ”āļ•\n\nāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļĒāļąāļ‡āļāļĢāļ°āļˆāļąāļ”āļāļĢāļ°āļˆāļēāļĒāļ­āļĒāļđāđˆāļĢāļ°āļŦāļ§āđˆāļēāļ‡āđ€āļĨāđ€āļĒāļ­āļĢāđŒāļ•āđˆāļēāļ‡āđ† āđāļĨāļ°āđāļ•āđˆāļĨāļ°āđ€āļĨāđ€āļĒāļ­āļĢāđŒāļāđ‡āđ€āļĨāļ·āđˆāļ­āļ™āļĢāļ°āļ”āļąāļšāđ„āļ›āđ„āļĄāđˆāđ€āļ—āđˆāļēāļāļąāļ™ āļŸāļīāļĨāļ”āđŒāļ­āļēāļˆāđ€āļ›āđ‡āļ™ optional āđƒāļ™ UI āļ‚āļ­āļ‡āđāļ­āļ› āđāļ•āđˆāđ€āļ›āđ‡āļ™ required āđƒāļ™ API āđāļĨāļ°āļ–āļđāļāļšāļąāļ‡āļ„āļąāļšāļ•āđˆāļēāļ‡āļ­āļ­āļāđ„āļ›āđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ āļ„āļ§āļēāļĄāđ„āļĄāđˆāļ•āļĢāļ‡āļāļąāļ™āđ€āļžāļĩāļĒāļ‡āđ€āļĨāđ‡āļāļ™āđ‰āļ­āļĒ (āđ€āļŠāđˆāļ™ āļāļēāļĢāļ•āļąāļ”āļŠāđˆāļ­āļ‡āļ§āđˆāļēāļ‡, āļ›āļāļīāđ€āļŠāļ˜āļ­āļĩāđ‚āļĄāļˆāļī, āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļĢāļđāļ›āđāļšāļšāļ§āļąāļ™āļ—āļĩāđˆ) āļāđ‡āļ­āļēāļˆāđāļ›āļĨāļ‡āļ„āļģāļ‚āļ­āļ—āļĩāđˆāđ€āļ„āļĒāđƒāļŠāđ‰āđ„āļ”āđ‰āđƒāļŦāđ‰āļāļĨāļēāļĒāđ€āļ›āđ‡āļ™āļāļēāļĢāļ›āļāļīāđ€āļŠāļ˜\n\nāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļĄāļąāļāļ­āļĒāļđāđˆāđƒāļ™āđ„āļĄāđˆāļāļĩāđˆāļˆāļļāļ”:\n\n- āļāļąāđˆāļ‡āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāļĄāļ·āļ­āļ–āļ·āļ­ (āļŠāļīāđˆāļ‡āļ—āļĩāđˆāļœāļđāđ‰āđƒāļŠāđ‰āļžāļīāļĄāļžāđŒāđāļĨāļ°āļŠāđˆāļ‡āđ„āļ”āđ‰)\n- API (āļŠāļīāđˆāļ‡āļ—āļĩāđˆāđāļšāđ‡āļāđ€āļ­āļ™āļ”āđŒāļĒāļ­āļĄāļĢāļąāļš)\n- āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ (āļŠāļīāđˆāļ‡āļ—āļĩāđˆāđ€āļāđ‡āļšāđ„āļ”āđ‰āļˆāļĢāļīāļ‡)\n- āļšāļĢāļīāļāļēāļĢāļ āļēāļĒāļ™āļ­āļ (āļāļēāļĢāļŠāļģāļĢāļ°āđ€āļ‡āļīāļ™, āļ‚āđ‰āļ­āļ„āļ§āļēāļĄ, āļœāļđāđ‰āđƒāļŦāđ‰āļšāļĢāļīāļāļēāļĢāļ•āļąāļ§āļ•āļ™)\n\nāđ€āļĄāļ·āđˆāļ­āļĄāļĩāļ­āļ°āđ„āļĢ â€œāļžāļąāļ‡â€ āļĄāļąāļ™āļĄāļąāļāļˆāļ°āļ”āļđāļ™āđˆāļēāđ€āļšāļ·āđˆāļ­āđāļ•āđˆāđ€āļˆāđ‡āļšāļ›āļ§āļ”: āđ‚āļ”āļ”āļ‚āļķāđ‰āļ™āļ‚āļ­āļ‡āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ” 400, āļ›āļļāđˆāļĄāļˆāđˆāļēāļĒāđ€āļ‡āļīāļ™āļŦāļĄāļļāļ™āđ„āļĄāđˆāļŦāļĒāļļāļ”, āļŦāļ™āđ‰āļēāļšāļąāļāļŠāļĩāļšāļąāļ™āļ—āļķāļāđ„āļĄāđˆāđ„āļ”āđ‰, āļŦāļĢāļ·āļ­āļŸāļ­āļĢāđŒāļĄāļĢāļĩāđ€āļ‹āđ‡āļ•āļžāļĢāđ‰āļ­āļĄāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļāļģāļāļ§āļĄ āļœāļđāđ‰āđƒāļŠāđ‰āđ„āļĄāđˆāđ€āļŠāļ·āđˆāļ­āļĄāđ‚āļĒāļ‡āļāļąāļšāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš āļžāļ§āļāđ€āļ‚āļēāđāļ„āđˆāđ€āļŦāđ‡āļ™āđāļ­āļ›āļ—āļĩāđˆāļŦāļĒāļļāļ”āļ—āļģāļ‡āļēāļ™\n\nāļ•āđ‰āļ™āļ—āļļāļ™āļ—āļĩāđˆāļ‹āđˆāļ­āļ™āļ­āļĒāļđāđˆāđ€āļžāļīāđˆāļĄāļ‚āļķāđ‰āļ™āđ€āļĢāđ‡āļ§: āļ•āļąāđ‹āļ§āļ‹āļąāļžāļžāļ­āļĢāđŒāļ•, āļĢāļĩāļ§āļīāļ§āđāļĒāđˆ āđ†, āļ„āļ·āļ™āđ€āļ‡āļīāļ™ āđāļĨāļ°āļāļēāļĢāļŠāļđāļāđ€āļŠāļĩāļĒāļĨāļđāļāļ„āđ‰āļē āđāļĄāđ‰āļ„āļļāļ“āļˆāļ°āđāļāđ‰āļ”āđˆāļ§āļ™āđ„āļ”āđ‰ āļāđ‡āļĒāļąāļ‡āļ•āđ‰āļ­āļ‡āļĢāļ­āļ­āļ™āļļāļĄāļąāļ•āļīāļˆāļēāļāļŠāđ‚āļ•āļĢāđŒāđāļĨāđ‰āļ§āļœāļđāđ‰āđƒāļŠāđ‰āļˆāļ°āļ•āđ‰āļ­āļ‡āļ•āļīāļ”āļ•āļąāđ‰āļ‡āļ­āļąāļ›āđ€āļ”āļ•āļ”āđ‰āļ§āļĒ\n\n## āđāļšāļšāļˆāļģāļĨāļ­āļ‡āļˆāļīāļ•āļ§āļīāļ—āļĒāļēāļ‡āđˆāļēāļĒ āđ† āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ­āļĒāđˆāļēāļ‡āļ›āļĨāļ­āļ”āļ āļąāļĒ\n\nāđ€āļĄāļ·āđˆāļ­āļ„āļļāļ“āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļšāļ™ API āđāļĒāļāļ„āļģāļ–āļēāļĄāļ­āļ­āļāđ€āļ›āđ‡āļ™āļŠāļ­āļ‡āļ‚āđ‰āļ­:\n\n1. āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđ€āļ‚āđ‰āļēāđƒāļˆāļ„āļģāļ‚āļ­āļŦāļĢāļ·āļ­āđ„āļĄāđˆ?\n2. āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļ„āļ§āļĢāļĒāļ­āļĄāļĢāļąāļšāļŦāļĢāļ·āļ­āđ„āļĄāđˆ?\n\nāļ›āļąāļāļŦāļēāļŠāđˆāļ§āļ™āđƒāļŦāļāđˆāđ€āļāļīāļ”āđ€āļĄāļ·āđˆāļ­āļŠāļ­āļ‡āļ‚āđ‰āļ­āļ™āļĩāđ‰āļ–āļđāļāļœāļŠāļĄāļāļąāļ™\n\nāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļĢāļđāļ›āđāļšāļš āļ•āļ­āļšāļ§āđˆāļē: “āļ„āļģāļ‚āļ­āļĄāļĩāļĢāļđāļ›āđāļšāļšāļ–āļđāļāļŦāļĢāļ·āļ­āđ„āļĄāđˆ?” āļ„āļīāļ”āļ–āļķāļ‡āļŸāļīāļĨāļ”āđŒāļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™, āļ›āļĢāļ°āđ€āļ āļ—āļ‚āđ‰āļ­āļĄāļđāļĨ, āļ„āļ§āļēāļĄāļĒāļēāļ§āļŠāļđāļ‡āļŠāļļāļ” āđāļĨāļ° pattern āļžāļ·āđ‰āļ™āļāļēāļ™ āļ–āđ‰āļēāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđāļĒāļāļŦāļĢāļ·āļ­āđ€āļŠāļ·āđˆāļ­āļ–āļ·āļ­āļĢāļđāļ›āļ—āļĢāļ‡āđ„āļĄāđˆāđ„āļ”āđ‰ āļāļēāļĢāļĨāđ‰āļĄāđ€āļĢāđ‡āļ§ (fail fast) āļāđ‡āđ€āļ›āđ‡āļ™āļŠāļīāđˆāļ‡āļŠāļĄāđ€āļŦāļ•āļļāļŠāļĄāļœāļĨ\n\nāļāļŽāļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆ āļ•āļ­āļšāļ§āđˆāļē: “āđ€āļĄāļ·āđˆāļ­āļĢāļđāļ›āļ—āļĢāļ‡āļ–āļđāļāļ•āđ‰āļ­āļ‡āđāļĨāđ‰āļ§ āļŠāļīāđˆāļ‡āļ™āļĩāđ‰āļ„āļ§āļĢāļ–āļđāļāļĒāļ­āļĄāļĢāļąāļšāļŦāļĢāļ·āļ­āđ„āļĄāđˆ?” āļ™āļĩāđˆāļĢāļ§āļĄāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļī, āļ‚āđ‰āļ­āļˆāļģāļāļąāļ”āļ™āđ‚āļĒāļšāļēāļĒ, āļ‚āđ‰āļ­āļˆāļģāļāļąāļ”āļ•āļēāļĄāļ›āļĢāļ°āđ€āļ—āļĻ āđāļĨāļ°āļāļŽāļ—āļĩāđˆāļ‚āļķāđ‰āļ™āļāļąāļšāļ‚āđ‰āļ­āļĄāļđāļĨāļ­āļ·āđˆāļ™ āļāļŽāļžāļ§āļāļ™āļĩāđ‰āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļšāđˆāļ­āļĒāļāļ§āđˆāļē āļ”āļąāļ‡āļ™āļąāđ‰āļ™āļˆāļķāļ‡āļĄāļąāļāļ•āđ‰āļ­āļ‡āļāļēāļĢāļžāļ·āđ‰āļ™āļ—āļĩāđˆāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļĄāđ‰āļ§āļ™āļ­āļ­āļāļ­āļĒāđˆāļēāļ‡āļ„āđˆāļ­āļĒāđ€āļ›āđ‡āļ™āļ„āđˆāļ­āļĒāđ„āļ›\n\nāļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ—āļĩāđˆāļ›āļĨāļ­āļ”āļ āļąāļĒāļ„āļ§āļĢāđ€āļ›āđ‡āļ™āļāļēāļĢāđ€āļžāļīāđˆāļĄ (additive) āļĄāļēāļāļāļ§āđˆāļēāļāļēāļĢāđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”āđāļšāļšāļŦāļ” (tightening) āļāļēāļĢāđ€āļžāļīāđˆāļĄāļŸāļīāļĨāļ”āđŒāđƒāļŦāļĄāđˆāđāļšāļš optional, āļĒāļ­āļĄāļĢāļąāļšāļ—āļąāđ‰āļ‡āļĢāļđāļ›āđāļšāļšāđ€āļāđˆāļēāđāļĨāļ°āđƒāļŦāļĄāđˆ, āļŦāļĢāļ·āļ­āļ‚āļĒāļēāļĒāļ„āđˆāļēāļ—āļĩāđˆāļĒāļ­āļĄāļĢāļąāļšāđ„āļ”āđ‰ āļĄāļąāļāļ›āļĨāļ­āļ”āļ āļąāļĒ āļāļēāļĢāđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”āļŸāļīāļĨāļ”āđŒ (āļ—āļģāđƒāļŦāđ‰āļĄāļąāļ™āđ€āļ›āđ‡āļ™ required, āļĨāļ”āļ„āļ§āļēāļĄāļĒāļēāļ§āļŠāļđāļ‡āļŠāļļāļ”, āļŦāđ‰āļēāļĄāļ•āļąāļ§āļ­āļąāļāļĐāļĢ) āļ„āļ·āļ­āļˆāļļāļ”āļ—āļĩāđˆāļ—āļĩāļĄāļĄāļąāļāđ€āļˆāđ‡āļšāļ•āļąāļ§\n\nāđ€āļāđ‡āļšāļŠāļąāļāļāļēāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđƒāļŦāđ‰āđ€āļĢāļĩāļĒāļšāđāļĨāļ°āļ™āļīāđˆāļ‡ āđƒāļŠāđ‰āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āđ€āļ”āļĩāļĒāļ§āļāļąāļ™āļ—āļļāļāļ„āļĢāļąāđ‰āļ‡ āđ‚āļ”āļĒāļĄāļĩāļ„āļĩāļĒāđŒāļ—āļĩāđˆāļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡āļāļąāļ™ (āđ€āļŠāđˆāļ™: code, field, message, details) āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđ€āļ›āļĨāļĩāđˆāļĒāļ™āđ„āļ”āđ‰ āđāļ•āđˆāļ„āļĩāļĒāđŒāđ„āļĄāđˆāļ„āļ§āļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™ āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđāļ­āļ›āđ€āļāđˆāļēāļĒāļąāļ‡āļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđ„āļ”āđ‰āđ‚āļ”āļĒāđ„āļĄāđˆāļžāļąāļ‡\n\nāđāļ™āļ§āļ—āļēāļ‡āļ›āļāļīāļšāļąāļ•āļīāļŠāđˆāļ§āļĒāļ•āļąāļ”āļŠāļīāļ™āđƒāļˆāļ§āđˆāļēāļ„āļ§āļĢāļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰āļ—āļąāļ™āļ—āļĩāļŦāļĢāļ·āļ­āđ„āļĄāđˆ:\n\n- āļ—āļģāđƒāļŦāđ‰ parsing āļŦāļĢāļ·āļ­āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāļžāļąāļ‡: āļšāļąāļ‡āļ„āļąāļšāļ•āļ­āļ™āļ™āļĩāđ‰\n- āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ„āļļāļ“āļ āļēāļžāļ‚āđ‰āļ­āļĄāļđāļĨ: āđ€āļ•āļ·āļ­āļ™āļāđˆāļ­āļ™āđāļĨāđ‰āļ§āļšāļąāļ‡āļ„āļąāļšāļ—āļĩāļŦāļĨāļąāļ‡\n- āļāļŽāļ™āđ‚āļĒāļšāļēāļĒāļŦāļĢāļ·āļ­āļĢāļēāļ„āļēāđƒāļŦāļĄāđˆ: āļĄāđ‰āļ§āļ™āļ­āļ­āļāđ€āļ›āđ‡āļ™āļ‚āļąāđ‰āļ™āđāļĨāļ°āļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡āļāļąāļšāļāļēāļĢāļ›āļĨāđˆāļ­āļĒāđāļ­āļ›\n- āļœāļĨāļāļĢāļ°āļ—āļšāđ„āļĄāđˆāđāļ™āđˆāđƒāļˆ: āđ€āļĢāļīāđˆāļĄāļ”āđ‰āļ§āļĒāđ€āļ—āđ€āļĨāđ€āļĄāļ—āļĢāļĩ āđ„āļĄāđˆāđƒāļŠāđˆāļāļēāļĢāļ›āļāļīāđ€āļŠāļ˜āļŦāļ™āļąāļ\n- āļŠāļīāđˆāļ‡āļ—āļĩāđˆāļœāļđāđ‰āđƒāļŠāđ‰āđ€āļŦāđ‡āļ™āđ‚āļ”āļĒāļ•āļĢāļ‡: āļ—āļģāđƒāļŦāđ‰āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđāļāđ‰āđ„āļ‚āđ„āļ”āđ‰āđāļĨāļ°āļŠāļąāļ”āđ€āļˆāļ™\n\nāđāļšāļšāļ™āļĩāđ‰āļˆāļ°āļ—āļģāđƒāļŦāđ‰āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”āđƒāļ™āļˆāļļāļ”āļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™ āđāļĨāļ°āļĒāļ·āļ”āļŦāļĒāļļāđˆāļ™āđƒāļ™āļˆāļļāļ”āļ—āļĩāđˆāļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§āļāļēāļĢāļ›āļĨāđˆāļ­āļĒāđāļ­āļ›āļ„āļ·āļ­āļ‚āđ‰āļ­āļˆāļģāļāļąāļ”āļˆāļĢāļīāļ‡\n\n## āļ§āļēāļ‡āđāļœāļ™āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāđˆāļ­āļ™āđāļ•āļ°āđ‚āļ›āļĢāļ”āļąāļāļŠāļąāļ™\n\nāļāđˆāļ­āļ™āļ­āļąāļ›āđ€āļ”āļ•āļāļŽ āđƒāļŦāđ‰āđ€āļ‚āļĩāļĒāļ™āļĨāļ‡āļĄāļēāļ§āđˆāļēāļˆāļ°āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ­āļ°āđ„āļĢāđāļĨāļ°āļˆāļ°āđ€āļāļīāļ”āļ­āļ°āđ„āļĢāļ‚āļķāđ‰āļ™āļāļąāļšāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđāļ­āļ›āđ€āļāđˆāļē āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļ™āļĩāđ‰āļŠāđˆāļ§āļĒāļ›āđ‰āļ­āļ‡āļāļąāļ™āļāļēāļĢāđāļāđ‰āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđ€āļĨāđ‡āļāđ† āļāļĨāļēāļĒāđ€āļ›āđ‡āļ™āđ€āļŦāļ•āļļāļāļēāļĢāļ“āđŒāđƒāļŦāļāđˆāļ—āļĩāđˆāļ—āļģāđƒāļŦāđ‰āļĄāļ·āļ­āļ–āļ·āļ­āļžāļąāļ‡\n\nāļ­āļ˜āļīāļšāļēāļĒāļāļŽāļ”āđ‰āļ§āļĒāļ āļēāļĐāļēāļ‡āđˆāļēāļĒ āđ† āļžāļĢāđ‰āļ­āļĄāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡ payload āļˆāļĢāļīāļ‡ â€œāđ€āļšāļ­āļĢāđŒāđ‚āļ—āļĢāļ•āđ‰āļ­āļ‡āļĄāļĩāļĢāļŦāļąāļŠāļ›āļĢāļ°āđ€āļ—āļĻ” āļŠāļąāļ”āļāļ§āđˆāļēāđāļ„āđˆāļšāļ­āļ â€œāļ•āđ‰āļ­āļ‡āđ€āļ›āđ‡āļ™ E.164” āļĢāļ§āļĄāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļ„āļģāļ‚āļ­āļŠāļ­āļ‡āļŠāļēāļĄāļĢāļēāļĒāļāļēāļĢāļ—āļĩāđˆāļ•āļ­āļ™āļ™āļĩāđ‰āļœāđˆāļēāļ™ āđāļĨāļ°āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļ­āļąāļ›āđ€āļ”āļ•āļ—āļĩāđˆāļ„āļ§āļĢāļœāđˆāļēāļ™āļŦāļĨāļąāļ‡āđ€āļ›āļĨāļĩāđˆāļĒāļ™\n\nāđāļĨāđ‰āļ§āđāļĄāđ‡āļ›āļ„āļ§āļēāļĄāđ€āļ›āđ‡āļ™āļˆāļĢāļīāļ‡āļ‚āļ­āļ‡āļĄāļ·āļ­āļ–āļ·āļ­āļ‚āļ­āļ‡āļ„āļļāļ“: āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđāļ­āļ›āđ„āļŦāļ™āļĒāļąāļ‡ active āļ­āļĒāļđāđˆ āđāļĨāļ°āļžāļ§āļāļĄāļąāļ™āļˆāļ°āļŠāđˆāļ‡āļ­āļ°āđ„āļĢāđƒāļ™āļ­āļĩāļāđ„āļĄāđˆāļāļĩāđˆāļŠāļąāļ›āļ”āļēāļŦāđŒāļ‚āđ‰āļēāļ‡āļŦāļ™āđ‰āļē āļ–āđ‰āļē iOS āđāļĨāļ° Android āđ€āļ„āļĨāļ·āđˆāļ­āļ™āļ•āđˆāļēāļ‡āļāļąāļ™ āđƒāļŦāđ‰āđāļĒāļāļžāļīāļˆāļēāļĢāļ“āļē āļ™āļĩāđˆāļ„āļ·āļ­āļˆāļļāļ”āļ—āļĩāđˆāļ•āļąāļ”āļŠāļīāļ™āđƒāļˆāļ§āđˆāļēāļˆāļ°āļšāļąāļ‡āļ„āļąāļšāļ—āļąāļ™āļ—āļĩāļŦāļĢāļ·āļ­āđƒāļŠāđ‰āļāļēāļĢāļšāļąāļ‡āļ„āļąāļšāđāļšāļšāđ€āļ›āđ‡āļ™āļ‚āļąāđ‰āļ™\n\nāđ€āļŠāđ‡āļ„āļĨāļīāļŠāļ•āđŒāļ‡āđˆāļēāļĒ āđ†:\n\n- āđ€āļ­āļāļŠāļēāļĢāļāļŽāđ€āļāđˆāļē vs āđƒāļŦāļĄāđˆ āļžāļĢāđ‰āļ­āļĄāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļ„āļģāļ‚āļ­ 2-3 āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđāļ•āđˆāļĨāļ°āļāļąāđˆāļ‡\n- āļ›āļĢāļ°āđ€āļĄāļīāļ™āļŠāļąāļ”āļŠāđˆāļ§āļ™āļ—āļĢāļēāļŸāļŸāļīāļāļ—āļĩāđˆāļˆāļ°āļĒāļąāļ‡āļŠāđˆāļ‡ payload āđ€āļāđˆāļē (āļ•āļēāļĄāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđāļ­āļ›)\n- āđ€āļĨāļ·āļ­āļāđ€āļŠāđ‰āļ™āļ—āļēāļ‡āļāļēāļĢāļĄāđ‰āļ§āļ™āļ­āļ­āļ: āđ€āļ•āļ·āļ­āļ™āļāđˆāļ­āļ™, āļĄāđ‰āļ§āļ™āļ•āļēāļĄ endpoint āļŦāļĢāļ·āļ­ field, āđāļĨāđ‰āļ§āļ„āđˆāļ­āļĒāļšāļąāļ‡āļ„āļąāļš\n- āļāļģāļŦāļ™āļ”āđ€āļĄāļ•āļĢāļīāļāļ„āļ§āļēāļĄāļŠāļģāđ€āļĢāđ‡āļˆāđāļĨāļ°āđ€āļ‡āļ·āđˆāļ­āļ™āđ„āļ‚ rollback (āļ­āļąāļ•āļĢāļēāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”, āļ•āļąāđ‹āļ§āļ‹āļąāļžāļžāļ­āļĢāđŒāļ•, āļ­āļąāļ•āļĢāļēāļāļēāļĢāđāļ›āļĨāļ‡)\n- āļˆāļąāļ”āļ—āļĩāļĄāļ āļēāļĒāđƒāļ™āđƒāļŦāđ‰āļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡: āļŠāļ„āļĢāļīāļ›āļ•āđŒāļ‹āļąāļžāļžāļ­āļĢāđŒāļ•, āđ€āļ„āļŠ QA, āđ‚āļ™āđ‰āļ•āļāļēāļĢāļ›āļĨāđˆāļ­āļĒ\n\nāļ™āļ­āļāļˆāļēāļāļ™āļĩāđ‰āļ•āļąāļ”āļŠāļīāļ™āđƒāļˆāļ”āđ‰āļ§āļĒāļ§āđˆāļēāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļšāļˆāļ°āļ›āļĨāļ­āļ”āļ āļąāļĒāļ­āļĒāđˆāļēāļ‡āđ„āļĢāđƒāļ™āļŠāđˆāļ§āļ‡āļ—āļĩāđˆāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļ—āļąāļšāļ‹āđ‰āļ­āļ™ āļ–āđ‰āļēāļˆāļģāđ€āļ›āđ‡āļ™āļ•āđ‰āļ­āļ‡āļ›āļāļīāđ€āļŠāļ˜ āđƒāļŦāđ‰āļ—āļģāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļ—āļĩāđˆāļ„āļēāļ”āđ„āļ”āđ‰āđāļĨāļ°āļ­āđˆāļēāļ™āđ‚āļ”āļĒāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āđ„āļ”āđ‰ āļ–āđ‰āļēāļĢāļąāļš payload āđ€āļāđˆāļēāđ„āļ”āđ‰ āđƒāļŦāđ‰āļ§āļēāļ‡āļžāļĪāļ•āļīāļāļĢāļĢāļĄ backward-compatible āđ„āļ§āđ‰āļ•āļ­āļ™āļ™āļĩāđ‰ āđ„āļĄāđˆāđƒāļŠāđˆāļ•āļ­āļ™āđ€āļāļīāļ”āđ€āļŦāļ•āļļāļāļēāļĢāļ“āđŒ\n\n## āđ€āļĢāļīāđˆāļĄāļ”āđ‰āļ§āļĒāļāļēāļĢāđ€āļ•āļ·āļ­āļ™āļāđˆāļ­āļ™ āđ„āļĄāđˆāđƒāļŠāđˆāļāļēāļĢāļ›āļāļīāđ€āļŠāļ˜āļŦāļ™āļąāļ\n\nāđ€āļĄāļ·āđˆāļ­āļ„āļļāļ“āļ•āđ‰āļ­āļ‡āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļŽāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš API āļ§āļīāļ˜āļĩāļ—āļĩāđˆāļ›āļĨāļ­āļ”āļ āļąāļĒāļ—āļĩāđˆāļŠāļļāļ”āļĄāļąāļāļ„āļ·āļ­: āļĒāļ­āļĄāļĢāļąāļšāļ„āļģāļ‚āļ­āđāļĨāđ‰āļ§āđ€āļ•āļ·āļ­āļ™āļ§āđˆāļēāļŠāļīāđˆāļ‡āļ™āļĩāđ‰āļˆāļ°āđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡āđƒāļ™āļ­āļ™āļēāļ„āļ• āļ§āļīāļ˜āļĩāļ™āļĩāđ‰āļ—āļģāđƒāļŦāđ‰āļœāļđāđ‰āđƒāļŠāđ‰āļ§āļąāļ™āļ™āļĩāđ‰āļĒāļąāļ‡āđƒāļŠāđ‰āļ‡āļēāļ™āđ„āļ”āđ‰āđƒāļ™āļ‚āļ“āļ°āļ—āļĩāđˆāļ„āļļāļ“āđ€āļĢāļĩāļĒāļ™āļĢāļđāđ‰āļ§āđˆāļēāļĄāļĩāļ­āļīāļ™āļžāļļāļ• â€œāđ„āļĄāđˆāļ–āļđāļâ€ āđ€āļāļīāļ”āļ‚āļķāđ‰āļ™āļšāđˆāļ­āļĒāđāļ„āđˆāđ„āļŦāļ™\n\nāļ„āļģāđ€āļ•āļ·āļ­āļ™āļ—āļĩāđˆāļ”āļĩāļšāļ­āļāđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāļ§āđˆāļēāļŸāļīāļĨāļ”āđŒāđ„āļŦāļ™āđ€āļ›āđ‡āļ™āļ›āļąāļāļŦāļē, āļ—āļģāđ„āļĄāļĄāļąāļ™āļˆāļ°āļ–āļđāļāļ›āļāļīāđ€āļŠāļ˜āđƒāļ™āļ­āļ™āļēāļ„āļ•, āđāļĨāļ°āļāļŽāđƒāļŦāļĄāđˆāļ„āļ·āļ­āļ­āļ°āđ„āļĢ āļĄāļąāļ™āđ„āļĄāđˆāļ„āļ§āļĢāļšāļĨāđ‡āļ­āļāļ„āļģāļ‚āļ­ āđƒāļŦāđ‰āļĄāļ­āļ‡āļ§āđˆāļēāđ€āļ›āđ‡āļ™āļžāļĢāļĩāļ§āļīāļ§āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļ‡āļžāļĢāļļāđˆāļ‡āļ™āļĩāđ‰\n\nāļ•āļģāđāļŦāļ™āđˆāļ‡āļ—āļĩāđˆāļ§āļēāļ‡āļ„āļģāđ€āļ•āļ·āļ­āļ™āļ‚āļķāđ‰āļ™āļ­āļĒāļđāđˆāļāļąāļšāļœāļđāđ‰āļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āđ€āļŦāđ‡āļ™ āļŦāļĨāļēāļĒāļ—āļĩāļĄāđƒāļŠāđ‰āļœāļŠāļĄāļœāļŠāļēāļ™:\n\n- āđ€āļĄāļ•āļēāļ”āļēāļ•āđ‰āļēāļ•āļ­āļšāļāļĨāļąāļš (āļ­āļēāđ€āļĢāļĒāđŒ warnings āđ€āļĨāđ‡āļ āđ† āđƒāļ™ JSON body) āļŠāļģāļŦāļĢāļąāļš QA builds\n- āđ€āļŪāļ”āđ€āļ”āļ­āļĢāđŒāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļšāđ€āļžāļ·āđˆāļ­āļ”āļĩāļšāļąāļāđ€āļĢāđ‡āļ§āđƒāļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āđāļĨāļ°āđ€āļāļ•āđ€āļ§āļĒāđŒ\n- āļĨāđ‡āļ­āļāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđāļĨāļ°āđ€āļ—āđ€āļĨāđ€āļĄāļ—āļĢāļĩāđ€āļžāļ·āđˆāļ­āļ§āļąāļ”āļœāļĨāļāļĢāļ°āļ—āļšāļ•āļēāļĄāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđāļ­āļ›\n\nāđ€āļāđ‡āļšāļ„āļģāđ€āļ•āļ·āļ­āļ™āđƒāļŦāđ‰āļ›āļĨāļ­āļ”āļ āļąāļĒāļ•āđˆāļ­āļœāļđāđ‰āđƒāļŠāđ‰ āļ­āļĒāđˆāļēāļŠāļ°āļ—āđ‰āļ­āļ™āļ„āļ§āļēāļĄāļĨāļąāļš āđ‚āļ—āđ€āļ„āđ‡āļ™ āļ­āļĩāđ€āļĄāļĨāđ€āļ•āđ‡āļĄ āđ€āļšāļ­āļĢāđŒāđ‚āļ—āļĢ āļŦāļĢāļ·āļ­āļ­āļīāļ™āļžāļļāļ•āļ”āļīāļšāļ—āļĩāđˆāļ­āļēāļˆāļ­āđˆāļ­āļ™āđ„āļŦāļ§ āļŦāļēāļāļ•āđ‰āļ­āļ‡āđƒāļŦāđ‰āļšāļĢāļīāļšāļ— āđƒāļŦāđ‰āļĄāļēāļŠāļāđŒāļĄāļąāļ™ (āđ€āļŠāđˆāļ™ āļŦāļĨāļąāļāļ—āđ‰āļēāļĒ 2 āļ•āļąāļ§) āđāļĨāļ°āđƒāļŠāđ‰āļ•āļąāļ§āļĢāļ°āļšāļļāļ—āļĩāđˆāđ€āļŠāļ–āļĩāļĒāļĢāđ€āļŠāđˆāļ™ request ID\n\nāđ€āļžāļ·āđˆāļ­āđ„āļ•āļĢāđ€āļ­āļˆāļāļĢāļ“āļĩāļ—āļĩāđˆāļˆāļ°āļžāļąāļ‡āđ€āļĢāđ‡āļ§ āđƒāļŦāđ‰āđ€āļžāļīāđˆāļĄāļĢāļŦāļąāļŠāļ—āļĩāđˆāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļ­āđˆāļēāļ™āđ„āļ”āđ‰āđāļĨāļ°āđ€āļ”āļ”āđ„āļĨāļ™āđŒ āđ€āļŠāđˆāļ™: code VALIDATION_WILL_FAIL_SOON, field phone, rule E164_REQUIRED, enforce_after 2026-03-01 āļ™āļĩāđˆāļŠāđˆāļ§āļĒāļāļĢāļ­āļ‡āļĨāđ‡āļ­āļ āđ€āļ›āļīāļ”āļ•āļąāđ‹āļ§ āđāļĨāļ°āđāļĄāđ‡āļ›āļ„āļģāđ€āļ•āļ·āļ­āļ™āđ„āļ›āļĒāļąāļ‡āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđāļ­āļ›āđ„āļ”āđ‰āļ‡āđˆāļēāļĒ\n\nāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđƒāļŠāđ‰āļ‡āļēāļ™: āļ–āđ‰āļēāļ„āļļāļ“āļˆāļ°āļšāļąāļ‡āļ„āļąāļšāđƒāļŦāđ‰ country āļ•āđ‰āļ­āļ‡āđƒāļŠāđˆāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļˆāļąāļ”āļŠāđˆāļ‡ āđƒāļŦāđ‰āđ€āļĢāļīāđˆāļĄāļˆāļēāļāļĒāļ­āļĄāļĢāļąāļšāļāļēāļĢāļ‚āļēāļ” country āđāļ•āđˆāļ„āļ·āļ™āļ„āļģāđ€āļ•āļ·āļ­āļ™āđāļĨāļ°āļšāļąāļ™āļ—āļķāļāļ§āđˆāļēāļĄāļĩāļāļĩāđˆāļ„āļģāļ‚āļ­āļĒāļąāļ‡āđ„āļĄāđˆāđƒāļŠāđˆ āđ€āļĄāļ·āđˆāļ­āļˆāļģāļ™āļ§āļ™āļ™āļąāđ‰āļ™āļ™āđ‰āļ­āļĒāđāļĨāļ°āļ­āļąāļ›āđ€āļ”āļ•āđāļ­āļ›āļ­āļ­āļāđ„āļ›āđāļĨāđ‰āļ§ āđƒāļŦāđ‰āļĒāđ‰āļēāļĒāđ„āļ›āļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰\n\n## āļāļēāļĢāļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰āļ­āļĒāđˆāļēāļ‡āđ€āļ›āđ‡āļ™āļ‚āļąāđ‰āļ™āļ—āļĩāđˆāđāļ­āļ›āļĄāļ·āļ­āļ–āļ·āļ­āļ•āļēāļĄāļ—āļąāļ™\n\nāđāļ­āļ›āļĄāļ·āļ­āļ–āļ·āļ­āļ›āļĨāđˆāļ­āļĒāļ•āļēāļĄāļ•āļēāļĢāļēāļ‡āļ—āļĩāđˆāļ„āļļāļ“āļ„āļ§āļšāļ„āļļāļĄāđ„āļĄāđˆāđ€āļ•āđ‡āļĄāļ—āļĩāđˆ āļšāļēāļ‡āļ„āļ™āļ­āļąāļ›āđ€āļ”āļ•āđ€āļĢāđ‡āļ§ āļšāļēāļ‡āļ„āļ™āđ€āļāđ‡āļšāļšāļīāļĨāļ”āđŒāđ€āļāđˆāļēāđ„āļ§āđ‰āđ€āļ›āđ‡āļ™āļŠāļąāļ›āļ”āļēāļŦāđŒ āļŦāļēāļāļ„āļļāļ“āļŠāļĨāļąāļšāļāļŽāļˆāļēāļāļĒāļ­āļĄāļĢāļąāļšāđ€āļ›āđ‡āļ™āļ›āļāļīāđ€āļŠāļ˜āļ‚āđ‰āļēāļĄāļ„āļ·āļ™ āļ„āļļāļ“āļˆāļ°āļŠāļĢāđ‰āļēāļ‡āļ„āļ§āļēāļĄāļĨāđ‰āļĄāđ€āļŦāļĨāļ§āđ€āļ‰āļĩāļĒāļšāļžāļĨāļąāļ™āļ—āļĩāđˆāļ”āļđāđ€āļŦāļĄāļ·āļ­āļ™āļšāļąāđŠāļāļŠāļļāđˆāļĄ\n\nāđ€āļĢāļīāđˆāļĄāļˆāļēāļ â€œsoft fail”: āļĒāļ­āļĄāļĢāļąāļšāļ„āļģāļ‚āļ­āđāļ•āđˆāļšāļąāļ™āļ—āļķāļāļ§āđˆāļēāļˆāļ°āļĨāđ‰āļĄāđ€āļŦāļĨāļ§āļ āļēāļĒāđƒāļ•āđ‰āļāļŽāđƒāļŦāļĄāđˆ āļ•āļĢāļēāļŸāļīāļĨāļ”āđŒ āđ€āļŦāļ•āļļāļœāļĨ āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđāļ­āļ› āđāļĨāļ° endpoint āļ™āļĩāđˆāđƒāļŦāđ‰āļ•āļąāļ§āđ€āļĨāļ‚āļˆāļĢāļīāļ‡āļāđˆāļ­āļ™āļˆāļ°āļ—āļģāđƒāļ„āļĢāļžāļąāļ‡\n\nāļˆāļēāļāļ™āļąāđ‰āļ™āļ„āđˆāļ­āļĒāđ† āđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”āđƒāļ™āļāđ‰āļēāļ§āđ€āļĨāđ‡āļāđ† āļ—āļĩāđˆāļĒāđ‰āļ­āļ™āļāļĨāļąāļšāđ„āļ”āđ‰:\n\n- āđ€āļ›āļīāļ”āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđ€āļ‚āđ‰āļĄāļ‚āļķāđ‰āļ™āļāļąāļšāđ€āļ›āļ­āļĢāđŒāđ€āļ‹āđ‡āļ™āļ•āđŒāļ—āļĢāļēāļŸāļŸāļīāļāļ™āđ‰āļ­āļĒ āđ† (āđ€āļŠāđˆāļ™ 1%, 10%, 50%)\n- āļšāļąāļ‡āļ„āļąāļšāļ•āļēāļĄāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđāļ­āļ›āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļšāļīāļĨāļ”āđŒāđ€āļāđˆāļēāļ­āļĒāļđāđˆāđƒāļ™ soft fail āļ‚āļ“āļ°āļ—āļĩāđˆāļšāļīāļĨāļ”āđŒāđƒāļŦāļĄāđˆāđ€āļˆāļ­ hard fail\n- āļĄāđ‰āļ§āļ™āļ­āļ­āļāļ•āļēāļĄāđ‚āļ„āļŪāļ­āļĢāđŒāļ• (āļžāļ™āļąāļāļ‡āļēāļ™āļ āļēāļĒāđƒāļ™āļāđˆāļ­āļ™, āļœāļđāđ‰āđƒāļŠāđ‰āđ€āļšāļ•āđ‰āļē, āđāļĨāđ‰āļ§āļ„āđˆāļ­āļĒāļ—āļļāļāļ„āļ™)\n- āđ€āļāđ‡āļšāļāļēāļĢāļšāļąāļ‡āļ„āļąāļšāđ„āļ§āđ‰āļŦāļĨāļąāļ‡ feature flag āđ€āļžāļ·āđˆāļ­āļ›āļīāļ”āđ„āļ”āđ‰āđ€āļĢāđ‡āļ§\n- āļ•āļąāđ‰āļ‡āđ„āļ—āļĄāđŒāđ„āļĨāļ™āđŒ: āđ€āļ•āļ·āļ­āļ™āļāđˆāļ­āļ™, āļšāļąāļ‡āļ„āļąāļšāļ—āļĩāļŦāļĨāļąāļ‡, āđ€āļ­āļēāļžāļĪāļ•āļīāļāļĢāļĢāļĄ legacy āļ­āļ­āļāđ€āļĄāļ·āđˆāļ­āļāļēāļĢāļĒāļ­āļĄāļĢāļąāļšāļžāļ­\n\nāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡: āļ•āđ‰āļ­āļ‡āļāļēāļĢāđƒāļŦāđ‰āļŦāļĄāļēāļĒāđ€āļĨāļ‚āđ‚āļ—āļĢāļĻāļąāļžāļ—āđŒāļĄāļĩāļĢāļŦāļąāļŠāļ›āļĢāļ°āđ€āļ—āļĻ\nāļŠāļąāļ›āļ”āļēāļŦāđŒāļ—āļĩāđˆ 1 āļĒāļ­āļĄāļĢāļąāļšāļŦāļĄāļēāļĒāđ€āļĨāļ‚āļ—āļĩāđˆāđ„āļĄāđˆāļĄāļĩāļĢāļŦāļąāļŠāđāļ•āđˆāļ•āļīāļ”āđāļ—āđ‡āļ â€œmissing country code”\nāļŠāļąāļ›āļ”āļēāļŦāđŒāļ—āļĩāđˆ 2 āļšāļąāļ‡āļ„āļąāļšāļāļąāļšāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļŦāļĨāļąāļ‡āļˆāļēāļāđāļžāļ•āļŠāđŒāđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™\nāļŠāļąāļ›āļ”āļēāļŦāđŒāļ—āļĩāđˆ 3 āļšāļąāļ‡āļ„āļąāļšāļāļąāļšāļšāļąāļāļŠāļĩāđƒāļŦāļĄāđˆāļ—āļąāđ‰āļ‡āļŦāļĄāļ”\nāļŠāļąāļ›āļ”āļēāļŦāđŒāļ—āļĩāđˆ 4 āļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰āļāļąāļšāļ—āļļāļāļ„āļ™\n\n## āļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļšāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđāļšāļš backward-compatible āļ—āļĩāđˆāļĨāļ”āļāļēāļĢāļžāļąāļ‡\n\nāđ€āļĄāļ·āđˆāļ­āļ„āļļāļ“āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļŽāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļžāļĪāļ•āļīāļāļĢāļĢāļĄāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļāđˆāļ­āļ™āļĄāļąāļāļ›āļĨāļ­āļ”āļ āļąāļĒāļāļ§āđˆāļēāđ€āļžāļĢāļēāļ°āļœāļđāđ‰āđƒāļŠāđ‰āļĄāļ·āļ­āļ–āļ·āļ­āļ­āļēāļˆāļ­āļĒāļđāđˆāļšāļ™āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđ€āļāđˆāļēāļ™āļēāļ™ āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļ„āļ§āļĢāļĢāļ­āļ‡āļĢāļąāļšāļ—āļąāđ‰āļ‡ "āđāļ­āļ›āļ‚āļ­āļ‡āđ€āļĄāļ·āđˆāļ­āļ§āļēāļ™" āđāļĨāļ° "āļāļŽāļ‚āļ­āļ‡āļ§āļąāļ™āļ™āļĩāđ‰" āļŠāđˆāļ§āļ‡āļŦāļ™āļķāđˆāļ‡\n\nāđāļ™āļ§āļ›āļāļīāļšāļąāļ•āļīāļ—āļĩāđˆāđƒāļŠāđ‰āđ„āļ”āđ‰āļˆāļĢāļīāļ‡āļ„āļ·āļ­āļĒāļ­āļĄāļĢāļąāļšāļ—āļąāđ‰āļ‡āļĢāļđāļ›āđāļšāļšāđ€āļāđˆāļēāđāļĨāļ°āđƒāļŦāļĄāđˆāđƒāļ™āļŦāļ™āđ‰āļēāļ•āđˆāļēāļ‡āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļœāđˆāļēāļ™ āļŦāļēāļāļ„āļļāļ“āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļŠāļ·āđˆāļ­ phone āđ€āļ›āđ‡āļ™ phone_number āđƒāļŦāđ‰āļĢāļąāļšāļ—āļąāđ‰āļ‡āļŠāļ­āļ‡āļ­āļĒāđˆāļēāļ‡ āļ–āđ‰āļēāļ—āļąāđ‰āļ‡āļŠāļ­āļ‡āļĄāļĩ āđƒāļŦāđ‰āđ€āļĨāļ·āļ­āļāđāļšāļšāļŦāļ™āļķāđˆāļ‡āđāļĨāļ°āļĨāđ‡āļ­āļāđ„āļ§āđ‰ āļ–āđ‰āļēāđ„āļĄāđˆāļĄāļĩāđ€āļĨāļĒ āđƒāļŦāđ‰āđ€āļ•āļ·āļ­āļ™āļāđˆāļ­āļ™āđāļĨāđ‰āļ§āļ„āđˆāļ­āļĒāļšāļąāļ‡āļ„āļąāļš\n\nāđƒāļŠāđ‰āļĢāļđāļ›āđāļšāļšāđ€āļĨāđ‡āļāđ† āļ—āļĩāđˆāļ„āļēāļ”āđ€āļ”āļēāđ„āļ”āđ‰āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰ API āļ”āļđāđāļĨāļĢāļąāļāļĐāļēāļ‡āđˆāļēāļĒ:\n\n- āļĒāļ­āļĄāļĢāļąāļšāļŠāļ·āđˆāļ­āļŦāļĢāļ·āļ­āļ™āļīāļĒāļēāļĄāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āđ€āļāđˆāļēāđāļĨāļ°āđƒāļŦāļĄāđˆāđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ‡āđ€āļ§āļĨāļēāļ—āļĩāđˆāļāļģāļŦāļ™āļ”\n- āļ–āļ·āļ­āļŸāļīāļĨāļ”āđŒāđƒāļŦāļĄāđˆāļ—āļĩāđˆāđ€āļ›āđ‡āļ™ required āđ€āļ›āđ‡āļ™ optional āļŠāļąāđˆāļ§āļ„āļĢāļēāļ§ āđāļĨāļ°āđƒāļŠāđ‰āļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ—āļĩāđˆāļ›āļĨāļ­āļ”āļ āļąāļĒāļāļąāđˆāļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđ€āļĄāļ·āđˆāļēāļˆāļģāđ€āļ›āđ‡āļ™\n- āđ€āļāđ‡āļšāļĢāļđāļ›āđāļšāļšāļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļšāđƒāļŦāđ‰āļ„āļ‡āļ—āļĩāđˆ āđāļĄāđ‰āļāļŽāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđ„āļ›āđ€āļšāļ·āđ‰āļ­āļ‡āļŦāļĨāļąāļ‡\n- āļ„āļ·āļ™āļĢāļŦāļąāļŠāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļ—āļĩāđˆāļŠāļĄāđˆāļģāđ€āļŠāļĄāļ­ (āđ„āļĄāđˆāđƒāļŠāđˆāđāļ„āđˆāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ—āļĩāđˆāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđ„āļ›) āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđāļ­āļ›āļāļīāđˆāļ‡āļŠāļēāļ‚āļēāđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļ›āļĨāļ­āļ”āļ āļąāļĒ\n- āļ•āļąāđ‰āļ‡āļŦāļ™āđ‰āļēāļ•āđˆāļēāļ‡āļāļēāļĢāđ€āļĨāļīāļāđƒāļŠāđ‰āļ‡āļēāļ™āđāļĨāļ°āļ§āļąāļ™āļ—āļĩāđˆāļŠāļīāđ‰āļ™āļŠāļļāļ”āļ āļēāļĒāđƒāļ™āļ­āļ‡āļ„āđŒāļāļĢ āđ€āļžāļ·āđˆāļ­āđ„āļĄāđˆāđƒāļŦāđ‰āļ•āļĢāļĢāļāļ°āļŠāļąāđˆāļ§āļ„āļĢāļēāļ§āļāļĨāļēāļĒāđ€āļ›āđ‡āļ™āļ–āļēāļ§āļĢ\n\nāļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ•āđ‰āļ­āļ‡āļĢāļ°āļ§āļąāļ‡ āļ„āđˆāļēāļ”āļĩāļŸāļ­āļĨāļ•āđŒāļ„āļ§āļĢāđ€āļ›āđ‡āļ™āļ„āđˆāļēāļ—āļĩāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡ āđ„āļĄāđˆāđƒāļŠāđˆāļŠāļ°āļ”āļ§āļ āļāļēāļĢāļ•āļąāđ‰āļ‡ country āđ€āļ›āđ‡āļ™ US āđ‚āļ”āļĒāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļīāļ­āļēāļˆāļŠāļĢāđ‰āļēāļ‡āļšāļąāļāļŠāļĩāļœāļīāļ”āļžāļĨāļēāļ”āļ—āļĩāđˆāđ„āļĄāđˆāđ€āļŦāđ‡āļ™āļ—āļąāļ™āļ—āļĩ āļĄāļąāļāļ›āļĨāļ­āļ”āļ āļąāļĒāļāļ§āđˆāļēāļ„āļ·āļ­āļĒāļ­āļĄāļĢāļąāļšāļ„āļģāļ‚āļ­ āļšāļąāļ™āļ—āļķāļāļ„āļģāđ€āļ•āļ·āļ­āļ™ āđāļĨāļ°āļ‚āļ­āđƒāļŦāđ‰āđāļāđ‰āđ„āļ‚āļ—āļĩāļŦāļĨāļąāļ‡\n\nāđ€āļāđ‡āļšāļĢāļđāļ›āđāļšāļšāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđƒāļŦāđ‰āļŠāļĄāđˆāļģāđ€āļŠāļĄāļ­ āļ–āđ‰āļēāđāļ­āļ›āļ„āļēāļ”āļ§āđˆāļēāļˆāļ°āđ„āļ”āđ‰ { code, message, fields } āđƒāļŦāđ‰āļĢāļąāļāļĐāļēāļĢāļđāļ›āļĢāđˆāļēāļ‡āļ™āļąāđ‰āļ™ āļ„āļļāļ“āļ­āļēāļˆāđ€āļžāļīāđˆāļĄāļŸāļīāļĨāļ”āđŒāđāļ•āđˆāļŦāļĨāļĩāļāđ€āļĨāļĩāđˆāļĒāļ‡āļāļēāļĢāđ€āļ­āļēāļ­āļ­āļāļŦāļĢāļ·āļ­āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļŠāļ·āđˆāļ­āļˆāļ™āļāļ§āđˆāļēāđāļ­āļ›āđ€āļāđˆāļēāļˆāļ°āļŦāļēāļĒāđ„āļ›āļˆāļĢāļīāļ‡āđ†\n\n## āļ­āļ­āļāđāļšāļšāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ—āļĩāđˆāđāļ­āļ›āļ­āđˆāļēāļ™āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļ›āļĨāļ­āļ”āļ āļąāļĒ\n\nāļ„āļ§āļēāļĄāđ€āļŠāļĩāđˆāļĒāļ‡āđƒāļŦāļāđˆāđ„āļĄāđˆāđƒāļŠāđˆāļāļŽāđ€āļ­āļ‡ āđāļ•āđˆāđ€āļ›āđ‡āļ™āļ§āļīāļ˜āļĩāļ—āļĩāđˆāđāļ­āļ›āļ­āđˆāļēāļ™āđāļĨāļ°āđāļŠāļ”āļ‡āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ” āđāļ­āļ›āļŦāļĨāļēāļĒāļ•āļąāļ§āļŠāļĄāļĄāļ•āļīāļĢāļđāļ›āļĢāđˆāļēāļ‡āļŦāļ™āļķāđˆāļ‡āđ†, āļŠāļ·āđˆāļ­āļ„āļĩāļĒāđŒ āļŦāļĢāļ·āļ­āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāđ€āļĨāđ‡āļāļ™āđ‰āļ­āļĒ āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļ›āļĨāļ‡āđ€āļĨāđ‡āļāđ† āļ­āļēāļˆāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļˆāļēāļ prompt āļ—āļĩāđˆāļŠāđˆāļ§āļĒāđ„āļ”āđ‰āđ€āļ›āđ‡āļ™āđāļšāļ™āđ€āļ™āļ­āļĢāđŒ “āđ€āļāļīāļ”āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”” āļ—āļąāđˆāļ§āđ„āļ›\n\nāļĄāļļāđˆāļ‡āđ„āļ›āļ—āļĩāđˆāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļĢāļ°āļ”āļąāļšāļŸāļīāļĨāļ”āđŒāļ—āļĩāđˆāļ•āļ­āļšāļŠāļ­āļ‡āļ„āļģāļ–āļēāļĄ: āļ­āļ°āđ„āļĢāļĨāđ‰āļĄāđ€āļŦāļĨāļ§ āđāļĨāļ°āļ—āļģāđ„āļĄ āđ€āļāđ‡āļšāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļŠāļąāđ‰āļ™āļŠāļģāļŦāļĢāļąāļšāļœāļđāđ‰āđƒāļŠāđ‰ āđāļ•āđˆāļĢāļ§āļĄāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ—āļĩāđˆāđāļ­āļ›āļ­āđˆāļēāļ™āđ„āļ”āđ‰āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđāļ­āļ›āļ•āļ­āļšāļŠāļ™āļ­āļ‡āļ­āļĒāđˆāļēāļ‡āļ›āļĨāļ­āļ”āļ āļąāļĒ (āđ„āļŪāđ„āļĨāļ—āđŒāļŸāļīāļĨāļ”āđŒ, āļšāļĨāđ‡āļ­āļāļ›āļļāđˆāļĄ, āļŦāļĢāļ·āļ­āđ‚āļŠāļ§āđŒāļ„āļģāđāļ™āļ°āļ™āļģāđ€āļ‰āļžāļēāļ°)\n\nāļĢāļđāļ›āđāļšāļšāļ—āļĩāđˆāļĒāļąāđˆāļ‡āļĒāļ·āļ™āļĄāļąāļāđ€āļ›āđ‡āļ™:\n\n- code: āļŠāļ•āļĢāļīāļ‡āļ„āļ‡āļ—āļĩāđˆ āđ€āļŠāđˆāļ™ VALIDATION_FAILED\n- errors[]: āļĢāļēāļĒāļāļēāļĢāļ—āļĩāđˆāļĄāļĩ field, rule, code, message\n- request_id (āđ„āļĄāđˆāļšāļąāļ‡āļ„āļąāļš): āļŠāđˆāļ§āļĒāļāļēāļĢāļĢāļēāļĒāļ‡āļēāļ™āļ‹āļąāļžāļžāļ­āļĢāđŒāļ•\n\nāđāļ—āļ™āļ—āļĩāđˆāļˆāļ°āļ„āļ·āļ™āđāļ„āđˆ “Invalid input” āđƒāļŦāđ‰āļ„āļ·āļ™āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āđ€āļŠāđˆāļ™: āļ­āļĩāđ€āļĄāļĨāļĨāđ‰āļĄāđ€āļŦāļĨāļ§āļ—āļĩāđˆ format, āļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļĨāđ‰āļĄāđ€āļŦāļĨāļ§āļ—āļĩāđˆ min_length āđāļĄāđ‰ UI āļˆāļ°āđ€āļ›āļĨāļĩāđˆāļĒāļ™ āđāļ­āļ›āļāđ‡āļĒāļąāļ‡āđāļĄāđ‡āļ› code āđāļĨāļ° field āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļ™āđˆāļēāđ€āļŠāļ·āđˆāļ­āļ–āļ·āļ­\n\nāļ­āļĒāđˆāļēāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļŠāļ·āđˆāļ­āļ„āļĩāļĒāđŒāļ—āļĩāđˆāđāļ­āļ›āļ­āļēāļˆāļžāļķāđˆāļ‡āļžāļē (āđ€āļŠāđˆāļ™ āđ€āļ›āļĨāļĩāđˆāļĒāļ™ errors āđ€āļ›āđ‡āļ™ violations) āļŦāļēāļāļ•āđ‰āļ­āļ‡āļžāļąāļ’āļ™āļē schema āđƒāļŦāđ‰āđ€āļžāļīāđˆāļĄāļŸāļīāļĨāļ”āđŒāđƒāļŦāļĄāđˆāđ‚āļ”āļĒāđ„āļĄāđˆāđ€āļ­āļēāļ‚āļ­āļ‡āđ€āļāđˆāļēāļ­āļ­āļāļˆāļ™āļāļ§āđˆāļēāđāļ­āļ›āđ€āļāđˆāļēāļˆāļ°āļŦāļēāļĒāđ„āļ›āļˆāļĢāļīāļ‡āđ†\n\nLocalization āļ­āļēāļˆāļ—āļģāđƒāļŦāđ‰āļ›āļąāļāļŦāļēāđ„āļ”āđ‰āđ€āļŠāđˆāļ™āļāļąāļ™ āđāļ­āļ›āļšāļēāļ‡āļ•āļąāļ§āđāļŠāļ”āļ‡āļŠāļ•āļĢāļīāļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļ”āļīāļš āđ€āļŠāļ™āļ­āļŠāđˆāļ‡āļ—āļąāđ‰āļ‡ code āļ—āļĩāđˆāđ€āļŠāļ–āļĩāļĒāļĢāđāļĨāļ° message āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™ āđāļ­āļ›āļŠāļēāļĄāļēāļĢāļ–āđāļ›āļĨ code āđ„āļ”āđ‰āđ€āļĄāļ·āđˆāļ­āļ•āđ‰āļ­āļ‡āļāļēāļĢ āđāļĨāļ° fallback āđ€āļ›āđ‡āļ™āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āđ€āļĄāļ·āđˆāļ­āđ„āļĄāđˆāļŠāļēāļĄāļēāļĢāļ–āđāļ›āļĨāđ„āļ”āđ‰\n\n## āļāļēāļĢāļĄāļ­āļ™āļīāđ€āļ•āļ­āļĢāđŒāđāļĨāļ°āđ€āļ—āđ€āļĨāđ€āļĄāļ—āļĢāļĩāļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļēāļĢāļĄāđ‰āļ§āļ™āļ­āļ­āļ\n\nāļ–āļ·āļ­āļāļēāļĢāļĄāđ‰āļ§āļ™āļ­āļ­āļāđ€āļ›āđ‡āļ™āļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļ—āļĩāđˆāļ§āļąāļ”āļœāļĨāđ„āļ”āđ‰ āđ€āļ›āđ‰āļēāļŦāļĄāļēāļĒāļ‡āđˆāļēāļĒ āđ†: āļ•āļĢāļ§āļˆāļˆāļąāļšāļ›āļąāļāļŦāļēāđāļ•āđˆāđ€āļ™āļīāđˆāļ™ āđ† āļāđˆāļ­āļ™āļ—āļĩāđˆāļœāļđāđ‰āđƒāļŠāđ‰āļˆāļ°āļĢāļđāđ‰āļŠāļķāļ\n\nāļ•āļīāļ”āļ•āļēāļĄāļŠāļēāļĄāļ•āļąāļ§āđ€āļĨāļ‚āļ—āļļāļāļ§āļąāļ™: āļˆāļģāļ™āļ§āļ™āļ„āļģāđ€āļ•āļ·āļ­āļ™āļ—āļĩāđˆāļ„āļļāļ“āļ›āļĨāđˆāļ­āļĒ, āļ„āļ§āļēāļĄāļ–āļĩāđˆāļ„āļģāļ‚āļ­āļ—āļĩāđˆāļ–āļđāļāļ›āļāļīāđ€āļŠāļ˜, āđāļĨāļ° endpoint āļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡ āļ„āļģāđ€āļ•āļ·āļ­āļ™āļ„āļ§āļĢāđ€āļžāļīāđˆāļĄāļāđˆāļ­āļ™ (āđ€āļžāļĢāļēāļ°āļ„āļļāļ“āđ€āļ›āļīāļ”āļ„āļģāđ€āļ•āļ·āļ­āļ™) āđāļĨāđ‰āļ§āļĨāļ”āļĨāļ‡āđ€āļĄāļ·āđˆāļ­āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāļ­āļąāļ›āđ€āļ”āļ• Rejections āļ„āļ§āļĢāļ•āđˆāļģāļˆāļ™āļāļ§āđˆāļēāļ„āļļāļ“āļˆāļ°āļ•āļąāđ‰āļ‡āđƒāļˆāđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”\n\nāđāļĒāļāđāļ”āļŠāļšāļ­āļĢāđŒāļ” āđ€āļžāļĢāļēāļ°āļ›āļąāļāļŦāļēāļĄāļ·āļ­āļ–āļ·āļ­āļĄāļąāļāđ„āļĄāđˆāļŠāļĄāđˆāļģāđ€āļŠāļĄāļ­ āđāļĒāļāļ•āļēāļĄāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđāļ­āļ›, OS (iOS vs Android), āļ›āļĢāļ°āđ€āļ āļ—āļ­āļļāļ›āļāļĢāļ“āđŒ āđāļĨāļ°āļ āļđāļĄāļīāļ āļēāļ„ āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđāļ­āļ›āđ€āļāđˆāļēāđ€āļ”āļĩāļĒāļ§āļ­āļēāļˆāđāļšāļāļĢāļąāļšāļ„āļ§āļēāļĄāđ€āļŠāļĩāđˆāļĒāļ‡āļĄāļēāļāļ—āļĩāđˆāļŠāļļāļ” āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āļ•āļĨāļēāļ”āļ—āļĩāđˆāļ­āļąāļ›āđ€āļ”āļ•āļŠāđ‰āļē\n\nāļāļēāļĢāđāļˆāđ‰āļ‡āđ€āļ•āļ·āļ­āļ™āļ„āļ§āļĢāļĄāļļāđˆāļ‡āļ—āļĩāđˆāļœāļĨāļāļĢāļ°āļ—āļšāļ•āđˆāļ­āļœāļđāđ‰āđƒāļŠāđ‰ āđ„āļĄāđˆāđƒāļŠāđˆāđāļ„āđˆāļŠāļļāļ‚āļ āļēāļžāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ:\n\n- āļžāļļāđˆāļ‡āļ‚āļķāđ‰āļ™āļ‚āļ­āļ‡ 400s āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļāļąāļšāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš\n- āļāļēāļĢāļĨāļ”āļĨāļ‡āļ‚āļ­āļ‡āļŸāļĨāļ§āđŒāļŠāļģāļ„āļąāļāđ€āļŠāđˆāļ™ signup, login, checkout āļŦāļĢāļ·āļ­ â€œāļšāļąāļ™āļ—āļķāļāđ‚āļ›āļĢāđ„āļŸāļĨāđŒâ€\n- āļāļēāļĢāđ€āļžāļīāđˆāļĄāļ‚āļķāđ‰āļ™āļ‚āļ­āļ‡āļāļēāļĢāļĢāļĩāđ„āļ—āļĢ, āđ„āļ—āļĄāđŒāđ€āļ­āļēāļ•āđŒ, āļŦāļĢāļ·āļ­āļ‚āđ‰āļ­āļ„āļ§āļēāļĄ "unknown error" āļāļąāđˆāļ‡āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒ\n- Endpoint āļ—āļĩāđˆāļ„āļģāđ€āļ•āļ·āļ­āļ™āđ€āļžāļīāđˆāļĄāđāļ•āđˆāđ„āļĄāđˆāļĄāļĩāļāļēāļĢāļĒāļ­āļĄāļĢāļąāļšāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļ—āļĩāđˆāđāļāđ‰āđ„āļ‚\n\nāļĒāļąāļ‡āđ€āļāđ‰āļēāļ”āļđāļ„āļ§āļēāļĄāļĨāđ‰āļĄāđ€āļŦāļĨāļ§āđ€āļ‡āļĩāļĒāļš: āļšāļąāļ™āļ—āļķāļāļšāļēāļ‡āļŠāđˆāļ§āļ™, āļāļēāļĢāļĢāļĩāļžāļĒāļēāļĒāļēāļĄāļ‹āđ‰āļģāđƒāļ™āđāļšāđ‡āļāļāļĢāļēāļ§āļ”āđŒ, āļŦāļĢāļ·āļ­āļœāļđāđ‰āđƒāļŠāđ‰āļ•āļīāļ”āļĨāļđāļ›āļ—āļĩāđˆ UI āļ”āļđāļ›āļāļ•āļīāđāļ•āđˆāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđ„āļĄāđˆāļĒāļ­āļĄāļĢāļąāļšāļ‚āđ‰āļ­āļĄāļđāļĨ āđ€āļŠāļ·āđˆāļ­āļĄāđ€āļŦāļ•āļļāļāļēāļĢāļ“āđŒ API āļāļąāļšāđ€āļŦāļ•āļļāļāļēāļĢāļ“āđŒāļœāļĨāļīāļ•āļ āļąāļ“āļ‘āđŒ (āđ€āļŠāđˆāļ™ āđāļ­āļ›āļĒāļīāļ‡ â€œProfileSaved” āđāļ•āđˆāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļ›āļāļīāđ€āļŠāļ˜āļāļēāļĢāđ€āļ‚āļĩāļĒāļ™)\n\nāđ€āļ‚āļĩāļĒāļ™ playbook āļāļēāļĢ rollback āļāđˆāļ­āļ™āļˆāļģāđ€āļ›āđ‡āļ™ āļ•āļąāļ”āļŠāļīāļ™āđƒāļˆāļ§āđˆāļēāļˆāļ°āļĒāđ‰āļ­āļ™āļ­āļ°āđ„āļĢāļāđˆāļ­āļ™: toggle āļāļēāļĢāļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰, āļāļŽāđƒāļŦāļĄāđˆ, āļŦāļĢāļ·āļ­āļĢāļđāļ›āļĢāđˆāļēāļ‡āļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš āļœāļđāļāļāļēāļĢāļ•āļąāļ”āļŠāļīāļ™āđƒāļˆāđ€āļ‚āđ‰āļēāļāļąāļšāđ€āļāļ“āļ‘āđŒāļŠāļąāļ”āđ€āļˆāļ™ (āđ€āļŠāđˆāļ™ 400s āđ€āļāļīāļ™āļ­āļąāļ•āļĢāļēāļ—āļĩāđˆāļ•āļąāđ‰āļ‡āđ„āļ§āđ‰āļŠāļģāļŦāļĢāļąāļšāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđ€āļ‰āļžāļēāļ°)\n\n## āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡: āđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļēāļĢāļŠāļĄāļąāļ„āļĢāđ‚āļ”āļĒāđ„āļĄāđˆāļ—āļģāđƒāļŦāđ‰āļāļēāļĢāļŠāļģāļĢāļ°āđ€āļ‡āļīāļ™āļžāļąāļ‡\n\nāļŠāļĄāļĄāļ•āļīāļ­āļĒāļēāļāđ„āļ”āđ‰āļ‚āđ‰āļ­āļĄāļđāļĨāļŠāļ°āļ­āļēāļ”āļ‚āļķāđ‰āļ™ āļˆāļķāļ‡āđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”āļāļŽāļŦāļĄāļēāļĒāđ€āļĨāļ‚āđ‚āļ—āļĢāļĻāļąāļžāļ—āđŒāđāļĨāļ°āļ—āļĩāđˆāļ­āļĒāļđāđˆāļ—āļĩāđˆāđƒāļŠāđ‰āļ•āļ­āļ™āļŠāļĄāļąāļ„āļĢ āđāļ•āđˆāļŸāļīāļĨāļ”āđŒāđ€āļ”āļĩāļĒāļ§āļāļąāļ™āļ™āļąāđ‰āļ™āđƒāļŠāđ‰āđƒāļ™ checkout āļ–āđ‰āļēāļŠāļĨāļąāļšāļŠāļ§āļīāļ•āļŠāđŒāđ€āļĢāđ‡āļ§āđ€āļāļīāļ™āđ„āļ› āđāļ­āļ›āļĄāļ·āļ­āļ–āļ·āļ­āđ€āļāđˆāļēāļ­āļēāļˆāļžāļąāļ‡āļ•āļ­āļ™āļ—āļĩāđˆāļĨāļđāļāļ„āđ‰āļēāļāļģāļĨāļąāļ‡āļˆāđˆāļēāļĒāđ€āļ‡āļīāļ™\n\nāļ›āļāļīāļšāļąāļ•āļīāļāļąāļšāđ€āļĢāļ·āđˆāļ­āļ‡āļ™āļĩāđ‰āđ€āļŦāļĄāļ·āļ­āļ™āļāļēāļĢāļĄāđ‰āļ§āļ™āļ­āļ­āļāđ€āļ›āđ‡āļ™āđ€āļ”āļ·āļ­āļ™ āđ† āļ—āļĩāđˆāļĄāļĩāļ‚āļąāđ‰āļ™āļ•āļ­āļ™ āļˆāļļāļ”āļ›āļĢāļ°āļŠāļ‡āļ„āđŒāļ„āļ·āļ­āļĒāļāļĢāļ°āļ”āļąāļšāļ„āļļāļ“āļ āļēāļžāļ‚āđ‰āļ­āļĄāļđāļĨāđ‚āļ”āļĒāđ„āļĄāđˆāļ—āļģāđƒāļŦāđ‰āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđ€āļ›āđ‡āļ™āļāļēāļĢāļ”āļąāļšāļ§āļ‡āļˆāļĢ\n\nāđāļœāļ™āļˆāļĢāļīāļ‡āļˆāļąāļ‡āļĢāļēāļĒāļŠāļąāļ›āļ”āļēāļŦāđŒ:\n\n- āļŠāļąāļ›āļ”āļēāļŦāđŒ 1: āļĒāļ­āļĄāļĢāļąāļšāļĢāļđāļ›āđāļšāļšāļ›āļąāļˆāļˆāļļāļšāļąāļ™ āđāļ•āđˆāđ€āļžāļīāđˆāļĄāļ„āļģāđ€āļ•āļ·āļ­āļ™āļāļąāđˆāļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ āļšāļąāļ™āļ—āļķāļāļ—āļļāļāļ„āļģāļ‚āļ­āļ—āļĩāđˆāļˆāļ°āļĨāđ‰āļĄāļ āļēāļĒāđƒāļ•āđ‰āļāļŽāđƒāļŦāļĄāđˆ (āļŦāļĄāļēāļĒāđ€āļĨāļ‚āđ„āļĄāđˆāļĄāļĩāļĒāđˆāļ­āļ›āļĢāļ°āđ€āļ—āļĻ, āļ—āļĩāđˆāļ­āļĒāļđāđˆāđ„āļĄāđˆāļĄāļĩāļĢāļŦāļąāļŠāđ„āļ›āļĢāļĐāļ“āļĩāļĒāđŒ) āđāļĨāļ°āļ™āļąāļšāļ•āļēāļĄāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđāļ­āļ›\n- āļŠāļąāļ›āļ”āļēāļŦāđŒ 2: āļĒāļąāļ‡āļ„āļ‡āļĒāļ·āļ”āļŦāļĒāļļāđˆāļ™ āđāļ•āđˆāđ€āļĢāļīāđˆāļĄāļ„āļ·āļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆ normalized āđƒāļ™āļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļš āđ€āļŠāđˆāļ™ āļ„āļ·āļ™ phone_e164 āļ‚āđ‰āļēāļ‡ āđ† phone āđāļĨāļ°āļ„āļ·āļ™āļ§āļąāļ•āļ–āļļ address āļ—āļĩāđˆāļĄāļĩāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āđāļĄāđ‰āđāļ­āļ›āļŠāđˆāļ‡āđ€āļ›āđ‡āļ™āļŠāļ•āļĢāļīāļ‡āđ€āļ”āļĩāđˆāļĒāļ§\n- āļŠāļąāļ›āļ”āļēāļŦāđŒ 3: āļšāļąāļ‡āļ„āļąāļšāđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”āđ€āļ‰āļžāļēāļ°āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđāļ­āļ›āđƒāļŦāļĄāđˆ āļāļģāļŦāļ™āļ”āļ”āđ‰āļ§āļĒ header āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļŦāļĢāļ·āļ­ feature flag āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰ checkout āļšāļ™āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđ€āļāđˆāļēāļ—āļģāļ‡āļēāļ™āļ•āđˆāļ­\n- āļŠāļąāļ›āļ”āļēāļŦāđŒ 4: āđ„āļ›āļŠāļđāđˆāļāļēāļĢāļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰āđ€āļ•āđ‡āļĄāļĢāļđāļ›āđāļšāļšāļŦāļĨāļąāļ‡āļˆāļēāļāļ–āļķāļ‡āđ€āļāļ“āļ‘āđŒāļāļēāļĢāļĒāļ­āļĄāļĢāļąāļš (āđ€āļŠāđˆāļ™ 90-95% āļ‚āļ­āļ‡āļ—āļĢāļēāļŸāļŸāļīāļ checkout āļ­āļĒāļđāđˆāļšāļ™āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļ—āļĩāđˆāļœāđˆāļēāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđƒāļŦāļĄāđˆ) āđāļĨāļ°āļ­āļąāļ•āļĢāļēāļ„āļģāđ€āļ•āļ·āļ­āļ™āļĨāļ”āļĨāļ‡āļˆāļ™āļĒāļ­āļĄāļĢāļąāļšāđ„āļ”āđ‰\n\nāļāļļāļāđāļˆāļ„āļ·āļ­ checkout āļ•āđ‰āļ­āļ‡āļĒāļąāļ‡āļ—āļģāļ‡āļēāļ™āđ„āļ”āđ‰āļ‚āļ“āļ°āļ—āļĩāđˆāļĢāļ°āļšāļšāļ™āļīāđ€āļ§āļĻāļ­āļąāļ›āđ€āļ”āļ•āļ•āļēāļĄ\n\n## āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđāļĨāļ°āļāļąāļšāļ”āļąāļāļ—āļĩāđˆāļ„āļ§āļĢāđ€āļĨāļĩāđˆāļĒāļ‡\n\nāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļĨāđ‰āļĄāđ€āļŦāļĨāļ§āļ”āđ‰āļ§āļĒāđ€āļŦāļ•āļļāļœāļĨāļ—āļĩāđˆāļ„āļēāļ”āđ„āļ”āđ‰: āļāļŽāđ€āļ‚āđ‰āļĄāļ‚āļķāđ‰āļ™āļ–āļđāļāļ›āļĨāđˆāļ­āļĒāđƒāļ™āļ—āļĩāđˆāļŦāļ™āļķāđˆāļ‡ āđƒāļ™āļ‚āļ“āļ°āļ—āļĩāđˆāđāļ­āļ›āđ€āļāđˆāļēāļĒāļąāļ‡āļŠāđˆāļ‡āļĢāļđāļ›āđāļšāļšāđ€āļāđˆāļē\n\nāļāļąāļšāļ”āļąāļāļ—āļąāđˆāļ§āđ„āļ›:\n\n- āđ€āļžāļīāđˆāļĄāļ‚āđ‰āļ­āļˆāļģāļāļąāļ”āđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļāđˆāļ­āļ™āļ—āļĩāđˆ API āļˆāļ°āļžāļĢāđ‰āļ­āļĄ āļ™āļąāđˆāļ™āļˆāļ°āļ—āļģāđƒāļŦāđ‰āđ€āļāļīāļ”āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļ—āļĩāđˆāļĒāļēāļāļˆāļąāļ”āļāļēāļĢāđāļĨāļ°āļ—āļģāđƒāļŦāđ‰āļ„āļļāļ“āđ€āļŠāļĩāļĒāđ‚āļ­āļāļēāļŠāđƒāļ™āļāļēāļĢāļ„āļ·āļ™āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ—āļĩāđˆāđ€āļ›āđ‡āļ™āļĄāļīāļ•āļĢ\n- āđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļģāļ‚āļ­āđāļĨāļ°āđ€āļ›āļĨāļĩāđˆāļĒāļ™āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļšāđƒāļ™āļĢāļĩāļĨāļĩāļŠāđ€āļ”āļĩāļĒāļ§ āđ€āļĄāļ·āđˆāļ­āļ—āļąāđ‰āļ‡āļŠāļ­āļ‡āļāļąāđˆāļ‡āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļžāļĢāđ‰āļ­āļĄāļāļąāļ™ āđāļĄāđ‰āđāļ•āđˆāđāļ­āļ›āđƒāļŦāļĄāđˆāļāđ‡āļ­āļēāļˆāļžāļąāļ‡āđ„āļ”āđ‰āđāļĨāļ°āđ‚āļŦāļĄāļ”āļĨāđ‰āļĄāļˆāļ°āļĒāļļāđˆāļ‡āđ€āļŦāļĒāļīāļ‡\n- āļ–āļ·āļ­āļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āļŠāđ‚āļ•āļĢāđŒāđ€āļ›āđ‡āļ™āđāļœāļ™ rollout āļœāļđāđ‰āđƒāļŠāđ‰āļŦāļĨāļēāļĒāļ„āļ™āđ€āļĨāļ·āđˆāļ­āļ™āļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ• āļšāļēāļ‡āļ­āļļāļ›āļāļĢāļ“āđŒāļ­āļąāļ›āđ€āļ”āļ•āđ„āļĄāđˆāđ„āļ”āđ‰ āđāļĨāļ°āļšāļēāļ‡āļ­āļ‡āļ„āđŒāļāļĢāļ­āļēāļˆāļŠāđ‰āļēāļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™\n- āļ„āļ·āļ™āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļāļģāļāļ§āļĄāđ€āļŠāđˆāļ™ "invalid input" āļœāļđāđ‰āđƒāļŠāđ‰āđāļāđ‰āđ„āļĄāđˆāđ„āļ”āđ‰ āļ‹āļąāļžāļžāļ­āļĢāđŒāļ•āļ§āļīāļ™āļīāļˆāļ‰āļąāļĒāđ„āļĄāđˆāļ­āļ­āļ āđāļĨāļ°āļ§āļīāļĻāļ§āļāļĢāļ§āļąāļ”āđ„āļĄāđˆāđ„āļ”āđ‰āļ§āđˆāļēāļžāļąāļ‡āļ•āļĢāļ‡āđ„āļŦāļ™\n- āļ‚āđ‰āļēāļĄāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļīāļŠāļģāļŦāļĢāļąāļš payload āđ€āļāđˆāļē āļŦāļēāļāđ„āļĄāđˆ replay āļ„āļģāļ‚āļ­āļˆāļĢāļīāļ‡āļˆāļēāļāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđ€āļāđˆāļē āļ„āļļāļ“āļāļģāļĨāļąāļ‡āđ€āļ”āļē\n\nāļāļŽāļ‡āđˆāļēāļĒ āđ†: āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ—āļĩāļĨāļ°āļĄāļīāļ•āļī āļĒāļ­āļĄāļĢāļąāļšāļ„āļģāļ‚āļ­āđ€āļāđˆāļēāļŠāļąāļāļžāļąāļ āđāļĨāđ‰āļ§āļ„āđˆāļ­āļĒāđ€āļĢāļĩāļĒāļāļĢāđ‰āļ­āļ‡āļŸāļīāļĨāļ”āđŒāđƒāļŦāļĄāđˆ āļŦāļēāļāļ•āđ‰āļ­āļ‡āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļšāļ”āđ‰āļ§āļĒ āđƒāļŦāđ‰āđ€āļāđ‡āļšāļŸāļīāļĨāļ”āđŒāđ€āļāđˆāļēāđ„āļ§āđ‰ (āđāļĄāđ‰āļˆāļ° deprecated) āļˆāļ™āļāļ§āđˆāļēāđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒāļŠāđˆāļ§āļ™āđƒāļŦāļāđˆāļžāļĢāđ‰āļ­āļĄ\n\nāļ—āļģāđƒāļŦāđ‰āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđāļāđ‰āđ„āļ‚āđ„āļ”āđ‰ "āļŠāļ·āđˆāļ­āļŸāļīāļĨāļ”āđŒ + āđ€āļŦāļ•āļļāļœāļĨ + āđ€āļ„āļĨāđ‡āļ”āļĨāļąāļš" āļˆāļ°āļĨāļ”āļ āļēāļĢāļ°āļ‹āļąāļžāļžāļ­āļĢāđŒāļ•āđāļĨāļ°āļ—āļģāđƒāļŦāđ‰āļāļēāļĢāļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰āļ­āļĒāđˆāļēāļ‡āđ€āļ›āđ‡āļ™āļ‚āļąāđ‰āļ™āļ›āļĨāļ­āļ”āļ āļąāļĒāļ‚āļķāđ‰āļ™āļĄāļēāļ\n\n## āđ€āļŠāđ‡āļ„āļĨāļīāļŠāļ•āđŒāļ”āđˆāļ§āļ™āļāđˆāļ­āļ™āļšāļąāļ‡āļ„āļąāļšāļāļŽāđ€āļ‚āđ‰āļĄāļ‚āļķāđ‰āļ™\n\nāđ€āļŦāļ•āļļāļāļēāļĢāļ“āđŒāļŠāđˆāļ§āļ™āđƒāļŦāļāđˆāđ€āļāļīāļ”āļˆāļēāļāļŠāļĄāļĄāļ•āļīāļāļēāļ™āđ€āļĨāđ‡āļ āđ† āļ—āļĩāđˆāļžāļĨāļēāļ” āđ„āļĄāđˆāđƒāļŠāđˆāđ€āļžāļĢāļēāļ°āļāļŽ "āđ€āļ‚āđ‰āļĄāđ€āļāļīāļ™" āļāđˆāļ­āļ™āļšāļąāļ‡āļ„āļąāļš āđƒāļŦāđ‰āļ•āļ­āļšāļ„āļģāļ–āļēāļĄāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āļŠāļąāļ”āđ€āļˆāļ™:\n\n- āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļĢāļąāļšāļĢāļđāļ›āđāļšāļšāļ„āļģāļ‚āļ­āđ€āļāđˆāļēāđ„āļ”āđ‰āđƒāļ™āļŦāļ™āđ‰āļēāļ•āđˆāļēāļ‡āļ—āļĩāđˆāļāļģāļŦāļ™āļ” (āđāļĄāđ‰āļˆāļ°āļĨāđ‡āļ­āļāđ€āļ›āđ‡āļ™āļ„āļģāđ€āļ•āļ·āļ­āļ™) āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđ€āļāđˆāļēāļĒāļąāļ‡āļ—āļģāļ‡āļēāļ™āđ„āļŦāļĄ?\n- āļāļēāļĢāļ•āļ­āļšāļāļĨāļąāļšāļˆāļ°āļĢāļąāļāļĐāļēāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡ JSON, āļŠāļ·āđˆāļ­āļŸāļīāļĨāļ”āđŒ, āđāļĨāļ°āļ„āļĩāļĒāđŒāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđ„āļ§āđ‰āđ„āļ”āđ‰āđāļĄāđ‰āļāļŽāđƒāļŦāļĄāđˆāļĨāđ‰āļĄāđ„āļŦāļĄ?\n- āļ„āļļāļ“āļĄāļĩāđ€āļŸāļŠāļ„āļģāđ€āļ•āļ·āļ­āļ™āļ—āļĩāđˆāļ§āļąāļ”āđ„āļ”āđ‰ (āļĨāđ‡āļ­āļāļŦāļĢāļ·āļ­āļ™āļąāļš "āļĢāļđāļ›āđāļšāļšāđ€āļāđˆāļēāđ€āļŦāđ‡āļ™") āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļāļēāļĢāļĒāļ­āļĄāļĢāļąāļšāđ€āļ›āđ‡āļ™āđ€āļĢāļ·āđˆāļ­āļ‡āļˆāļĢāļīāļ‡ āđ„āļĄāđˆāđƒāļŠāđˆāļāļēāļĢāđ€āļ”āļēāđ„āļŦāļĄ?\n- āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āđ€āļ›āļīāļ”/āļ›āļīāļ”āļāļēāļĢāļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰āđ„āļ”āđ‰āđ€āļĢāđ‡āļ§āđ„āļŦāļĄ (feature flag, config switch, āļŦāļĢāļ·āļ­āļ™āđ‚āļĒāļšāļēāļĒāļ•āđˆāļ­āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒ) āđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļ”āļĩāļžāļĨāļ­āļĒāđƒāļŦāļĄāđˆ?\n- āļ„āļļāļ“āļĢāļđāđ‰āļŦāļĢāļ·āļ­āđ„āļĄāđˆāļ§āđˆāļēāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđāļ­āļ›āđ€āļāđˆāļēāļŠāļļāļ”āļ—āļĩāđˆāļĒāļąāļ‡ active āļ„āļ·āļ­āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđ„āļŦāļ™ āđāļĨāļ°āļĄāļĩāļāļĩāđˆāļ„āļ™ āļ•āļēāļĄāđ€āļ—āđ€āļĨāđ€āļĄāļ—āļĢāļĩāļˆāļĢāļīāļ‡?\n\nāļ–āđ‰āļēāļ„āļģāļ•āļ­āļšāļ‚āđ‰āļ­āđƒāļ”āļ„āļ·āļ­ â€œāđ„āļĄāđˆāđāļ™āđˆāđƒāļˆâ€ āļŦāļĒāļļāļ”āđ„āļ§āđ‰āļāđˆāļ­āļ™āđāļĨāļ°āđ€āļ•āļīāļĄāļŠāļīāđ‰āļ™āļ—āļĩāđˆāļ‚āļēāļ” āļĢāļđāļ›āđāļšāļšāļ—āļĩāđˆāđāļ™āļ°āļ™āļģāđ„āļ”āđ‰āļœāļĨāļ”āļĩ: āļĒāļ­āļĄāļĢāļąāļšāđāļĨāļ°āđ€āļ•āļ·āļ­āļ™ 1-2 āļĢāļ­āļšāļāļēāļĢāļ›āļĨāđˆāļ­āļĒ āđāļĨāđ‰āļ§āļšāļąāļ‡āļ„āļąāļšāļŠāļģāļŦāļĢāļąāļšāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđƒāļŦāļĄāđˆāļāđˆāļ­āļ™ āļ‚āļĒāļēāļĒāđ„āļ›āļ—āļļāļāļ„āļ™āđ€āļĄāļ·āđˆāļ­āļžāļĢāđ‰āļ­āļĄ\n\n## āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļ–āļąāļ”āđ„āļ›: āļ›āļĨāđˆāļ­āļĒāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ­āļĒāđˆāļēāļ‡āļ›āļĨāļ­āļ”āļ āļąāļĒāđāļĨāļ°āđ€āļ”āļīāļ™āļŦāļ™āđ‰āļēāļ•āđˆāļ­\n\nāļ–āļ·āļ­āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđ€āļ›āđ‡āļ™āļāļēāļĢāļ›āļĨāđˆāļ­āļĒāļŸāļĩāđ€āļˆāđ‡āļ• āđ„āļĄāđˆāđƒāļŠāđˆāļāļēāļĢāđāļāđ‰āđāļšāđ‡āļāđ€āļ­āļ™āļ”āđŒāđ€āļĢāđ‡āļ§āđ†\n\nāđ€āļ‚āļĩāļĒāļ™āđāļœāļ™āđ€āļĨāļīāļāđƒāļŠāđ‰āļ‡āļēāļ™āļŦāļ™āđ‰āļēāđ€āļ”āļĩāļĒāļ§āļāđˆāļ­āļ™ merge āļ­āļ°āđ„āļĢāđƒāļŦāđ‰āđ€āļ‰āļžāļēāļ°āđ€āļˆāļēāļ°āļˆāļ‡: āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ­āļ°āđ„āļĢ, āđƒāļ„āļĢāđ€āļ›āđ‡āļ™āđ€āļˆāđ‰āļēāļ‚āļ­āļ‡, āļ„āļģāđ€āļ•āļ·āļ­āļ™āđ€āļĢāļīāđˆāļĄāđ€āļĄāļ·āđˆāļ­āđ„āļĢ, āļšāļąāļ‡āļ„āļąāļšāđ€āļĄāļ·āđˆāļ­āđ„āļĢ, āđāļĨāļ°āļ„āļģāļ§āđˆāļē “āđ€āļŠāļĢāđ‡āļˆâ€ āļ„āļ·āļ­āļ­āļ°āđ„āļĢ\n\nāļˆāļēāļāļ™āļąāđ‰āļ™āļ—āļģāđƒāļŦāđ‰āļāļēāļĢāļĄāđ‰āļ§āļ™āļ­āļ­āļāļ„āļ§āļšāļ„āļļāļĄāļ‡āđˆāļēāļĒ:\n\n- āļĄāļ­āļšāļŦāļĄāļēāļĒāđ€āļˆāđ‰āļēāļ‚āļ­āļ‡āđāļĨāļ°āļ§āļąāļ™āļ—āļĩāđˆ (āđ€āļĢāļīāđˆāļĄāļ„āļģāđ€āļ•āļ·āļ­āļ™, āļšāļąāļ‡āļ„āļąāļšāļšāļēāļ‡āļŠāđˆāļ§āļ™, āļšāļąāļ‡āļ„āļąāļšāđ€āļ•āđ‡āļĄ, āđ€āļ­āļēāļ—āļēāļ‡āđ€āļĨāļ·āļ­āļāđ€āļāđˆāļēāļ­āļ­āļ)\n- āđ€āļžāļīāđˆāļĄāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļšāļšāļĢāļđāđ‰āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļšāļ™āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ (āļŦāļĢāļ·āļ­ feature flag) āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđ€āļāđˆāļēāđ„āļ”āđ‰āļžāļĪāļ•āļīāļāļĢāļĢāļĄ backward-compatible\n- āļ‚āļĒāļēāļĒāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļīāđƒāļŦāđ‰āļ„āļĢāļ­āļšāļ„āļĨāļļāļĄāļ—āļąāđ‰āļ‡āļŠāļ­āļ‡āļ—āļēāļ‡: āļĒāļ­āļĄāļĢāļąāļš legacy āđāļĨāļ°āļāļŽāđƒāļŦāļĄāđˆ\n- āļŠāļĢāđ‰āļēāļ‡āđāļ”āļŠāļšāļ­āļĢāđŒāļ”āļ—āļĩāđˆāđāļĒāļāļˆāļģāļ™āļ§āļ™āļ„āļģāđ€āļ•āļ·āļ­āļ™āđāļĨāļ°āļāļēāļĢāļĨāđ‰āļĄāļ•āļēāļĄāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđāļ­āļ›, endpoint, āđāļĨāļ°āļāļŽ\n- āļˆāļąāļ”āļ‹āđ‰āļ­āļĄ rollback āļŦāļ™āļķāđˆāļ‡āļ„āļĢāļąāđ‰āļ‡āļĨāđˆāļ§āļ‡āļŦāļ™āđ‰āļē āļāđˆāļ­āļ™āļ•āđ‰āļ­āļ‡āđƒāļŠāđ‰āļ‡āļēāļ™āļˆāļĢāļīāļ‡\n\nāđ€āļĄāļ·āđˆāļ­āļ„āļģāđ€āļ•āļ·āļ­āļ™āļ­āļ­āļ™āđ„āļĨāļ™āđŒ āđƒāļŦāđ‰āļĒāļķāļ”āļĄāļąāđˆāļ™āļāļąāļšāļāļēāļĢāļ§āļąāļ”āļœāļĨ āļŦāļēāļāļ„āļģāđ€āļ•āļ·āļ­āļ™āđ„āļĄāđˆāļĨāļ”āļ•āļēāļĄāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™ āļāļēāļĢāļšāļąāļ‡āļ„āļąāļšāļˆāļ°āļŠāļĢāđ‰āļēāļ‡āļ•āļąāđ‹āļ§āļ‹āļąāļžāļžāļ­āļĢāđŒāļ•āđāļĨāļ°āļĢāļĩāļ§āļīāļ§āđāļĒāđˆ āđ„āļĄāđˆāđƒāļŠāđˆāļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļŠāļ°āļ­āļēāļ”āļ‚āļķāđ‰āļ™\n\nāļ–āđ‰āļēāļ„āļļāļ“āļ­āļĒāļēāļāļĢāļ§āļĄāļāļŽāļ‚āđ‰āļ­āļĄāļđāļĨāđāļĨāļ°āļ•āļĢāļĢāļāļ°āļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆāđ„āļ§āđ‰āļāļĨāļēāļ‡ āđ† āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļĒāļąāļ‡āļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡ āđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄāđāļšāļš no-code āļ­āļĒāđˆāļēāļ‡ AppMaster (appmaster.io) āļ­āļēāļˆāļŠāđˆāļ§āļĒāđ„āļ”āđ‰ āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āđ‚āļĄāđ€āļ”āļĨāļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ™ Data Designer āļ›āļĢāļąāļšāļ•āļĢāļĢāļāļ°āđƒāļ™ Business Process Editor āđāļĨāļ° regenerate āđāļšāđ‡āļāđ€āļ­āļ™āļ”āđŒāđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļžāļĪāļ•āļīāļāļĢāļĢāļĄāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļŠāļ­āļ”āļ„āļĨāđ‰āļ­āļ‡āļ‚āļ“āļ°āļāļēāļĢāļ›āļĨāđˆāļ­āļĒāļšāļ™āļĄāļ·āļ­āļ–āļ·āļ­āļĒāļąāļ‡āļ„āļ‡āđ€āļāļīāļ”āļ‚āļķāđ‰āļ™\n\nāļŠāļ·āđˆāļ­āļŠāļēāļĢāļ§āļąāļ™āļ—āļĩāđˆāļ•āļąāļ”āļ‚āļēāļ”āļ āļēāļĒāđƒāļ™ (āļ‹āļąāļžāļžāļ­āļĢāđŒāļ•, āđ‚āļ›āļĢāļ”āļąāļāļ•āđŒ, āļĄāļ·āļ­āļ–āļ·āļ­, āđāļšāđ‡āļāđ€āļ­āļ™āļ”āđŒ) “āļ—āļļāļāļ„āļ™āļĢāļđāđ‰â€ āđ„āļĄāđˆāđƒāļŠāđˆāđāļœāļ™ āļāļēāļĢāļĄāļĩāļ§āļąāļ™āļ—āļĩāđˆāđ€āļ‚āļĩāļĒāļ™āđāļĨāļ°āđ€āļˆāđ‰āļēāļ‚āļ­āļ‡āļŠāļąāļ”āđ€āļˆāļ™āļĄāļąāļāđ„āļ”āđ‰āļœāļĨ

āļ„āļģāļ–āļēāļĄāļ—āļĩāđˆāļžāļšāļšāđˆāļ­āļĒ

āļ—āļģāđ„āļĄāļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ–āļķāļ‡āļ—āļģāđƒāļŦāđ‰āđāļ­āļ›āļĄāļ·āļ­āļ–āļ·āļ­āļžāļąāļ‡āđ„āļ”āđ‰āļĄāļēāļāļāļ§āđˆāļēāđ€āļ§āđ‡āļšāđāļ­āļ›?

āđ€āļžāļĢāļēāļ°āļœāļđāđ‰āđƒāļŠāđ‰āļŦāļĨāļēāļĒāļ„āļ™āđ€āļāđ‡āļšāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđāļ­āļ›āđ€āļāđˆāļēāđ„āļ§āđ‰āđ€āļ›āđ‡āļ™āļ§āļąāļ™āļŦāļĢāļ·āļ­āļŠāļąāļ›āļ”āļēāļŦāđŒ āļŦāļēāļāđāļšāđ‡āļāđ€āļ­āļ™āļ”āđŒāđ€āļĢāļīāđˆāļĄāļ›āļāļīāđ€āļŠāļ˜ payload āļ—āļĩāđˆāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđ€āļāđˆāļēāļĒāļąāļ‡āļŠāđˆāļ‡āļ­āļĒāļđāđˆ āļœāļđāđ‰āđƒāļŠāđ‰āđ€āļŦāļĨāđˆāļēāļ™āļąāđ‰āļ™āļˆāļ°āđ€āļˆāļ­āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĄāđ‰āļ§āđˆāļēāļžāļ§āļāđ€āļ‚āļēāļˆāļ°āđ„āļĄāđˆāđ„āļ”āđ‰āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļ­āļ°āđ„āļĢāđ€āļĨāļĒ

āđāļ™āļ§āļ—āļēāļ‡āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ—āļĩāđˆāļ›āļĨāļ­āļ”āļ āļąāļĒāļ—āļĩāđˆāļŠāļļāļ”āđ€āļĄāļ·āđˆāļ­āļœāļĄāļ•āđ‰āļ­āļ‡āļ—āļģāđƒāļŦāđ‰āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš API āđ€āļ‚āđ‰āļĄāļ‚āļķāđ‰āļ™āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āđāļ™āļ§āļ—āļēāļ‡āļ›āļĨāļ­āļ”āļ āļąāļĒāļ„āļ·āļ­: āļĒāļ­āļĄāļĢāļąāļšāļ„āļģāļ‚āļ­āđ„āļ§āđ‰āļāđˆāļ­āļ™āđāļĨāđ‰āļ§āļ›āļĨāđˆāļ­āļĒāļ„āļģāđ€āļ•āļ·āļ­āļ™ āļ§āļąāļ”āļ„āļ§āļēāļĄāļ–āļĩāđˆāļ—āļĩāđˆāļĄāļĩ "āļ­āļīāļ™āļžāļļāļ•āđāļšāļšāđ€āļāđˆāļē" āđ€āļāļīāļ”āļ‚āļķāđ‰āļ™ āđāļĨāđ‰āļ§āļ„āđˆāļ­āļĒāļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰āđƒāļ™āļ āļēāļĒāļŦāļĨāļąāļ‡āļžāļĢāđ‰āļ­āļĄāļĢāļ°āļšāļļāļ§āļąāļ™āļ•āļąāļ” (cutoff) āļāļēāļĢāļ‚āļąāļ™āļāļŽāļ—āļąāļ™āļ—āļĩāļĄāļąāļāđ€āļ›āđ‡āļ™āļŠāļēāđ€āļŦāļ•āļļāļ‚āļ­āļ‡āļāļēāļĢāļ‚āļąāļ”āļ‚āđ‰āļ­āļ‡

āļ„āļ§āļēāļĄāļ•āđˆāļēāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļĢāļđāļ›āđāļšāļšāđāļĨāļ°āļāļŽāļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆāļ„āļ·āļ­āļ­āļ°āđ„āļĢ āđāļĨāļ°āļ—āļģāđ„āļĄāļ–āļķāļ‡āļŠāļģāļ„āļąāļ?

āđƒāļŠāđ‰āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļĢāļđāļ›āđāļšāļš (format validation) āđ€āļžāļ·āđˆāļ­āļ”āļđāļ§āđˆāļēāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļŠāļēāļĄāļēāļĢāļ–āđāļĒāļāđāļĨāļ°āđ€āļŠāļ·āđˆāļ­āļ–āļ·āļ­āļĢāļđāļ›āļ—āļĢāļ‡āļ‚āļ­āļ‡āļ„āļģāļ‚āļ­āđ„āļ”āđ‰āđ„āļŦāļĄ āļŠāđˆāļ§āļ™āļāļŽāļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆ (business rules) āļˆāļ°āļšāļ­āļāļ§āđˆāļēāđ€āļĄāļ·āđˆāļ­āļĢāļđāļ›āļ—āļĢāļ‡āļ–āļđāļāļ•āđ‰āļ­āļ‡āđāļĨāđ‰āļ§ āļĄāļąāļ™āļ„āļ§āļĢāļ–āļđāļāļĒāļ­āļĄāļĢāļąāļšāļŦāļĢāļ·āļ­āđ„āļĄāđˆ āđƒāļŦāđ‰āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļĢāļđāļ›āđāļšāļšāđ€āļ‚āđ‰āļĄāļ‡āļ§āļ”āđ€āļžāļ·āđˆāļ­āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđāļĨāļ°āļāļēāļĢāđāļĒāļāļžāļēāļĢāđŒāļŠ āļŠāđˆāļ§āļ™āļāļŽāļ—āļēāļ‡āļ˜āļļāļĢāļāļīāļˆāļ„āđˆāļ­āļĒāđ† āļ‚āļĒāļąāļšāđ€āļžāļ·āđˆāļ­āđ€āļ›āļīāļ”āđ‚āļ­āļāļēāļŠāđƒāļŦāđ‰āļĄāļĩāļāļēāļĢ rollout āđāļšāļšāļ„āđˆāļ­āļĒāđ€āļ›āđ‡āļ™āļ„āđˆāļ­āļĒāđ„āļ›

āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļšāļšāđ„āļŦāļ™āļĄāļĩāđāļ™āļ§āđ‚āļ™āđ‰āļĄāļˆāļ°āļ—āļģāđƒāļŦāđ‰āļžāļąāļ‡āļĄāļēāļāļ—āļĩāđˆāļŠāļļāļ”?

āļŠāļīāđˆāļ‡āļ—āļĩāđˆāļĄāļąāļāļ—āļģāđƒāļŦāđ‰āđ€āļāļīāļ”āļāļēāļĢāļžāļąāļ‡: āļ—āļģāđƒāļŦāđ‰āļŸāļīāļĨāļ”āđŒāđ€āļ›āđ‡āļ™ required, āļĨāļ”āļ„āļ§āļēāļĄāļĒāļēāļ§āļŠāļđāļ‡āļŠāļļāļ”, āļŦāđ‰āļēāļĄāļ•āļąāļ§āļ­āļąāļāļĐāļĢāļšāļēāļ‡āļ•āļąāļ§, āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļĢāļđāļ›āđāļšāļšāļ§āļąāļ™āļ—āļĩāđˆ/āļ•āļąāļ§āđ€āļĨāļ‚ āļŦāļĢāļ·āļ­āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļŠāļ·āđˆāļ­āļŸāļīāļĨāļ”āđŒāđ‚āļ”āļĒāđ„āļĄāđˆāļĄāļĩāļŠāđˆāļ§āļ‡āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļœāđˆāļēāļ™ āļĢāļ§āļĄāļ–āļķāļ‡āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļģāļ‚āļ­āđāļĨāļ°āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ•āļ­āļšāļāļĨāļąāļšāļžāļĢāđ‰āļ­āļĄāļāļąāļ™āđƒāļ™āļĢāļĩāļĨāļĩāļŠāđ€āļ”āļĩāļĒāļ§

API āļ„āļ§āļĢāļŠāđˆāļ‡āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ­āļĒāđˆāļēāļ‡āđ„āļĢāđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđāļ­āļ›āđ€āļāđˆāļēāļˆāļąāļ”āļāļēāļĢāđ„āļ”āđ‰?

āļŠāđˆāļ‡āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ—āļĩāđˆāļ­āđˆāļēāļ™āđ‚āļ”āļĒāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āđ€āļŠāļ–āļĩāļĒāļĢāļžāļĢāđ‰āļ­āļĄāļ„āļĩāļĒāđŒāļ„āļ‡āļ—āļĩāđˆ āđāļĨāļ°āļĢāļ§āļĄāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļĢāļ°āļ”āļąāļšāļŸāļīāļĨāļ”āđŒāđ„āļ§āđ‰āļ”āđ‰āļ§āļĒ āđ€āļāđ‡āļš code āļ—āļĩāđˆāļŠāļĄāđˆāļģāđ€āļŠāļĄāļ­āđāļĨāļ°āļĢāļēāļĒāļāļēāļĢ errors āļ—āļĩāđˆāļĄāļĩ field āđāļĨāļ° message āļŦāļēāļāļ•āđ‰āļ­āļ‡āļžāļąāļ’āļ™āļē schema āđƒāļŦāđ‰āđ€āļžāļīāđˆāļĄāļŸāļīāļĨāļ”āđŒāđƒāļŦāļĄāđˆāđāļ—āļ™āļāļēāļĢāđ€āļ›āļĨāļĩāđˆāļĒāļ™āļŠāļ·āđˆāļ­āļŦāļĢāļ·āļ­āđ€āļ­āļēāļŸāļīāļĨāļ”āđŒāđ€āļ”āļīāļĄāļ­āļ­āļāļˆāļ™āļāļ§āđˆāļēāđāļ­āļ›āđ€āļāđˆāļēāļˆāļ°āļŦāļēāļĒāđ„āļ›āļˆāļĢāļīāļ‡āđ†

āļœāļĄāļˆāļ°āđ€āļžāļīāđˆāļĄ â€œāļ„āļģāđ€āļ•āļ·āļ­āļ™āļāđˆāļ­āļ™â€ āđ‚āļ”āļĒāđ„āļĄāđˆāļ—āļģāđƒāļŦāđ‰āļœāļđāđ‰āđƒāļŠāđ‰āļŠāļąāļšāļŠāļ™āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āđ„āļĢ?

āļĒāļ­āļĄāļĢāļąāļšāļ„āļģāļ‚āļ­ āđāļ•āđˆāđ€āļžāļīāđˆāļĄāļ„āļģāđ€āļ•āļ·āļ­āļ™āļ—āļĩāđˆāđ„āļĄāđˆāļ‚āļąāļ”āļ‚āļ§āļēāļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™ āļŠāļĩāđ‰āđƒāļŦāđ‰āđ€āļŦāđ‡āļ™āļŸāļīāļĨāļ”āđŒāđāļĨāļ°āļāļŽāđƒāļŦāļĄāđˆāļ—āļĩāđˆāļāļģāļĨāļąāļ‡āļˆāļ°āļšāļąāļ‡āļ„āļąāļš āđāļĨāļ°āļ­āļĒāđˆāļēāđ€āļœāļĒāļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļ­āđˆāļ­āļ™āđ„āļŦāļ§ āđƒāļŠāđ‰āļĢāļŦāļąāļŠāļ„āļģāđ€āļ•āļ·āļ­āļ™āļ—āļĩāđˆāļ„āļ‡āļ—āļĩāđˆāđāļĨāļ°āļ§āļąāļ™āļ—āļĩāđˆ enforce_after āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļ—āļĩāļĄāļŠāļēāļĄāļēāļĢāļ–āļ•āļīāļ”āļ•āļēāļĄāđāļĨāļ°āļ§āļēāļ‡āđāļœāļ™āđ„āļ”āđ‰

āļāļēāļĢāļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰āļ­āļĒāđˆāļēāļ‡āđ€āļ›āđ‡āļ™āļ‚āļąāđ‰āļ™āļ•āļ­āļ™ (staged enforcement) āđƒāļ™āļ—āļēāļ‡āļ›āļāļīāļšāļąāļ•āļīāđ€āļ›āđ‡āļ™āļ­āļĒāđˆāļēāļ‡āđ„āļĢ?

āļāļģāļŦāļ™āļ”āļāļēāļĢāļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰āļ—āļĩāđˆāļœāļđāļāļāļąāļšāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđāļ­āļ›, āđ€āļ›āļ­āļĢāđŒāđ€āļ‹āđ‡āļ™āļ•āđŒāļ—āļĢāļēāļŸāļŸāļīāļ āļŦāļĢāļ·āļ­āđ‚āļ„āļŪāļ­āļĢāđŒāļ•āļœāļđāđ‰āđƒāļŠāđ‰ āđāļĨāļ°āđ€āļāđ‡āļšāđ„āļ§āđ‰āļŦāļĨāļąāļ‡ feature flag āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđ€āļĨāļīāļāļšāļąāļ‡āļ„āļąāļšāđ„āļ”āđ‰āđ€āļĢāđ‡āļ§ āđ€āļĢāļīāđˆāļĄāļˆāļēāļ soft-fail logging āđāļĨāđ‰āļ§āļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰āļāļąāļšāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđƒāļŦāļĄāđˆāļāđˆāļ­āļ™āļ„āđˆāļ­āļĒāļ‚āļĒāļēāļĒāđ€āļĄāļ·āđˆāļ­āļāļēāļĢāļĒāļ­āļĄāļĢāļąāļšāļŠāļđāļ‡

āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāļ„āļ§āļĢāļ—āļģāļ­āļĒāđˆāļēāļ‡āđ„āļĢāđƒāļŦāđ‰āđ€āļ‚āđ‰āļēāļāļąāļšāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđ€āļāđˆāļēāđƒāļ™āļŠāđˆāļ§āļ‡āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļœāđˆāļēāļ™?

āļĢāļ­āļ‡āļĢāļąāļšāļ—āļąāđ‰āļ‡āļĢāļđāļ›āđāļšāļšāđ€āļāđˆāļēāđāļĨāļ°āđƒāļŦāļĄāđˆāđ„āļ§āđ‰āđƒāļ™āļŠāđˆāļ§āļ‡āđ€āļ§āļĨāļēāļ—āļĩāđˆāļāļģāļŦāļ™āļ” āđ€āļŠāđˆāļ™ āļĒāļ­āļĄāļĢāļąāļšāļ—āļąāđ‰āļ‡ phone āđāļĨāļ° phone_number āļŠāļąāđˆāļ§āļ„āļĢāļēāļ§ āļŦāļēāļāļ•āđ‰āļ­āļ‡āļāļēāļĢāļŸāļīāļĨāļ”āđŒāđƒāļŦāļĄāđˆāļ—āļĩāđˆāđ€āļ›āđ‡āļ™ required āđƒāļŦāđ‰āļ–āļ·āļ­āļ§āđˆāļēāđ€āļ›āđ‡āļ™ optional āļŠāļąāđˆāļ§āļ„āļĢāļēāļ§āđāļĨāļ°āļŠāđˆāļ‡āļ„āļģāđ€āļ•āļ·āļ­āļ™ āđāļ—āļ™āļ—āļĩāđˆāļˆāļ°āļ•āļąāđ‰āļ‡āļ„āđˆāļēāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ—āļĩāđˆāļ­āļēāļˆāļ—āļģāđƒāļŦāđ‰āļ‚āđ‰āļ­āļĄāļđāļĨāđ€āļŠāļĩāļĒāļŦāļēāļĒ

āļ„āļ§āļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ­āļ°āđ„āļĢāļšāđ‰āļēāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļēāļĢ rollout āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ—āļĩāđˆāđ€āļ‚āđ‰āļĄāļ‚āļķāđ‰āļ™?

āļ•āļīāļ”āļ•āļēāļĄāļˆāļģāļ™āļ§āļ™āļ„āļģāđ€āļ•āļ·āļ­āļ™, āļˆāļģāļ™āļ§āļ™āļ„āļģāļ‚āļ­āļ—āļĩāđˆāļ–āļđāļāļ›āļāļīāđ€āļŠāļ˜ āđāļĨāļ°āļˆāļļāļ”āļ›āļĨāļēāļĒāļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡ āđāļĒāļāļ”āļąāļŠāļ™āļĩāļ•āļēāļĄāđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āđāļ­āļ›, OS, āļ­āļļāļ›āļāļĢāļ“āđŒ āđāļĨāļ°āļ āļđāļĄāļīāļ āļēāļ„ āļ•āļąāđ‰āļ‡āđāļˆāđ‰āļ‡āđ€āļ•āļ·āļ­āļ™āđ€āļĄāļ·āđˆāļ­ 400s āđ€āļžāļīāđˆāļĄāļ‚āļķāđ‰āļ™ āļŦāļĢāļ·āļ­āļĨāļ”āļĨāļ‡āđƒāļ™āļŸāļĨāļ§āđŒāļŠāļģāļ„āļąāļāđ€āļŠāđˆāļ™ signup, checkout āđāļĨāļ°āļĄāļĩāđ€āļāļ“āļ‘āđŒāļŠāļąāļ”āđ€āļˆāļ™āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢ rollback

āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļ—āļąāđˆāļ§āđ„āļ›āļ—āļĩāđˆāļ—āļĩāļĄāļĄāļąāļāļ—āļģāļāļąāļšāļāļēāļĢāđ€āļ›āļīāļ”āļ•āļąāļ§āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āđ€āļžāļīāđˆāļĄāļ‚āđ‰āļ­āļˆāļģāļāļąāļ”āđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļāđˆāļ­āļ™āļ—āļĩāđˆ API āļˆāļ°āļžāļĢāđ‰āļ­āļĄ āļ­āļēāļĻāļąāļĒāļāļēāļĢāļ­āļąāļ›āđ€āļ”āļ•āļœāđˆāļēāļ™āļŠāđ‚āļ•āļĢāđŒāđ€āļ›āđ‡āļ™āđāļœāļ™ rollout, āļŠāđˆāļ‡āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āļ„āļĨāļļāļĄāđ€āļ„āļĢāļ·āļ­, āļŦāļĢāļ·āļ­āļ‚āđ‰āļēāļĄāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļāļąāļš payload āđ€āļāđˆāļēāļ•āđˆāļēāļ‡āđ€āļ›āđ‡āļ™āļ„āļ§āļēāļĄāļœāļīāļ”āļžāļĨāļēāļ” āļ‹āđ‰āļģāđ† āđƒāļŦāđ‰āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļĄāļīāļ•āļīāđ€āļ”āļĩāļĒāļ§āļ•āđˆāļ­āļ„āļĢāļąāđ‰āļ‡āđāļĨāļ°āļ§āļąāļ”āļāļēāļĢāļĒāļ­āļĄāļĢāļąāļšāļāđˆāļ­āļ™āļšāļąāļ‡āļ„āļąāļšāđƒāļŠāđ‰

āļ‡āđˆāļēāļĒāļ•āđˆāļ­āļāļēāļĢāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™
āļŠāļĢāđ‰āļēāļ‡āļšāļēāļ‡āļŠāļīāđˆāļ‡āļ—āļĩāđˆ āļ™āđˆāļēāļ—āļķāđˆāļ‡

āļ—āļ”āļĨāļ­āļ‡āļāļąāļš AppMaster āļ”āđ‰āļ§āļĒāđāļœāļ™āļŸāļĢāļĩ
āđ€āļĄāļ·āđˆāļ­āļ„āļļāļ“āļžāļĢāđ‰āļ­āļĄ āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āđ€āļĨāļ·āļ­āļāļāļēāļĢāļŠāļĄāļąāļ„āļĢāļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄāđ„āļ”āđ‰

āđ€āļĢāļīāđˆāļĄ
āļ›āļĢāļąāļšāļāļŽāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļ‡ API āđ‚āļ”āļĒāđ„āļĄāđˆāļ—āļģāđƒāļŦāđ‰āđāļ­āļ›āļĄāļ·āļ­āļ–āļ·āļ­āļžāļąāļ‡ | AppMaster