Submit Payment API

As its name suggest, this API submits payment to your processor. You can either submit an authorization or a charge. It also creates the corresponding payment record in Salesforce. You submit payment in the following form:

curl -v https://<instance> \
     -H 'Authorization: Bearer <access token>' \
     -H 'Content-Type: application/json' \
     -X POST \
     -d '{<arguments>}'

To get an access token, read here: Authentication


curl -v \
     -H 'Authorization: Bearer 00Dx0000000exxV!AXXXXXfcKqHB0czbxxxxxHkyo9gt41BxxxhWPxxZzaXxXxbAJxx9Ov4Hno..mu1Xi5XXXX8MWHVD81JVr6ShxxxxxorGv6Uy' \ 
     -H 'Content-Type: application/json' \ 
     -X POST \ 
     -d '{"amount":9.99, 
          "billing_street":"12345 Jefferson St.", 


  "message":"This transaction has been approved.",

is_successful (true/false) indicates whether or not the payment was successful. If payment was not successful, the corresponding error message will be listed in message. If payment was successful, salesforce_payment_id will contain the ID of the payment record created in Salesforce.


  • amount – required, a positive decimal number, i.e. 9.99
  • credit_card_number – required
  • expiry_month – required, 2-digit month, i.e. 01 for January
  • expiry_year – required, 4-digit year
  • first_name – required, first name as it appears on the card
  • last_name – required, last name as it appears on the card
  • cvv2 – required or optional depending on your setting, this is the security code
  • billing_street – required, billing street associated with the card
  • billing_city – required, billing city associated with the card
  • billing_state – required, billing state associated with the card. This is not required for non-US addresses
  • billing_zip – required, billing zip associated with the card
  • billing_country – required, billing country associated with the card
  • trans_type –  optional, values could be Charge or Authorization. If not sent, the default value from settings will be used
  • processor –  optional, name of your processor as defined in your settings. If not sent, the default will be used.
  • payment_name – optional, any name to identify your payment. If not sent, a name will be created for you.
  • reference – optional, any reference related to your payment, i.e. order number, invoice number, etc.
  • amount_currency – optional, 3-letter ISO code for currency, i.e USD, EUR, etc. If not sent, the default value from settings will be used
  • shipping_street – optional, customer shipping street
  • shipping_city – optional, customer shipping city
  • shipping_state – optional, customer shipping state
  • shipping_zip – optional, customer shipping zip
  • shipping_country – optional, customer shipping country
  • email – optional, customer email address. This is required if your processor is CyberSource
  • routing_number – required if paying by eCheck
  • account_number – required if paying by eCheck, this is the bank account number
  • name_on_account – optional, name on bank account
  • related_object_field – optional, if payment is to be related to a record, pass the lookup field name (API name) as defined in fw1__Payment__c object
  • related_record_id – optional, the ID of the record where the payment will be related
  • related_object_name – optional, if you want to update the related object with the paid amount, pass the object name (API name) here
  • related_object_paid_amount_field – optional, name (API name) of the field in the related object that holds the paid amount
  • account_id – you can pass an account ID to relate the payment to the account
  • contact_id – you can pass a contact ID to relate the payment to the contact
  • opportunity_id – you can pass an opportunity ID to relate the payment to the opportunity
  • invoice_id – you can pass an invoice ID to relate the payment to the invoice
  • processor_category – If you have categorized your processors, you can pass the category here and the system will select the appropriate processor based on the category. More info here: Using Multiple Processors
  • profile_id – you can pass a payment profile ID, and the details such as credit card number, etc. will be taken from the profile. Although you don’t need a credit card since it will be taken from the profile, you cannot pass a null value to it. So along with the “profile_id”, please pass the parameter “credit_card_number”, you can pass a space to it (but not null)


Was this article helpful?

Related Articles

Comments are closed.

  • About Us

    Founded in 2012, builds enterprise apps on the platform. We have created some of the most popular apps on the AppExchange in the payments and billing space.

  • Our Culture

    As a company, we believe in simple. So we build simple applications out of complex processes. We also provide unparalleled customer support because we truly believe that our customers' success is our success. Read more on what our customers say about us.
  • Check Our Customer Reviews

Copyright © 2020, Inc.
21151 S. Western Ave., Suite 215, Torrance, CA 90501, USA
All trademarks, trade names and logos appearing on the site are the property of their respective owners.
^ Back to Top