{"_id":"5bce6a941cd6b3001125d932","project":"59f79e3c584eb200345ceafc","version":{"_id":"5ba178b00a916500030c6a21","project":"59f79e3c584eb200345ceafc","__v":24,"forked_from":"59f79e3c584eb200345ceaff","createdAt":"2015-09-17T03:47:20.956Z","releaseDate":"2015-09-17T03:47:20.956Z","categories":["5ba178b00a916500030c69a2","5ba178b00a916500030c69a3","5ba178b00a916500030c69a4","5ba178b00a916500030c69a5","5ba178b00a916500030c69a6","5ba178b00a916500030c69a7","5ba178b00a916500030c69a8","5ba178b00a916500030c69a9","5ba178b00a916500030c69aa","5ba178b00a916500030c69ab","5ba178b00a916500030c69ac","5afb6888212c690003ae3d3b","5ba178b00a916500030c69ad","5ba178b00a916500030c69ae","5ba2dcbc99f53f0003b97e2c","5babd73fa0ab3e0003ead030","5bb4038be7222e000334dd97","5bb55954478c1300031a44c2","5bb665a1607307000327c81e","5bb6f90229a7fb0003a0650d","5bb7f9bc29a7fb0003a07ac1","5bba58bd7ba7710003bd901d","5bba6dac7ba7710003bd908d","5bba6e257ba7710003bd9090","5bbac87810189c0003e619ea","5bbb9d02b5862c00036266b2","5bbbadb6219c3e000376c2de","5bc417751d1b0000182bf7f6","5bc59e3b2a5b4f0044db5b97","5bc7bbce2262cc0041f6eff2","5bce6a3580a7250031199f34","5bcfac2c4082510019f2d91b","5bcfac3757bed90030e45d68","5bcfac45d305bc0049941539","5bd2a43548bb6f00289c8fad","5bd3a42a026ebe001f66259e","5bd9d5afffe003005b02f97b","5becb7ee85c6b300557662b6"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"3.1.0","version":"3.1"},"category":{"_id":"5bce6a3580a7250031199f34","project":"59f79e3c584eb200345ceafc","version":"5ba178b00a916500030c6a21","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2018-10-23T00:24:21.671Z","from_sync":false,"order":18,"slug":"card-number-issuance","title":"Issue Debit Card"},"user":"5bbfef1d7d1cb0000384bec5","__v":0,"parentDoc":null,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2018-10-23T00:25:56.604Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":0,"body":"[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Currently in Beta\",\n  \"body\": \"Card number issuance is currently in beta (Sandbox only).\"\n}\n[/block]\nAfter you [create a User](https://docs.synapsefi.com/docs/create-a-user-1), [OAuth the user](https://docs.synapsefi.com/docs/oauth-the-user) and open a [deposit account](https://docs.synapsefi.com/docs/opening-direct-deposit-accounts) or [FBO account](https://docs.synapsefi.com/docs/fbo-account-intro), you are ready to issue a debit card. Issuing a card number allows you to easily enable debit card capability to an already existing deposit or subaccount.\n\nThis feature allows you to issue multiple card numbers to a single deposit or sub-account. This can be used to generate card numbers for specific services (internet, bills, etc.) or a pooled account with multiple cards attached.\n\n**Note:** Card numbers can only be issued for `DEPOSIT-US`, `SUBACCOUNT-US` and `LOAN-US` accounts that have been created with a base document id supplied. Please refer to [opening deposit accounts](doc:opening-direct-deposit-accounts) to learn more. If you previously opened an account without supplying a `document_id` you will have to create a new account with the document_id supplied.\n\n##API ENDPOINT\nhttps://uat-api.synapsefi.com/v3.1/users/:user_id/nodes/:node_id/subnets\n\n##PATH PARAMETER\n[block:html]\n{\n  \"html\": \"<div class=\\\"api-manager\\\"> <div class=\\\"param-table\\\"> <div class=\\\"table\\\"> <div class=\\\"tr\\\"> <div class=\\\"td param\\\"> <strong>user_id <span class=\\\"colon\\\">:</span> </strong> <div class=\\\"required\\\">required</div></div><div class=\\\"td\\\"> <strong class=\\\"param-type\\\">string</strong> <div marked=\\\"\\\" class=\\\"ng-isolate-scope\\\"> <p>ID of user who owns node</p></div></div></div><div class=\\\"tr\\\"> <div class=\\\"td param\\\"> <strong>node_id <span class=\\\"colon\\\">:</span> </strong> <div class=\\\"required\\\">required</div></div><div class=\\\"td\\\"> <strong class=\\\"param-type\\\">string</strong> <div marked=\\\"\\\" class=\\\"ng-isolate-scope\\\"> <p>ID of node you'd like to add the card number for</p></div></div></div></div></div></div>\"\n}\n[/block]\n##BODY PARAMETER\n[block:html]\n{\n  \"html\": \"<div class=\\\"api-manager\\\"> <div class=\\\"param-table\\\"> <div class=\\\"table\\\"> <div class=\\\"tr\\\"> <div class=\\\"td param\\\"> <strong>nickname<span class=\\\"colon\\\">:</span> </strong> <div class=\\\"required\\\">required</div></div><div class=\\\"td\\\"> <strong class=\\\"param-type\\\">string</strong> <div marked=\\\"\\\" class=\\\"ng-isolate-scope\\\"> <p>ID of user who owns node</p></div></div></div><div class=\\\"tr\\\"> <div class=\\\"td param\\\"> <strong>account_class<span class=\\\"colon\\\">:</span> </strong> <div class=\\\"required\\\">required</div></div><div class=\\\"td\\\"> <strong class=\\\"param-type\\\">string</strong> <div marked=\\\"\\\" class=\\\"ng-isolate-scope\\\"> <p>Type of subnet. this should be DEBIT_CARD</p></div></div></div></div></div></div>\"\n}\n[/block]\n##EXAMPLE REQUEST\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"POST /v3.1/users/59c9f69a89ec34002e1b4b2e/nodes/59c9f6a66d7d8a002f71b191/subnets HTTP/1.1\\nHost: uat-api.synapsefi.com\\nX-SP-USER-IP: 127.0.0.1\\nX-SP-USER: oauth_xEyuYzmPN6Rp120Kg08Ma3SdO4w5c9ZFBnWfbJer|e83cf6ddcf778e37bfe3d48fc78a6502062fc\\nContent-Type: application/json\\n\\n{\\n\\t\\\"nickname\\\":\\\"My Debit Card\\\",\\n\\t\\\"account_class\\\":\\\"DEBIT_CARD\\\"\\n}\",\n      \"language\": \"http\"\n    }\n  ]\n}\n[/block]\n##EXAMPLE RESPONSE\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n    \\\"_id\\\": \\\"59c9f77cd412960028b99d2b\\\",\\n    \\\"_links\\\": {\\n        \\\"self\\\": {\\n            \\\"href\\\": \\\"https://uat-api.synapsefi.com/v3.1/users/59c9f69a89ec34002e1b4b2e/nodes/59c9f6a66d7d8a002f71b191/subnets/59c9f77cd412960028b99d2b\\\"\\n        }\\n    },\\n    \\\"access_token\\\": \\\"5bc920f2fff373002bf0d51b\\\",\\n    \\\"account_class\\\": \\\"DEBIT_CARD\\\",\\n    \\\"card_hash\\\": \\\"78eb685b26d99d32538feb97cfd1274f994bdde48fa75471f22ba3029cbbc4e0\\\",\\n    \\\"card_number\\\": \\\"5431\\\",\\n    \\\"card_style_id\\\": null,\\n    \\\"client\\\": {\\n        \\\"id\\\": \\\"59c9f77cd412960028b99d2b\\\",\\n        \\\"name\\\": \\\"SynapseFI\\\"\\n    },\\n    \\\"cvc\\\": \\\"***\\\",\\n    \\\"exp\\\": \\\"2022-11-17\\\",\\n    \\\"nickname\\\": \\\"My Debit Card\\\",\\n    \\\"node_id\\\": \\\"59c9f6a66d7d8a002f71b191\\\",\\n    \\\"preferences\\\": {\\n        \\\"allow_foreign_transactions\\\": false,\\n        \\\"daily_atm_withdrawal_limit\\\": 100,\\n        \\\"daily_transaction_limit\\\": 1000,\\n        \\\"spending_limit\\\": false\\n    },\\n    \\\"status\\\": \\\"INACTIVE\\\",\\n    \\\"user_id\\\": \\\"59c9f69a89ec34002e1b4b2e\\\"\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nAfter the debit card is successfully created, the card's allowed status will be set to INACTIVE and the card's timeline will be updated to reflect that the card was created (see below):\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"\\\"timeline\\\": [\\n        {\\n            \\\"date\\\": 1538021004393,\\n            \\\"note\\\": \\\"Card created.\\\"\\n        }\\n    ]\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nYou have now successfully created a virtual card. Remember to update the card preferences before spending. These preferences include pos_withdrawal_limit, atm_withdrawal_limit, and allow_foreign_transactions.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"We recommend that you [subscribe to webhooks](https://docs.synapsefi.com/docs/subscribe-to-webhooks) to stay updated on the status of nodes.\",\n  \"title\": \"Subscribe to Webhooks\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"Please DO NOT store card numbers. Please also review the following before displaying card information.\\n\\n**Web Interfaces:**\\nIf you plan to have a web version of your app, we do not recommend displaying card_number, cvc and exp date unless you are PCI compliant. This is because you will have to route this through your server, even if you are not storing card information. We recommend using our UI as a Service component for this use case, so you can redirect users there when viewing card details.\\n\\n**App Interfaces:**\\nFor applications, you can do the GET API call in the app itself. That way you are in full control of the UI without transmitting card data through your servers. Here is what we recommend:\\n\\n1. OAuth the user on your server, but with only scope \\\"NODE|GET\\\"\\n2. Send this oauth_key to the user’s app\\n3. Do full_dehydrate=yes from the app\",\n  \"title\": \"PCI Considerations\"\n}\n[/block]\n**Next Step:** To print the card as a physical card, [ship a physical card](https://docs.synapsefi.com/docs/ship-card) to the user. This will be a physical copy of your virtual card - same card number, expiration and CVV.","excerpt":"Create a debit card for a Synapse native account","slug":"issue-a-card-number-1","type":"basic","title":"Issue a Card Number"}

Issue a Card Number

Create a debit card for a Synapse native account

[block:callout] { "type": "warning", "title": "Currently in Beta", "body": "Card number issuance is currently in beta (Sandbox only)." } [/block] After you [create a User](https://docs.synapsefi.com/docs/create-a-user-1), [OAuth the user](https://docs.synapsefi.com/docs/oauth-the-user) and open a [deposit account](https://docs.synapsefi.com/docs/opening-direct-deposit-accounts) or [FBO account](https://docs.synapsefi.com/docs/fbo-account-intro), you are ready to issue a debit card. Issuing a card number allows you to easily enable debit card capability to an already existing deposit or subaccount. This feature allows you to issue multiple card numbers to a single deposit or sub-account. This can be used to generate card numbers for specific services (internet, bills, etc.) or a pooled account with multiple cards attached. **Note:** Card numbers can only be issued for `DEPOSIT-US`, `SUBACCOUNT-US` and `LOAN-US` accounts that have been created with a base document id supplied. Please refer to [opening deposit accounts](doc:opening-direct-deposit-accounts) to learn more. If you previously opened an account without supplying a `document_id` you will have to create a new account with the document_id supplied. ##API ENDPOINT https://uat-api.synapsefi.com/v3.1/users/:user_id/nodes/:node_id/subnets ##PATH PARAMETER [block:html] { "html": "<div class=\"api-manager\"> <div class=\"param-table\"> <div class=\"table\"> <div class=\"tr\"> <div class=\"td param\"> <strong>user_id <span class=\"colon\">:</span> </strong> <div class=\"required\">required</div></div><div class=\"td\"> <strong class=\"param-type\">string</strong> <div marked=\"\" class=\"ng-isolate-scope\"> <p>ID of user who owns node</p></div></div></div><div class=\"tr\"> <div class=\"td param\"> <strong>node_id <span class=\"colon\">:</span> </strong> <div class=\"required\">required</div></div><div class=\"td\"> <strong class=\"param-type\">string</strong> <div marked=\"\" class=\"ng-isolate-scope\"> <p>ID of node you'd like to add the card number for</p></div></div></div></div></div></div>" } [/block] ##BODY PARAMETER [block:html] { "html": "<div class=\"api-manager\"> <div class=\"param-table\"> <div class=\"table\"> <div class=\"tr\"> <div class=\"td param\"> <strong>nickname<span class=\"colon\">:</span> </strong> <div class=\"required\">required</div></div><div class=\"td\"> <strong class=\"param-type\">string</strong> <div marked=\"\" class=\"ng-isolate-scope\"> <p>ID of user who owns node</p></div></div></div><div class=\"tr\"> <div class=\"td param\"> <strong>account_class<span class=\"colon\">:</span> </strong> <div class=\"required\">required</div></div><div class=\"td\"> <strong class=\"param-type\">string</strong> <div marked=\"\" class=\"ng-isolate-scope\"> <p>Type of subnet. this should be DEBIT_CARD</p></div></div></div></div></div></div>" } [/block] ##EXAMPLE REQUEST [block:code] { "codes": [ { "code": "POST /v3.1/users/59c9f69a89ec34002e1b4b2e/nodes/59c9f6a66d7d8a002f71b191/subnets HTTP/1.1\nHost: uat-api.synapsefi.com\nX-SP-USER-IP: 127.0.0.1\nX-SP-USER: oauth_xEyuYzmPN6Rp120Kg08Ma3SdO4w5c9ZFBnWfbJer|e83cf6ddcf778e37bfe3d48fc78a6502062fc\nContent-Type: application/json\n\n{\n\t\"nickname\":\"My Debit Card\",\n\t\"account_class\":\"DEBIT_CARD\"\n}", "language": "http" } ] } [/block] ##EXAMPLE RESPONSE [block:code] { "codes": [ { "code": "{\n \"_id\": \"59c9f77cd412960028b99d2b\",\n \"_links\": {\n \"self\": {\n \"href\": \"https://uat-api.synapsefi.com/v3.1/users/59c9f69a89ec34002e1b4b2e/nodes/59c9f6a66d7d8a002f71b191/subnets/59c9f77cd412960028b99d2b\"\n }\n },\n \"access_token\": \"5bc920f2fff373002bf0d51b\",\n \"account_class\": \"DEBIT_CARD\",\n \"card_hash\": \"78eb685b26d99d32538feb97cfd1274f994bdde48fa75471f22ba3029cbbc4e0\",\n \"card_number\": \"5431\",\n \"card_style_id\": null,\n \"client\": {\n \"id\": \"59c9f77cd412960028b99d2b\",\n \"name\": \"SynapseFI\"\n },\n \"cvc\": \"***\",\n \"exp\": \"2022-11-17\",\n \"nickname\": \"My Debit Card\",\n \"node_id\": \"59c9f6a66d7d8a002f71b191\",\n \"preferences\": {\n \"allow_foreign_transactions\": false,\n \"daily_atm_withdrawal_limit\": 100,\n \"daily_transaction_limit\": 1000,\n \"spending_limit\": false\n },\n \"status\": \"INACTIVE\",\n \"user_id\": \"59c9f69a89ec34002e1b4b2e\"\n}", "language": "json" } ] } [/block] After the debit card is successfully created, the card's allowed status will be set to INACTIVE and the card's timeline will be updated to reflect that the card was created (see below): [block:code] { "codes": [ { "code": "\"timeline\": [\n {\n \"date\": 1538021004393,\n \"note\": \"Card created.\"\n }\n ]", "language": "json" } ] } [/block] You have now successfully created a virtual card. Remember to update the card preferences before spending. These preferences include pos_withdrawal_limit, atm_withdrawal_limit, and allow_foreign_transactions. [block:callout] { "type": "info", "body": "We recommend that you [subscribe to webhooks](https://docs.synapsefi.com/docs/subscribe-to-webhooks) to stay updated on the status of nodes.", "title": "Subscribe to Webhooks" } [/block] [block:callout] { "type": "warning", "body": "Please DO NOT store card numbers. Please also review the following before displaying card information.\n\n**Web Interfaces:**\nIf you plan to have a web version of your app, we do not recommend displaying card_number, cvc and exp date unless you are PCI compliant. This is because you will have to route this through your server, even if you are not storing card information. We recommend using our UI as a Service component for this use case, so you can redirect users there when viewing card details.\n\n**App Interfaces:**\nFor applications, you can do the GET API call in the app itself. That way you are in full control of the UI without transmitting card data through your servers. Here is what we recommend:\n\n1. OAuth the user on your server, but with only scope \"NODE|GET\"\n2. Send this oauth_key to the user’s app\n3. Do full_dehydrate=yes from the app", "title": "PCI Considerations" } [/block] **Next Step:** To print the card as a physical card, [ship a physical card](https://docs.synapsefi.com/docs/ship-card) to the user. This will be a physical copy of your virtual card - same card number, expiration and CVV.