What is Get Invoice Details?
The Get Invoice Details endpoint returns complete information about a specific invoice, including:- All payment attempts (every try, not just the latest)
- Full payment method information
- Invoice line items
- Processor responses and transaction IDs
- Customer information (if linked)
- Customer support: Looking up a specific invoice
- Debugging: Understanding why a payment failed
- Reconciliation: Getting all transaction details
- Reporting: Detailed invoice information for accounting
- After getting invoice list: Get details for specific invoices
Tip: Use Get Invoices to get a list, then use this endpoint to get details for specific invoices.
API Endpoint
{{Api Root}}withapi.revolv3.com(production) orapi-sandbox.revolv3.com(sandbox){invoiceId}with the actual invoice ID (e.g.,302756)
Example Request
Understanding Invoice Attempts
An invoice attempt is each time Revolv3 tries to process the payment. An invoice can have multiple attempts if:- The first attempt failed and Revolv3 retried
- The payment was recycled (for subscriptions)
invoiceAttemptDate in the invoiceAttempts array—the most recent date is the latest attempt.
Sample Response
Understanding the Response
Invoice-Level Fields
| Field | Description |
|---|---|
invoiceId | Revolv3’s unique identifier for this invoice |
parentInvoiceId | If this is a refund, links to the original invoice |
customerId | Customer ID if linked to a customer record |
merchantInvoiceRefId | Your internal invoice/order reference ID |
invoiceStatus | Current invoice status (Paid, Pending, Noncollectable, etc.) |
subtotal | Invoice amount before tax |
tax | Tax amount |
total | Total invoice amount |
billingDate | Date the invoice was billed |
networkTransactionId | Transaction ID from the card network (important for disputes) |
subscriptionId | Subscription ID if this invoice is from a subscription |
installmentId | Installment ID if this is part of an installment plan |
Invoice Attempts Array
TheinvoiceAttempts array contains all payment attempts for this invoice. Each attempt includes:
| Field | Description |
|---|---|
invoiceAttemptId | Unique ID for this specific attempt |
amount | Amount attempted in this try |
invoiceAttemptStatus | Result: Success, Fail, Pending, etc. |
invoiceAttemptDate | When this attempt was made (use this to find the latest) |
paymentProcessor | Which processor handled this attempt (WorldPay, Adyen, etc.) |
processorTransactionId | Transaction ID from the processor |
responseCode | Processor’s response code (e.g., “000” = approved) |
responseMessage | Processor’s response message (e.g., “Approved”, “Declined”) |
paymentMethod | Payment method used for this attempt |
Finding the Latest Attempt
To find the most recent payment attempt:- Look at the
invoiceAttemptsarray - Find the attempt with the latest
invoiceAttemptDate - Check its
invoiceAttemptStatusto see if it succeeded or failed
- 2024-09-17T18:40:38 (Success) ← Latest
- 2024-09-17T18:40:35 (Fail)
- 2024-09-17T18:40:30 (Fail)
Real-World Use Cases
Use Case 1: Customer Support
Scenario: Customer says “I was charged twice” Solution:- Look up invoice by
merchantInvoiceRefId(their order number) - Check
invoiceAttemptsarray - See if there are multiple successful attempts
- If yes, one might be a duplicate—process a refund
Use Case 2: Debugging Failed Payment
Scenario: Payment failed, need to know why Solution:- Get invoice details
- Look at the latest attempt in
invoiceAttempts - Check
invoiceAttemptStatus(probably “Fail”) - Check
responseMessagefor the reason (e.g., “Insufficient Funds”) - Use this information to help the customer
Use Case 3: Reconciliation
Scenario: Matching Revolv3 invoices with bank deposits Solution:- Get invoice details
- Use
networkTransactionIdto match with bank statements - Use
processorTransactionIdfor processor-specific reconciliation - Verify amounts match (
totalfield)
Use Case 4: Subscription Payment History
Scenario: Customer wants to see all their subscription payments Solution:- Get invoices filtered by
subscriptionId - For each invoice, get details to show full payment history
- Display all attempts so customer can see retries
Best Practices
- Store invoice IDs: When you create an invoice, save the
invoiceIdfor later lookups - Check latest attempt: Always look at the most recent attempt for current status
- Store transaction IDs: Save
networkTransactionIdandprocessorTransactionIdfor reconciliation - Handle multiple attempts: Your code should handle invoices with multiple attempts
- Use for debugging: This endpoint is great for troubleshooting payment issues
Common Questions
Q: How do I know which attempt is the latest? A: Sort theinvoiceAttempts array by invoiceAttemptDate (most recent first). The first one is the latest.
Q: Can an invoice have multiple successful attempts? A: Typically no—once an invoice is paid, further attempts usually don’t happen.
Q: What if there are no attempts? A: The invoice might be pending or the payment hasn’t been processed yet. Check the invoiceStatus.
Q: How do I get processor-specific details? A: Check the processorTransactionId and responseCode/responseMessage in the attempt. For raw processor responses, see Processor Raw Response.
Next Steps
- Get Invoices API — Get a list of invoices
- Invoice Status — Understand invoice statuses
- Processor Raw Response — Get full processor response details

