Gravv docs
Docs Agent Sign in Get API keys

Get account requirements

Returns the form that create checks for one bank, currency and customer type: fields, documents, party rules and token networks. Send customer_id to see the values already on file, and country so that this call chooses the same bank as create.

A field is needed only when required is true and its applies_when and required_when conditions hold. When has_existing_ref is true, send no data.root on create. When existing_application is present, finish that application instead.

GEThttps://api.gravv.xyz/v2/accounts/requirements

Query Parameters

Possible values: individual, business

Three-letter ISO 4217 code

A bank_code from the capabilities

Possible values: main, sub_account, virtual, multi_currency

The customer's citizenship or incorporation country, alpha-2 or alpha-3

ISO 3166-2 code or a bare state code. Needs country.

Customer to fill the form for

Responses

Status Description
200 The form for this bank
400 Missing parameters, or no bank fits the request
404 Not found, or not in your business

200 response

Null when the form needs no parties

Not yet live. Values that the form's conditions read. Production never returns it.

Any one of these types meets the requirement

root goes in data.documents. party[*] goes in each party's documents.

Not yet live. Condition that makes the document required. Production never returns it.

Not yet live. Extra details, such as a form's download source.

Keys a new upload of this document must carry

Networks you can pass as network on create

Possible values: usdc, usdt, btc

Values on file for the customer, when you send customer_id

True when the bank already knows this customer. The form then leaves out root fields, and create must not send data.root.

Fields a new business party needs

Field key. Nested keys use dots, such as permanent_address.city.

Possible values: string, text, date, email, phone, country, enum, enum_list, boolean, integer, money, document, party_list, group, ``

root goes in data.root. party[*] goes in each data.parties[i].

True when required or conditionally required. Check required_when and applies_when before you ask for it.

Condition that makes the field required

Condition for the field's group to apply

True for secret values, which the API never returns

Name of the value list

Allowed values

True when the customer record already answers it

An application already in progress at this bank. Finish it before you create another account there.

Field key. Nested keys use dots, such as permanent_address.city.

Possible values: string, text, date, email, phone, country, enum, enum_list, boolean, integer, money, document, party_list, group, ``

root goes in data.root. party[*] goes in each data.parties[i].

True when required or conditionally required. Check required_when and applies_when before you ask for it.

Condition that makes the field required

Condition for the field's group to apply

True for secret values, which the API never returns

Name of the value list

Allowed values

True when the customer record already answers it

{
"data": {
"min_parties": null,
"max_parties": null,
"fields": [
  {
    "name": "first_name",
    "type": "string",
    "scope": "root",
    "group": "identity",
    "required": true,
    "write_only": false,
    "label": "First Name",
    "is_predefined": true
  },
  {
    "name": "tax_id_number",
    "type": "string",
    "scope": "root",
    "group": "us_tax",
    "required": true,
    "applies_when": {
      "field": "citizenship_country",
      "op": "eq",
      "value": "US"
    },
    "write_only": true,
    "label": "Tax ID Number",
    "is_predefined": false
  }
],
"documents": [
  {
    "types": [
      "national_id",
      "passport",
      "drivers_license"
    ],
    "scope": "root",
    "required": true,
    "new_document_fields": [
      "document_type",
      "content",
      "issuing_country",
      "number",
      "issued_date",
      "expiration_date"
    ]
  }
],
"token_options": [
  {
    "network": "polygon",
    "asset": "usdc"
  }
],
"has_existing_ref": false
},
"error": null
}

400 response

Error message. When several fields fail, it names the first and says how many others are in details. Branch on the HTTP status and the details codes, not on this text.

Field problems, keyed by field path. Each value is CODE: message, such as REQUIRED: Customer ID is required. The API joins several problems on one field with ; .

{
"data": null,
"error": "Customer Type is required (and 1 other field; see details)",
"details": {
"currency": "REQUIRED: Currency is required",
"customer_type": "REQUIRED: Customer Type is required"
}
}

404 response

Error message. When several fields fail, it names the first and says how many others are in details. Branch on the HTTP status and the details codes, not on this text.

Field problems, keyed by field path. Each value is CODE: message, such as REQUIRED: Customer ID is required. The API joins several problems on one field with ; .

{
"data": null,
"error": "Resource not found"
}

Authorization

  • ApiKeyAuth
Was this page helpful?
ESC