# Checkout State

**Summary:** Endpoints for Checkout State

- Role: [Developers](https://www.subrite.no/developers)
- Source: https://www.subrite.no/developers/checkout-state
- Updated: 2026-10-13
- Markdown index: https://www.subrite.no/developers/llms.txt

<a id="get-api-v1-checkout-state-uuid"></a>
## Get a checkout-state by uuid

`GET /api/v1/checkout-state/{uuid}`

**Authentication:** Bearer token (JWT)

### Parameters

| Name | In | Type | Description |
| --- | --- | --- | --- |
| `uuid` (Required) | path | `string` |   |

### Responses

#### 200

Content type: `application/json` · `CheckoutStateResponse`

| Name | Type | Description |
| --- | --- | --- |
| `uuid` (Required) | `string` |   |
| `status` (Required) | `CHECKOUT_STATE_STATUS` | Allowed values: `"created"`, `"payment_completed"`, `"payment_failed"`, `"member_info"`, `"additional_member_info"`, `"physical_product_info"`, `"gift_receiver_info"`, `"gift_receiver_delivery_info"`, `"consent_info"`, `"completed"`, `"not_set"`, `"pending"` |
| `paymentData` (Required) | `object` |   |
| `memberData` (Required) | `MemberPersonalInfo` |   |
| `memberData.id` (Required) | `string` |   |
| `memberData.fullName` (Required) | `string` |   |
| `memberData.nickName` (Required) | `string` |   |
| `memberData.createdAt` (Required) | `string (date-time)` |   |
| `memberData.avatar` (Required) | `string` |   |
| `memberData.countryCode` | `string` |   |
| `memberData.birthDate` (Required) | `string (date-time)` |   |
| `memberData.deleteAfterExpiration` (Required) | `boolean` |   |
| `memberData.isCompany` (Required) | `boolean` |   |
| `memberData.companyName` (Required) | `string` |   |
| `memberData.organizationNo` (Required) | `string` |   |
| `memberData.customPropertyValues` (Required) | `object` |   |
| `memberData.emailVerified` | `string` |   |
| `memberData.phoneVerified` (Required) | `boolean` |   |
| `memberData.memberNumber` (Required) | `number` |   |
| `memberData.userId` (Required) | `number` |   |
| `memberData.emailStatus` | `SENDGRID_MAIL_EVENTS` | Allowed values: `"scheduled"`, `"processed"`, `"dropped"`, `"deferred"`, `"bounce"`, `"hard_bounce"`, `"soft_bounce"`, `"spamreport"`, `"delivered"`, `"unsubscribe"`, `"group_unsubscribe"`, `"group_resubscribe"`, `"open"`, `"failed"`, `"click"`, `"skipped_bounced"` |
| `memberData.email` (Required) | `string (email)` |   |
| `memberData.phone` (Required) | `string` |   |
| `memberData.address` (Required) | `ProfileAddress` |   |
| `memberData.address.line1` (Required) | `string` |   |
| `memberData.address.line2` (Required) | `string` |   |
| `memberData.address.city` (Required) | `string` |   |
| `memberData.address.postCode` (Required) | `string` |   |
| `memberData.address.country` (Required) | `string` |   |
| `memberData.address.name` (Required) | `string` |   |
| `memberData.address.email` (Required) | `string` |   |
| `memberData.address.companyName` (Required) | `string` |   |
| `memberData.address.organizationNo` (Required) | `string` |   |
| `memberData.address.invoiceReference` | `string` |   |
| `memberData.address.isSynced` | `boolean` |   |
| `memberData.address.lastSyncedAt` | `string (date-time)` |   |
| `additionalMemberData` (Required) | `array of ProductAdditionalMemberData` |   |
| `physicalProductData` (Required) | `CheckoutStatePhysicalProductData` |   |
| `physicalProductData.memberAddressData` (Required) | `array of string` |   |
| `physicalProductData.productData` (Required) | `array of string` |   |
| `giftReceiverData` (Required) | `array of ProductGiftReceiverData` |   |
| `giftReceiverDeliveryData` (Required) | `CheckoutStateGiftReceiverDeliveryData` |   |
| `giftReceiverDeliveryData.giftReceiverAddressData` (Required) | `array of string` |   |
| `giftReceiverDeliveryData.productData` (Required) | `array of string` |   |
| `steps` (Required) | `array of CHECKOUT_STATE_STATUS` | Allowed values: `"created"`, `"payment_completed"`, `"payment_failed"`, `"member_info"`, `"additional_member_info"`, `"physical_product_info"`, `"gift_receiver_info"`, `"gift_receiver_delivery_info"`, `"consent_info"`, `"completed"`, `"not_set"`, `"pending"` |
| `orderNumber` (Required) | `number` |   |
| `signInPhone` (Required) | `string` |   |

#### 401

Content type: `application/json` · `ErrorResponse`

unauthorized

| Name | Type | Description |
| --- | --- | --- |
| `messageCode` (Required) | `string` |   |
| `message` | `string` |   |
| `errors` (Required) | `array of FieldError` |   |
| `errors[].field` (Required when parent is present) | `string` |   |
| `errors[].fieldValue` (Required when parent is present) | `string` |   |
| `errors[].identifier` (Required when parent is present) | `string` |   |
| `errors[].identifierValue` (Required when parent is present) | `string` |   |
| `errors[].messageCode` (Required when parent is present) | `string` |   |
| `errors[].message` | `string` |   |
| `errors[].errorType` (Required when parent is present) | `string` |   |

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 404

Content type: `application/json` · `ErrorResponse`

notFound

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 410

Content type: `application/json` · `ErrorResponse`

expired

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

### Example request

```bash
curl 'https://api.subrite.no/api/v1/checkout-state/{uuid}' \
  --header 'Authorization: Bearer <token>'
```

### Example response

200 · `application/json`

```json
{
  "uuid": "string",
  "status": "created",
  "paymentData": {},
  "memberData": {
    "id": "string",
    "fullName": "<fullName>",
    "nickName": "string",
    "createdAt": "2019-08-24T14:15:22Z",
    "avatar": "string",
    "countryCode": "string",
    "birthDate": "<birthDate>",
    "deleteAfterExpiration": true,
    "isCompany": true,
    "companyName": "string",
    "organizationNo": "string",
    "customPropertyValues": {},
    "emailVerified": "string",
    "phoneVerified": true,
    "memberNumber": 0,
    "userId": 0,
    "emailStatus": "scheduled",
    "email": "user@example.com",
    "phone": "<phone>",
    "address": {}
  },
  "additionalMemberData": [
    {}
  ],
  "physicalProductData": {
    "memberAddressData": [],
    "productData": []
  },
  "giftReceiverData": [
    {}
  ],
  "giftReceiverDeliveryData": {
    "giftReceiverAddressData": [],
    "productData": []
  },
  "steps": [
    "created"
  ],
  "orderNumber": 0,
  "signInPhone": "<signInPhone>"
}
```

<a id="post-api-v1-checkout-state-account-check"></a>
## check account and create checkout state for existing member

`POST /api/v1/checkout-state/account-check`

**Authentication:** Bearer token (JWT)

### Request body

Content type: `application/json` · Required · `AccountCheckDto`

| Name | Type | Description |
| --- | --- | --- |
| `email` | `string (email)` |   |
| `phone` | `string` | `maxLength`: `20` |
| `data` (Required) | `CreateIntentDto` |   |
| `data.packageId` (Required) | `number` | `minimum`: `1` |
| `data.isSaved` (Required) | `boolean` |   |
| `data.optionalProducts` | `array of OptionalProductWithQuantity` |   |
| `data.optionalProducts[].productId` (Required when parent is present) | `number` | `minimum`: `1` |
| `data.optionalProducts[].quantity` (Required when parent is present) | `number` | `minimum`: `1` |
| `data.optionalProducts[].shippingCountry` | `string` | `maxLength`: `64` |
| `data.optionalProducts[].manualPrice` | `number` |   |
| `data.userData` (Required) | `CheckoutUser` |   |
| `data.userData.memberId` | `string` |   |
| `data.userData.email` | `string (email)` |   |
| `data.userData.fullName` (Required) | `string` |   |
| `data.userData.phone` | `string` | `maxLength`: `20` |
| `data.userData.payerPhone` | `string` | `maxLength`: `20` |
| `data.userData.countryCode` | `string` | Allowed values: `"NO"`, `"SE"`, `"DK"`, `"FI"`, `"FO"`, `"GB"` |
| `data.userData.isCompany` | `boolean` |   |
| `data.userData.companyName` | `string` |   |
| `data.userData.organizationNo` | `string` |   |
| `data.userData.reference` | `string` |   |
| `data.userData.onCheckoutCompletedUrl` | `string` |   |
| `data.userData.userAgent` | `string` |   |
| `data.userData.channel` | `string` | Allowed values: `"mobile"`, `"desktop"` |
| `data.userData.sourceUrl` | `string` |   |
| `data.userData.referrerUrl` | `string` |   |
| `data.billingAddress` | `BillingAddress` |   |
| `data.billingAddress.address` (Required when parent is present) | `string` |   |
| `data.billingAddress.addressTwo` | `string` |   |
| `data.billingAddress.companyName` | `string` |   |
| `data.billingAddress.organizationNo` | `string` |   |
| `data.billingAddress.postCode` (Required when parent is present) | `string` |   |
| `data.billingAddress.city` | `string` |   |
| `data.billingAddress.country` (Required when parent is present) | `string` |   |
| `data.billingAddress.invoiceReference` | `string` |   |
| `data.billingAddress.email` | `string` |   |
| `data.billingAddress.fullName` | `string` |   |
| `data.billingAddress.phone` | `string` |   |

### Responses

#### 201

Content type: `application/json` · `AccountCheckResponse`

| Name | Type | Description |
| --- | --- | --- |
| `status` (Required) | `AccountCheckStatus` | Allowed values: `"NEW_MEMBER"`, `"EXISTING_MEMBER"` |
| `identity` (Required) | `AccountCheckIdentity` | Allowed values: `"EMAIL"`, `"PHONE"` |
| `checkoutStateUUID` (Required) | `string` |   |

#### 401

Content type: `application/json` · `ErrorResponse`

unauthorized

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 404

Content type: `application/json` · `ErrorResponse`

notFound

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

### Example request

```bash
curl https://api.subrite.no/api/v1/checkout-state/account-check \
  --request POST \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "email": "user@example.com",
  "phone": "<phone>",
  "data": {
    "packageId": 1,
    "isSaved": true,
    "optionalProducts": [],
    "userData": {},
    "billingAddress": {}
  }
}'
```

### Example response

201 · `application/json`

```json
{
  "status": "NEW_MEMBER",
  "identity": "EMAIL",
  "checkoutStateUUID": "string"
}
```

<a id="patch-api-v1-checkout-state-uuid-account-check"></a>
## check account and update checkout state for existing member

`PATCH /api/v1/checkout-state/{uuid}/account-check`

**Authentication:** Bearer token (JWT)

### Parameters

| Name | In | Type | Description |
| --- | --- | --- | --- |
| `uuid` (Required) | path | `string` |   |

### Request body

Content type: `application/json` · Required · `AccountCheckDto`

Same fields as [check account and create checkout state for existing member (Request body)](https://www.subrite.no/developers/checkout-state?md=true#post-api-v1-checkout-state-account-check).

### Responses

#### 200

Content type: `application/json` · `AccountCheckResponse`

Same fields as [check account and create checkout state for existing member (201)](https://www.subrite.no/developers/checkout-state?md=true#post-api-v1-checkout-state-account-check).

#### 401

Content type: `application/json` · `ErrorResponse`

unauthorized

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 404

Content type: `application/json` · `ErrorResponse`

notFound

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

### Example request

```bash
curl 'https://api.subrite.no/api/v1/checkout-state/{uuid}/account-check' \
  --request PATCH \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "email": "user@example.com",
  "phone": "<phone>",
  "data": {
    "packageId": 1,
    "isSaved": true,
    "optionalProducts": [],
    "userData": {},
    "billingAddress": {}
  }
}'
```

### Example response

200 · `application/json`

```json
{
  "status": "NEW_MEMBER",
  "identity": "EMAIL",
  "checkoutStateUUID": "string"
}
```

<a id="patch-api-v1-checkout-state-uuid-update-profile"></a>
## Update logged in member profile and checkout state

`PATCH /api/v1/checkout-state/{uuid}/update-profile`

**Authentication:** Bearer token (JWT)

### Parameters

| Name | In | Type | Description |
| --- | --- | --- | --- |
| `uuid` (Required) | path | `string` |   |

### Request body

Content type: `application/json` · Required · `UpdateMemberPersonalInfo`

| Name | Type | Description |
| --- | --- | --- |
| `fullName` | `string` |   |
| `email` | `string (email)` | `maxLength`: `255` |
| `birthDate` | `string (date-time)` |   |
| `nickName` | `string` | `maxLength`: `255` |
| `phone` | `string` | `maxLength`: `32` |
| `countryCode` | `string` | `maxLength`: `8` |
| `isCompany` | `boolean` |   |
| `companyName` | `string` | `maxLength`: `255` |
| `address` | `MemberAddressDto` |   |
| `address.line1` | `string` | `maxLength`: `255` |
| `address.line2` | `string` | `maxLength`: `255` |
| `address.city` | `string` | `maxLength`: `255` |
| `address.state` | `string` | `maxLength`: `255` |
| `address.postCode` | `string` | `maxLength`: `32` |
| `address.country` | `string` | `maxLength`: `64` |
| `address.name` | `string` | `maxLength`: `255` |
| `address.email` | `string (email)` | `maxLength`: `255` |
| `address.organizationNo` | `string` | `maxLength`: `64` |
| `address.companyName` | `string` | `maxLength`: `255` |
| `address.invoiceReference` | `string` | `maxLength`: `255` |
| `customPropertyValues` | `object` |   |
| `deleteAfterExpiration` | `boolean` |   |

**Example request body**

`application/json`

```json
{
  "fullName": "<fullName>",
  "email": "user@example.com",
  "birthDate": "<birthDate>",
  "nickName": "string",
  "phone": "<phone>",
  "countryCode": "string",
  "isCompany": true,
  "companyName": "string",
  "address": {
    "line1": "string",
    "line2": "string",
    "city": "string",
    "state": "string",
    "postCode": "string",
    "country": "string",
    "name": "string",
    "email": "user@example.com",
    "organizationNo": "string",
    "companyName": "string",
    "invoiceReference": "string"
  },
  "customPropertyValues": {},
  "deleteAfterExpiration": true
}
```

### Responses

#### 200

Content type: `application/json` · `CheckoutStateResponse`

Same fields as [Get a checkout-state by uuid (200)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 400

Content type: `application/json` · `ErrorResponse`

alreadyExists

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 401

Content type: `application/json` · `ErrorResponse`

unauthorized

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

### Example request

```bash
curl 'https://api.subrite.no/api/v1/checkout-state/{uuid}/update-profile' \
  --request PATCH \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "fullName": "<fullName>",
  "email": "user@example.com",
  "birthDate": "<birthDate>",
  "nickName": "string",
  "phone": "<phone>",
  "countryCode": "string",
  "isCompany": true,
  "companyName": "string",
  "address": {
    "line1": "string",
    "line2": "string",
    "city": "string",
    "state": "string",
    "postCode": "string",
    "country": "string",
    "name": "string",
    "email": "user@example.com",
    "organizationNo": "string",
    "companyName": "string",
    "invoiceReference": "string"
  },
  "customPropertyValues": {},
  "deleteAfterExpiration": true
}'
```

### Example response

200 · `application/json`

```json
{
  "uuid": "string",
  "status": "created",
  "paymentData": {},
  "memberData": {
    "id": "string",
    "fullName": "<fullName>",
    "nickName": "string",
    "createdAt": "2019-08-24T14:15:22Z",
    "avatar": "string",
    "countryCode": "string",
    "birthDate": "<birthDate>",
    "deleteAfterExpiration": true,
    "isCompany": true,
    "companyName": "string",
    "organizationNo": "string",
    "customPropertyValues": {},
    "emailVerified": "string",
    "phoneVerified": true,
    "memberNumber": 0,
    "userId": 0,
    "emailStatus": "scheduled",
    "email": "user@example.com",
    "phone": "<phone>",
    "address": {}
  },
  "additionalMemberData": [
    {}
  ],
  "physicalProductData": {
    "memberAddressData": [],
    "productData": []
  },
  "giftReceiverData": [
    {}
  ],
  "giftReceiverDeliveryData": {
    "giftReceiverAddressData": [],
    "productData": []
  },
  "steps": [
    "created"
  ],
  "orderNumber": 0,
  "signInPhone": "<signInPhone>"
}
```

<a id="patch-api-v1-checkout-state-uuid-populate-group-and-product"></a>
## Populate group member and physical product data

`PATCH /api/v1/checkout-state/{uuid}/populate-group-and-product`

**Authentication:** Bearer token (JWT)

### Parameters

| Name | In | Type | Description |
| --- | --- | --- | --- |
| `uuid` (Required) | path | `string` |   |

### Responses

#### 200

Content type: `application/json` · `CheckoutStateResponse`

Same fields as [Get a checkout-state by uuid (200)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 401

Content type: `application/json` · `ErrorResponse`

unauthorized

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

### Example request

```bash
curl 'https://api.subrite.no/api/v1/checkout-state/{uuid}/populate-group-and-product' \
  --request PATCH \
  --header 'Authorization: Bearer <token>'
```

### Example response

200 · `application/json`

```json
{
  "uuid": "string",
  "status": "created",
  "paymentData": {},
  "memberData": {
    "id": "string",
    "fullName": "<fullName>",
    "nickName": "string",
    "createdAt": "2019-08-24T14:15:22Z",
    "avatar": "string",
    "countryCode": "string",
    "birthDate": "<birthDate>",
    "deleteAfterExpiration": true,
    "isCompany": true,
    "companyName": "string",
    "organizationNo": "string",
    "customPropertyValues": {},
    "emailVerified": "string",
    "phoneVerified": true,
    "memberNumber": 0,
    "userId": 0,
    "emailStatus": "scheduled",
    "email": "user@example.com",
    "phone": "<phone>",
    "address": {}
  },
  "additionalMemberData": [
    {}
  ],
  "physicalProductData": {
    "memberAddressData": [],
    "productData": []
  },
  "giftReceiverData": [
    {}
  ],
  "giftReceiverDeliveryData": {
    "giftReceiverAddressData": [],
    "productData": []
  },
  "steps": [
    "created"
  ],
  "orderNumber": 0,
  "signInPhone": "<signInPhone>"
}
```

<a id="post-api-v1-checkout-state-uuid-invite"></a>
## Invite member to a product seat

`POST /api/v1/checkout-state/{uuid}/invite`

**Authentication:** Bearer token (JWT)

### Parameters

| Name | In | Type | Description |
| --- | --- | --- | --- |
| `uuid` (Required) | path | `string` |   |

### Request body

Content type: `application/json` · Required · `InviteSeatDto`

| Name | Type | Description |
| --- | --- | --- |
| `email` (Required) | `string (email)` |   |
| `id` (Required) | `number` | `minimum`: `1` |

**Example request body**

`application/json`

```json
{
  "email": "user@example.com",
  "id": 1
}
```

### Responses

#### 201

Content type: `application/json` · `CheckoutStateResponse`

Same fields as [Get a checkout-state by uuid (200)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 400

cannotInviteYourself, invitationNotSupported, invitationLimitReached,invitationAlreadyAccepted, invitationAlreadySent

#### 401

Content type: `application/json` · `ErrorResponse`

unauthorized

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 404

Content type: `application/json` · `ErrorResponse`

notFound

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

### Example request

```bash
curl 'https://api.subrite.no/api/v1/checkout-state/{uuid}/invite' \
  --request POST \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "email": "user@example.com",
  "id": 1
}'
```

### Example response

201 · `application/json`

```json
{
  "uuid": "string",
  "status": "created",
  "paymentData": {},
  "memberData": {
    "id": "string",
    "fullName": "<fullName>",
    "nickName": "string",
    "createdAt": "2019-08-24T14:15:22Z",
    "avatar": "string",
    "countryCode": "string",
    "birthDate": "<birthDate>",
    "deleteAfterExpiration": true,
    "isCompany": true,
    "companyName": "string",
    "organizationNo": "string",
    "customPropertyValues": {},
    "emailVerified": "string",
    "phoneVerified": true,
    "memberNumber": 0,
    "userId": 0,
    "emailStatus": "scheduled",
    "email": "user@example.com",
    "phone": "<phone>",
    "address": {}
  },
  "additionalMemberData": [
    {}
  ],
  "physicalProductData": {
    "memberAddressData": [],
    "productData": []
  },
  "giftReceiverData": [
    {}
  ],
  "giftReceiverDeliveryData": {
    "giftReceiverAddressData": [],
    "productData": []
  },
  "steps": [
    "created"
  ],
  "orderNumber": 0,
  "signInPhone": "<signInPhone>"
}
```

<a id="post-api-v1-checkout-state-uuid-create-additional-member"></a>
## Create additional member for a product seat

`POST /api/v1/checkout-state/{uuid}/create-additional-member`

**Authentication:** Bearer token (JWT)

### Parameters

| Name | In | Type | Description |
| --- | --- | --- | --- |
| `uuid` (Required) | path | `string` |   |

### Request body

Content type: `application/json` · Required · `CreateAdditionalMemberDto`

| Name | Type | Description |
| --- | --- | --- |
| `fullName` | `string` |   |
| `memberPackageProductId` | `number` | `minimum`: `1` |
| `email` | `string (email)` |   |
| `birthDate` | `string (date-time)` |   |
| `nickName` | `string` | `maxLength`: `255` |
| `phone` | `string` | `maxLength`: `32` |
| `countryCode` | `string` | `maxLength`: `8` |
| `isCompany` | `boolean` |   |
| `companyName` | `string` | `maxLength`: `255` |
| `address` | `MemberAddressDto` |   |
| `address.line1` | `string` | `maxLength`: `255` |
| `address.line2` | `string` | `maxLength`: `255` |
| `address.city` | `string` | `maxLength`: `255` |
| `address.state` | `string` | `maxLength`: `255` |
| `address.postCode` | `string` | `maxLength`: `32` |
| `address.country` | `string` | `maxLength`: `64` |
| `address.name` | `string` | `maxLength`: `255` |
| `address.email` | `string (email)` | `maxLength`: `255` |
| `address.organizationNo` | `string` | `maxLength`: `64` |
| `address.companyName` | `string` | `maxLength`: `255` |
| `address.invoiceReference` | `string` | `maxLength`: `255` |
| `customPropertyValues` | `object` |   |

**Example request body**

`application/json`

```json
{
  "fullName": "<fullName>",
  "memberPackageProductId": 1,
  "email": "user@example.com",
  "birthDate": "<birthDate>",
  "nickName": "string",
  "phone": "<phone>",
  "countryCode": "string",
  "isCompany": true,
  "companyName": "string",
  "address": {
    "line1": "string",
    "line2": "string",
    "city": "string",
    "state": "string",
    "postCode": "string",
    "country": "string",
    "name": "string",
    "email": "user@example.com",
    "organizationNo": "string",
    "companyName": "string",
    "invoiceReference": "string"
  },
  "customPropertyValues": {}
}
```

### Responses

#### 201

Content type: `application/json` · `CheckoutStateResponse`

Same fields as [Get a checkout-state by uuid (200)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 400

Content type: `application/json` · `ErrorResponse`

phoneAlreadyVerified

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 401

Content type: `application/json` · `ErrorResponse`

unauthorized

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 404

Content type: `application/json` · `ErrorResponse`

notFound

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

### Example request

```bash
curl 'https://api.subrite.no/api/v1/checkout-state/{uuid}/create-additional-member' \
  --request POST \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "fullName": "<fullName>",
  "memberPackageProductId": 1,
  "email": "user@example.com",
  "birthDate": "<birthDate>",
  "nickName": "string",
  "phone": "<phone>",
  "countryCode": "string",
  "isCompany": true,
  "companyName": "string",
  "address": {
    "line1": "string",
    "line2": "string",
    "city": "string",
    "state": "string",
    "postCode": "string",
    "country": "string",
    "name": "string",
    "email": "user@example.com",
    "organizationNo": "string",
    "companyName": "string",
    "invoiceReference": "string"
  },
  "customPropertyValues": {}
}'
```

### Example response

201 · `application/json`

```json
{
  "uuid": "string",
  "status": "created",
  "paymentData": {},
  "memberData": {
    "id": "string",
    "fullName": "<fullName>",
    "nickName": "string",
    "createdAt": "2019-08-24T14:15:22Z",
    "avatar": "string",
    "countryCode": "string",
    "birthDate": "<birthDate>",
    "deleteAfterExpiration": true,
    "isCompany": true,
    "companyName": "string",
    "organizationNo": "string",
    "customPropertyValues": {},
    "emailVerified": "string",
    "phoneVerified": true,
    "memberNumber": 0,
    "userId": 0,
    "emailStatus": "scheduled",
    "email": "user@example.com",
    "phone": "<phone>",
    "address": {}
  },
  "additionalMemberData": [
    {}
  ],
  "physicalProductData": {
    "memberAddressData": [],
    "productData": []
  },
  "giftReceiverData": [
    {}
  ],
  "giftReceiverDeliveryData": {
    "giftReceiverAddressData": [],
    "productData": []
  },
  "steps": [
    "created"
  ],
  "orderNumber": 0,
  "signInPhone": "<signInPhone>"
}
```

<a id="post-api-v1-checkout-state-uuid-complete-additional-member"></a>
## Complete additional members creation step

`POST /api/v1/checkout-state/{uuid}/complete-additional-member`

**Authentication:** Bearer token (JWT)

### Parameters

| Name | In | Type | Description |
| --- | --- | --- | --- |
| `uuid` (Required) | path | `string` |   |

### Responses

#### 201

Content type: `application/json` · `CheckoutStateResponse`

Same fields as [Get a checkout-state by uuid (200)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 401

Content type: `application/json` · `ErrorResponse`

unauthorized

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 404

Content type: `application/json` · `ErrorResponse`

notFound

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

### Example request

```bash
curl 'https://api.subrite.no/api/v1/checkout-state/{uuid}/complete-additional-member' \
  --request POST \
  --header 'Authorization: Bearer <token>'
```

### Example response

201 · `application/json`

```json
{
  "uuid": "string",
  "status": "created",
  "paymentData": {},
  "memberData": {
    "id": "string",
    "fullName": "<fullName>",
    "nickName": "string",
    "createdAt": "2019-08-24T14:15:22Z",
    "avatar": "string",
    "countryCode": "string",
    "birthDate": "<birthDate>",
    "deleteAfterExpiration": true,
    "isCompany": true,
    "companyName": "string",
    "organizationNo": "string",
    "customPropertyValues": {},
    "emailVerified": "string",
    "phoneVerified": true,
    "memberNumber": 0,
    "userId": 0,
    "emailStatus": "scheduled",
    "email": "user@example.com",
    "phone": "<phone>",
    "address": {}
  },
  "additionalMemberData": [
    {}
  ],
  "physicalProductData": {
    "memberAddressData": [],
    "productData": []
  },
  "giftReceiverData": [
    {}
  ],
  "giftReceiverDeliveryData": {
    "giftReceiverAddressData": [],
    "productData": []
  },
  "steps": [
    "created"
  ],
  "orderNumber": 0,
  "signInPhone": "<signInPhone>"
}
```

<a id="post-api-v1-checkout-state-uuid-assign-default-gift-receivers"></a>
## Assign default gift receiver data and store it in the checkout state

`POST /api/v1/checkout-state/{uuid}/assign-default-gift-receivers`

**Authentication:** Bearer token (JWT)

### Parameters

| Name | In | Type | Description |
| --- | --- | --- | --- |
| `uuid` (Required) | path | `string` |   |

### Responses

#### 201

Content type: `application/json` · `CheckoutStateResponse`

Same fields as [Get a checkout-state by uuid (200)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 401

Content type: `application/json` · `ErrorResponse`

unauthorized

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

### Example request

```bash
curl 'https://api.subrite.no/api/v1/checkout-state/{uuid}/assign-default-gift-receivers' \
  --request POST \
  --header 'Authorization: Bearer <token>'
```

### Example response

201 · `application/json`

```json
{
  "uuid": "string",
  "status": "created",
  "paymentData": {},
  "memberData": {
    "id": "string",
    "fullName": "<fullName>",
    "nickName": "string",
    "createdAt": "2019-08-24T14:15:22Z",
    "avatar": "string",
    "countryCode": "string",
    "birthDate": "<birthDate>",
    "deleteAfterExpiration": true,
    "isCompany": true,
    "companyName": "string",
    "organizationNo": "string",
    "customPropertyValues": {},
    "emailVerified": "string",
    "phoneVerified": true,
    "memberNumber": 0,
    "userId": 0,
    "emailStatus": "scheduled",
    "email": "user@example.com",
    "phone": "<phone>",
    "address": {}
  },
  "additionalMemberData": [
    {}
  ],
  "physicalProductData": {
    "memberAddressData": [],
    "productData": []
  },
  "giftReceiverData": [
    {}
  ],
  "giftReceiverDeliveryData": {
    "giftReceiverAddressData": [],
    "productData": []
  },
  "steps": [
    "created"
  ],
  "orderNumber": 0,
  "signInPhone": "<signInPhone>"
}
```

<a id="post-api-v1-checkout-state-uuid-create-gift-receiver"></a>
## Create gift receiver for a product seat

`POST /api/v1/checkout-state/{uuid}/create-gift-receiver`

**Authentication:** Bearer token (JWT)

### Parameters

| Name | In | Type | Description |
| --- | --- | --- | --- |
| `uuid` (Required) | path | `string` |   |

### Request body

Content type: `application/json` · Required · `CreateGiftReceiverDto`

| Name | Type | Description |
| --- | --- | --- |
| `fullName` (Required) | `string` |   |
| `email` (Required) | `string (email)` | Required unless a phone is given: a receiver needs an email or a phone. |
| `phone` (Required) | `string` | Required unless an email is given. A phone-only receiver is accepted by this endpoint but cannot be seated until SUBRITE-965. |
| `memberPackageProductId` | `number` | `minimum`: `1` |

**Example request body**

`application/json`

```json
{
  "fullName": "<fullName>",
  "email": "user@example.com",
  "phone": "<phone>",
  "memberPackageProductId": 1
}
```

### Responses

#### 201

Content type: `application/json` · `CheckoutStateResponse`

Same fields as [Get a checkout-state by uuid (200)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 400

Content type: `application/json` · `ErrorResponse`

phoneAlreadyVerified, cannotInviteYourself, invitationNotSupported, invitationLimitReached, invitationAlreadyAccepted, invitationAlreadySent

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 401

Content type: `application/json` · `ErrorResponse`

unauthorized

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 404

Content type: `application/json` · `ErrorResponse`

notFound

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

### Example request

```bash
curl 'https://api.subrite.no/api/v1/checkout-state/{uuid}/create-gift-receiver' \
  --request POST \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "fullName": "<fullName>",
  "email": "user@example.com",
  "phone": "<phone>",
  "memberPackageProductId": 1
}'
```

### Example response

201 · `application/json`

```json
{
  "uuid": "string",
  "status": "created",
  "paymentData": {},
  "memberData": {
    "id": "string",
    "fullName": "<fullName>",
    "nickName": "string",
    "createdAt": "2019-08-24T14:15:22Z",
    "avatar": "string",
    "countryCode": "string",
    "birthDate": "<birthDate>",
    "deleteAfterExpiration": true,
    "isCompany": true,
    "companyName": "string",
    "organizationNo": "string",
    "customPropertyValues": {},
    "emailVerified": "string",
    "phoneVerified": true,
    "memberNumber": 0,
    "userId": 0,
    "emailStatus": "scheduled",
    "email": "user@example.com",
    "phone": "<phone>",
    "address": {}
  },
  "additionalMemberData": [
    {}
  ],
  "physicalProductData": {
    "memberAddressData": [],
    "productData": []
  },
  "giftReceiverData": [
    {}
  ],
  "giftReceiverDeliveryData": {
    "giftReceiverAddressData": [],
    "productData": []
  },
  "steps": [
    "created"
  ],
  "orderNumber": 0,
  "signInPhone": "<signInPhone>"
}
```

<a id="post-api-v1-checkout-state-uuid-complete-gift-receiver"></a>
## Complete gift receiver step

`POST /api/v1/checkout-state/{uuid}/complete-gift-receiver`

**Authentication:** Bearer token (JWT)

### Parameters

| Name | In | Type | Description |
| --- | --- | --- | --- |
| `uuid` (Required) | path | `string` |   |

### Request body

Content type: `application/json` · Required · `CompleteGiftReceiverDto`

| Name | Type | Description |
| --- | --- | --- |
| `scheduledActivationDate` | `string (date-time)` |   |

**Example request body**

`application/json`

```json
{
  "scheduledActivationDate": "2019-08-24T14:15:22Z"
}
```

### Responses

#### 201

Content type: `application/json` · `CheckoutStateResponse`

Same fields as [Get a checkout-state by uuid (200)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 401

Content type: `application/json` · `ErrorResponse`

unauthorized

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 404

Content type: `application/json` · `ErrorResponse`

notFound

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

### Example request

```bash
curl 'https://api.subrite.no/api/v1/checkout-state/{uuid}/complete-gift-receiver' \
  --request POST \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "scheduledActivationDate": "2019-08-24T14:15:22Z"
}'
```

### Example response

201 · `application/json`

```json
{
  "uuid": "string",
  "status": "created",
  "paymentData": {},
  "memberData": {
    "id": "string",
    "fullName": "<fullName>",
    "nickName": "string",
    "createdAt": "2019-08-24T14:15:22Z",
    "avatar": "string",
    "countryCode": "string",
    "birthDate": "<birthDate>",
    "deleteAfterExpiration": true,
    "isCompany": true,
    "companyName": "string",
    "organizationNo": "string",
    "customPropertyValues": {},
    "emailVerified": "string",
    "phoneVerified": true,
    "memberNumber": 0,
    "userId": 0,
    "emailStatus": "scheduled",
    "email": "user@example.com",
    "phone": "<phone>",
    "address": {}
  },
  "additionalMemberData": [
    {}
  ],
  "physicalProductData": {
    "memberAddressData": [],
    "productData": []
  },
  "giftReceiverData": [
    {}
  ],
  "giftReceiverDeliveryData": {
    "giftReceiverAddressData": [],
    "productData": []
  },
  "steps": [
    "created"
  ],
  "orderNumber": 0,
  "signInPhone": "<signInPhone>"
}
```

<a id="post-api-v1-checkout-state-uuid-update-gift-receiver-addresses"></a>
## Update gift receiver address of a physical product seat

`POST /api/v1/checkout-state/{uuid}/update-gift-receiver-addresses`

**Authentication:** Bearer token (JWT)

### Parameters

| Name | In | Type | Description |
| --- | --- | --- | --- |
| `uuid` (Required) | path | `string` |   |

### Request body

Content type: `application/json` · Required · `SaveDeliveryAddressDto`

| Name | Type | Description |
| --- | --- | --- |
| `physicalProducts` (Required) | `array of CheckoutStatePhysicalProduct` |   |
| `physicalProducts[].memberId` (Required when parent is present) | `string` |   |
| `physicalProducts[].memberPackageProductId` (Required when parent is present) | `number` |   |
| `physicalProducts[].productName` (Required when parent is present) | `string` |   |
| `physicalProducts[].shippingCountry` (Required when parent is present) | `string` |   |
| `physicalProducts[].address` (Required when parent is present) | `ProfileAddress` |   |
| `physicalProducts[].address.line1` (Required when parent is present) | `string` |   |
| `physicalProducts[].address.line2` (Required when parent is present) | `string` |   |
| `physicalProducts[].address.city` (Required when parent is present) | `string` |   |
| `physicalProducts[].address.postCode` (Required when parent is present) | `string` |   |
| `physicalProducts[].address.country` (Required when parent is present) | `string` |   |
| `physicalProducts[].address.name` (Required when parent is present) | `string` |   |
| `physicalProducts[].address.email` (Required when parent is present) | `string` |   |
| `physicalProducts[].address.companyName` (Required when parent is present) | `string` |   |
| `physicalProducts[].address.organizationNo` (Required when parent is present) | `string` |   |
| `physicalProducts[].address.invoiceReference` | `string` |   |
| `physicalProducts[].address.isSynced` | `boolean` |   |
| `physicalProducts[].address.lastSyncedAt` | `string (date-time)` |   |

### Responses

#### 201

Content type: `application/json` · `CheckoutStateResponse`

Same fields as [Get a checkout-state by uuid (200)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 400

shouldNotBeEmpty

#### 401

Content type: `application/json` · `ErrorResponse`

unauthorized

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 404

Content type: `application/json` · `ErrorResponse`

notFound

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

### Example request

```bash
curl 'https://api.subrite.no/api/v1/checkout-state/{uuid}/update-gift-receiver-addresses' \
  --request POST \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "physicalProducts": [
    {}
  ]
}'
```

### Example response

201 · `application/json`

```json
{
  "uuid": "string",
  "status": "created",
  "paymentData": {},
  "memberData": {
    "id": "string",
    "fullName": "<fullName>",
    "nickName": "string",
    "createdAt": "2019-08-24T14:15:22Z",
    "avatar": "string",
    "countryCode": "string",
    "birthDate": "<birthDate>",
    "deleteAfterExpiration": true,
    "isCompany": true,
    "companyName": "string",
    "organizationNo": "string",
    "customPropertyValues": {},
    "emailVerified": "string",
    "phoneVerified": true,
    "memberNumber": 0,
    "userId": 0,
    "emailStatus": "scheduled",
    "email": "user@example.com",
    "phone": "<phone>",
    "address": {}
  },
  "additionalMemberData": [
    {}
  ],
  "physicalProductData": {
    "memberAddressData": [],
    "productData": []
  },
  "giftReceiverData": [
    {}
  ],
  "giftReceiverDeliveryData": {
    "giftReceiverAddressData": [],
    "productData": []
  },
  "steps": [
    "created"
  ],
  "orderNumber": 0,
  "signInPhone": "<signInPhone>"
}
```

<a id="post-api-v1-checkout-state-uuid-save-delivery-addresses"></a>
## Save delivery address of a physical product seat

`POST /api/v1/checkout-state/{uuid}/save-delivery-addresses`

**Authentication:** Bearer token (JWT)

### Parameters

| Name | In | Type | Description |
| --- | --- | --- | --- |
| `uuid` (Required) | path | `string` |   |

### Request body

Content type: `application/json` · Required · `SaveDeliveryAddressDto`

Same fields as [Update gift receiver address of a physical product seat (Request body)](https://www.subrite.no/developers/checkout-state?md=true#post-api-v1-checkout-state-uuid-update-gift-receiver-addresses).

### Responses

#### 201

Content type: `application/json` · `CheckoutStateResponse`

Same fields as [Get a checkout-state by uuid (200)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 400

shouldNotBeEmpty

#### 401

Content type: `application/json` · `ErrorResponse`

unauthorized

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 404

Content type: `application/json` · `ErrorResponse`

notFound

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

### Example request

```bash
curl 'https://api.subrite.no/api/v1/checkout-state/{uuid}/save-delivery-addresses' \
  --request POST \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "physicalProducts": [
    {}
  ]
}'
```

### Example response

201 · `application/json`

```json
{
  "uuid": "string",
  "status": "created",
  "paymentData": {},
  "memberData": {
    "id": "string",
    "fullName": "<fullName>",
    "nickName": "string",
    "createdAt": "2019-08-24T14:15:22Z",
    "avatar": "string",
    "countryCode": "string",
    "birthDate": "<birthDate>",
    "deleteAfterExpiration": true,
    "isCompany": true,
    "companyName": "string",
    "organizationNo": "string",
    "customPropertyValues": {},
    "emailVerified": "string",
    "phoneVerified": true,
    "memberNumber": 0,
    "userId": 0,
    "emailStatus": "scheduled",
    "email": "user@example.com",
    "phone": "<phone>",
    "address": {}
  },
  "additionalMemberData": [
    {}
  ],
  "physicalProductData": {
    "memberAddressData": [],
    "productData": []
  },
  "giftReceiverData": [
    {}
  ],
  "giftReceiverDeliveryData": {
    "giftReceiverAddressData": [],
    "productData": []
  },
  "steps": [
    "created"
  ],
  "orderNumber": 0,
  "signInPhone": "<signInPhone>"
}
```

<a id="post-api-v1-checkout-state-uuid-complete-consent"></a>
## Complete consent info step

`POST /api/v1/checkout-state/{uuid}/complete-consent`

**Authentication:** Bearer token (JWT)

### Parameters

| Name | In | Type | Description |
| --- | --- | --- | --- |
| `uuid` (Required) | path | `string` |   |

### Responses

#### 201

Content type: `application/json` · `CheckoutStateResponse`

Same fields as [Get a checkout-state by uuid (200)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 401

Content type: `application/json` · `ErrorResponse`

unauthorized

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

**Example response**

`application/json`

```json
{
  "messageCode": "string",
  "message": "string",
  "errors": [
    {}
  ]
}
```

#### 403

Content type: `application/json` · `ErrorResponse`

forbiddenResource

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 404

Content type: `application/json` · `ErrorResponse`

notFound

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

#### 500

Content type: `application/json` · `ErrorResponse`

internalServerError

Same fields as [Get a checkout-state by uuid (401)](https://www.subrite.no/developers/checkout-state?md=true#get-api-v1-checkout-state-uuid).

### Example request

```bash
curl 'https://api.subrite.no/api/v1/checkout-state/{uuid}/complete-consent' \
  --request POST \
  --header 'Authorization: Bearer <token>'
```

### Example response

201 · `application/json`

```json
{
  "uuid": "string",
  "status": "created",
  "paymentData": {},
  "memberData": {
    "id": "string",
    "fullName": "<fullName>",
    "nickName": "string",
    "createdAt": "2019-08-24T14:15:22Z",
    "avatar": "string",
    "countryCode": "string",
    "birthDate": "<birthDate>",
    "deleteAfterExpiration": true,
    "isCompany": true,
    "companyName": "string",
    "organizationNo": "string",
    "customPropertyValues": {},
    "emailVerified": "string",
    "phoneVerified": true,
    "memberNumber": 0,
    "userId": 0,
    "emailStatus": "scheduled",
    "email": "user@example.com",
    "phone": "<phone>",
    "address": {}
  },
  "additionalMemberData": [
    {}
  ],
  "physicalProductData": {
    "memberAddressData": [],
    "productData": []
  },
  "giftReceiverData": [
    {}
  ],
  "giftReceiverDeliveryData": {
    "giftReceiverAddressData": [],
    "productData": []
  },
  "steps": [
    "created"
  ],
  "orderNumber": 0,
  "signInPhone": "<signInPhone>"
}
```
