Chilkat Online Tools

Ruby / Salesforce Platform APIs / Update Commitment Payments

Back to Collection Items

require 'chilkat'

# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

http = Chilkat::CkHttp.new()

# Use this online tool to generate code from sample JSON: Generate Code to Create JSON

# The following JSON is sent in the request body.

# {
#   "updates": [
#     {
#       "giftCommitmentId": "<SFDC_GIFT_COMMITMENT_ID>",
#       "paymentInstrument": {
#         "type": "credit card",
#         "accountHolderName": "test donor 1",
#         "expiryMonth": "10",
#         "expiryYear": "2026",
#         "last4": "4585",
#         "cardBrand": "visa",
#         "bankName": "chase",
#         "digitalWalletProvider": "apple pay",
#         "bankAccountHolderType": "primary",
#         "bankAccountType": "checking",
#         "bankAccountNumber": "123456",
#         "bankCode": "HBUK",
#         "gatewayName": "stripe",
#         "processorName": "classy",
#         "processorPaymentReference": "string",
#         "gatewayReference": "string"
#       }
#     },
#     {
#       "giftCommitmentId": "<SFDC_GIFT_COMMITMENT_ID>",
#       "paymentInstrument": {
#         "type": "credit card",
#         "accountHolderName": "test donor 2",
#         "expiryMonth": "10",
#         "expiryYear": "2026",
#         "last4": "4585",
#         "cardBrand": "visa",
#         "bankName": "chase",
#         "digitalWalletProvider": "apple pay",
#         "bankAccountHolderType": "primary",
#         "bankAccountType": "checking",
#         "bankAccountNumber": "123456",
#         "bankCode": "HBUK",
#         "gatewayName": "stripe",
#         "processorName": "test processor",
#         "processorPaymentReference": "string",
#         "gatewayReference": "string"
#       }
#     }
#   ]
# }

json = Chilkat::CkJsonObject.new()
json.UpdateString("updates[0].giftCommitmentId","<SFDC_GIFT_COMMITMENT_ID>")
json.UpdateString("updates[0].paymentInstrument.type","credit card")
json.UpdateString("updates[0].paymentInstrument.accountHolderName","test donor 1")
json.UpdateString("updates[0].paymentInstrument.expiryMonth","10")
json.UpdateString("updates[0].paymentInstrument.expiryYear","2026")
json.UpdateString("updates[0].paymentInstrument.last4","4585")
json.UpdateString("updates[0].paymentInstrument.cardBrand","visa")
json.UpdateString("updates[0].paymentInstrument.bankName","chase")
json.UpdateString("updates[0].paymentInstrument.digitalWalletProvider","apple pay")
json.UpdateString("updates[0].paymentInstrument.bankAccountHolderType","primary")
json.UpdateString("updates[0].paymentInstrument.bankAccountType","checking")
json.UpdateString("updates[0].paymentInstrument.bankAccountNumber","123456")
json.UpdateString("updates[0].paymentInstrument.bankCode","HBUK")
json.UpdateString("updates[0].paymentInstrument.gatewayName","stripe")
json.UpdateString("updates[0].paymentInstrument.processorName","classy")
json.UpdateString("updates[0].paymentInstrument.processorPaymentReference","string")
json.UpdateString("updates[0].paymentInstrument.gatewayReference","string")
json.UpdateString("updates[1].giftCommitmentId","<SFDC_GIFT_COMMITMENT_ID>")
json.UpdateString("updates[1].paymentInstrument.type","credit card")
json.UpdateString("updates[1].paymentInstrument.accountHolderName","test donor 2")
json.UpdateString("updates[1].paymentInstrument.expiryMonth","10")
json.UpdateString("updates[1].paymentInstrument.expiryYear","2026")
json.UpdateString("updates[1].paymentInstrument.last4","4585")
json.UpdateString("updates[1].paymentInstrument.cardBrand","visa")
json.UpdateString("updates[1].paymentInstrument.bankName","chase")
json.UpdateString("updates[1].paymentInstrument.digitalWalletProvider","apple pay")
json.UpdateString("updates[1].paymentInstrument.bankAccountHolderType","primary")
json.UpdateString("updates[1].paymentInstrument.bankAccountType","checking")
json.UpdateString("updates[1].paymentInstrument.bankAccountNumber","123456")
json.UpdateString("updates[1].paymentInstrument.bankCode","HBUK")
json.UpdateString("updates[1].paymentInstrument.gatewayName","stripe")
json.UpdateString("updates[1].paymentInstrument.processorName","test processor")
json.UpdateString("updates[1].paymentInstrument.processorPaymentReference","string")
json.UpdateString("updates[1].paymentInstrument.gatewayReference","string")

# Adds the "Authorization: Bearer <access_token>" header.
http.put_AuthToken("<access_token>")

# resp is a CkHttpResponse
resp = http.PostJson3("https://domain.com/services/data/v{{version}}/connect/fundraising/commitments/payment-updates","application/json",json)
if (http.get_LastMethodSuccess() == false)
    print http.lastErrorText() + "\n";
    exit
end

sbResponseBody = Chilkat::CkStringBuilder.new()
resp.GetBodySb(sbResponseBody)

jResp = Chilkat::CkJsonObject.new()
jResp.LoadSb(sbResponseBody)
jResp.put_EmitCompact(false)

print "Response Body:" + "\n";
print jResp.emit() + "\n";

respStatusCode = resp.get_StatusCode()
print "Response Status Code = " + respStatusCode.to_s() + "\n";
if (respStatusCode >= 400)
    print "Response Header:" + "\n";
    print resp.header() + "\n";
    print "Failed." + "\n";

    exit
end

# Sample JSON response:
# (Sample code for parsing the JSON response is shown below)

# {
#   "successes": 2,
#   "failures": 0,
#   "notProcessed": 0,
#   "details": [
#     {
#       "success": true,
#       "links": {
#         "giftcommitment": {
#           "href": "/services/data/vXX.X/sobjects/sObject/<SFDC_GIFT_COMMITMENT_ID>",
#           "id": "<SFDC_GIFT_COMMITMENT_ID>"
#         },
#         "paymentinstrument": {
#           "href": "/services/data/vXX.X/sobjects/sObject/<SFDC_PAYMENT_INSTRUMENT_ID>",
#           "id": "<SFDC_PAYMENT_INSTRUMENT_ID>"
#         }
#       }
#     },
#     {
#       "success": true,
#       "links": {
#         "giftcommitment": {
#           "href": "/services/data/vXX.X/sobjects/sObject/<SFDC_GIFT_COMMITMENT_ID>",
#           "id": "<SFDC_GIFT_COMMITMENT_ID>"
#         },
#         "paymentinstrument": {
#           "href": "/services/data/vXX.X/sobjects/sObject/<SFDC_PAYMENT_INSTRUMENT_ID>",
#           "id": "<SFDC_PAYMENT_INSTRUMENT_ID>"
#         }
#       }
#     }
#   ]
# }

# Sample code for parsing the JSON response...
# Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code

successes = jResp.IntOf("successes")
failures = jResp.IntOf("failures")
notProcessed = jResp.IntOf("notProcessed")
i = 0
count_i = jResp.SizeOfArray("details")
while i < count_i
    jResp.put_I(i)
    success = jResp.BoolOf("details[i].success")
    Href = jResp.stringOf("details[i].links.giftcommitment.href")
    Id = jResp.stringOf("details[i].links.giftcommitment.id")
    PaymentinstrumentHref = jResp.stringOf("details[i].links.paymentinstrument.href")
    PaymentinstrumentId = jResp.stringOf("details[i].links.paymentinstrument.id")
    i = i + 1
end

Curl Command

curl -X POST
	-H "Authorization: Bearer <access_token>"
	-d '{
  "updates": [
    {
      "giftCommitmentId": "<SFDC_GIFT_COMMITMENT_ID>",
      "paymentInstrument": {
        "type": "credit card",
        "accountHolderName": "test donor 1",
        "expiryMonth": "10",
        "expiryYear": "2026",
        "last4": "4585",
        "cardBrand": "visa",
        "bankName": "chase",
        "digitalWalletProvider": "apple pay",
        "bankAccountHolderType": "primary",
        "bankAccountType": "checking",
        "bankAccountNumber": "123456",
        "bankCode": "HBUK",
        "gatewayName": "stripe",
        "processorName": "classy",
        "processorPaymentReference": "string",
        "gatewayReference": "string"
      }
    },
    {
      "giftCommitmentId": "<SFDC_GIFT_COMMITMENT_ID>",
      "paymentInstrument": {
        "type": "credit card",
        "accountHolderName": "test donor 2",
        "expiryMonth": "10",
        "expiryYear": "2026",
        "last4": "4585",
        "cardBrand": "visa",
        "bankName": "chase",
        "digitalWalletProvider": "apple pay",
        "bankAccountHolderType": "primary",
        "bankAccountType": "checking",
        "bankAccountNumber": "123456",
        "bankCode": "HBUK",
        "gatewayName": "stripe",
        "processorName": "test processor",
        "processorPaymentReference": "string",
        "gatewayReference": "string"
      }
    }
  ]
}'
https://domain.com/services/data/v{{version}}/connect/fundraising/commitments/payment-updates

Postman Collection Item JSON

{
  "name": "Update Commitment Payments",
  "request": {
    "method": "POST",
    "header": [
    ],
    "body": {
      "mode": "raw",
      "raw": "{\n  \"updates\": [\n    {\n      \"giftCommitmentId\": \"<SFDC_GIFT_COMMITMENT_ID>\",\n      \"paymentInstrument\": {\n        \"type\": \"credit card\",\n        \"accountHolderName\": \"test donor 1\",\n        \"expiryMonth\": \"10\",\n        \"expiryYear\": \"2026\",\n        \"last4\": \"4585\",\n        \"cardBrand\": \"visa\",\n        \"bankName\": \"chase\",\n        \"digitalWalletProvider\": \"apple pay\",\n        \"bankAccountHolderType\": \"primary\",\n        \"bankAccountType\": \"checking\",\n        \"bankAccountNumber\": \"123456\",\n        \"bankCode\": \"HBUK\",\n        \"gatewayName\": \"stripe\",\n        \"processorName\": \"classy\",\n        \"processorPaymentReference\": \"string\",\n        \"gatewayReference\": \"string\"\n      }\n    },\n    {\n      \"giftCommitmentId\": \"<SFDC_GIFT_COMMITMENT_ID>\",\n      \"paymentInstrument\": {\n        \"type\": \"credit card\",\n        \"accountHolderName\": \"test donor 2\",\n        \"expiryMonth\": \"10\",\n        \"expiryYear\": \"2026\",\n        \"last4\": \"4585\",\n        \"cardBrand\": \"visa\",\n        \"bankName\": \"chase\",\n        \"digitalWalletProvider\": \"apple pay\",\n        \"bankAccountHolderType\": \"primary\",\n        \"bankAccountType\": \"checking\",\n        \"bankAccountNumber\": \"123456\",\n        \"bankCode\": \"HBUK\",\n        \"gatewayName\": \"stripe\",\n        \"processorName\": \"test processor\",\n        \"processorPaymentReference\": \"string\",\n        \"gatewayReference\": \"string\"\n      }\n    }\n  ]\n}",
      "options": {
        "raw": {
          "language": "json"
        }
      }
    },
    "url": {
      "raw": "{{_endpoint}}/services/data/v{{version}}/connect/fundraising/commitments/payment-updates",
      "host": [
        "{{_endpoint}}"
      ],
      "path": [
        "services",
        "data",
        "v{{version}}",
        "connect",
        "fundraising",
        "commitments",
        "payment-updates"
      ]
    },
    "description": "Update the future payment instrument metadata for active gift commitments.\n\n## Required Attributes:\n\n- giftCommitmentId\n    \n- paymentInstrument.type"
  },
  "response": [
    {
      "name": "Status201-UpdateCommitmentSuccess",
      "originalRequest": {
        "method": "POST",
        "header": [
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"updates\": [\n    {\n      \"giftCommitmentId\": \"<SFDC_GIFT_COMMITMENT_ID>\",\n      \"paymentInstrument\": {\n        \"type\": \"credit card\",\n        \"accountHolderName\": \"test donor 1\",\n        \"expiryMonth\": \"10\",\n        \"expiryYear\": \"2026\",\n        \"last4\": \"4585\",\n        \"cardBrand\": \"visa\",\n        \"bankName\": \"chase\",\n        \"digitalWalletProvider\": \"apple pay\",\n        \"bankAccountHolderType\": \"primary\",\n        \"bankAccountType\": \"checking\",\n        \"bankAccountNumber\": \"123456\",\n        \"bankCode\": \"HBUK\",\n        \"gatewayName\": \"stripe\",\n        \"processorName\": \"classy\",\n        \"processorPaymentReference\": \"string\",\n        \"gatewayReference\": \"string\"\n      }\n    },\n    {\n      \"giftCommitmentId\": \"<SFDC_GIFT_COMMITMENT_ID>\",\n      \"paymentInstrument\": {\n        \"type\": \"credit card\",\n        \"accountHolderName\": \"test donor 2\",\n        \"expiryMonth\": \"10\",\n        \"expiryYear\": \"2026\",\n        \"last4\": \"4585\",\n        \"cardBrand\": \"visa\",\n        \"bankName\": \"chase\",\n        \"digitalWalletProvider\": \"apple pay\",\n        \"bankAccountHolderType\": \"primary\",\n        \"bankAccountType\": \"checking\",\n        \"bankAccountNumber\": \"123456\",\n        \"bankCode\": \"HBUK\",\n        \"gatewayName\": \"stripe\",\n        \"processorName\": \"test processor\",\n        \"processorPaymentReference\": \"string\",\n        \"gatewayReference\": \"string\"\n      }\n    }\n  ]\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{_endpoint}}/services/data/v{{version}}/connect/fundraising/commitments/payment-updates",
          "host": [
            "{{_endpoint}}"
          ],
          "path": [
            "services",
            "data",
            "v{{version}}",
            "connect",
            "fundraising",
            "commitments",
            "payment-updates"
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json",
          "description": ""
        }
      ],
      "cookie": [
      ],
      "body": "{\n  \"successes\": 2,\n  \"failures\": 0,\n  \"notProcessed\": 0,\n  \"details\": [\n    {\n      \"success\": true,\n      \"links\": {\n        \"giftcommitment\": {\n          \"href\": \"/services/data/vXX.X/sobjects/sObject/<SFDC_GIFT_COMMITMENT_ID>\",\n          \"id\": \"<SFDC_GIFT_COMMITMENT_ID>\"\n        },\n        \"paymentinstrument\": {\n          \"href\": \"/services/data/vXX.X/sobjects/sObject/<SFDC_PAYMENT_INSTRUMENT_ID>\",\n          \"id\": \"<SFDC_PAYMENT_INSTRUMENT_ID>\"\n        }\n      }\n    },\n        {\n      \"success\": true,\n      \"links\": {\n        \"giftcommitment\": {\n          \"href\": \"/services/data/vXX.X/sobjects/sObject/<SFDC_GIFT_COMMITMENT_ID>\",\n          \"id\": \"<SFDC_GIFT_COMMITMENT_ID>\"\n        },\n        \"paymentinstrument\": {\n          \"href\": \"/services/data/vXX.X/sobjects/sObject/<SFDC_PAYMENT_INSTRUMENT_ID>\",\n          \"id\": \"<SFDC_PAYMENT_INSTRUMENT_ID>\"\n        }\n      }\n    }\n  ]\n}"
    },
    {
      "name": "Status200-UpdateCommitmentRequestValidationFailure",
      "originalRequest": {
        "method": "POST",
        "header": [
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"updates\": [\n    {\n      \"giftCommitmentId\": \"INVALID COMMITMENT ID\",\n      \"paymentInstrument\": {\n        \"type\": \"credit card\",\n        \"accountHolderName\": \"test donor 1\",\n        \"expiryMonth\": \"10\",\n        \"expiryYear\": \"2026\",\n        \"last4\": \"4585\",\n        \"cardBrand\": \"visa\",\n        \"bankName\": \"chase\",\n        \"digitalWalletProvider\": \"apple pay\",\n        \"bankAccountHolderType\": \"primary\",\n        \"bankAccountType\": \"checking\",\n        \"bankAccountNumber\": \"123456\",\n        \"bankCode\": \"HBUK\",\n        \"gatewayName\": \"stripe\",\n        \"processorName\": \"classy\",\n        \"processorPaymentReference\": \"string\",\n        \"gatewayReference\": \"string\"\n      }\n    },\n    {\n      \"giftCommitmentId\": \"<SFDC_GIFT_COMMITMENT_ID>\",\n      \"paymentInstrument\": {\n        \"type\": \"credit card\",\n        \"accountHolderName\": \"test donor 2\",\n        \"expiryMonth\": \"10\",\n        \"expiryYear\": \"2026\",\n        \"last4\": \"4585\",\n        \"cardBrand\": \"visa\",\n        \"bankName\": \"chase\",\n        \"digitalWalletProvider\": \"apple pay\",\n        \"bankAccountHolderType\": \"primary\",\n        \"bankAccountType\": \"checking\",\n        \"bankAccountNumber\": \"123456\",\n        \"bankCode\": \"HBUK\",\n        \"gatewayName\": \"stripe\",\n        \"processorName\": \"test processor\",\n        \"processorPaymentReference\": \"string\",\n        \"gatewayReference\": \"string\"\n      }\n    }\n  ]\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{_endpoint}}/services/data/v{{version}}/connect/fundraising/commitments/payment-updates",
          "host": [
            "{{_endpoint}}"
          ],
          "path": [
            "services",
            "data",
            "v{{version}}",
            "connect",
            "fundraising",
            "commitments",
            "payment-updates"
          ]
        }
      },
      "status": "Created",
      "code": 201,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json",
          "description": ""
        }
      ],
      "cookie": [
      ],
      "body": "{\n  \"successes\": 1,\n  \"failures\": 1,\n  \"notProcessed\": 0,\n  \"details\": [\n    {\n        \"success\": false,\n        \"errors\": {\n            \"field\": \"id\",\n            \"message\": \"<invalid id message>\"\n        }\n    },\n    {\n      \"success\": true,\n      \"links\": {\n        \"giftcommitment\": {\n          \"href\": \"/services/data/vXX.X/sobjects/sObject/<SFDC_GIFT_COMMITMENT_ID>\",\n          \"id\": \"<SFDC_GIFT_COMMITMENT_ID>\"\n        },\n        \"paymentinstrument\": {\n          \"href\": \"/services/data/vXX.X/sobjects/sObject/<SFDC_PAYMENT_INSTRUMENT_ID>\",\n          \"id\": \"<SFDC_PAYMENT_INSTRUMENT_ID>\"\n        }\n      }\n    }\n  ]\n}"
    },
    {
      "name": "Status200-UpdateCommitmentDatabaseFailure",
      "originalRequest": {
        "method": "POST",
        "header": [
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"updates\": [\n    {\n      \"giftCommitmentId\": \"<SFDC_GIFT_COMMITMENT_ID>\",\n      \"paymentInstrument\": {\n        \"type\": \"credit card\",\n        \"accountHolderName\": \"test donor\",\n        \"expiryMonth\": \"10\",\n        \"expiryYear\": \"2026\",\n        \"last4\": \"4585\",\n        \"cardBrand\": \"visa\",\n        \"bankName\": \"chase\",\n        \"digitalWalletProvider\": \"apple pay\",\n        \"bankAccountHolderType\": \"primary\",\n        \"bankAccountType\": \"checking\",\n        \"bankAccountNumber\": \"123456\",\n        \"bankCode\": \"HBUK\",\n        \"gatewayName\": \"stripe\",\n        \"processorName\": \"classy\",\n        \"processorPaymentReference\": \"string\",\n        \"gatewayReference\": \"string\"\n      }\n    },\n        {\n      \"giftCommitmentId\": \"<SFDC_GIFT_COMMITMENT_ID>\",\n      \"paymentInstrument\": {\n        \"type\": \"credit card\",\n        \"accountHolderName\": \"test donor\",\n        \"expiryMonth\": \"10\",\n        \"expiryYear\": \"2026\",\n        \"last4\": \"4585\",\n        \"cardBrand\": \"visa\",\n        \"bankName\": \"chase\",\n        \"digitalWalletProvider\": \"google pay\",\n        \"bankAccountHolderType\": \"primary\",\n        \"bankAccountType\": \"checking\",\n        \"bankAccountNumber\": \"123456\",\n        \"bankCode\": \"HBUK\",\n        \"gatewayName\": \"stripe\",\n        \"processorName\": \"test processor\",\n        \"processorPaymentReference\": \"string\",\n        \"gatewayReference\": \"string\"\n      }\n    }\n  ]\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{_endpoint}}/services/data/v{{version}}/connect/fundraising/commitments/payment-updates",
          "host": [
            "{{_endpoint}}"
          ],
          "path": [
            "services",
            "data",
            "v{{version}}",
            "connect",
            "fundraising",
            "commitments",
            "payment-updates"
          ]
        }
      },
      "status": "Created",
      "code": 201,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json",
          "description": ""
        }
      ],
      "cookie": [
      ],
      "body": "// This is a scenario where there is a validation rule on the Payment Instrument object requiring that the digitalWalletProvider cannot be \"Apple Pay\". One database error occurs for the 10.50 cover amount, causing the other two to be rolled back with success of false and no record links.\n{\n  \"successes\": 0,\n  \"failures\": 1,\n  \"notProcessed\": 1,\n  \"details\": [\n    {\n        \"success\": false,\n        \"errors\": {\n            \"message\": \"<validation_rule_error_message>\"\n        }\n    },\n    {\n      \"success\": false\n    }\n  ]\n}"
    },
    {
      "name": "Status201-UpdateCommitmentExternalIds",
      "originalRequest": {
        "method": "POST",
        "header": [
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"updates\": [\n    {\n      \"giftCommitment\": {\n        \"externalId\": {\n            \"fieldName\": \"<EXTERNAL_ID_FIELD_NAME>\",\n            \"fieldValue\": \"<EXTERNAL_ID_FIELD_VALUE>\"\n        }\n      },\n      \"paymentInstrument\": {\n        \"type\": \"credit card\",\n        \"accountHolderName\": \"david chavez\",\n        \"expiryMonth\": \"10\",\n        \"expiryYear\": \"2026\",\n        \"last4\": \"4585\",\n        \"cardBrand\": \"visa\",\n        \"bankName\": \"chase\",\n        \"digitalWalletProvider\": \"apple pay\",\n        \"bankAccountHolderType\": \"primary\",\n        \"bankAccountType\": \"checking\",\n        \"bankAccountNumber\": \"123456\",\n        \"bankCode\": \"HBUK\",\n        \"gatewayName\": \"stripe\",\n        \"processorName\": \"classy\",\n        \"processorPaymentReference\": \"string\",\n        \"gatewayReference\": \"string\"\n      }\n    },\n    {\n    \"giftCommitment\": {\n        \"externalId\": {\n            \"fieldName\": \"<EXTERNAL_ID_FIELD_NAME>\",\n            \"fieldValue\": \"<EXTERNAL_ID_FIELD_VALUE>\"\n        }\n      },\n      \"paymentInstrument\": {\n        \"type\": \"credit card\",\n        \"accountHolderName\": \"luke smith\",\n        \"expiryMonth\": \"10\",\n        \"expiryYear\": \"2026\",\n        \"last4\": \"4585\",\n        \"cardBrand\": \"visa\",\n        \"bankName\": \"chase\",\n        \"digitalWalletProvider\": \"apple pay\",\n        \"bankAccountHolderType\": \"primary\",\n        \"bankAccountType\": \"checking\",\n        \"bankAccountNumber\": \"123456\",\n        \"bankCode\": \"HBUK\",\n        \"gatewayName\": \"stripe\",\n        \"processorName\": \"test processor\",\n        \"processorPaymentReference\": \"string\",\n        \"gatewayReference\": \"string\"\n      }\n    }\n  ]\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{_endpoint}}/services/data/v{{version}}/connect/fundraising/commitments/payment-updates",
          "host": [
            "{{_endpoint}}"
          ],
          "path": [
            "services",
            "data",
            "v{{version}}",
            "connect",
            "fundraising",
            "commitments",
            "payment-updates"
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json",
          "description": ""
        }
      ],
      "cookie": [
      ],
      "body": "{\n  \"successes\": 2,\n  \"failures\": 0,\n  \"notProcessed\": 0,\n  \"details\": [\n    {\n      \"success\": true,\n      \"links\": {\n        \"giftcommitment\": {\n          \"href\": \"/services/data/vXX.X/sobjects/sObject/<SFDC_GIFT_COMMITMENT_ID>\",\n          \"id\": \"<SFDC_GIFT_COMMITMENT_ID>\"\n        },\n        \"paymentinstrument\": {\n          \"href\": \"/services/data/vXX.X/sobjects/sObject/<SFDC_PAYMENT_INSTRUMENT_ID>\",\n          \"id\": \"<SFDC_PAYMENT_INSTRUMENT_ID>\"\n        }\n      }\n    },\n        {\n      \"success\": true,\n      \"links\": {\n        \"giftcommitment\": {\n          \"href\": \"/services/data/vXX.X/sobjects/sObject/<SFDC_GIFT_COMMITMENT_ID>\",\n          \"id\": \"<SFDC_GIFT_COMMITMENT_ID>\"\n        },\n        \"paymentinstrument\": {\n          \"href\": \"/services/data/vXX.X/sobjects/sObject/<SFDC_PAYMENT_INSTRUMENT_ID>\",\n          \"id\": \"<SFDC_PAYMENT_INSTRUMENT_ID>\"\n        }\n      }\n    }\n  ]\n}"
    },
    {
      "name": "Status400-BadRequestError",
      "originalRequest": {
        "method": "POST",
        "header": [
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"updates\": [\n    {\n      \"giftCommitmentId\": \"<SFDC_GIFT_COMMITMENT_ID>\",\n      \"paymentInstrument\": {\n        \"type\": \"credit card\",\n        \"accountHolderName\": \"test donor\",\n        \"expiryMonth\": \"10\",\n        \"expiryYear\": \"2026\",\n        \"last4\": \"4585\",\n        \"cardBrand\": \"visa\",\n        \"bankName\": \"chase\",\n        \"digitalWalletProvider\": \"apple pay\",\n        \"bankAccountHolderType\": \"primary\",\n        \"bankAccountType\": \"checking\",\n        \"bankAccountNumber\": \"123456\",\n        \"bankCode\": \"HBUK\",\n        \"gatewayName\": \"stripe\",\n        \"processorName\": \"test processor\",\n        \"processorPaymentReference\": \"string\",\n        \"gatewayReference\": \"string\"\n      }\n    }\n  ]\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{_endpoint}}/services/data/v{{version}}/connect/fundraising/commitments/payment-updates",
          "host": [
            "{{_endpoint}}"
          ],
          "path": [
            "services",
            "data",
            "v{{version}}",
            "connect",
            "fundraising",
            "commitments",
            "payment-updates"
          ]
        }
      },
      "status": "Bad Request",
      "code": 400,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json",
          "description": ""
        }
      ],
      "cookie": [
      ],
      "body": "    // Even if the JSON request is valid, this is an example of a 400 error code that will be returned if duplicate matching rules are not active. Any non 200 error code would have a similar response structure.\n    {\n        \"errorCode\": \"UNKNOWN_EXCEPTION\",\n        \"message\": \"Provide active duplicate matching rules on Account and Person Account for donor matching. -- industries.fundraisingops.connect.impl.validator.ValidatorUtil.validateMatchingMethod(ValidatorUtil.java:103)\"\n    }"
    }
  ]
}