{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-developers/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["img","admonition"]},"redocly_category":"Developers","type":"markdown"},"seo":{"title":"Migrate API Signer","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"migrate-api-signer","__idx":0},"children":["Migrate API Signer"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This page describes how to migrate your API Signer to a new host."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You might want to migrate your API Signer for a number of reasons—for example, moving from one cloud provider to another (such as Google Cloud to AWS), or moving from a local setup (",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.fordefi.com/developers/getting-started/set-up-an-api-signer/api-signer-docker"},"children":["like Docker Desktop on your machine"]},") to a cloud host where the Signer can run permanently."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The steps show you how to move your API Signer to its new home, without re-registering your API User keys."]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Turn off your currently running API Signer."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Remove your API Signer from your organization:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Settings"]}," > ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API Signer"]}," > ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Remove from organization"]},"."]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/remove-signer-from-org.d8732c384babe5715d70e91697c983e4589c046043415db96fbeb390f8ae1a76.355dd308.png","alt":"remove-signer-from-org.png","framed":false,"withLightbox":true,"width":"","height":""},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This action requires Admin access."]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Refresh your browser and click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Add API Signer"]}," to create a new instance:"]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/add-api-signer.af1e5be1c0377f6879407305fbe99a8a4b68467a294e6463d5079d2d6f69fd9f.355dd308.png","alt":"add-api-signer.png","framed":false,"withLightbox":true,"width":"","height":""},"children":[]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Install the latest API Signer image in the new host by running the install commands described ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.fordefi.com/developers/getting-started/set-up-an-api-signer/install-the-api-signer#install-the-api-signer-docker-image"},"children":["here"]},":"]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/install-new-signer.7b07d37b2518302fa85126e8494ea32fabb790e215d671c429173dde405624c9.355dd308.png","alt":"install-new-signer.png","framed":false,"withLightbox":true,"width":"","height":""},"children":[]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Provision signer"]},", then scan the QR code with your Fordefi mobile app after interacting with the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Add API signer"]}," notification that appears in your To Do feed."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Once you have provisioned the new API Signer successfully, run it as before:"]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/provision-success.4a58a2969f83bd930f14857e1ed793fe5117375028cb282be90a15093a862cac.355dd308.png","alt":"provision-success.png","framed":false,"withLightbox":true,"width":"","height":""},"children":[]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After refreshing the browser in ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Settings"]},", the new API Signer should show as Activated:"]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/signer-activated.57457bb70dd8ff0d10f12f46cb1bc0f78de89746334bd294bd234e95bb6a83f2.355dd308.png","alt":"signer-activated.png","framed":false,"withLightbox":true,"width":"","height":""},"children":[]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Registering API user keys"},"children":[{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["You do not need to re-register your API User public keys with the Signer. The registration is recorded on the Fordefi backend and will survive the migration."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Any API-initiated transaction created during the migration will remain in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Pending signature"]}," state in the Fordefi transaction history. Signing will resume once the new API Signer is running."]}]}]}]}]}]},"headings":[{"value":"Migrate API Signer","id":"migrate-api-signer","depth":1}],"frontmatter":{"seo":{"title":"Migrate API Signer"}},"lastModified":"2026-06-28T16:32:15.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/developers/getting-started/set-up-an-api-signer/migrate-api-signer","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}