# JPMC-PDP Documentation from https://developer.payments.jpmorgan.com # Create QR codes in bulk In this tutorial, you will learn how to use bulk QR code creation to support several common use cases. By the end of this tutorial, you will know how to: - Create a bulk payments request. - Retrieve details for a bulk payments request. - Update a previously submitted bulk request. ## Before you begin To use the Bulk QR Code API, you will need: - A [registered and fully onboarded](/docs/quick-start) developer account on the J.P. Morgan Payments Developer Portal. - An active project with the necessary API credentials. ### Create a bulk payments request Send a `POST` request to the `/receivables/request-to-pay/v1/payment-requests/bulk endpoint` to generate up to 25 QR codes in one API call. Sample payload: ```curl --url https://api.payments.jpmorgan.com/receivables/request-to-pay/v1/payment-requests/bulk \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: ' \ --data '{ "description": "A Sample Bulk Request", "requests": [ { "country": "BR", "request": { "debtor": { "name": "JOÃO DA SILVA RIBEIRO", "address": { "type": "ADDR", "addressLines": [ "AV PAULISTA 200" ], "city": "SÃO PAULO", "state": "SP", "postalCode": "01311900", "country": "BR" }, "email": { "address": "joao.silva@gmail.com", "type": "PRIMARY" }, "taxInformation": { "taxpayerCategory": "INDIVIDUAL", "taxId": "81877226220" } }, "creditor": { "account": { "schemeName": { "proprietary": "EVP" }, "alternateAccountIdentifier": "123e4567-e12b-12d1-a456-426655440000" } }, "expirationType": "DUE_DATE", "paymentAmount": "150.00", "currency": "BRL", "paymentDueDate": "2024-11-21", "reference": "Invoice for energy bill - 123456", "additionalInformation": [ { "valueType": "Obs", "text": "QR with Due Date - Test" } ], "interestType": "PERCENTAGE_PER_DAY", "interestParameters": { "days": "CALENDAR_DAYS", "percentage": "5.00" }, "discountType": "PERCENTAGE_TO_DATE", "discountParameters": { "cutOffDetails": [ { "percentage": "2.00", "cutOffDate": "2024-10-02" } ] }, "penaltyType": "FIXED_AMOUNT", "penaltyParameters": { "amount": "16.50" }, "reductionType": "FIXED_AMOUNT", "reductionParameters": { "amount": "20.00" }, "gracePeriod": 5 }, "requestMethodType": "QR_CODE", "requestMethod": { "qrCodeType": "DYNAMIC", "contentType": "IMAGE", "correctionLevel": "MEDIUM", "imageWidth": 400 } }, { "country": "BR", "request": { "debtor": { "name": "JOÃO DA SILVA RIBEIRO", "address": { "type": "ADDR", "addressLines": [ "AV PAULISTA 200" ], "city": "SÃO PAULO", "state": "SP", "postalCode": "01311900", "country": "BR" }, "email": { "address": "joao.silva@gmail.com", "type": "PRIMARY" }, "taxInformation": { "taxpayerCategory": "INDIVIDUAL", "taxId": "81877226220" } }, "creditor": { "account": { "schemeName": { "proprietary": "EVP" }, "alternateAccountIdentifier": "123e4567-e12b-12d1-a456-426655440000" } }, "expirationType": "DUE_DATE", "paymentAmount": "180.00", "currency": "BRL", "paymentDueDate": "2024-12-21", "reference": "Invoice for energy bill - 123456", "additionalInformation": [ { "valueType": "Obs", "text": "QR with Due Date - Test" } ], "interestType": "PERCENTAGE_PER_DAY", "interestParameters": { "days": "CALENDAR_DAYS", "percentage": "5.00" }, "discountType": "PERCENTAGE_TO_DATE", "discountParameters": { "cutOffDetails": [ { "percentage": "2.00", "cutOffDate": "2024-11-02" } ] }, "penaltyType": "FIXED_AMOUNT", "penaltyParameters": { "amount": "16.50" }, "reductionType": "FIXED_AMOUNT", "reductionParameters": { "amount": "20.00" }, "gracePeriod": 5 }, "requestMethodType": "QR_CODE", "requestMethod": { "qrCodeType": "DYNAMIC", "contentType": "IMAGE", "correctionLevel": "MEDIUM", "imageWidth": 400 } } ] }' ``` ### Retrieve details for a bulk payments request Send a `GET` request to `/receivables/request-to-pay/v1/payment-requests/bulk/` to retrieve the status and metadata of a previously submitted bulk request. ```curl curl --request GET \ --url https://api.payments.jpmorgan.com/receivables/request-to-pay/v1/payment-requests/bulk/253f67f3-b640-44cb-aabd-2cc348b52678 \ --header 'Accept: application/json' ``` ### Update a previously submitted bulk request Send a `PUT` request to `/receivables/request-to-pay/v1/payment-requests/bulk/` to update one or more items in a previously submitted bulk request. ```curl curl --request PUT \ --url https://api.payments.jpmorgan.com/receivables/request-to-pay/v1/payment-requests/bulk/253f67f3-b640-44cb-aabd-2cc348b52678 \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "id": "253f67f3-b640-44cb-aabd-2cc348b52678", "description": "A Sample Bulk Request", "requests": [ { "id": "533594cb44f646b7beee3c1ed461e84b", "country": "BR", "request": { "debtor": { "name": "JOÃO DA SILVA RIBEIRO", "address": { "type": "ADDR", "addressLines": [ "AV PAULISTA 200" ], "city": "SÃO PAULO", "state": "SP", "postalCode": "01311900", "country": "BR" }, "email": { "address": joao.silva@gmail.com, "type": "PRIMARY" }, "taxInformation": { "taxpayerCategory": "INDIVIDUAL", "taxId": "81877226220" } }, "creditor": { "account": { "schemeName": { "proprietary": "EVP" }, "alternateAccountIdentifier": "123e4567-e12b-12d1-a456-426655440000" } }, "expirationType": "DUE_DATE", "paymentAmount": "150.00", "currency": "BRL", "paymentDueDate": "2024-11-21", "reference": "Invoice for energy bill - 123456", "additionalInformation": [ { "valueType": "Obs", "text": "QR with Due Date - Test" } ], "interestType": "PERCENTAGE_PER_DAY", "interestParameters": { "days": "CALENDAR_DAYS", "percentage": "5.00" }, "discountType": "PERCENTAGE_TO_DATE", "discountParameters": { "cutOffDetails": [ { "percentage": "2.00", "cutOffDate": "2024-10-02" } ] }, "penaltyType": "FIXED_AMOUNT", "penaltyParameters": { "amount": "16.50" }, "reductionType": "FIXED_AMOUNT", "reductionParameters": { "amount": "20.00" }, "gracePeriod": 5 }, "requestMethodType": "QR_CODE", "requestMethod": { "qrCodeType": "DYNAMIC", "contentType": "IMAGE", "correctionLevel": "MEDIUM", "imageWidth": 400 } } ] }' ```