Hello,
I want to capture remaining balance of order:
How to do it with API? I tried to use orderCapture - GraphQL Admin but order does not return AUTHORIZATION transaction, only SALE. `orderCapture` accept only AUTHORIZATION transaction id. What did I miss?
Hey @Dzonotonas! The issue here is that orderCapture is specifically for capturing authorized payments - where funds have been reserved but not yet claimed. Looking at your screenshot, that order has a SALE transaction (the initial payment was already captured), not an AUTHORIZATION. So there’s nothing to “capture” in that sense.
For orders with payment terms, you need a different approach depending on how you want to collect:
-
If the customer has a vaulted payment method and you want to charge it directly, use orderCreateMandatePayment. Note: this requires the read_payment_mandate and write_payment_mandate scopes, which need explicit approval in the Partner Dashboard.
-
If you want to send the customer an invoice they can pay themselves, use orderInvoiceSend.
-
You can also grab a direct payment link from order.paymentCollectionDetails.additionalPaymentCollectionUrl if you need to share it outside of email - this doesn’t require special scopes.
To understand what payment options are available for a specific order, query the paymentCollectionDetails and paymentTerms fields on the order - they’ll tell you when payment is due and what methods are available.