Blackbaud checkout create transaction issue

We are integrating with the SKY API Checkout transaction endpoint:

POST https://api.sky.blackbaud.com/payments/v1/checkout/transaction

Request body:

{

"amount": 100,

"authorization_token": "<token>"

}

Response:

{

"error": "ChargeTransactionNullArgument",

"message": "Transaction is required."

}

Could you confirm the expected request structure for this endpoint and whether any additional fields or headers are required?

Answers

  • Hi @Nidi Shah I moved this over to Raiser's Edge NXT API's discussions and I'm going to tag @Erik Leaver to see if he can provide any insight. Thanks!

  • Erik Leaver
    Erik Leaver Blackbaud Employee
    Tenth Anniversary Kudos 5 First Reply Name Dropper

    @Nidi Shah Correct. Only amt & auth token are required as per the documentation.

    you might want to look at some related help videos:

  • Hi @Erik Leaver : Thank you for your response. I am following steps mentioned in above video.
    Please refer more details related to my api work flow.

    1)Donor selects amount in donation page.
    2)Blackbaud checkout popup open
    3)Donor select apple pay payment
    4)Donor enter real card details and submit

    API calls:

    function onDonateNowClicked(sender, args) {

      // append any donor-entered information to the transaction obejct
    var amt = $('#' + '<%= txtamount.ClientID %>').val();

    var transactionData = {
    'key': '<key>',
    'payment_configuration_id': '<payment_configuration_id>',
    'amount': amt,
    'client_app_name': '<client_app_name>',
    'security_token': '<security_token>',
    'is_offline': true,
    'use_apple_pay': true,
    'use_apple_pay_donate_button': true
    };


    // call the Checkout method to display the payment form
    Blackbaud_OpenPaymentForm(transactionData);
    args.set_cancel(true); // Cancel default postback

    }

    <script src="https://payments.blackbaud.com/Checkout/bbCheckout.2.0.js"></script>

    i got token also from checkoutComplete event.

    Next I am calling transaction API
    https://api.sky.blackbaud.com/payments/v1/checkout/transaction

    with amount and checkoutComplete event token.

    At that time api gives error Transaction is required.

    Please help me to resolve this with priority.

  • @Crystal Bruce @Erik Leaver : I am waiting for further response. Please help me on this asap.

  • Erik Leaver
    Erik Leaver Blackbaud Employee
    Tenth Anniversary Kudos 5 First Reply Name Dropper

    @Nidi Shah apologies. I've been exceptionally busy this week. @Mina Mistry / @Heather Templeton can you take a look?

  • @Mina Mistry @Heather Templeton : Please help me on this with urgent priority.

    CC: @Erik Leaver

  • @Mina Mistry @Heather Templeton : Please help me on this with urgent priority as it blocking development.

    CC: @Erik Leaver

  • Hi @Erik Leaver

     @Mina Mistry @Heather Templeton

    : Thank you for your response. I am following steps mentioned in above video.

    I am waiting for further response

  • Erik Leaver
    Erik Leaver Blackbaud Employee
    Tenth Anniversary Kudos 5 First Reply Name Dropper

    Hi @Nidi Shah -
    Are you using New Checkout?
    Are you using inline or modal? Both sets of instructions have code samples.

  • Erik Leaver
    Erik Leaver Blackbaud Employee
    Tenth Anniversary Kudos 5 First Reply Name Dropper

    We also updated our payments api sample repo:

  • Nidi Shah
    edited April 8

    @Erik Leaver : I have tried with both way.
    For blackbaud checkout i am getting error transaction is require as mention above.
    For blackbaud new checkout it seems that sample repo is bit different with API doc.

    https://developer.sky.blackbaud.com/api#api=payments&operation=CaptureTransaction

    In sample repo:
    // Capture the payment
    await fetch(${_baseUrl}/checkouttransactions/capture, {
    method: "POST",
    headers: {
    "Content-Type": "application/json",
    },
    body: JSON.stringify({
    amount: amount,
    transaction_token: transactionToken,
    card_token: cardToken,
    payment_configuration_id: transactionData.payment_configuration_id,
    }),

    where as in document:

    Request

    https://api.sky.blackbaud.com/payments/v1/transactions/{transaction_id}/capture

    Request parameters

    NameInRequiredTypeDescriptiontransaction_idtemplatetruestring

    The identifier of the authorized transaction you would like to capture.

    So transaction_id is missing in sample repo.

    Help me with this.

  • Erik Leaver
    Erik Leaver Blackbaud Employee
    Tenth Anniversary Kudos 5 First Reply Name Dropper

    @Nidi Shah can you confirm you are starting this payment workflow after the initial API authorization token (Oauth flow) and payment configuration ID are already acquired?

  • @Erik Leaver :First I open blackbaud checkout form using  payment configuration ID.
    After that select apple pay payment option, add card details and click on process/payment.

    So i get transaction token from checkout complete event.

    I use that transaction token and amount and oauth access token to perform Create checkout transaction.

    reference link:https://developer.blackbaud.com/skyapi/products/bbms/payments/integrations/checkout/process-overview

    image.png

Categories