---
title: Open account
slug: apis/accounts/account-mgmt-apis/open-a-deposit-account
description: Open a deposit account using POST /core/v1/dda/accounts, specifying customer and product IDs, and address details.
icon: {"apiMethod":"POST"}
docTags: 
createdAt: 2025-05-07T05:52:22.193Z
---

## Relevant webhooks

For this endpoint be sure you have [registered](docId\:BN5XtgkJogBe-CtwomCbS) for these webhooks:

- [Core.Account.Opened](docId\:eAs8aFqW7M97baeZUC8Sr)&#x20;
- Core.Account.Closed

## API reference

Creates a deposit account for a specific customer using the customer ID and based on the product ID for that type of account.

:::ApiMethodV2
```json
{
  "name": "Endpoint: /v1/dda/accounts",
  "method": "POST",
  "url": "https://sandbox.crbcos.com/core/v1/dda/accounts",
  "description": "",
  "tab": "examples",
  "examples": {
    "languages": [
      {
        "id": "TkkpRJVwm9o-A0Jz7Ux6D",
        "language": "curl",
        "code": "curl --location 'https://sandbox.crbcos.com/core/v1/dda/accounts' \\\n--header 'Idempotency-key: 025aaf3e-87e5-46e6-ba60-2071c3a69be8' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: Bearer <token>' \\\n--data '{\n  \"customerId\": \"53c34cf0-4cd2-4768-937b-b30000dffdca\",\n  \"productId\": \"83bed086-8182-4151-a1e3-af5b01362783\",\n  \"title\": \"Jerry Penn\",\n  \"statementAddress\": {\n    \"street1\": \"12 Main St\",\n    \"city\": \"New York\",\n    \"state\": \"NY\",\n    \"postalCode\": \"10001\",\n    \"countryCode\": \"US\"\n  }\n}\n\n'",
        "customLabel": ""
      },
      {
        "id": "XH3cOVfBXlwQz4cv9gDvV",
        "language": "nodejs",
        "code": "var https = require('follow-redirects').https;\nvar fs = require('fs');\n\nvar options = {\n  'method': 'POST',\n  'hostname': 'sandbox.crbcos.com',\n  'path': '/core/v1/dda/accounts',\n  'headers': {\n    'Idempotency-key': '025aaf3e-87e5-46e6-ba60-2071c3a69be8',\n    'Content-Type': 'application/json',\n    'Authorization': 'Bearer <token>'\n  },\n  'maxRedirects': 20\n};\n\nvar req = https.request(options, function (res) {\n  var chunks = [];\n\n  res.on(\"data\", function (chunk) {\n    chunks.push(chunk);\n  });\n\n  res.on(\"end\", function (chunk) {\n    var body = Buffer.concat(chunks);\n    console.log(body.toString());\n  });\n\n  res.on(\"error\", function (error) {\n    console.error(error);\n  });\n});\n\nvar postData = JSON.stringify({\n  \"customerId\": \"53c34cf0-4cd2-4768-937b-b30000dffdca\",\n  \"productId\": \"83bed086-8182-4151-a1e3-af5b01362783\",\n  \"title\": \"Jerry Penn\",\n  \"statementAddress\": {\n    \"street1\": \"12 Main St\",\n    \"city\": \"New York\",\n    \"state\": \"NY\",\n    \"postalCode\": \"10001\",\n    \"countryCode\": \"US\"\n  }\n});\n\nreq.write(postData);\n\nreq.end();",
        "customLabel": ""
      },
      {
        "id": "aEVC5E2Js9DdxzS22O3Fb",
        "language": "python",
        "code": "import requests\nimport json\n\nurl = \"https://sandbox.crbcos.com/core/v1/dda/accounts\"\n\npayload = json.dumps({\n  \"customerId\": \"53c34cf0-4cd2-4768-937b-b30000dffdca\",\n  \"productId\": \"83bed086-8182-4151-a1e3-af5b01362783\",\n  \"title\": \"Jerry Penn\",\n  \"statementAddress\": {\n    \"street1\": \"12 Main St\",\n    \"city\": \"New York\",\n    \"state\": \"NY\",\n    \"postalCode\": \"10001\",\n    \"countryCode\": \"US\"\n  }\n})\nheaders = {\n  'Idempotency-key': '025aaf3e-87e5-46e6-ba60-2071c3a69be8',\n  'Content-Type': 'application/json',\n  'Authorization': 'Bearer <token>'\n}\n\nresponse = requests.request(\"POST\", url, headers=headers, data=payload)\n\nprint(response.text)\n",
        "customLabel": ""
      },
      {
        "id": "XlslCd0KYWmTiLqmtxpl1",
        "language": "ruby",
        "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"https://sandbox.crbcos.com/core/v1/dda/accounts\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Post.new(url)\nrequest[\"Idempotency-key\"] = \"025aaf3e-87e5-46e6-ba60-2071c3a69be8\"\nrequest[\"Content-Type\"] = \"application/json\"\nrequest[\"Authorization\"] = \"Bearer <token>\"\nrequest.body = JSON.dump({\n  \"customerId\": \"53c34cf0-4cd2-4768-937b-b30000dffdca\",\n  \"productId\": \"83bed086-8182-4151-a1e3-af5b01362783\",\n  \"title\": \"Jerry Penn\",\n  \"statementAddress\": {\n    \"street1\": \"12 Main St\",\n    \"city\": \"New York\",\n    \"state\": \"NY\",\n    \"postalCode\": \"10001\",\n    \"countryCode\": \"US\"\n  }\n})\n\nresponse = https.request(request)\nputs response.read_body\n",
        "customLabel": ""
      },
      {
        "id": "YG_DItEW4xV27MuNMwjzC",
        "language": "go",
        "code": "package main\n\nimport (\n  \"fmt\"\n  \"strings\"\n  \"net/http\"\n  \"io\"\n)\n\nfunc main() {\n\n  url := \"https://sandbox.crbcos.com/core/v1/dda/accounts\"\n  method := \"POST\"\n\n  payload := strings.NewReader(`{`+\"\n\"+`\n  \"customerId\": \"53c34cf0-4cd2-4768-937b-b30000dffdca\",`+\"\n\"+`\n  \"productId\": \"83bed086-8182-4151-a1e3-af5b01362783\",`+\"\n\"+`\n  \"title\": \"Jerry Penn\",`+\"\n\"+`\n  \"statementAddress\": {`+\"\n\"+`\n    \"street1\": \"12 Main St\",`+\"\n\"+`\n    \"city\": \"New York\",`+\"\n\"+`\n    \"state\": \"NY\",`+\"\n\"+`\n    \"postalCode\": \"10001\",`+\"\n\"+`\n    \"countryCode\": \"US\"`+\"\n\"+`\n  }`+\"\n\"+`\n}`+\"\n\"+`\n`+\"\n\"+`\n`)\n\n  client := &http.Client {\n  }\n  req, err := http.NewRequest(method, url, payload)\n\n  if err != nil {\n    fmt.Println(err)\n    return\n  }\n  req.Header.Add(\"Idempotency-key\", \"025aaf3e-87e5-46e6-ba60-2071c3a69be8\")\n  req.Header.Add(\"Content-Type\", \"application/json\")\n  req.Header.Add(\"Authorization\", \"Bearer <token>\")\n\n  res, err := client.Do(req)\n  if err != nil {\n    fmt.Println(err)\n    return\n  }\n  defer res.Body.Close()\n\n  body, err := io.ReadAll(res.Body)\n  if err != nil {\n    fmt.Println(err)\n    return\n  }\n  fmt.Println(string(body))\n}",
        "customLabel": ""
      }
    ],
    "selectedLanguageId": "TkkpRJVwm9o-A0Jz7Ux6D"
  },
  "results": {
    "languages": [
      {
        "id": "g99c9siiTaND8YQGYvOkr",
        "language": "200",
        "customLabel": "",
        "code": "{\n    \"accountNumber\": \"2819503463\",\n    \"status\": \"Active\",\n    \"accountType\": \"Deposit\",\n    \"ledgerType\": \"Passthrough\",\n    \"classification\": \"Personal\",\n    \"productType\": \"Checking\",\n    \"productId\": \"83bed086-8182-4151-a1e3-af5b01362783\",\n    \"title\": \"Jerry Penn\",\n    \"currentBalance\": 0,\n    \"holdAmount\": 0,\n    \"transactionCount\": 0,\n    \"availableBalance\": 0,\n    \"creditLimit\": 0,\n    \"overdraftFundingEnabled\": false,\n    \"overdraftFundingThreshold\": 0,\n    \"currency\": \"usd\",\n    \"customerId\": \"53c34cf0-4cd2-4768-937b-b30000dffdca\",\n    \"statementAddress\": {\n        \"street1\": \"12 Main St\",\n        \"city\": \"New York\",\n        \"state\": \"NY\",\n        \"postalCode\": \"10001\",\n        \"countryCode\": \"US\"\n    },\n    \"openedAt\": \"2025-06-18T09:41:00.9073289-04:00\",\n    \"lastMaintenanceAt\": \"2025-06-18T09:41:00.9073289-04:00\",\n    \"partnerId\": \"cd9c12f4-7691-424a-b38b-af5b0134c611\",\n    \"lastModifiedAt\": \"2025-06-18T09:41:00.9073289-04:00\"\n}"
      }
    ],
    "selectedLanguageId": "g99c9siiTaND8YQGYvOkr"
  },
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "name": "customerId",
        "kind": "required",
        "type": "string",
        "description": "The unique ID assigned to a customer when the customer record is created. You need this ID to take action for a specific customer. For example, when opening an account or adding an address to a customer record.\nThe ID is in GUID format.",
        "": "The unique ID assigned to a customer when the customer record is created. You need this ID to take action for a specific customer. For example, when opening an account or adding an address to a customer record.\nThe ID is in GUID format."
      },
      {
        "name": "productId",
        "kind": "required",
        "type": "string",
        "description": "ID in GUID format of your specific product type on which the account is based. Provided by Cross River.",
        "": "ID in GUID format of your specific product type on which the account is based. Provided by Cross River."
      },
      {
        "name": "title",
        "kind": "required",
        "type": "string",
        "description": "The name on the account. Usually this is the account holder name, but not always.\n255 characters maximum.",
        "": "The name on the account. Usually this is the account holder name, but not always.\n255 characters maximum."
      },
      {
        "name": "statementAddress",
        "kind": "required",
        "type": "Object",
        "description": "Mailing address for paper statement delivery",
        "children": [
          {
            "name": "street1",
            "kind": "required",
            "type": "string",
            "description": "Primary location details of account holder, for instance, street name, house/building number, PO box.\n255 character maximum."
          },
          {
            "name": "street2",
            "kind": "optional",
            "type": "string",
            "description": "Additional address information.\n255 characters maximum."
          },
          {
            "name": "street3",
            "kind": "optional",
            "type": "string",
            "description": "Additional address information.\n255 characters maximum."
          },
          {
            "name": "city",
            "kind": "required",
            "type": "string",
            "description": "City full name.\n255 characters maximum."
          },
          {
            "name": "state",
            "kind": "optional",
            "type": "string",
            "description": "State name. We recommend you enter the 2-character state code.\n255 characters maximum."
          },
          {
            "name": "postalCode",
            "kind": "required",
            "type": "string",
            "description": "Postal code, also known as ZIP code\n50 characters maximum."
          },
          {
            "name": "countryCode",
            "kind": "required",
            "type": "string",
            "description": "2-letter ISO country code"
          }
        ],
        "schema": [
          {
            "name": "street1",
            "kind": "required",
            "type": "string",
            "description": "Primary location details of account holder, for instance, street name, house/building number, PO box.\n255 character maximum."
          },
          {
            "name": "street2",
            "kind": "optional",
            "type": "string",
            "description": "Additional address information.\n255 characters maximum."
          },
          {
            "name": "street3",
            "kind": "optional",
            "type": "string",
            "description": "Additional address information.\n255 characters maximum."
          },
          {
            "name": "city",
            "kind": "required",
            "type": "string",
            "description": "City full name.\n255 characters maximum."
          },
          {
            "name": "state",
            "kind": "optional",
            "type": "string",
            "description": "State name. We recommend you enter the 2-character state code.\n255 characters maximum."
          },
          {
            "name": "postalCode",
            "kind": "required",
            "type": "string",
            "description": "Postal code, also known as ZIP code\n50 characters maximum."
          },
          {
            "name": "countryCode",
            "kind": "required",
            "type": "string",
            "description": "2-letter ISO country code"
          }
        ]
      },
      {
        "name": "clientIdentifier",
        "kind": "optional",
        "type": "string",
        "description": "Use this attribute to add your own unique identifying string to a payment call or COS record. This attribute is useful for idempotency purposes.",
        "children": []
      },
      {
        "name": "rateCard",
        "kind": "optional",
        "type": "string",
        "description": "ID of the account's assigned, pre-configured interest rate profile, in GUID format",
        "children": []
      }
    ],
    "formDataParameters": []
  },
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "response": [
    {
      "name": "accountNumber",
      "kind": "optional",
      "type": "string",
      "description": "Account number of the newly created account"
    },
    {
      "name": "status",
      "kind": "optional",
      "type": "string",
      "description": "Account status:\n- Inactive\n- Active\n- Dormant\n- Escheat\n- Closed",
      "children": []
    },
    {
      "name": "accountType",
      "kind": "optional",
      "type": "string",
      "description": "Deposit account type:\n- GeneralLedger\n- Deposit\n- CreditCard\n- StoredValue\n- Wallet\n- Unknown",
      "children": []
    },
    {
      "name": "ledgerType",
      "kind": "optional",
      "type": "string",
      "description": "Ledger type:\n- Passthrough\n- Direct",
      "children": []
    },
    {
      "name": "classification",
      "kind": "optional",
      "type": "string",
      "description": "Deposit account classification:\n- Personal\n- Business",
      "children": []
    },
    {
      "name": "productType",
      "kind": "optional",
      "type": "string",
      "description": "Product type associated with the deposit account:\n- GeneralLedger\n- Checking\n- Savings\n- TimeDeposit\n- MoneyMarket\n- CreditCard\n- StoredValue\n- Wallet\n- Unknown",
      "children": []
    },
    {
      "name": "closureReason",
      "kind": "optional",
      "type": "string",
      "description": "Reason account was closed",
      "children": []
    },
    {
      "name": "productId",
      "kind": "optional",
      "type": "string",
      "description": "ID in GUID format of your specific product type on which the account is based. Provided by Cross River.",
      "children": []
    },
    {
      "name": "title",
      "kind": "optional",
      "type": "string",
      "description": "The name on the account. Usually this is the account holder name, but not always.",
      "children": []
    },
    {
      "name": "currentBalance",
      "kind": "optional",
      "type": "Integer",
      "description": "Current balance. A negative amount means a debit and a positive amount means a credit.",
      "children": []
    },
    {
      "name": "holdAmount",
      "kind": "optional",
      "type": "Integer",
      "description": "Amount of the hold (if any) placed on the deposit account",
      "children": []
    },
    {
      "name": "transactionCount",
      "kind": "optional",
      "type": "Integer",
      "description": "Total number of transactions posted to the account",
      "children": []
    },
    {
      "name": "availableBalance",
      "kind": "optional",
      "type": "Integer",
      "description": "Available amount of the balance. A negative amount means a debit and a positive amount means a credit.",
      "children": []
    },
    {
      "name": "creditLimit",
      "kind": "optional",
      "type": "Integer",
      "description": "Credit limit of the account customer",
      "children": []
    },
    {
      "name": "overdraftFundingEnabled",
      "kind": "optional",
      "type": "boolean",
      "description": "True if overdraft funding is enabled. Otherwise false.",
      "children": []
    },
    {
      "name": "overdraftFundingThreshold",
      "kind": "optional",
      "type": "integer",
      "description": "The desired ending balance at the end of each day. If the balance is less, funds are pulled from the funding account.",
      "children": []
    },
    {
      "name": "overdraftFundingAccountNumber",
      "kind": "optional",
      "type": "string",
      "description": "Account number of the account used to fund the account if at the end of the day the balance is less than the overdraft funding threshold.",
      "children": []
    },
    {
      "name": "currency",
      "kind": "optional",
      "type": "string",
      "description": "Currency held in the account",
      "children": []
    },
    {
      "name": "customerId",
      "kind": "optional",
      "type": "string",
      "description": "The unique ID assigned to a customer when the customer record is created. You need this ID to take action for a specific customer. For example, when opening an account or adding an address to a customer record.",
      "children": []
    },
    {
      "name": "statementAddress",
      "kind": "optional",
      "type": "Object",
      "description": "Mailing address for paper statement delivery",
      "children": [
        {
          "name": "street1",
          "kind": "optional",
          "type": "string",
          "description": "Primary location details of account holder, for instance, street name, house/building number, PO box."
        },
        {
          "name": "street2",
          "kind": "optional",
          "type": "string",
          "description": "Additional address information"
        },
        {
          "name": "street3",
          "kind": "optional",
          "type": "string",
          "description": "Additional address information"
        },
        {
          "name": "city",
          "kind": "optional",
          "type": "string",
          "description": "City full name"
        },
        {
          "name": "state",
          "kind": "optional",
          "type": "string",
          "description": "State name. We recommend you enter the 2-character state code."
        },
        {
          "name": "postalCode",
          "kind": "optional",
          "type": "string",
          "description": "Postal code, also known as ZIP code"
        },
        {
          "name": "countryCode",
          "kind": "optional",
          "type": "string",
          "description": "2-letter ISO country code"
        }
      ]
    },
    {
      "name": "openedAt",
      "kind": "optional",
      "type": "string",
      "description": "Date and time the deposit account was opened. The date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm]",
      "children": []
    },
    {
      "name": "lastMaintenanceAt",
      "kind": "optional",
      "type": "string",
      "description": "Date and time the deposit account last had maintenance performed on it. The date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm]",
      "children": []
    },
    {
      "name": "lastContactAt",
      "kind": "optional",
      "type": "string",
      "description": "Date and time Cross River last made contact with the deposit account holder. The date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm]",
      "children": []
    },
    {
      "name": "lastTransactedAt",
      "kind": "optional",
      "type": "string",
      "description": "The date and time a transaction last took place on the deposit account. The date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm]",
      "children": []
    },
    {
      "name": "closedAt",
      "kind": "optional",
      "type": "string",
      "description": "Date and time the deposit account was closed. The date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm]",
      "children": []
    },
    {
      "name": "clientIdentifier",
      "kind": "optional",
      "type": "string",
      "description": "Your own unique identifying string to a payment call or COS record. This attribute is useful for idempotency purposes.",
      "children": []
    },
    {
      "name": "partnerId",
      "kind": "optional",
      "type": "string",
      "description": "Your unique ID in the Cross River system. This ID is in GUID format.",
      "children": []
    },
    {
      "name": "lastModifiedAt",
      "kind": "optional",
      "type": "string",
      "description": "Internal Cross River value. Date and time the database entry was last modified. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm]",
      "children": []
    },
    {
      "name": "rateCard",
      "kind": "optional",
      "type": "string",
      "description": "ID of the account's assigned, pre-configured interest rate profile, in GUID format",
      "children": []
    },
    {
      "name": "balances",
      "kind": "optional",
      "type": "object",
      "description": "There can be multiple account balances listed",
      "children": [
        {
          "name": "accountNumber",
          "kind": "optional",
          "type": "string",
          "description": "Number of the account this information describes"
        },
        {
          "name": "isSubAccount",
          "kind": "optional",
          "type": "boolean",
          "description": "If the account balance presented is for a subledger, true. Otherwise false."
        },
        {
          "name": "currency",
          "kind": "optional",
          "type": "string",
          "description": "Currency held in the account"
        },
        {
          "name": "currentBalance",
          "kind": "optional",
          "type": "integer",
          "description": "Balance including all transactions even if they have not yet settled"
        },
        {
          "name": "availableBalance",
          "kind": "optional",
          "type": "integer",
          "description": "Balance available to the account holder"
        },
        {
          "name": "holdAmount",
          "kind": "optional",
          "type": "integer",
          "description": "Amount of funds that cannot yet be accessed because the funds are on hold"
        },
        {
          "name": "transactionCount",
          "kind": "optional",
          "type": "integer",
          "description": "Number of transactions in the last period"
        },
        {
          "name": "lastModifiedAt",
          "kind": "optional",
          "type": "string",
          "description": "Internal Cross River value. Date and time the database entry was last modified. In this case, the date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm]"
        },
        {
          "name": "lastTransactedAt",
          "kind": "optional",
          "type": "string",
          "description": "The date and time a transaction last took place on the account. The date and time are in this format: yyyy-mm-ddThh:mm:ss[.mmm]"
        }
      ]
    }
  ],
  "hasTryItOut": false,
  "autoGeneratedAnchorSlug": "endpoint-v1ddaaccounts",
  "legacyHash": "r2ZPT6_tgsf2F9Evv9nR3"
}
```
:::

