# Charge fee to a corporate

Charge a fee to the corporate identified by the auth token, based on a pre-defined custom fee. Custom fees can be configured in the Multi Portal.

The fees collected will be deposited into your Revenue Account. The balance and transaction history of your revenue account can be viewed in the Multi Portal.

Endpoint: POST /corporates/fees/charge
Version: v3
Security: auth_token, api-key

## Security:

  - `auth_token` (unknown)
    http bearer JWT

  - `api-key` (unknown)
    apiKey in header api-key

## Header parameters:

  - `idempotency-ref` (string)
    A unique call reference generated by the caller that, taking into consideration the payload as well as the operation itself, helps avoid duplicate operations. Idempotency reference uniqueness is maintained for at least 24 hours.

## Request fields (application/json):

  - `feeType` (string, required)
    The fee type as defined in the Multi Portal.

  - `source` (object, required)

  - `source.id` (string, required)

  - `source.type` (string, required)
    Enum: "managed_cards", "managed_accounts"

## Response 200:

  - `200` (unknown)
    Success

## Response 200 fields (application/json):

  - `transactionId` (object, required)

  - `transactionId.type` (string, required)
    Enum: "AUTHORISATION", "SETTLEMENT", "MANUAL_TRANSACTION", "TRANSFER", "SEND", "DEPOSIT", "AUTHORISATION_REVERSAL", "AUTHORISATION_EXPIRY", "AUTHORISATION_DECLINE", "AUTHORISATION_MANUAL_CLOSE", "MERCHANT_REFUND", "MERCHANT_REFUND_REVERSAL", "ORIGINAL_CREDIT_TRANSACTION", "SETTLEMENT_REVERSAL", "ADJUSTMENT", "CHARGE_FEE", "WITHDRAWAL_RESERVE", "WITHDRAWAL_RELEASE", "FEE_REVERSAL", "OUTGOING_WIRE_TRANSFER", "AUTHORISATION_CANCELLATION", "SYSTEM_TRANSACTION", "OUTGOING_DIRECT_DEBIT_COLLECTION", "OUTGOING_DIRECT_DEBIT_REFUND", "LINKED_ACCOUNT_VERIFICATION_TRANSFER", "INCOMING_WIRE_TRANSFER", "FUNDING", "TEST_FUNDING", "CORRESPONDENT_BANK_TRANSFER"

  - `transactionId.id` (string, required)

  - `profileId` (string, required)
    The profile Id which a specific identity, instrument or transaction type is linked to.

  - `feeType` (string, required)
    The fee type as defined in the Multi Portal, and as sent in the request.

  - `source` (object, required)

  - `source.id` (string, required)

  - `source.type` (string, required)
    Enum: "managed_cards", "managed_accounts"

  - `availableBalanceAdjustment` (object, required)
    The object representing a monetary amount in a particular currency.

  - `availableBalanceAdjustment.currency` (string, required)
    The currency expressed in ISO-4217 code. Example: GBP, EUR, USD.

  - `availableBalanceAdjustment.amount` (integer, required)
    The monetary amount, scaled to the lowest denomination of the currency.

Example, an amount of 1000 for a EUR currency is actually 1000 Euro cents or EUR 10.00.

  - `state` (string, required)
    Status of the transaction.
    Enum: "INITIALISED", "COMPLETED", "REJECTED", "FAILED", "PENDING", "SCHEDULED", "CANCELLED"

  - `creationTimestamp` (integer, required)

## Response 200 headers (application/json):

  - `request-ref` (string, required)
    A request identifier. Providing this reference when contacting our support team will help us investigate your query.

## Response 400:

  - `400` (unknown)
    Bad Request Error - Your request is invalid.

## Response 400 fields (application/json):

  - `message` (string)
    When present helps to identify and fix the problem.

  - `syntaxErrors` (object)
    Is returned as part of an HTTP error response whenever a syntax error is detected. A list of the fields together with their syntax error will be provided.

  - `syntaxErrors.invalidFields` (array)

  - `syntaxErrors.invalidFields.params` (array)

  - `syntaxErrors.invalidFields.fieldName` (string)

  - `syntaxErrors.invalidFields.error` (string)
    Enum: "REQUIRED", "HAS_TEXT", "REQUIRES", "SIZE", "RANGE", "IN", "NOT_IN", "REGEX", "EXACTLY", "AT_LEAST", "AT_MOST", "ALL_OR_NONE"

## Response 400 headers (application/json):

  - `request-ref` (string, required)
    A request identifier. Providing this reference when contacting our support team will help us investigate your query.

## Response 401:

  - `401` (unknown)
    Unauthorized - Your credentials or access token are invalid.

## Response 401 headers:

  - `request-ref` (string, required)
    A request identifier. Providing this reference when contacting our support team will help us investigate your query.

## Response 403:

  - `403` (unknown)
    Forbidden - Access to the requested resource or action is forbidden.

## Response 403 fields (application/json):

  - `errorCode` (string)
    Enum: "INSUFFICIENT_PERMISSIONS"

## Response 403 headers (application/json):

  - `request-ref` (string, required)
    A request identifier. Providing this reference when contacting our support team will help us investigate your query.

## Response 404:

  - `404` (unknown)
    Not found - The requested resource couldn't be found.

## Response 404 fields (application/json):

  - `code` (string)

  - `message` (string)

## Response 404 headers (application/json):

  - `request-ref` (string, required)
    A request identifier. Providing this reference when contacting our support team will help us investigate your query.

## Response 409:

  - `409` (unknown)
    Conflict

## Response 409 fields (application/json):

  - `errorCode` (string)
    Enum: "UNRESOLVED_FEE_TYPE", "UNRESOLVED_CURRENCY", "UNRESOLVED_INSTRUMENT", "FUNDS_INSUFFICIENT", "IDENTITY_NOT_OWNER_OF_INSTRUMENT", "FEE_AMOUNT_NOT_SET"

## Response 429:

  - `429` (unknown)
    Too many requests.

## Response 429 headers:

  - `request-ref` (string, required)
    A request identifier. Providing this reference when contacting our support team will help us investigate your query.

  - `x-ratelimit-limit` (string, required)
    Example: `20, 10;w=60, 20;w=3600, 200;w=86400`
The first number (20) is the limit that has been exceeded.
The remaining numbers are the limits that are in force, with 'w' meaning 'window in seconds'. In this example `20;w=3600` was exceeded. 20 calls in 3600secs (1hr)

  - `x-ratelimit-reset` (integer, required)
    The number of seconds until the window is reset.

## Response 500:

  - `500` (unknown)
    Internal Server Error - There is a problem with the server. Please try again later.

## Response 500 headers:

  - `request-ref` (string, required)
    A request identifier. Providing this reference when contacting our support team will help us investigate your query.

## Response 503:

  - `503` (unknown)
    Service Unavailable - The requested service is temporarily unavailable. Please try again later.

## Response 503 headers:

  - `request-ref` (string, required)
    A request identifier. Providing this reference when contacting our support team will help us investigate your query.

## Response default:

  - `default` (unknown)
    Error

## Response default fields (application/json):

  - `code` (string)

  - `message` (string)

