curl "https://api.payload.co/transactions/txn_3bW9JN4BVk3wU0ZZQs2Ay" \
-u secret_key_3bW9JMZtPVDOfFNzwRdfE: \
-X PUT \
-d "status=voided"
payment = pl.Transaction.get('txn_3bW9JN4BVk3wU0ZZQs2Ay')
payment.update(status='voided')
payment = Payload::Transaction.
get('txn_3bW9JN4BVk3wU0ZZQs2Ay').
update(
status: 'voided'
)
<?php
$payment = Payload\Transaction::get('txn_3bW9JN4BVk3wU0ZZQs2Ay');
$payment->update(array( 'status' => 'voided' ))
?>
let payment = await pl.Transaction.get('txn_3bW9JN4BVk3wU0ZZQs2Ay')
payment = await payment.update({ status: 'voided' })
var payment = await pl.Payment.GetAsync("txn_3bW9JN4BVk3wU0ZZQs2Ay");
await payment.UpdateAsync(new { status = "voided" });
To cancel a recent payment before it settles, update its status to voided
using the PUT
method (or update
method if you're using the SDKs) on the transaction object. If a payment has already settled, you can initiate a refund instead.
curl "https://api.payload.co/transactions/" \
-u secret_key_3bW9JMZtPVDOfFNzwRdfE: \
-d "type=refund" \
-d "amount=100" \
-d "ledger[0][assoc_transaction_id]=txn_3bW9JN4BVk3wU0ZZQs2Ay"
payment = pl.Payment.get('txn_3bW9JN4BVk3wU0ZZQs2Ay')
refund = pl.Refund.create(
amount=payment.amount,
ledger=[{
'assoc_transaction_id': payment.id
}]
)
payment = Payload::Payment.get('txn_3bW9JN4BVk3wU0ZZQs2Ay')
refund = Payload::Refund.create(
amount: payment.amount,
ledger: [
Payload::Ledger.new(
assoc_transaction_id: payment.id
)
]
)
<?php
$payment = Payload\Transaction::get('txn_3bW9JN4BVk3wU0ZZQs2Ay');
$refund = Payload\Transaction::create(array(
'type' => 'refund',
'amount' => $payment->amount,
'ledger' => array(array(
'assoc_transaction_id' => $payment->id
))
));
?>
const payment = await pl.Payment.get('txn_3bW9JN4BVk3wU0ZZQs2Ay')
const refund = await pl.Refund.create({
amount: payment.amount,
ledger: [{
assoc_transaction_id: payment.id
}]
})
var payment = await pl.Payment.GetAsync("txn_3bW9JN4BVk3wU0ZZQs2Ay");
var refund = await pl.Refund.CreateAsync(new {
amount = payment.amount,
ledger = new[] {
new pl.Ledger(new{ assoc_transaction_id = payment.id })
}
});
// Or the short form
var refund = payment.refund();
To refund a payment, create a new refund transaction with a ledger entry setting the assoc_transaction_id
to the original payment's id
.
curl "https://api.payload.co/transactions/" \
-u secret_key_3bW9JMZtPVDOfFNzwRdfE: \
-d "type=refund" \
-d "amount=10" \
-d "ledger[0][assoc_transaction_id]=txn_3bW9JN4BVk3wU0ZZQs2Ay"
payment = pl.Payment.get('txn_3bW9JN4BVk3wU0ZZQs2Ay')
refund = pl.Refund.create(
amount=10,
ledger=[{
'assoc_transaction_id': payment.id
}]
)
payment = Payload::Payment.get('txn_3bW9JN4BVk3wU0ZZQs2Ay')
refund = Payload::Refund.create(
amount: 10,
ledger: [
Payload::Ledger.new(
assoc_transaction_id: payment.id
)
]
)
<?php
$payment = Payload\Transaction::get('txn_3bW9JN4BVk3wU0ZZQs2Ay');
$refund = Payload\Transaction::create(array(
'type' => 'refund',
'amount' => 10,
'ledger' => array(array(
'assoc_transaction_id' => $payment->id
))
));
?>
const payment = await pl.Payment.get('txn_3bW9JN4BVk3wU0ZZQs2Ay')
const refund = await pl.Refund.create({
amount: 10,
ledger: [{
assoc_transaction_id: payment.id
}]
})
var payment = await pl.Payment.GetAsync("txn_3bW9JN4BVk3wU0ZZQs2Ay");
var refund = await pl.Refund.CreateAsync(new {
amount = 10,
ledger = new[] {
new pl.Ledger(new{ assoc_transaction_id = payment.id })
}
});
// Or the short form
var refund = await payment.RefundAsync();
To refund only part of a payment, create a new refund transaction with a ledger entry setting the assoc_transaction_id
to the original payment's id
and set the amount attribute of the refund to the desired amount.