Reissue payouts with the API

Reissue a payout transaction with a different payment method
View as Markdown
Applies to:Developers

Use the reissue endpoint to create a new payout transaction with a different payment method when the original payout can’t be completed. The original and new transactions are linked through their event histories for audit purposes.

The reissue endpoint is for on-demand payouts only. For managed payables, contact the Payabli client success team for help with payouts.

When to reissue

Reissue a payout when:

  • A virtual card expires before the vendor redeems it
  • An ACH payment is returned by the bank
  • You need to switch payment methods (for example, from check to ACH)

Reissuing doesn’t cancel the original transaction. It marks it as reissued and creates a new, linked transaction. If the original payment method needs to be stopped (for example, a check), contact Payabli support to initiate a stop payment before reissuing.

Prerequisites

Before you can reissue a payout, the original transaction must be in Processing or Processed status.

Allowed payment method changes

The reissue endpoint doesn’t support all payment method combinations. The table below shows which methods you can reissue to, based on the original payment method.

Original methodCan reissue toNotes
Virtual cardVirtual card, ACH, check
CheckCheck, ACH, virtual cardContact Payabli support to stop the original check before reissuing.
ACHACH, check, virtual cardOnly before the hold period ends, or after a return.
Same Day ACHCancel onlySame Day ACH transactions can’t be reissued. Cancel them instead.

Reissue a payout

Send a POST request to /api/MoneyOut/reissue with the original transaction ID as a query parameter and the new payment method in the request body.

The endpoint uses the payment method details you include in the request. It doesn’t fall back to the vendor’s existing payment methods.

See the API reference for full endpoint documentation.

Reissue as ACH

When reissuing as ACH, you must include all the bank account details in the request body.

POST
/api/MoneyOut/reissue
1from payabli import payabli
2from payabli.money_out_types import ReissuePaymentMethod
3
4client = payabli(
5 api_key="YOUR_API_KEY_HERE",
6)
7
8client.money_out.reissue_out(
9 trans_id="129-219",
10 payment_method=ReissuePaymentMethod(
11 method="ach",
12 ach_holder="Acme Corp",
13 ach_routing="021000021",
14 ach_account="9876543210",
15 ach_account_type="savings",
16 ach_holder_type="business",
17 ),
18)

Reissue as check

When reissuing as a check, the check is mailed to the vendor’s remittance address from the original transaction.

POST
/api/MoneyOut/reissue
1from payabli import payabli
2from payabli.money_out_types import ReissuePaymentMethod
3
4client = payabli(
5 api_key="YOUR_API_KEY_HERE",
6)
7
8client.money_out.reissue_out(
9 trans_id="129-219",
10 payment_method=ReissuePaymentMethod(
11 method="check",
12 ),
13)

If you’re reissuing a check that was already mailed, contact Payabli support to stop the original check first. The reissue endpoint doesn’t automatically stop the original check.

Reissue as virtual card

When reissuing as a virtual card, Payabli generates a new card and sends it to the vendor’s email address.

POST
/api/MoneyOut/reissue
1from payabli import payabli
2from payabli.money_out_types import ReissuePaymentMethod
3
4client = payabli(
5 api_key="YOUR_API_KEY_HERE",
6)
7
8client.money_out.reissue_out(
9 trans_id="129-219",
10 payment_method=ReissuePaymentMethod(
11 method="vcard",
12 ),
13)

Response

A successful reissue returns the new transaction ID and a link back to the original.

Response
1{
2 "isSuccess": true,
3 "responseCode": 1,
4 "responseText": "Success",
5 "responseData": {
6 "transactionId": "130-220",
7 "status": "Authorized",
8 "originalTransactionId": "129-219"
9 }
10}

The new transaction automatically goes through the standard authorize-and-capture flow. You can track its progress using the Get payout details endpoint with the new transactionId.

Audit trail

When you reissue a transaction, Payabli creates event records on both transactions:

  • Original transaction: Gets a “Reissued” event linking to the new transaction
  • New transaction: Gets event records linking back to the original transaction

You can view these links by querying the Get payout details endpoint and checking the Events array in the response.

Error handling

The reissue endpoint returns HTTP 400 when the transaction can’t be reissued. Common causes:

CauseError message
Transaction isn’t in Processing or Processed statusBad Request: Transaction must be in Processing or Processed state
Transaction doesn’t existBad Request: Transaction ID does not exist or is malformed
Missing required ACH fieldsBad Request: Invalid payment method configuration. Missing required field for ACH: {fieldName}
Invalid payment methodBad Request: Invalid payment method

An HTTP 200 response doesn’t always mean the reissue succeeded. Always check the isSuccess field in the response body to confirm the result.

Testing considerations

When you integrate this feature, keep these testing considerations in mind:

  • Create a payout and advance it to Processing or Processed status before attempting a reissue.
  • Test each payment method type (ACH, check, virtual card) to confirm the request body validation works as expected.
  • Verify that the original transaction’s status changes to “Reissued” and that both transactions are linked through their events.
  • Test error cases: reissuing a transaction in an invalid state, missing required ACH fields, and non-existent transaction IDs.
  • If you’re using idempotency keys, confirm that duplicate requests with the same key don’t create multiple transactions.

Best practices

Keep these tips in mind when working with the reissue endpoint.

  • Use idempotency keys in production to prevent duplicate reissues from retry logic. Include the idempotencyKey header with a unique value for each reissue attempt.
  • Check transaction status first by calling the Get payout details endpoint before attempting a reissue.
  • Stop check payments before reissuing. The reissue endpoint doesn’t cancel the original check automatically.
  • Validate ACH details before sending. Routing numbers must be exactly 9 digits, and account numbers must be between 8 and 17 digits.

See these related resources to help you get the most out of Payabli.