Chilkat Online Tools

Java / Salesforce Platform APIs / Update Commitment Payments

Back to Collection Items

import com.chilkatsoft.*;

public class ChilkatExample {

  static {
    try {
        System.loadLibrary("chilkat");
    } catch (UnsatisfiedLinkError e) {
      System.err.println("Native code library failed to load.\n" + e);
      System.exit(1);
    }
  }

  public static void main(String argv[])
  {
    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    CkHttp http = new CkHttp();
    boolean success;

    // 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"
    //       }
    //     }
    //   ]
    // }

    CkJsonObject json = new CkJsonObject();
    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>");

    CkHttpResponse resp = http.PostJson3("https://domain.com/services/data/v{{version}}/connect/fundraising/commitments/payment-updates","application/json",json);
    if (http.get_LastMethodSuccess() == false) {
        System.out.println(http.lastErrorText());
        return;
        }

    CkStringBuilder sbResponseBody = new CkStringBuilder();
    resp.GetBodySb(sbResponseBody);

    CkJsonObject jResp = new CkJsonObject();
    jResp.LoadSb(sbResponseBody);
    jResp.put_EmitCompact(false);

    System.out.println("Response Body:");
    System.out.println(jResp.emit());

    int respStatusCode = resp.get_StatusCode();
    System.out.println("Response Status Code = " + respStatusCode);
    if (respStatusCode >= 400) {
        System.out.println("Response Header:");
        System.out.println(resp.header());
        System.out.println("Failed.");

        return;
        }

    // 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

    boolean success;
    String Href;
    String Id;
    String PaymentinstrumentHref;
    String PaymentinstrumentId;

    int successes = jResp.IntOf("successes");
    int failures = jResp.IntOf("failures");
    int notProcessed = jResp.IntOf("notProcessed");
    int i = 0;
    int 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;
        }
  }
}

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    }"
    }
  ]
}