4.4.1. Retrieve Payment:GetPayment - Returns a subset of data seen in the Payment Detail Screen:
Returns this object graph: Payment, ProcessorResult and I nvoicePayment GET /rest/payment/[id]?format=xml GET /rest/credit/[id]? format=xml GET /rest/refund/[id]?format=xml Sample Output: <payment id="7"> <isSystemPayment>true</isSystemPayment> <customer id="5" /> <paymentMethodType>Token</paymentMethodType> <currency id="USD" /> <amount>194.25</amount> <balance>0.00</balance> <effectiveDate>2010-08-06</effectiveDate> <status>Paid</status> <paymentType>Payment</paymentType> <lastUpdated>2010-08-06</lastUpdated> <isProcessedByBillingRun>false</isProcessedByBillingRun> <processorResult id="10"> <errorMessage /> <transactionId>390.72665051790136</transactionId> <batchIndicator /> <isSuccess>true</isSuccess> <customer id="5" /> <statusCode /> <amount>194.25</amount> <avsCode /> <isError>false</isError> <currencyCode>USD</currencyCode> <otherMsg3 /> <processorRequestType>authorize_api_call</processorRequestType> <otherMsg2 /> <otherMsg1 /> <responseTimeMilliSec>2</responseTimeMilliSec> <lastUpdated>2010-08-08</lastUpdated> <approvalCode>XYZ776.0854564137724</approvalCode> <statusMessage>authorized o</statusMessage> <cvvCode /> <errorCode>0</errorCode> <dateCreated>2010-08-06</dateCreated> <secondaryAmount /> <paymentProcessor id="6" /> </processorResult> <paymentMethodContext>Visa - *****1111</paymentMethodContext> <dateCreated>2010-08-06</dateCreated> <paymentProcessor id="6"> <name>Test Processor</name> </paymentProcessor> <invoicePayments> <invoicePayment id="1"> <payment id="7" /> <amountApplied>194.25</amountApplied> <invoice id="1" /> <lastUpdated>2010-08-06</lastUpdated> <dateCreated>2010-08-06</dateCreated> <balanceRemaining>0.00</balanceRemaining> <customer id="5" /> </invoicePayment> </invoicePayments> <notes /> <paymentMethod id="3" /> </payment> 4.4.2. Retrieve Payment List:Returns a paged list of Payments/Credits/Refunds. The transactions are sorted in descending order by Payment Id Defaults used if the query string parameters are missing:
GET /rest/payments?format=xml&offset=[n]&max=[m]&status=[status] &amount=[value]&customerId=[id] &createStartTime=[YYYYMMDDHHmm]&createEndTime=[YYYYMMDDHHmm]&updateStartTime=[YYYYMMDDHHmm]&updateEndTime=[YYYYMMDDHHmm]GET /rest/credits?format=xml&offset=[n]&max=[m]&status= [status]&amount=[value]&customerId=[id] &createStartTime=[YYYYMMDDHHmm]&createEndTime=[YYYYMMDDHHmm]&updateStartTime=[YYYYMMDDHHmm]&updateEndTime=[YYYYMMDDHHmm]GET /rest/refunds?format=xml&offset=[n]&max=[m] &status=[status]&amount=[value]&customerId=[id] &createStartTime=[YYYYMMDDHHmm]&createEndTime=[YYYYMMDDHHmm]&updateStartTime=[YYYYMMDDHHmm]&updateEndTime=[YYYYMMDDHHmm]<list> <payment id="8"> ... <payment id="7"> </list> 4.4.3. Create a new Payment:In general,Payments, Refunds and Credits are represented internally as a "Payment" entity, and differentiated by a "paymentType" property which could be either "Payment", "Refund" or "Credit". Note that the "amount" property will be negative for Refunds. There are two approaches to making a payment, either by passing in a PaymentMethod (such as a credit card, ACH, Check, etc.) or by using a pre-existing stored auto-pay PaymentMethod (added to the Customer previously via a POST /rest/customer/[id]/autopay) The returned output from all these calls is a payment instance, i.e., same return as a /rest/payment/[id]?format=xml POST /rest/payments?format=xml POST /rest/refunds? format=xml POST /rest/credits?format=xml POST /rest/payments/autopay?format=xml POST /rest/refunds/autopay?format=xml POST /rest_v1/payments?format=xml&extCustomerRef=[code] In the following XML, note that:
POST /rest/payments? format=xml <processPayment> <customer id="11"/> <amount>3430.95</amount> <currencyCode>USD</currencyCode> <generateInvoice>false</generateInvoice> <effectiveDate>2010-12-31</effectiveDate> <invoiceText/> <purchaseDescription/> <internalNotes/> <invoices> <invoice id="34" /> </invoices> <paymentMethodDTO type="CreditCard"> <!-- if payment method is CreditCard --> <creditCardPaymentMethod> <autopayPreference>1</autopayPreference> <!-- Set this to 1, 2, or 3 to save this as the preferred auto-pay for this customer --> <cardNumber>...</cardNumber> <expiry>...</expiry> <cardType>Visa</cardType> ... </creditCardPaymentMethod> </paymentMethodDTO> </processPayment>A sample response is shown below. The <status> element will be "Paid" on success with the <amount> element representing the amount that was actually transacted. <payment id="213"> <isSystemPayment>true</isSystemPayment> <customer id="11" /> <paymentMethodType>CreditCard</paymentMethodType> <currency id="USD" /> <amount>3430.95</amount> <balance>0.00</balance> <effectiveDate>2011-09-06</effectiveDate> <status>Paid</status> <paymentType>Payment</paymentType> <lastUpdated>2011-09-07</lastUpdated> <isProcessedByBillingRun>false</isProcessedByBillingRun> <baseUser id="351"> <username>jdoe</username> <firstName>Jane</firstName> <lastName>Doe</lastName> </baseUser> <processorResult id="192"> <errorMessage /> <transactionId>2162704713</transactionId> <batchIndicator /> <isSuccess>true</isSuccess> <customer id="11" /> <statusCode>1</statusCode> <amount>3430.95</amount> <avsCode>Y</avsCode> <isError>false</isError> <currencyCode>USD</currencyCode> <payment id="213" /> <processorRequestType>AUTH_CAPTURE</processorRequestType> <responseTimeMilliSec>3741</responseTimeMilliSec> <lastUpdated>2011-09-07</lastUpdated> <approvalCode>0S33CM</approvalCode> <statusMessage>RRC_1_1 : This transaction has been approved.</statusMessage> <cvvCode>X</cvvCode> <errorCode /> <dateCreated>2011-09-07</dateCreated> <secondaryAmount>0.00</secondaryAmount> </processorResult> <paymentMethodContext>Visa: 1111</paymentMethodContext> <dateCreated>2011-09-07</dateCreated> <paymentProcessor id="6"> <name>Authorize.NET V1</name> </paymentProcessor> <invoicePayments> <invoicePayment id="171"> <payment id="213" /> <amountApplied>60.50</amountApplied> <invoice id="34" /> <balanceRemaining>0.00</balanceRemaining> <customer id="11" /> </invoicePayment> </invoicePayments> </payment> POST /rest/payments/autopay POST /rest/payments/autopay&extCustomerRef=[code] <processPaymentWithAutopay> <customer id="377" /> <!-- not required if extCustomerRef is supplied in querystring --> <currencyCode>USD</currencyCode> <amount>199.00</amount> <effectiveDate>2011-09-28</effectiveDate> <invoiceText></invoiceText> <purchaseDescription></purchaseDescription> <internalNotes></internalNotes> <invoices> <invoice id='2492' /> </invoices> <autopayPreference>1</autopayPreference> <!-- defaults to 1 if not supplied --> </processPaymentWithAutopay> To get all autoPay methods of a customer, Use this link. 4.4.4 Cancel PaymentUse below API to cancel a payment. Cancel is not applicable on refunded or Voided payments. DELETE /rest/payment/[paymentId] |