{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-products/rest/guides/sidebars.yaml","oas-products/rest/reference/index.yaml":"oas-products/rest/reference/index.yaml"},"props":{"metadata":{"markdoc":{"tagList":["json-schema","openapi-code-sample","admonition","partial"]},"type":"markdown"},"seo":{"title":"How to add a Debit Card","description":"Embed DailyPay On Demand Pay into your applications with our APIs and SDKs.","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":["openapi"],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"how-to-add-a-debit-card","__idx":0},"children":["How to add a Debit Card"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-is-the-payments-api","__idx":1},"children":["What is the Payments API?"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Note: You may also process debit card data and obtain a token using the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/rest/elements/debit-card-tokenization"},"children":["Debit Card Tokenization Element"]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Payments API is a PCI compliant endpoint and allows for secure debit card token creation. These tokens are used within DailyPay's APIs. When a tokenized debit card is added to a user’s account they can begin to take instant transfers."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["How does this work?"]}," A user's debit card data is sent via POST request to the Payments API. The debit card data is encrypted and tokenized before being returned. This tokenized card data is used for instant transfers via the Extend API."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"what-is-pci-compliance","__idx":2},"children":["What is PCI compliance?"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["It’s how we keep card data secure. DailyPay has a responsibility and legal requirement to protect debit card data therefore the Payments API endpoint complies with the Payment Card Industry Data Security Standards ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://www.pcisecuritystandards.org/"},"children":["PCI DSS"]},"."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["📘 ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Info"]}," ","DailyPay only handles card data during encryption and tokenization"," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["The Payments server is DailyPay’s only PCI compliant API."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"create-a-debit-card-token","__idx":3},"children":["Create a Debit Card Token"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Steps to create a tokenized debit card for use within DailyPay's APIs."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1-post-debit-card-data-to-the-payments-api","__idx":4},"children":["1. POST debit card data to the Payments API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After you have securely collected the debit card data for a user, create a POST to the PCI-compliant ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/rest/reference/card-tokenization"},"children":["Cards API"]}," with the following required parameters in this example."]},{"$$mdtype":"Tag","name":"details","attributes":{},"children":[{"$$mdtype":"Tag","name":"summary","attributes":{},"children":["Show parameters"]},{"$$mdtype":"Tag","name":"JsonSchema","attributes":{"schema":{"$ref":"../reference/index.yaml#/paths/~1cards~1generic/post/requestBody/content/application~1json/schema"},"options":{},"schemaResolved":{"openapi":"3.1.0","components":{"schemas":{"__root":{"$ref":"#/components/schemas/schema"},"schema":{"type":"object","required":["first_name","last_name","card_number","expiration_year","expiration_month","address_line_one","address_city","address_state","address_zip_code","address_country"],"properties":{"first_name":{"type":"string","description":"The first name or given name of the cardholder.","example":"Edith"},"last_name":{"type":"string","description":"The last name or surname of the cardholder.","example":"Clarke"},"card_number":{"type":"string","description":"The full card number without spaces or hyphenation.","example":"4007589999999912"},"expiration_year":{"type":"string","description":"The four-digit year of expiration for the card.","example":"2027"},"expiration_month":{"type":"string","description":"The two-digit month of the expiration date for the card.","example":"02"},"cvv":{"type":["string","null"],"description":"The CVV card code.","example":"123"},"address_line_one":{"type":"string","description":"The first line of the address associated with the card.","example":"123 Kebly Street"},"address_line_two":{"type":["string","null"],"description":"The second line of the address associated with the card.","example":"Unit C"},"address_city":{"type":"string","description":"The city component of the address associated with the card.","example":"Fort Lee"},"address_state":{"type":"string","description":"The two-letter state component of the address associated with the card.","example":"NJ"},"address_zip_code":{"type":"string","description":"The 5 digit zip-code component of the address associated with the card.","example":"07237"},"address_country":{"type":"string","description":"The two-letter ISO 3166 country code component of the address associated with the card.","example":"US"}}}}}},"schemaResolvedErrors":[]},"children":[]}]},{"$$mdtype":"Tag","name":"OpenApiCodeSample","attributes":{"descriptionFile":"oas-products/rest/reference/index.yaml","operationId":"createGenericCardToken","parameters":{},"environments":{},"codeSamplesResolved":[{"lang":"javascript","title":"JavaScript","source":"import { SDK } from \"@dailypay/dailypay\";\n\nconst sdk = new SDK();\n\nasync function run() {\n  const result = await sdk.cardTokenization.create({\n    firstName: \"Edith\",\n    lastName: \"Clarke\",\n    cardNumber: \"4007589999999912\",\n    expirationYear: \"2027\",\n    expirationMonth: \"02\",\n    cvv: \"123\",\n    addressLineOne: \"123 Kebly Street\",\n    addressLineTwo: \"Unit C\",\n    addressCity: \"Fort Lee\",\n    addressState: \"NJ\",\n    addressZipCode: \"07237\",\n    addressCountry: \"US\",\n  });\n\n  console.log(result);\n}\n\nrun();"},{"lang":"go","title":"Go","source":"package main\n\nimport(\n\t\"context\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New()\n\n    res, err := s.CardTokenization.Create(ctx, operations.CreateGenericCardTokenRequest{\n        FirstName: \"Edith\",\n        LastName: \"Clarke\",\n        CardNumber: \"4007589999999912\",\n        ExpirationYear: \"2027\",\n        ExpirationMonth: \"02\",\n        Cvv: dailypay.Pointer(\"123\"),\n        AddressLineOne: \"123 Kebly Street\",\n        AddressLineTwo: dailypay.Pointer(\"Unit C\"),\n        AddressCity: \"Fort Lee\",\n        AddressState: \"NJ\",\n        AddressZipCode: \"07237\",\n        AddressCountry: \"US\",\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.Object != nil {\n        // handle response\n    }\n}"},{"lang":"csharp","title":"C#","source":"using DailyPay.SDK.DotNet8;\nusing DailyPay.SDK.DotNet8.Models.Requests;\n\nvar sdk = new SDK();\n\nCreateGenericCardTokenRequest req = new CreateGenericCardTokenRequest() {\n    FirstName = \"Edith\",\n    LastName = \"Clarke\",\n    CardNumber = \"4007589999999912\",\n    ExpirationYear = \"2027\",\n    ExpirationMonth = \"02\",\n    Cvv = \"123\",\n    AddressLineOne = \"123 Kebly Street\",\n    AddressLineTwo = \"Unit C\",\n    AddressCity = \"Fort Lee\",\n    AddressState = \"NJ\",\n    AddressZipCode = \"07237\",\n    AddressCountry = \"US\",\n};\n\nvar res = await sdk.CardTokenization.CreateAsync(req);\n\n// handle response"},{"lang":"java","title":"Java","source":"package hello.world;\n\nimport com.dailypay.sdk.DailyPay;\nimport com.dailypay.sdk.models.operations.CreateGenericCardTokenRequest;\nimport com.dailypay.sdk.models.operations.CreateGenericCardTokenResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n    public static void main(String[] args) throws Exception {\n\n        DailyPay sdk = DailyPay.builder()\n            .build();\n\n        CreateGenericCardTokenRequest req = CreateGenericCardTokenRequest.builder()\n                .firstName(\"Edith\")\n                .lastName(\"Clarke\")\n                .cardNumber(\"4007589999999912\")\n                .expirationYear(\"2027\")\n                .expirationMonth(\"02\")\n                .addressLineOne(\"123 Kebly Street\")\n                .addressCity(\"Fort Lee\")\n                .addressState(\"NJ\")\n                .addressZipCode(\"07237\")\n                .addressCountry(\"US\")\n                .cvv(\"123\")\n                .addressLineTwo(\"Unit C\")\n                .build();\n\n        CreateGenericCardTokenResponse res = sdk.cardTokenization().create()\n                .request(req)\n                .call();\n\n        if (res.object().isPresent()) {\n            System.out.println(res.object().get());\n        }\n    }\n}"},{"lang":"python","title":"Python","source":"import requests\n\nurl = \"https://payments.dailypay.com/v2/cards/generic\"\n\npayload = {\n  \"first_name\": \"Edith\",\n  \"last_name\": \"Clarke\",\n  \"card_number\": \"4007589999999912\",\n  \"expiration_year\": \"2027\",\n  \"expiration_month\": \"02\",\n  \"cvv\": \"123\",\n  \"address_line_one\": \"123 Kebly Street\",\n  \"address_line_two\": \"Unit C\",\n  \"address_city\": \"Fort Lee\",\n  \"address_state\": \"NJ\",\n  \"address_zip_code\": \"07237\",\n  \"address_country\": \"US\"\n}\n\nheaders = {\"Content-Type\": \"application/json\"}\n\nresponse = requests.post(url, json=payload, headers=headers)\n\ndata = response.json()\nprint(data)"},{"lang":"ruby","title":"Ruby","source":"require 'json'\nrequire 'uri'\nrequire 'net/http'\nrequire 'openssl'\n\nurl = URI('https://payments.dailypay.com/v2/cards/generic')\n\nhttp = Net::HTTP.new(url.host, url.port)\nhttp.use_ssl = true\n\nrequest = Net::HTTP::Post.new(url)\nrequest['Content-Type'] = 'application/json'\nrequest.body = {\n  first_name: 'Edith',\n  last_name: 'Clarke',\n  card_number: '4007589999999912',\n  expiration_year: '2027',\n  expiration_month: '02',\n  cvv: '123',\n  address_line_one: '123 Kebly Street',\n  address_line_two: 'Unit C',\n  address_city: 'Fort Lee',\n  address_state: 'NJ',\n  address_zip_code: '07237',\n  address_country: 'US'\n}.to_json\n\nresponse = http.request(request)\nputs response.read_body\n"},{"lang":"shell","title":"cURL","source":"curl -i -X POST \\\n  https://payments.dailypay.com/v2/cards/generic \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"first_name\": \"Edith\",\n    \"last_name\": \"Clarke\",\n    \"card_number\": \"4007589999999912\",\n    \"expiration_year\": \"2027\",\n    \"expiration_month\": \"02\",\n    \"cvv\": \"123\",\n    \"address_line_one\": \"123 Kebly Street\",\n    \"address_line_two\": \"Unit C\",\n    \"address_city\": \"Fort Lee\",\n    \"address_state\": \"NJ\",\n    \"address_zip_code\": \"07237\",\n    \"address_country\": \"US\"\n  }'"}]},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"2-receive-and-handle-the-tokenized-card-data","__idx":5},"children":["2. Receive and handle the tokenized card data"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/rest/reference/card-tokenization"},"children":["Cards API"]}," returns an opaque string representing the card details."," ","This token is encrypted and complies with PCI DSS. You will need the token for step 3, after which it can be discarded."," ","The token is a long string with a structure similar to a JWT:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\"token\":\"s7dydhd7ih......jhfijuf245\"}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"3-post-the-token-to-the-extend-api","__idx":6},"children":["3. POST the token to the Extend API"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Authorization Required"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/rest/guides/auth/authorization-code-flow"},"children":["Proper authorization"]}," is required to create a debit card account."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Send the encrypted token in a POST request to the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/rest/reference/accounts/createaccount"},"children":["accounts endpoint"]}," as the value for the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token"]}," field in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["details"]}," object. This will create a transfer account and allow a user to start taking transfers."]},{"$$mdtype":"Tag","name":"OpenApiCodeSample","attributes":{"descriptionFile":"oas-products/rest/reference/index.yaml","operationId":"createAccount","exampleKey":"Card","parameters":{},"environments":{},"codeSamplesResolved":[{"lang":"javascript","title":"JavaScript","source":"import { SDK } from \"@dailypay/dailypay\";\n\nconst sdk = new SDK({\n  version: 3,\n  security: {\n    oauthUserToken: \"<YOUR_OAUTH_USER_TOKEN_HERE>\",\n  },\n});\n\nasync function run() {\n  const result = await sdk.accounts.create({\n    data: {\n      type: \"accounts\",\n      attributes: {\n        name: \"Acme Bank Checking Account\",\n        accountType: \"DEPOSITORY\",\n        subtype: \"CHECKING\",\n        depositoryAccountDetails: {\n          firstName: \"Edith\",\n          lastName: \"Clarke\",\n          routingNumber: \"XXXXX2021\",\n          accountNumber: \"XXXXXX4321\",\n        },\n      },\n      relationships: {\n        person: {\n          data: {\n            type: \"people\",\n            id: \"3fa8f641-5717-4562-b3fc-2c963f66afa6\",\n          },\n        },\n      },\n    },\n  });\n\n  console.log(result);\n}\n\nrun();"},{"lang":"go","title":"Go","source":"package main\n\nimport(\n\t\"context\"\n\t\"github.com/dailypay/dailypay-go-sdk/models/components\"\n\tdailypay \"github.com/dailypay/dailypay-go-sdk\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := dailypay.New(\n        dailypay.WithVersion(3),\n        dailypay.WithSecurity(components.Security{\n            OauthUserToken: dailypay.Pointer(\"<YOUR_OAUTH_USER_TOKEN_HERE>\"),\n        }),\n    )\n\n    res, err := s.Accounts.Create(ctx, components.AccountCreateData{\n        Data: components.AccountCreateResource{\n            Attributes: components.CreateAccountCreateAttributesAccountCreateAttributesDepository(\n                components.AccountCreateAttributesDepository{\n                    Name: \"Acme Bank Checking Account\",\n                    Subtype: components.AccountCreateAttributesDepositorySubtypeChecking,\n                    DepositoryAccountDetails: components.AccountCreateAttributesDepositoryDepositoryAccountDetails{\n                        FirstName: \"Edith\",\n                        LastName: \"Clarke\",\n                        RoutingNumber: \"XXXXX2021\",\n                        AccountNumber: \"XXXXXX4321\",\n                    },\n                },\n            ),\n            Relationships: components.AccountRelationships{\n                Person: components.PersonRelationship{\n                    Data: components.PersonIdentifier{\n                        ID: \"3fa8f641-5717-4562-b3fc-2c963f66afa6\",\n                    },\n                },\n            },\n        },\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.AccountData != nil {\n        // handle response\n    }\n}"},{"lang":"csharp","title":"C#","source":"using DailyPay.SDK.DotNet8;\nusing DailyPay.SDK.DotNet8.Models.Components;\nusing DailyPay.SDK.DotNet8.Models.Requests;\n\nvar sdk = new SDK(\n    version: 3,\n    security: new Security() {\n        OauthUserToken = \"<YOUR_OAUTH_USER_TOKEN_HERE>\",\n    }\n);\n\nCreateAccountRequest req = new CreateAccountRequest() {\n    AccountCreateData = new AccountCreateData() {\n        Data = new AccountCreateResource() {\n            Attributes = AccountCreateAttributes.CreateAccountCreateAttributesDepository(\n                new AccountCreateAttributesDepository() {\n                    Name = \"Acme Bank Checking Account\",\n                    Subtype = AccountCreateAttributesDepositorySubtype.Checking,\n                    DepositoryAccountDetails = new AccountCreateAttributesDepositoryDepositoryAccountDetails() {\n                        FirstName = \"Edith\",\n                        LastName = \"Clarke\",\n                        RoutingNumber = \"XXXXX2021\",\n                        AccountNumber = \"XXXXXX4321\",\n                    },\n                }\n            ),\n            Relationships = new AccountRelationships() {\n                Person = new PersonRelationship() {\n                    Data = new PersonIdentifier() {\n                        Id = \"3fa8f641-5717-4562-b3fc-2c963f66afa6\",\n                    },\n                },\n            },\n        },\n    },\n};\n\nvar res = await sdk.Accounts.CreateAsync(req);\n\n// handle response"},{"lang":"java","title":"Java","source":"package hello.world;\n\nimport com.dailypay.sdk.DailyPay;\nimport com.dailypay.sdk.models.components.*;\nimport com.dailypay.sdk.models.errors.*;\nimport com.dailypay.sdk.models.operations.CreateAccountResponse;\nimport java.lang.Exception;\n\npublic class Application {\n\n    public static void main(String[] args) throws AccountCreateError, ErrorUnauthorized, ErrorForbidden, ErrorUnexpected, Exception {\n\n        DailyPay sdk = DailyPay.builder()\n                .version(3L)\n                .security(Security.builder()\n                    .oauthUserToken(System.getenv().getOrDefault(\"OAUTH_USER_TOKEN\", \"\"))\n                    .build())\n            .build();\n\n        AccountCreateData req = AccountCreateData.builder()\n                .data(AccountCreateResource.builder()\n                    .attributes(AccountCreateAttributes.of(AccountCreateAttributesDepository.builder()\n                        .name(\"Acme Bank Checking Account\")\n                        .subtype(AccountCreateAttributesDepositorySubtype.CHECKING)\n                        .depositoryAccountDetails(AccountCreateAttributesDepositoryDepositoryAccountDetails.builder()\n                            .firstName(\"Edith\")\n                            .lastName(\"Clarke\")\n                            .routingNumber(\"XXXXX2021\")\n                            .accountNumber(\"XXXXXX4321\")\n                            .build())\n                        .build()))\n                    .relationships(AccountRelationships.builder()\n                        .person(PersonRelationship.builder()\n                            .data(PersonIdentifier.builder()\n                                .id(\"3fa8f641-5717-4562-b3fc-2c963f66afa6\")\n                                .build())\n                            .build())\n                        .build())\n                    .build())\n                .build();\n\n        CreateAccountResponse res = sdk.accounts().create()\n                .request(req)\n                .call();\n\n        if (res.accountData().isPresent()) {\n            System.out.println(res.accountData().get());\n        }\n    }\n}"},{"lang":"python","title":"Python","source":"import requests\n\nurl = \"https://api.{environment}.com/rest/accounts\"\n\npayload = {\n  \"data\": {\n    \"type\": \"accounts\",\n    \"attributes\": {\n      \"name\": \"Acme Bank Debit Card\",\n      \"account_type\": \"CARD\",\n      \"subtype\": \"DEBIT\",\n      \"details\": {\n        \"token\": \"abc.efg.123\",\n        \"first_name\": \"Edith\",\n        \"last_name\": \"Clarke\",\n        \"expiration_month\": \"02\",\n        \"expiration_year\": \"2027\",\n        \"address_line_one\": \"123 Kebly Street\",\n        \"address_city\": \"Fort Lee\",\n        \"address_state\": \"NJ\",\n        \"address_zip_code\": \"72374\",\n        \"address_country\": \"US\",\n        \"issuer\": \"411600\"\n      }\n    },\n    \"relationships\": {\n      \"person\": {\n        \"data\": {\n          \"type\": \"people\",\n          \"id\": \"3fa8f641-5717-4562-b3fc-2c963f66afa6\"\n        }\n      }\n    }\n  }\n}\n\nheaders = {\n  \"Content-Type\": \"application/vnd.api+json\",\n  \"DailyPay-API-Version\": \"3\",\n  \"Authorization\": \"Bearer <YOUR_TOKEN_HERE>\"\n}\n\nresponse = requests.post(url, json=payload, headers=headers)\n\ndata = response.json()\nprint(data)"},{"lang":"ruby","title":"Ruby","source":"require 'json'\nrequire 'uri'\nrequire 'net/http'\nrequire 'openssl'\n\nurl = URI('https://api.{environment}.com/rest/accounts')\n\nhttp = Net::HTTP.new(url.host, url.port)\nhttp.use_ssl = true\n\nrequest = Net::HTTP::Post.new(url)\nrequest['Content-Type'] = 'application/vnd.api+json'\nrequest['DailyPay-API-Version'] = '3'\nrequest['Authorization'] = 'Bearer <YOUR_TOKEN_HERE>'\nrequest.body = {\n  data: {\n    type: 'accounts',\n    attributes: {\n      name: 'Acme Bank Debit Card',\n      account_type: 'CARD',\n      subtype: 'DEBIT',\n      details: {\n        token: 'abc.efg.123',\n        first_name: 'Edith',\n        last_name: 'Clarke',\n        expiration_month: '02',\n        expiration_year: '2027',\n        address_line_one: '123 Kebly Street',\n        address_city: 'Fort Lee',\n        address_state: 'NJ',\n        address_zip_code: '72374',\n        address_country: 'US',\n        issuer: '411600'\n      }\n    },\n    relationships: {\n      person: {\n        data: {\n          type: 'people',\n          id: '3fa8f641-5717-4562-b3fc-2c963f66afa6'\n        }\n      }\n    }\n  }\n}.to_json\n\nresponse = http.request(request)\nputs response.read_body\n"},{"lang":"shell","title":"cURL","source":"curl -i -X POST \\\n  'https://api.{environment}.com/rest/accounts' \\\n  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \\\n  -H 'Content-Type: application/vnd.api+json' \\\n  -H 'DailyPay-API-Version: 3' \\\n  -d '{\n    \"data\": {\n      \"type\": \"accounts\",\n      \"attributes\": {\n        \"name\": \"Acme Bank Debit Card\",\n        \"account_type\": \"CARD\",\n        \"subtype\": \"DEBIT\",\n        \"details\": {\n          \"token\": \"abc.efg.123\",\n          \"first_name\": \"Edith\",\n          \"last_name\": \"Clarke\",\n          \"expiration_month\": \"02\",\n          \"expiration_year\": \"2027\",\n          \"address_line_one\": \"123 Kebly Street\",\n          \"address_city\": \"Fort Lee\",\n          \"address_state\": \"NJ\",\n          \"address_zip_code\": \"72374\",\n          \"address_country\": \"US\",\n          \"issuer\": \"411600\"\n        }\n      },\n      \"relationships\": {\n        \"person\": {\n          \"data\": {\n            \"type\": \"people\",\n            \"id\": \"3fa8f641-5717-4562-b3fc-2c963f66afa6\"\n          }\n        }\n      }\n    }\n  }'"}]},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"using-accounts-in-uat","__idx":7},"children":["Using Accounts in UAT"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["DailyPay provides test accounts to support your development and QA processes."," ","In addition, DailyPay's UAT environment restricts the bank accounts and debit cards that may be used."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"bank-accounts","__idx":8},"children":["Bank Accounts"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["DailyPay's UAT environment requires bank accounts that meet the following rules:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Routing number must be ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["021000021"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Account number must be any integer with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["eight or more digits"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"debit-cards","__idx":9},"children":["Debit Cards"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following test debit card numbers may be used and are compatible with the UAT environment:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["5555555555554444"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["4111111111111111"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["4111171111111115"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Note"]},": Each of the cards above may be added to multiple users. DailyPay's duplicate card checks and fraud prevention measures will not be triggered."]}]}]},"headings":[{"value":"How to add a Debit Card","id":"how-to-add-a-debit-card","depth":1},{"value":"What is the Payments API?","id":"what-is-the-payments-api","depth":2},{"value":"What is PCI compliance?","id":"what-is-pci-compliance","depth":3},{"value":"Create a Debit Card Token","id":"create-a-debit-card-token","depth":2},{"value":"1. POST debit card data to the Payments API","id":"1-post-debit-card-data-to-the-payments-api","depth":3},{"value":"2. Receive and handle the tokenized card data","id":"2-receive-and-handle-the-tokenized-card-data","depth":3},{"value":"3. POST the token to the Extend API","id":"3-post-the-token-to-the-extend-api","depth":3},{"value":"Using Accounts in UAT","id":"using-accounts-in-uat","depth":3},{"value":"Bank Accounts","id":"bank-accounts","depth":4},{"value":"Debit Cards","id":"debit-cards","depth":4}],"frontmatter":{"seo":{"title":"How to add a Debit Card"}},"lastModified":"2026-07-14T14:30:25.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/rest/guides/payments","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}