---
title: "Authorise charge"
method: POST
path: "/v1/frontend/charges/{chargeId}/cards"
tags: ["Charge operations"]
---

# Authorise charge

`POST /v1/frontend/charges/{chargeId}/cards`

## Request

- The document declares no server URL.
- Auth: none declared

## Path parameters

- `chargeId` string, required

## Request body

- AuthCardDetails
  - `accept_header` string
  - `accept_language_header` string
  - `address` Address
    - `city` string
    - `country` string
    - `county` string
    - `line1` string
    - `line2` string
    - `postcode` string
  - `browserAcceptHeader` string
  - `browserColorDepth` string
  - `browserIpAddress` string
  - `browserJavaScriptEnabled` boolean
  - `browserLanguage` string
  - `browserScreenHeight` string
  - `browserScreenWidth` string
  - `browserTZ` string
  - `browserUserAgent` string
  - `card_brand` string
  - `card_number` string: Card number. See https://docs.payments.service.gov.uk/testing_govuk_pay/#mock-card-numbers-and-email-addresses for test card numbers
  - `card_type` 'DEBIT' | 'CREDIT' | 'CREDIT_OR_DEBIT'
  - `cardholder_name` string: Cardholder name
  - `corporate_card` boolean
  - `cvc` string
  - `expiry_date` CardExpiryDate: The expiry date of the card the user paid with.
    - `fourDigitYear` string
    - `twoDigitMonth` string
    - `twoDigitYear` string
  - `ip_address` string
  - `js_enabled` boolean
  - `js_navigator_language` string
  - `js_screen_color_depth` string
  - `js_screen_height` string
  - `js_screen_width` string
  - `js_timezone_offset_mins` string
  - `prepaid` 'PREPAID' | 'NOT_PREPAID' | 'UNKNOWN'
  - `user_agent_header` string
  - `worldpay_3ds_flex_ddc_result` string

## Response `200`

OK

## Other responses

- `202`: Accepted - payment has been submitted for authorisation and awaiting response from payment service provider
- `400`: Bad request - invalid payload or the payment has been declined
- `402`: Gateway error
- `404`: Not found - charge not found
- `422`: Unprocessable Entity - Invalid payload or missing mandatory attributes
- `500`: Internal server error - For gateway errors or anything else not handled

## Changes

- **2026-10-02** `042ba06d9017`: 3 info
  - removed the `AMOUNT_BELOW_MINIMUM` enum value from the `error_identifier` response property for the response status `400`
  - removed the `AMOUNT_BELOW_MINIMUM` enum value from the `error_identifier` response property for the response status `402`
  - removed the `AMOUNT_BELOW_MINIMUM` enum value from the `error_identifier` response property for the response status `422`
- **2026-10-01** `4e93196bd6aa`: 6 warning
  - added the new `AMOUNT_BELOW_MINIMUM_FOR_ADYEN` enum value to the `error_identifier` response property for the response status `400`
  - added the new `AMOUNT_BELOW_MINIMUM_FOR_ADYEN` enum value to the `error_identifier` response property for the response status `402`
  - added the new `AMOUNT_BELOW_MINIMUM_FOR_ADYEN` enum value to the `error_identifier` response property for the response status `422`
  - added the new `AMOUNT_BELOW_MINIMUM_FOR_STRIPE` enum value to the `error_identifier` response property for the response status `400`
  - …2 more
- **2026-08-13** `27d69e48d87b`: 1 info
  - added the new optional request property `browserIpAddress`
- **2026-08-12** `de31b6933cc1`: 8 info
  - added the new optional request property `browserAcceptHeader`
  - added the new optional request property `browserColorDepth`
  - added the new optional request property `browserJavaScriptEnabled`
  - added the new optional request property `browserLanguage`
  - …4 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/government-digital-service/apis/connector-api/changes/v1/frontend/charges/:chargeId/cards/post.md)

---

[API](https://skmtc.dev/government-digital-service/apis/connector-api.md) - [All operations](https://skmtc.dev/government-digital-service/apis/connector-api/llms.txt) - [OpenAPI document](https://skmtc.dev/government-digital-service/apis/connector-api/revisions/7f294e492d3c?raw)
