Documentation Index Fetch the complete documentation index at: https://docs.paypal.ai/llms.txt
Use this file to discover all available pages before exploring further.
Use test values to simulate error responses with the PayPal Invoicing API and verify that your application handles different scenarios correctly.
Prerequisites
Simulation methods
You can simulate responses in two ways: JSON pointer method or the path parameter method .
JSON pointer method
Request location Test value Simulated response detail.referenceERRINV002PERMISSION_DENIED
The following sample code shows a simulated request with a test value and the sandbox response.
Request [expandable]
curl -X POST \
https://api-m.sandbox.paypal.com/v2/invoicing/invoices \
-H 'Authorization: Bearer ACCESS-TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"detail":
{
"reference": "ERRINV002"
}
}'
Response
{
"localizedMessage" : "No permission for the requested operation. " ,
"name" : "PERMISSION_DENIED" ,
"message" : "No permission for the requested operation. " ,
"details" : [
{
"issue" : "No permission for the requested operation. "
}
],
"information_link" : "https://developer.paypal.com/docs/archive/permissions-service/" ,
"debug_id" : "6e07326c281c4"
}
See all 12 lines
Path parameter method
Use test value in the request URI. This simulates a response.
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EINV-0010INVOICE_NOT_FOUND
The following sample code shows a simulated request with a test value and the sandbox response.
Request
curl -X GET \
https://api-m.sandbox.paypal.com/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0010 \
-H 'Authorization: Bearer ACCESS-TOKEN' \
-H 'Content-Type: application/json'
Response
{
"name" : "RESOURCE_NOT_FOUND" ,
"message" : "The specified resource does not exist." ,
"debug_id" : "98b2b9d2d89cb" ,
"links" : [
{
"href" : "https://developer.paypal.com/docs/api/invoicing/#errors" ,
"rel" : "information_link"
}
]
}
See all 11 lines
Test values
Note : Test values are case sensitive.
The following test values simulate different responses for each Invoicing API operation. Each operation shows where to insert the test value and the response you can expect.
Generate invoice number
Use the path parameter in the request URI at POST /v2/invoicing/invoices/generate-next-invoice-number to simulate the following error responses.
Test value Simulated response ERRINV066INTERNAL_SERVER_ERRORERRINV067PERMISSION_DENIED
Create invoices
Use the JSON pointer method at
POST /v2/invoicing/invoices/ to simulate the following error responses.
Request location Test value Simulated response detail.referenceERRINV001INTERNAL_SERVER_ERRORdetail.referenceERRINV002PERMISSION_DENIEDdetail.referenceERRINV003UNSUPPORTED_MEDIA_TYPEdetail.referenceERRINV004VALIDATION_ERROR_EMPTY_BODYdetail.referenceERRINV005INVALID_REQUEST_GENERICdetail.referenceERRINV006INVALID_REQUEST_SCHEMA_VIOLATION
Get invoice
Use the path parameter in the request URI at GET /v2/invoicing/invoices/{invoice_id} to simulate the following error responses.
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EINV-0007INTERNAL_SERVER_ERROR/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0008PERMISSION_DENIED/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0009UNAUTHORIZED_ACCESS/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0010INVOICE_NOT_FOUND
Delete invoice
Use the path parameter in the request URI to simulate the following response at DELETE /v2/invoicing/invoices/{invoice_id}.
Success
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EINV-0059PAYLOAD WITH 200 RESPONSE CODE
Error
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EINV-0055INTERNAL_SERVER_ERROR/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0056PERMISSION_DENIED/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0057UNAUTHORIZED_ACCESS/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0058INVOICE_NOT_FOUND
Update the invoice
Use the path parameter in the request URI to simulate the following error response at PUT /v2/invoicing/invoices/{invoice_id}.
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EINV-0060INTERNAL_SERVER_ERROR/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0061PERMISSION_DENIED/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0062UNSUPPORTED_MEDIA_TYPE/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0063VALIDATION_ERROR_EMPTY_BODY/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0064INVALID_REQUEST_GENERIC/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0065INVALID_REQUEST_SCHEMA_VIOLATION
Cancel a sent invoice
Use the path parameter in the request URI to simulate the following response at POST /v2/invoicing/invoices/{invoice_id}/cancel.
Success
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EINV-0029/cancelPAYLOAD WITH 204 RESPONSE CODE
Error
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EINV-0024/cancelINTERNAL_SERVER_ERROR/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0025/cancelPERMISSION_DENIED/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0026/cancelUNAUTHORIZED_ACCESS/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0027/cancelINVOICE_NOT_FOUND/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0028/cancelCANT_CANCEL_INVOICE_IN_DRAFT_STATE
Record payment for invoice
Use the path parameter in the request URI to simulate the following response at POST /v2/invoicing/invoices/{invoice_id}/payments.
Success
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EINV-0037/paymentsPAYLOAD WITH 200 RESPONSE CODE
Error
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EINV-0031/paymentsINTERNAL_SERVER_ERROR/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0032/paymentsPERMISSION_DENIED/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0033/paymentsUNAUTHORIZED_ACCESS/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0034/paymentsINVOICE_NOT_FOUND/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0035/paymentsCANT_PAY_AN_PAID_OR_CANCELED_INVOICE/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0036/paymentsCANT_PAY_MORE_THAN_INVOICE_AMOUNT
Delete payment
Use the path parameter in the request URI to simulate the following response at DELETE /v2/invoicing/invoices/INV2-ABCD-1234-EFGH-5678/payments/{transaction_id}.
Success
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EFGH-5678/payments/EXT-ABCDEFGHERRINV042PAYLOAD WITH 200 RESPONSE CODE
Error
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EFGH-5678/payments/EXT-ABCDEFGHERRINV038INTERNAL_SERVER_ERROR/v2/invoicing/invoices/INV2-ABCD-1234-EFGH-5678/payments/EXT-ABCDEFGHERRINV039PERMISSION_DENIED/v2/invoicing/invoices/INV2-ABCD-1234-EFGH-5678/payments/EXT-ABCDEFGHERRINV040UNAUTHORIZED_ACCESS/v2/invoicing/invoices/INV2-ABCD-1234-EFGH-5678/payments/EXT-ABCDEFGHERRINV041PAYMENT_OR_INVOICE_NOT_FOUND
Record refund for invoice
Use the path parameter in the request URI to simulate the following response at POST /v2/invoicing/invoices/{invoice_id}/refunds:
Success
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EINV-0049/refundsPAYLOAD WITH 200 RESPONSE CODE
Error
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EINV-0043/refundsINTERNAL_SERVER_ERROR/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0044/refundsPERMISSION_DENIED/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0045/refundsUNAUTHORIZED_ACCESS/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0046/refundsINVOICE_NOT_FOUND/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0047/refundsCANT_REFUND_A_CANCELED_INVOICE/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0048/refundsCANT_REFUND_MORE_THAN_PAYMENT_AMOUNT
Delete refund
Use the path parameter in the request URI to simulate the following response at DELETE /v2/invoicing/invoices/{invoice_id}/refunds/{transaction_id}.
Success
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EFGH-5678/refunds/EXT-ABCDEFGHERRINV054PAYLOAD WITH 200 RESPONSE CODE
Error
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EFGH-5678/refunds/EXT-ABCDEFGHERRINV050INTERNAL_SERVER_ERROR/v2/invoicing/invoices/INV2-ABCD-1234-EFGH-5678/refunds/EXT-ABCDEFGHERRINV051PERMISSION_DENIED/v2/invoicing/invoices/INV2-ABCD-1234-EFGH-5678/refunds/EXT-ABCDEFGHERRINV052UNAUTHORIZED_ACCESS/v2/invoicing/invoices/INV2-ABCD-1234-EFGH-5678/refunds/EXT-ABCDEFGHERRINV053REFUND_OR_INVOICE_NOT_FOUND
Send invoice reminder
Use the path parameter in the request URI to simulate the following response at POST /v2/invoicing/invoices/{invoice_id}/remind.
Success
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EINV-0023/remindPAYLOAD WITH 200 RESPONSE CODE
Error
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EINV-0017/remindINTERNAL_SERVER_ERROR/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0018/remindPERMISSION_DENIED/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0019/remindUNAUTHORIZED_ACCESS/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0020/remindINVOICE_NOT_FOUND/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0021/remindCANT_REMIND_INVOICE_IN_DRAFT_STATE/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0022/remindCANT_REMIND_INVOICE_WITHOUT_BILLING_INFO
Send invoice
Use the path parameter in the request URI to simulate the following response at POST /v2/invoicing/invoices/{invoice_id}/send.
Success
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EINV-0016/sendPAYLOAD WITH 200 RESPONSE CODE
Error
Test value Simulated response /v2/invoicing/invoices/INV2-ABCD-1234-EINV-0011/sendINTERNAL_SERVER_ERROR/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0012/sendPERMISSION_DENIED/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0013/sendUNAUTHORIZED_ACCESS/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0014/sendINVOICE_NOT_FOUND/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0015/sendCANT_SEND_INVOICE_WITHOUT_EMAIL/v2/invoicing/invoices/INV2-ABCD-1234-EINV-0030/sendCANT_SEND_ALREADY_SENT_INVOICE
Search invoices
Use the path parameter in the request URI to simulate the following error responses at POST /v2/invoicing/search-invoices.
Test value Simulated response ERRINV068INTERNAL_SERVER_ERRORERRINV069PERMISSION_DENIEDERRINV070INVALID_REQUEST