DocsCurrentLast updated: October 1st 2021, @ 2:31:05 pm
The Invoicing REST API supports search, refunds, templates, reminders, and more. Refer to the Invoicing API reference to see everything the Invoicing API can do.
Create QR code
When a buyer uses a mobile device to scan the QR code, they're redirected to the PayPal mobile payment flow to view the invoice and pay online with PayPal or another payment type.
You can create and associate invoice QR codes for the following countries:
- United Kingdom
- United States
1. Create codes
To generate a QR code, first create and send an invoice.
If you don't want PayPal to email the invoice notification to your buyer when you create it, because you want to send a QR code, set
send_to_recipient in the Send invoice request to
false. This parameter updates the invoice status to
UNPAID and does not send the email notification.
Copy the invoice ID returned when you create the invoice.
To create a QR code for your invoice, copy the following code and modify it.
API endpoint used: Generate QR code
curl -v -X POST \ https://api-m.sandbox.paypal.com/v2/invoicing/invoices/INV2-Z56S-5LLA-Q52L-CPZ5/generate-qr-code \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <Access-Token>"
After you copy the code in the sample request, modify the following:
Access-Tokento your access token.
- Change the sample invoice ID,
INV2-Z56S-5LLA-Q52L-CPZ5, to the invoice ID that was returned when you created the invoice.
A successful response results in:
- A return status code of HTTP
- A JSON response body that shows the QR code as an encoded Base-64 image, such as:
--2e4a1c93-9ec0-448b-8c6e-c2a691240f2f Content-Disposition: form-data; name="image" Content-Type: application/json iVBORw0KGgoAAAANSUhEUgAAAJYAAACWAQAAAAAUekxPAAAByElEQVR42u2WsW30MAyFabhQ51tAgNdQp5XsBXy+BeyV1GkNAVrA7lQIYp4ucf4L/kZMEaSIoeorKPGRjzTxf1+mP/ZTLBCFQcUz6ckQWRGLnMIt9YX6M3ERstXER4oPlxcTBjELM9OiEO8bjNmPzPpLvDbGKR4UOsdfcmti0C9u5v28aNrEaqkWmzsX7q+1bGJhIT5dPAweoq87Ghk/fB4ATCZLi4zFHZ1CiKQHG08WMSRBM0KquDv9oX0rYzTLptAyXNSnfo0sTHbcXf/g0PlYhOzuIl40WGgQL+0bWTwsbybUuiV96dfIYKwKnsHGVcZ4rxKOT09ffdrKYEeaCNnToGq7SRgkD7NHPFpovO5oZHGjEXU7kZAPJGN59nRzz3i2LzIWJpNvrDumwaL+Isargpt1lzAYxkPG4GZC3SD8Vu0lYjV1ZLDZfE/0oX0r48NgFMFVsGbPQnaynr2GOdiNu4yhSfui4qryQp++bGRcx4nDREE2YZExJJHvKJqBhPHfbmxidd4XUxfFZONqZQz7DXN3JS5EN5Yy3mzdrpPRk5WyPGFHeZSuP1nGEKnzYcCOsjgiVvdbUXlm/E287rwW9ve/9ovYG2Y/Iq/A3o7lAAAAAElFTkSuQmCC --2e4a1c93-9ec0-448b-8c6e-c2a691240f2f--
2. Test QR code
To test your QR code, complete these steps:
- Use your preferred programming language or online tool to decode this Base64-encoded value to an image.
- Scan the QR code to open the invoice.
To include an entry field that enables the customer to add a tip as a flat amount or percent of the total due, set the allow_tip parameter to
Note: If the customer adds a tip, it appears on the invoice and also in the merchant's payment notification email.
Enable partial and minimum due payments
To enable the customer to make a partial payment, set the allow_partial_payment parameter to
When you enable a partial payment, you can also set the minimum_amount_due parameter to the minimum amount due value.
Set up webhooks for Invoicing
A webhook is an HTTP callback that receives notification messages for events. See configure webhooks for more details.
PayPal APIs use webhooks for event notification. Most invoice-related actions, including invoice payments, trigger invoicing webhook events:
|Event||Triggered when||Related method|
||A merchant or customer cancels an invoice.||Cancel invoice|
||An invoice is created.||Create draft invoice|
||An invoice is paid, partially paid, or payment is made and is pending.||Mark invoice as paid|
||An invoice is refunded or partially refunded.||Mark invoice as refunded|
||An invoice is scheduled.||Send invoice|
||An invoice is updated.||Update invoice|