# Create a profile

Create a profile after an an account is booked or with the provided information

Endpoint: POST /portal/profile
Version: 1.0.0
Security: bearer-jwt

## Security:

  - `bearer-jwt` (unknown)
    http bearer JWT

## Header parameters:

  - `API-Version` (string, required)
    API version — must be 1.0.0 or higher

## Request body:

  - `application/json` (unknown)
    The profile registration.

## Request fields (application/json):

  - `opa` (string, required)
    16 digits OPA.
    Example: 1234567890123456

  - `primaryCardholder` (object, required)

  - `primaryCardholder.name` (object, required)

  - `primaryCardholder.name.first` (string, required)
    Example: John

  - `primaryCardholder.name.last` (string, required)
    Example: Smith

  - `primaryCardholder.name.middle` (string | null)
    Example: James

  - `primaryCardholder.dob` (string, required)
    The person's date of birth.
    Example: 2000-01-31

  - `primaryCardholder.ssn` (string, required)
    9 digits social security number.
    Example: 123456789

  - `primaryCardholder.cardNumber` (string, required)
    16 digits card number.
    Example: 1234567890123456

  - `primaryCardholder.communications` (object, required)

  - `primaryCardholder.communications.mobilePhone` (object, required)

  - `primaryCardholder.communications.mobilePhone.number` (string, required)
    10 digits phone number.
    Example: 1234567890

  - `primaryCardholder.communications.mobilePhone.verified` (boolean, required)
    Is the phone verified
    Example: true

  - `primaryCardholder.communications.email` (object, required)

  - `primaryCardholder.communications.email.address` (string, required)
    The email.
    Example: myemail@email.com

  - `primaryCardholder.communications.email.verified` (boolean, required)
    Is the email verified
    Example: true

  - `primaryCardholder.address` (object, required)

  - `primaryCardholder.address.line1` (string, required)
    The first line.
    Example: 1 Main St

  - `primaryCardholder.address.line2` (string | null)
    The optional second line.
    Example: Apt 35

  - `primaryCardholder.address.city` (string, required)
    The city name.
    Example: Dallas

  - `primaryCardholder.address.state` (string, required)
    The state abbreviation.
    Example: TX

  - `primaryCardholder.address.zipCode` (string, required)
    The 5 digit zip code.
    Example: 75000

  - `primaryCardholder.income` (any)
    Optional Income data

  - `primaryCardholder.income.amount` (integer, required)
    Income in whole dollars
    Example: 10000

  - `primaryCardholder.income.source` (string, required)
    The income source
    Enum: "Employment", "Inheritance", "Trust", "Investment", "Retirement", "SocialSecurity", "Unemployment", "Other"

  - `primaryCardholder.income.frequency` (string, required)
    The income frequency
    Enum: "Yearly", "Monthly", "Weekly", "BiWeekly", "SemiMonthly"

  - `secondaryCardholder` (any)
    The optional secondary cardholder information.

  - `authorizedUsers` (array | null)
    The optional list of authorized users.

## Response 204:

  - `204` (unknown)
    Success

## Response 400:

  - `400` (unknown)
    Bad request.

## Response 400 fields (application/json):

  - `type` (string | null)
    The URI of the problem type
    Example: urn:raipartners:api

  - `title` (string | null)
    The title of the problem
    Example: Bad Request

  - `status` (integer, required)
    The status code of the problem
    Example: 400

  - `detail` (string | null)
    The details of the problem
    Example: One or more required fields are missing.

  - `instance` (string | null)
    The instance of the problem
    Example: /account/12345/errors/abc-987

  - `properties` (object | null)
    extra properties to enhance information about the problem

## Response 401:

  - `401` (unknown)
    Unauthorized.

## Response 401 fields (application/json):

  - `type` (string | null)
    The URI of the problem type
    Example: urn:raipartners:api

  - `title` (string | null)
    The title of the problem
    Example: Bad Request

  - `status` (integer, required)
    The status code of the problem
    Example: 400

  - `detail` (string | null)
    The details of the problem
    Example: One or more required fields are missing.

  - `instance` (string | null)
    The instance of the problem
    Example: /account/12345/errors/abc-987

  - `properties` (object | null)
    extra properties to enhance information about the problem

## Response 403:

  - `403` (unknown)
    Forbidden.

## Response 403 fields (application/json):

  - `type` (string | null)
    The URI of the problem type
    Example: urn:raipartners:api

  - `title` (string | null)
    The title of the problem
    Example: Bad Request

  - `status` (integer, required)
    The status code of the problem
    Example: 400

  - `detail` (string | null)
    The details of the problem
    Example: One or more required fields are missing.

  - `instance` (string | null)
    The instance of the problem
    Example: /account/12345/errors/abc-987

  - `properties` (object | null)
    extra properties to enhance information about the problem

## Response 404:

  - `404` (unknown)
    not found.

## Response 404 fields (application/json):

  - `type` (string | null)
    The URI of the problem type
    Example: urn:raipartners:api

  - `title` (string | null)
    The title of the problem
    Example: Bad Request

  - `status` (integer, required)
    The status code of the problem
    Example: 400

  - `detail` (string | null)
    The details of the problem
    Example: One or more required fields are missing.

  - `instance` (string | null)
    The instance of the problem
    Example: /account/12345/errors/abc-987

  - `properties` (object | null)
    extra properties to enhance information about the problem

## Response 500:

  - `500` (unknown)
    Internal Server Error.

## Response 500 fields (application/json):

  - `type` (string | null)
    The URI of the problem type
    Example: urn:raipartners:api

  - `title` (string | null)
    The title of the problem
    Example: Bad Request

  - `status` (integer, required)
    The status code of the problem
    Example: 400

  - `detail` (string | null)
    The details of the problem
    Example: One or more required fields are missing.

  - `instance` (string | null)
    The instance of the problem
    Example: /account/12345/errors/abc-987

  - `properties` (object | null)
    extra properties to enhance information about the problem

## Response 503:

  - `503` (unknown)
    Service unavailable.

## Response 503 fields (application/json):

  - `type` (string | null)
    The URI of the problem type
    Example: urn:raipartners:api

  - `title` (string | null)
    The title of the problem
    Example: Bad Request

  - `status` (integer, required)
    The status code of the problem
    Example: 400

  - `detail` (string | null)
    The details of the problem
    Example: One or more required fields are missing.

  - `instance` (string | null)
    The instance of the problem
    Example: /account/12345/errors/abc-987

  - `properties` (object | null)
    extra properties to enhance information about the problem

## Response 400 examples:

  - `Generic invalid data` (unknown)
    Generic invalid data

  - `Generic missing data` (unknown)
    Generic missing data

  - `Cardholder too young` (unknown)
    Cardholder too young

  - `Invalid account number` (unknown)
    Invalid account number

  - `Invalid social security number` (unknown)
    Invalid social security number

## Response 401 examples:

  - `Unauthorized` (unknown)
    Unauthorized

## Response 403 examples:

  - `Forbidden` (unknown)
    Forbidden

## Response 404 examples:

  - `Not found` (unknown)
    Not found

## Response 500 examples:

  - `Internal server error` (unknown)
    Internal server error

## Response 503 examples:

  - `Service unavailable` (unknown)
    Service unavailable

