{
   "type": "Payment",
   "subClassOf": "https://schema.org/Thing",
   "validationMode": {
      "C1Request": "Crequest",
      "C1Response": "Cresponse",
      "C1ResponseOrderItemError": "Cresponse",
      "C2Request": "Crequest",
      "C2Response": "Cresponse",
      "C2ResponseOrderItemError": "Cresponse",
      "PRequest": "request",
      "PResponse": "response",
      "PResponseOrderItemError": "response",
      "BRequest": "request",
      "BResponse": "response",
      "BResponseOrderItemError": "response"
   },
   "imperativeConfiguration": {
      "Crequest": {
         "requiredFields": [
            "type"
         ],
         "recommendedFields": [
            "name",
            "accountId",
            "paymentProviderId"
         ],
         "shallNotInclude": [
            "identifier"
         ]
      },
      "request": {
         "requiredFields": [
            "type",
            "identifier"
         ],
         "recommendedFields": [
            "name",
            "accountId",
            "paymentProviderId"
         ]
      },
      "Cresponse": {
         "requiredFields": [
            "type"
         ],
         "shallNotInclude": [
            "identifier"
         ]
      },
      "response": {
         "requiredFields": [
            "type",
            "identifier"
         ]
      }
   },
   "inSpec": [
      "type",
      "name",
      "identifier",
      "paymentMethod",
      "accountId",
      "paymentProviderId",
      "additionalProperty"
   ],
   "fields": {
      "type": {
         "fieldName": "type",
         "requiredType": "https://schema.org/Text",
         "requiredContent": "Payment"
      },
      "name": {
         "fieldName": "name",
         "sameAs": "https://schema.org/name",
         "requiredType": "https://schema.org/Text",
         "description": [
            "Optional free text description of the payment method for the Booking System, to help the Seller in discussions with the Customer (e.g. 'AcmeBroker Points' or 'AcmeBroker via Credit Card')."
         ]
      },
      "identifier": {
         "fieldName": "identifier",
         "sameAs": "https://schema.org/identifier",
         "requiredType": "https://schema.org/Text",
         "example": "SB1234",
         "description": [
            "The identifier of the payment held by the Broker and/or Payment Provider."
         ]
      },
      "paymentMethod": {
         "fieldName": "paymentMethod",
         "sameAs": "https://schema.org/paymentMethod",
         "requiredType": "http://purl.org/goodrelations/v1#PaymentMethod",
         "description": [
            "paymentMethod must not be used, and is reserved for future versions of this specification."
         ]
      },
      "accountId": {
         "fieldName": "accountId",
         "sameAs": "https://schema.org/accountId",
         "requiredType": "https://schema.org/Text",
         "description": [
            "A reference used by the Seller to group transactions, which is used to aid reconciliation."
         ]
      },
      "paymentProviderId": {
         "fieldName": "paymentProviderId",
         "sameAs": "https://openactive.io/paymentProviderId",
         "requiredType": "https://schema.org/Text",
         "description": [
            "A reference to the specific Payment Provider that is used."
         ]
      },
      "additionalProperty": {
         "fieldName": "additionalProperty",
         "sameAs": "https://schema.org/additionalProperty",
         "model": "ArrayOf#PropertyValue",
         "description": [
            "PropertyValue that contains a text value useful for reconciliation."
         ]
      }
   }
}