Payment Gateway Id is invalid on payment creation

Hello. I’m trying to create sychronization between cheetah and keap. When order or payment created in keap create them in keap and the same way from cheetah to keap.
Synchronization from keap to cheetah works fine but when trying to create payment from cheetah in keap i ran into problem with creating a payment.
When making POST to /v1/orders/xxx70/payments with payload:

"charge_now": true,
"notes": "asdasdasd",
"payment_amount": "10",
"payment_method_type": "CASH",

I’m getting error: [400] Payment Gateway Id is invalid
I asked support about this and they pointed me to get merchatId for that.
I asked admin to show me these values and he did:

So i know that values are true.
What am I doing wrong? Creating said order xxx70 poses no problem so api-key and request stuff is working fine.

Good afternoon Mikhail!

I’m not sure the cause of this specific issue, but the payment_gateway_id should be a string, per the documentation. Could you retry with the json as "payment_gateway_id": "8"?


  • Tom Scott
    Keap API Engineer

Sorry for the delayed response, account was banned immediately upon topic creation.
Actually “payment_gateway_id”: “7” works but in this request i didn’t saw that i use wrong credentials.
This is surprising because on that account is no such order_id but i get any error but not “Order not found” when using request, because of that it took me too long to check credentials.
Also there is no mention in keap api where payment_gateway_id comes from, it might be obvious for some, but i think it should be mentioned explicitly in the api.