GiftEdit If-Match ETag assistance

Hello! I am attempting a proof of concept using the GiftEdit API to update status of a recurring gift from Active to Terminated. We would likely do this work a nightly job, assumiong < 30 rows per night. I am not sure what the If-Match ETag value should be. Note I tried * as suggested for an unconditional update but it does not work, likely due to Blackbaud hosting configs. Here is the link where I am trying to test. Any assistance is appreciated.

Comments

  • Alex Wong
    Alex Wong Community All-Star
    Tenth Anniversary Kudos 5 Facilitator 4 bbcon 2025 Attendee Badge

    @Jeff Smith WHRO
    what does “does not work” means? please show screenshot and error message

  • Thanks @Alex Wong, apologies for lacking detail in my original post. Below are a series of snips to show how I am trying to test and the specific error. Appreciate any assistance.

    af10eb96948ccf78463f89d3e50ad7a7-huge-im
    793965bc46561e28c84f4248d4359580-huge-im
    176f4eda42af856260e030ef5f9ad15a-huge-im
    299667f5a47303e916a5702e8cdd0b75-huge-im
    9bbe038f4f730c122caf672fa607848c-huge-im
    b7aff6bc444bd7eb9bc9eceeda4c3074-huge-im
    95d06d186eae89d9c3424e90d69d5dfc-huge-im


  • Alex Wong
    Alex Wong Community All-Star
    Tenth Anniversary Kudos 5 Facilitator 4 bbcon 2025 Attendee Badge

    @Jeff Smith WHRO
    this looks like a systematic error. Since we do not use RE NXT for recurring gift, I can't test it out.

    @Erik Leaver do you think you can get Jeff some help?

  • Thanks @Alex Wong. While awaiting a possible response from Erik, I have another question. I am using the sky api Try It feature to prove concepts. I have an ETL / data management tool to use to CRUD data using various RE NXT endpoints. The snip below of my test job works fine with the subkey / token copy / pasted from Try It into the job though I will need to schedule it for overnight work. Of course, the token expires after 60 minutes. Since this is a confidential app, I would like to get the 365 day token mentioned in this vid https://www.youtube.com/watch?v=RN6M-p-T1Pk without building out a fancy auth process. Can you help nudge me in the right direction?

    73f01a3c404cc2040866fb4bcdb09d84-huge-im


  • Alex Wong
    Alex Wong Community All-Star
    Tenth Anniversary Kudos 5 Facilitator 4 bbcon 2025 Attendee Badge

    @Jeff Smith WHRO
    There is no auth token that last 365 days. refresh token last 365 days, and you need to use the refresh token to get a new auth token that last 60 minutes.

    This post went into what needs to be done:

  • @Alex Wong Considering no reply from Erik L., any suggestions how to proceed? I can wait for others in the community to respond? Or possibly escalate the issue to blackbaud support? Thanks and Happy Friday!

  • Alex Wong
    Alex Wong Community All-Star
    Tenth Anniversary Kudos 5 Facilitator 4 bbcon 2025 Attendee Badge

    @Jeff Smith WHRO
    I don't have any other suggestions. Maybe get you some attention with @Ben Wong or @Heather McLean

  • Anthony Gallo
    Anthony Gallo Blackbaud Employee
    Tenth Anniversary Kudos 5 Commented in Discussion First Reply

    @Jeff Smith WHRO @Alex Wong

    I had one of the engineers take a look at this and the parameter is used for Concurrency Validation. If you are submitting a PATCH request, you first need to submit a GET for the original data. Then include the returned Concurrency Token in the If-Match header in the PATCH request otherwise the request will fail for concurrency validation issues.

    This parameter can be ignored in the v1 endpoint. The error you are seeing looks to be unrelated to this parameter, there is something else going on that we are unable to identify for you.

  • @Anthony Gallo Thank you! I am using a nightly sql backup of RE for the job so not planning to use GET before the PATCH. I will try v1 of the endpoint.

  • Chris Rodgers
    Chris Rodgers Blackbaud Employee
    Ninth Anniversary Kudos 3 Name Dropper Participant

    Hey @Jeff Smith WHRO,

    I just wanted to provide an update to the CORS error issue you mentioned in your earlier post.

    95d06d186eae89d9c3424e90d69d5dfc-huge-im

    We have updated our CORS policy to allow the If-Match header to be provided in requests from the SKY API (test) Console. This should resolve the particular CORS issue you were experiencing. Note: Additional arbitrarily headers added by the user may still violate the CORS policy. We'll evaluate our support for additional headers.

Categories