CyberSource Merchant Defined Fields API

The Merchant Defined Fields API from CyberSource — 2 operation(s) for merchant defined fields.

Operations 4

GET /invoicing/v2/{referenceType}/merchantDefinedFields Get all merchant defined fields for a given reference type #
POST /invoicing/v2/{referenceType}/merchantDefinedFields Create merchant defined field for a given reference type #
PUT /invoicing/v2/{referenceType}/merchantDefinedFields/{id} Update a MerchantDefinedField by ID #
DELETE /invoicing/v2/{referenceType}/merchantDefinedFields/{id} Delete a MerchantDefinedField by ID #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cybersource-merchant-defined-fields-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cybersource-merchant-defined-fields-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html
  version: 0.0.1
  title: CyberSource Merged Spec bankAccountValidation Merchant Defined Fields API
servers:
- url: https://apitest.cybersource.com/
tags:
- name: Merchant Defined Fields
paths:
  /invoicing/v2/{referenceType}/merchantDefinedFields:
    get:
      tags:
      - Merchant Defined Fields
      summary: Get all merchant defined fields for a given reference type
      operationId: getMerchantDefinedFieldsDefinitions
      x-devcenter-metaData:
        categoryTag: Invoicing
        developerGuides: https://developer.cybersource.com/docs/cybs/en-us/invoicing/developer/all/rest/invoicing/Introduction.html
      parameters:
      - name: referenceType
        in: path
        description: The reference type for which merchant defined fields are to be fetched. Available values are Invoice, Purchase, Donation
        required: true
        schema:
          type: string
          enum:
          - Invoice
          - Purchase
          - Donation
      responses:
        '200':
          description: Get all merchant defined fields for a given reference type
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      format: int64
                    fieldType:
                      type: string
                    label:
                      type: string
                    customerVisible:
                      type: boolean
                    textMinLength:
                      type: integer
                      format: int32
                    textMaxLength:
                      type: integer
                      format: int32
                    possibleValues:
                      type: string
                    textDefaultValue:
                      type: string
                    merchantId:
                      type: string
                    referenceType:
                      type: string
                    readOnly:
                      type: boolean
                    merchantDefinedDataIndex:
                      type: integer
                      format: int32
                  example:
                    fieldType: Text
                    label: Cup
                    customerVisible: 'true'
                    readOnly: 'false'
                    textMinLength: 1
                    textMaxLength: 100
                    textDefaultValue: default text
                    merchantDefinedDataIndex: 15
        '404':
          description: Merchant defined fields not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  submitTimeUtc:
                    type: string
                    description: The time the response was submitted
                  status:
                    type: integer
                    description: The status code of the response
                    format: int32
                  reason:
                    type: string
                    description: The reason for the response
                  message:
                    type: string
                    description: The message of the response
                  details:
                    description: The details of the validation error
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          description: The field that caused the validation error
                        reason:
                          type: string
                          description: The reason for the validation error
                example:
                  correlationId: 08b69ffe-f79b-4e09-991f-b030058e21f4
                  status: 400
                  responseData:
                    submitTimeUtc: '2016-08-11T22:47:57Z'
                    status: 400
                    reason: MERCHANT_DEFINED_FIELD_ALREADY_UPDATED
                    message: Merchant defined field already updated or does not exist
                    details:
                    - field: customerVisible readOnly
                      reason: For 'Select' field type 'Read only' must be false and 'Customer Visible' true
                    - field: textMinLength
                      reason: textMinLength is not allowed for field type Select
                    - field: textMaxLength
                      reason: textMaxLength is not allowed for field type Select
                    - field: textDefaultValue
                      reason: textDefaultValue is not allowed for field type Select
                    - field: possibleValues
                      reason: Possible values cannot be empty for Select field type
                    - field: possibleValues
                      reason: Possible value Best Dad in the world is too long
                    - field: possibleValues
                      reason: Possible values must contain at least two values
                    - field: possibleValues
                      reason: Possible values total length cannot exceed 4000 characters
                    - field: possibleValues
                      reason: Possible value cannot be empty
    post:
      tags:
      - Merchant Defined Fields
      x-devcenter-metaData:
        categoryTag: Invoicing
        developerGuides: https://developer.cybersource.com/docs/cybs/en-us/invoicing/developer/all/rest/invoicing/Introduction.html
      summary: Create merchant defined field for a given reference type
      operationId: createMerchantDefinedFieldDefinition
      parameters:
      - name: referenceType
        in: path
        description: The reference type for which merchant defined fields are to be fetched. Available values are Invoice, Purchase, Donation
        required: true
        schema:
          type: string
          enum:
          - Invoice
          - Purchase
          - Donation
      responses:
        '201':
          description: Create merchant defined field for a given reference type
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      format: int64
                    fieldType:
                      type: string
                    label:
                      type: string
                    customerVisible:
                      type: boolean
                    textMinLength:
                      type: integer
                      format: int32
                    textMaxLength:
                      type: integer
                      format: int32
                    possibleValues:
                      type: string
                    textDefaultValue:
                      type: string
                    merchantId:
                      type: string
                    referenceType:
                      type: string
                    readOnly:
                      type: boolean
                    merchantDefinedDataIndex:
                      type: integer
                      format: int32
                  example:
                    fieldType: Text
                    label: Cup
                    customerVisible: 'true'
                    readOnly: 'false'
                    textMinLength: 1
                    textMaxLength: 100
                    textDefaultValue: default text
                    merchantDefinedDataIndex: 15
        '400':
          description: MerchantDefinedData definition is already updated or Merchant Defined Data Index is already assigned
          content:
            application/json:
              schema:
                type: object
                properties:
                  submitTimeUtc:
                    type: string
                    description: The time the response was submitted
                  status:
                    type: integer
                    description: The status code of the response
                    format: int32
                  reason:
                    type: string
                    description: The reason for the response
                  message:
                    type: string
                    description: The message of the response
                  details:
                    description: The details of the validation error
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          description: The field that caused the validation error
                        reason:
                          type: string
                          description: The reason for the validation error
                example:
                  correlationId: 08b69ffe-f79b-4e09-991f-b030058e21f4
                  status: 400
                  responseData:
                    submitTimeUtc: '2016-08-11T22:47:57Z'
                    status: 400
                    reason: MERCHANT_DEFINED_FIELD_ALREADY_UPDATED
                    message: Merchant defined field already updated or does not exist
                    details:
                    - field: customerVisible readOnly
                      reason: For 'Select' field type 'Read only' must be false and 'Customer Visible' true
                    - field: textMinLength
                      reason: textMinLength is not allowed for field type Select
                    - field: textMaxLength
                      reason: textMaxLength is not allowed for field type Select
                    - field: textDefaultValue
                      reason: textDefaultValue is not allowed for field type Select
                    - field: possibleValues
                      reason: Possible values cannot be empty for Select field type
                    - field: possibleValues
                      reason: Possible value Best Dad in the world is too long
                    - field: possibleValues
                      reason: Possible values must contain at least two values
                    - field: possibleValues
                      reason: Possible values total length cannot exceed 4000 characters
                    - field: possibleValues
                      reason: Possible value cannot be empty
        '409':
          description: MerchantDefinedData definition is already updated or Merchant Defined Data Index is already assigned
          content:
            application/json:
              schema:
                type: object
                properties:
                  submitTimeUtc:
                    type: string
                    description: The time the response was submitted
                  status:
                    type: integer
                    description: The status code of the response
                    format: int32
                  reason:
                    type: string
                    description: The reason for the response
                  message:
                    type: string
                    description: The message of the response
                  details:
                    description: The details of the validation error
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          description: The field that caused the validation error
                        reason:
                          type: string
                          description: The reason for the validation error
                example:
                  correlationId: 08b69ffe-f79b-4e09-991f-b030058e21f4
                  status: 400
                  responseData:
                    submitTimeUtc: '2016-08-11T22:47:57Z'
                    status: 400
                    reason: MERCHANT_DEFINED_FIELD_ALREADY_UPDATED
                    message: Merchant defined field already updated or does not exist
                    details:
                    - field: customerVisible readOnly
                      reason: For 'Select' field type 'Read only' must be false and 'Customer Visible' true
                    - field: textMinLength
                      reason: textMinLength is not allowed for field type Select
                    - field: textMaxLength
                      reason: textMaxLength is not allowed for field type Select
                    - field: textDefaultValue
                      reason: textDefaultValue is not allowed for field type Select
                    - field: possibleValues
                      reason: Possible values cannot be empty for Select field type
                    - field: possibleValues
                      reason: Possible value Best Dad in the world is too long
                    - field: possibleValues
                      reason: Possible values must contain at least two values
                    - field: possibleValues
                      reason: Possible values total length cannot exceed 4000 characters
                    - field: possibleValues
                      reason: Possible value cannot be empty
        '412':
          description: Merchant has exceeded limit for type {referenceType}
          content:
            application/json:
              schema:
                type: object
                properties:
                  submitTimeUtc:
                    type: string
                    description: The time the response was submitted
                  status:
                    type: integer
                    description: The status code of the response
                    format: int32
                  reason:
                    type: string
                    description: The reason for the response
                  message:
                    type: string
                    description: The message of the response
                  details:
                    description: The details of the validation error
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          description: The field that caused the validation error
                        reason:
                          type: string
                          description: The reason for the validation error
                example:
                  correlationId: 08b69ffe-f79b-4e09-991f-b030058e21f4
                  status: 400
                  responseData:
                    submitTimeUtc: '2016-08-11T22:47:57Z'
                    status: 400
                    reason: MERCHANT_DEFINED_FIELD_ALREADY_UPDATED
                    message: Merchant defined field already updated or does not exist
                    details:
                    - field: customerVisible readOnly
                      reason: For 'Select' field type 'Read only' must be false and 'Customer Visible' true
                    - field: textMinLength
                      reason: textMinLength is not allowed for field type Select
                    - field: textMaxLength
                      reason: textMaxLength is not allowed for field type Select
                    - field: textDefaultValue
                      reason: textDefaultValue is not allowed for field type Select
                    - field: possibleValues
                      reason: Possible values cannot be empty for Select field type
                    - field: possibleValues
                      reason: Possible value Best Dad in the world is too long
                    - field: possibleValues
                      reason: Possible values must contain at least two values
                    - field: possibleValues
                      reason: Possible values total length cannot exceed 4000 characters
                    - field: possibleValues
                      reason: Possible value cannot be empty
      x-example:
        example0:
          summary: Create merchant defined field
          value:
            fieldType: Text
            label: Cup
            customerVisible: 'true'
            readOnly: 'false'
            textMinLength: 1
            textMaxLength: 100
            textDefaultValue: default text
            merchantDefinedDataIndex: 15
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                fieldType:
                  type: string
                  description: 'Possible values:

                    - text

                    - select'
                label:
                  type: string
                  maxLength: 100
                customerVisible:
                  type: boolean
                  default: false
                textMinLength:
                  type: integer
                  default: 0
                  description: Should be used only if fieldType = "text"
                textMaxLength:
                  type: integer
                  default: 100
                  description: Should be used only if fieldType = "text"
                textDefaultValue:
                  type: string
                  maxLength: 100
                  description: Should be used only if fieldType = "text"
                possibleValues:
                  type: string
                  maxLength: 600
                  description: Should be mandatory and used only if fieldType = "select"
                readOnly:
                  type: boolean
                  default: false
                merchantDefinedDataIndex:
                  type: integer
              required:
              - fieldType
              - label
              - merchantDefinedDataIndex
              example:
                fieldType: Text
                label: Cup
                customerVisible: 'true'
                readOnly: 'false'
                textMinLength: 1
                textMaxLength: 100
                textDefaultValue: default text
                merchantDefinedDataIndex: 15
        required: true
  /invoicing/v2/{referenceType}/merchantDefinedFields/{id}:
    put:
      tags:
      - Merchant Defined Fields
      x-devcenter-metaData:
        categoryTag: Invoicing
        developerGuides: https://developer.cybersource.com/docs/cybs/en-us/invoicing/developer/all/rest/invoicing/Introduction.html
      summary: Update a MerchantDefinedField by ID
      operationId: putMerchantDefinedFieldsDefinitions
      parameters:
      - in: path
        name: referenceType
        required: true
        schema:
          type: string
          enum:
          - Invoice
          - Purchase
          - Donation
      - in: path
        name: id
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: A list of MerchantDefinedField
          content:
            application/hal+json;charset=utf-8:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                      format: int64
                    fieldType:
                      type: string
                    label:
                      type: string
                    customerVisible:
                      type: boolean
                    textMinLength:
                      type: integer
                      format: int32
                    textMaxLength:
                      type: integer
                      format: int32
                    possibleValues:
                      type: string
                    textDefaultValue:
                      type: string
                    merchantId:
                      type: string
                    referenceType:
                      type: string
                    readOnly:
                      type: boolean
                    merchantDefinedDataIndex:
                      type: integer
                      format: int32
                  example:
                    fieldType: Text
                    label: Cup
                    customerVisible: 'true'
                    readOnly: 'false'
                    textMinLength: 1
                    textMaxLength: 100
                    textDefaultValue: default text
                    merchantDefinedDataIndex: 15
        '400':
          description: Wrong referenceType in the path
          content:
            application/hal+json;charset=utf-8:
              schema:
                type: object
                properties:
                  submitTimeUtc:
                    type: string
                    description: The time the response was submitted
                  status:
                    type: integer
                    description: The status code of the response
                    format: int32
                  reason:
                    type: string
                    description: The reason for the response
                  message:
                    type: string
                    description: The message of the response
                  details:
                    description: The details of the validation error
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          description: The field that caused the validation error
                        reason:
                          type: string
                          description: The reason for the validation error
                example:
                  correlationId: 08b69ffe-f79b-4e09-991f-b030058e21f4
                  status: 400
                  responseData:
                    submitTimeUtc: '2016-08-11T22:47:57Z'
                    status: 400
                    reason: MERCHANT_DEFINED_FIELD_ALREADY_UPDATED
                    message: Merchant defined field already updated or does not exist
                    details:
                    - field: customerVisible readOnly
                      reason: For 'Select' field type 'Read only' must be false and 'Customer Visible' true
                    - field: textMinLength
                      reason: textMinLength is not allowed for field type Select
                    - field: textMaxLength
                      reason: textMaxLength is not allowed for field type Select
                    - field: textDefaultValue
                      reason: textDefaultValue is not allowed for field type Select
                    - field: possibleValues
                      reason: Possible values cannot be empty for Select field type
                    - field: possibleValues
                      reason: Possible value Best Dad in the world is too long
                    - field: possibleValues
                      reason: Possible values must contain at least two values
                    - field: possibleValues
                      reason: Possible values total length cannot exceed 4000 characters
                    - field: possibleValues
                      reason: Possible value cannot be empty
        '409':
          description: MerchantDefinedData definition is already updated or Merchant Defined Data Index is already assigned
          content:
            application/hal+json;charset=utf-8:
              schema:
                type: object
                properties:
                  submitTimeUtc:
                    type: string
                    description: The time the response was submitted
                  status:
                    type: integer
                    description: The status code of the response
                    format: int32
                  reason:
                    type: string
                    description: The reason for the response
                  message:
                    type: string
                    description: The message of the response
                  details:
                    description: The details of the validation error
                    type: array
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          description: The field that caused the validation error
                        reason:
                          type: string
                          description: The reason for the validation error
                example:
                  correlationId: 08b69ffe-f79b-4e09-991f-b030058e21f4
                  status: 400
                  responseData:
                    submitTimeUtc: '2016-08-11T22:47:57Z'
                    status: 400
                    reason: MERCHANT_DEFINED_FIELD_ALREADY_UPDATED
                    message: Merchant defined field already updated or does not exist
                    details:
                    - field: customerVisible readOnly
                      reason: For 'Select' field type 'Read only' must be false and 'Customer Visible' true
                    - field: textMinLength
                      reason: textMinLength is not allowed for field type Select
                    - field: textMaxLength
                      reason: textMaxLength is not allowed for field type Select
                    - field: textDefaultValue
                      reason: textDefaultValue is not allowed for field type Select
                    - field: possibleValues
                      reason: Possible values cannot be empty for Select field type
                    - field: possibleValues
                      reason: Possible value Best Dad in the world is too long
                    - field: possibleValues
                      reason: Possible values must contain at least two values
                    - field: possibleValues
                      reason: Possible values total length cannot exceed 4000 characters
                    - field: possibleValues
                      reason: Possible value cannot be empty
      x-example:
        example0:
          summary: Create merchant defined field
          value:
            fieldType: Text
            label: Cup
            customerVisible: 'true'
            readOnly: 'false'
            textMinLength: 1
            textMaxLength: 100
            textDefaultValue: default text
            merchantDefinedDataIndex: 15
      requestBody:
        content:
          application/json;charset=utf-8:
            schema:
              type: object
              properties:
                fieldType:
                  type: string
                  description: 'Possible values:

                    - text

                    - select'
                label:
                  type: string
                  maxLength: 100
                customerVisible:
                  type: boolean
                  default: false
                textMinLength:
                  type: integer
                  default: 0
                  description: Should be used only if fieldType = "text"
                textMaxLength:
                  type: integer
                  default: 100
                  description: Should be used only if fieldType = "text"
                textDefaultValue:
                  type: string
                  maxLength: 100
                  description: Should be used only if fieldType = "text"
                possibleValues:
                  type: string
                  maxLength: 600
                  description: Should be mandatory and used only if fieldType = "select"
                readOnly:
                  type: boolean
                  default: false
                merchantDefinedDataIndex:
                  type: integer
              required:
              - fieldType
              - label
              - merchantDefinedDataIndex
              example:
                fieldType: Text
                label: Cup
                customerVisible: 'true'
                readOnly: 'false'
                textMinLength: 1
                textMaxLength: 100
                textDefaultValue: default text
                merchantDefinedDataIndex: 15
        required: true
    delete:
      tags:
      - Merchant Defined Fields
      x-devcenter-metaData:
        categoryTag: Invoicing
        developerGuides: https://developer.cybersource.com/docs/cybs/en-us/invoicing/developer/all/rest/invoicing/Introduction.html
      summary: Delete a MerchantDefinedField by ID
      operationId: deleteMerchantDefinedFieldsDefinitions
      parameters:
      - in: path
        name: referenceType
        required: true
        schema:
          type: string
          enum:
          - Invoice
          - Purchase
          - Donation
      - in: path
        name: id
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          description: MerchantDefinedField deleted
x-devcenter-metaData:
  categoryTagArray:
  - name: Payments
    description: For more information about Payments transactions, see the [Payments Developer Guides Page](https://developer.cybersource.com/docs/cybs/en-us/payments/developer/ctv/rest/payments/payments-intro.html).
  - name: Transaction_Batches
    description: For more information about Transaction Batches, see the [Transaction Batches Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-transaction-batch-api/txn_batch_api_intro.html).
  - name: eCheck_AVS
    description: For more information about eCheck Account Validation, see the [Account Validation Developer Guides Page](https://...).
  - name: Token_Management
    description: For more information about the Token Management Service (TMS) see the [Token Management Developer Guide](https://developer.cybersource.com/docs/cybs/en-us/tms/developer/all/rest/tms/tms-overview.html)
  - name: Flex_Microform
    description: Microform Integration is a lightweight acceptance solution designed to safely and securely accept payment information within your web page.  Microform is designed to a be embedded seamlessly within your existing webpage experience, blending in with your existing acceptance form.  This solution allows for the replacement of sensitive payment date with a transient token (a short lived reference to the sensitive payment data).  For more information about Flex Microform transactions, see the [Flex Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-flex/SAFlexibleToken.html). For examples on how to integrate Flex Microform within your webpage please see our [GitHub Flex Samples](https://github.com/CyberSource?q=flex&type=&language=)
  - name: Flex_API
    description: For more information about Flex API, please see [Developer Guides Page](https://developer.cybersource.com/docs/cybs/en-us/digital-accept-flex/developer/all/rest/digital-accept-flex/da-flex-api-intro.html).
  - name: Risk_Management
  - name: Payouts
    description: 'For more information about Payouts, see the [Payouts Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-payouts/Introduction.html).

      '
  - name: Installments
    description: For more information about Installment contact Cybersource Support. For Visa installments contact VISthroughCYBS@visa.com
  - name: Recurring_Billing_Subscriptions
    description: For more information about Recurring Billing, see the [Recurring Billing Developer Guide](https://developer.cybersource.com/docs/cybs/en-us/recurring-billing/developer/all/rest/recurring-billing-developer/recur-bill-services-intro.html).
  - name: BIN_Lookup
    description: 'The BIN Lookup Service is a versatile business tool that provides card network agnostic solution designed to ensure frictionless transaction experience by utilizing up-to-date Bank Identification Number (BIN) attributes sour

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cybersource/refs/heads/main/openapi/cybersource-merchant-defined-fields-api-openapi.yml