Get Manual Retry State
Check whether a failed subscription renewal payment can be retried now, and when the next manual retry becomes available.
import DodoPayments from 'dodopayments';
const client = new DodoPayments({
bearerToken: process.env['DODO_PAYMENTS_API_KEY'], // This is the default and can be omitted
});
const manualRetryState = await client.payments.retrieveRetryState('payment_id');
console.log(manualRetryState.can_retry);import os
from dodopayments import DodoPayments
client = DodoPayments(
bearer_token=os.environ.get("DODO_PAYMENTS_API_KEY"), # This is the default and can be omitted
)
manual_retry_state = client.payments.retrieve_retry_state(
"payment_id",
)
print(manual_retry_state.can_retry)package main
import (
"context"
"fmt"
"github.com/dodopayments/dodopayments-go"
"github.com/dodopayments/dodopayments-go/option"
)
func main() {
client := dodopayments.NewClient(
option.WithBearerToken("My Bearer Token"),
)
manualRetryState, err := client.Payments.GetRetryState(context.TODO(), "payment_id")
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", manualRetryState.CanRetry)
}
package com.dodopayments.api.example;
import com.dodopayments.api.client.DodoPaymentsClient;
import com.dodopayments.api.client.okhttp.DodoPaymentsOkHttpClient;
import com.dodopayments.api.models.payments.ManualRetryState;
import com.dodopayments.api.models.payments.PaymentRetrieveRetryStateParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
DodoPaymentsClient client = DodoPaymentsOkHttpClient.fromEnv();
ManualRetryState manualRetryState = client.payments().retrieveRetryState("payment_id");
}
}package com.dodopayments.api.example
import com.dodopayments.api.client.DodoPaymentsClient
import com.dodopayments.api.client.okhttp.DodoPaymentsOkHttpClient
import com.dodopayments.api.models.payments.ManualRetryState
import com.dodopayments.api.models.payments.PaymentRetrieveRetryStateParams
fun main() {
val client: DodoPaymentsClient = DodoPaymentsOkHttpClient.fromEnv()
val manualRetryState: ManualRetryState = client.payments().retrieveRetryState("payment_id")
}require "dodopayments"
dodo_payments = Dodopayments::Client.new(
bearer_token: "My Bearer Token",
environment: "test_mode" # defaults to "live_mode"
)
manual_retry_state = dodo_payments.payments.retrieve_retry_state("payment_id")
puts(manual_retry_state)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Dodopayments\Client;
use Dodopayments\Core\Exceptions\APIException;
$client = new Client(
bearerToken: getenv('DODO_PAYMENTS_API_KEY') ?: 'My Bearer Token',
environment: 'test_mode',
);
try {
$manualRetryState = $client->payments->retrieveRetryState('payment_id');
var_dump($manualRetryState);
} catch (APIException $e) {
echo $e->getMessage();
}using System;
using DodoPayments.Client;
using DodoPayments.Client.Models.Payments;
DodoPaymentsClient client = new();
PaymentRetrieveRetryStateParams parameters = new() { PaymentID = "payment_id" };
var manualRetryState = await client.Payments.RetrieveRetryState(parameters);
Console.WriteLine(manualRetryState);use dodopayments::Client;
#[tokio::main]
async fn main() -> dodopayments::Result<()> {
let client = Client::from_env()?;
let payment_id = "payment_id";
let result = client
.payments()
.retrieve_retry_state()
.payment_id(payment_id)
.await?;
println!("{result:?}");
Ok(())
}curl --request GET \
--url https://test.dodopayments.com/payments/{payment_id}/retry \
--header 'Authorization: Bearer <token>'{
"can_retry": true,
"sends_allowed": 123,
"sends_used": 123,
"automatic_retry_number": 123,
"automatic_retry_total": 123,
"next_automatic_retry_at": "2023-11-07T05:31:56Z",
"reason": "<string>",
"retry_available_at": "2023-11-07T05:31:56Z"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Id of the failed payment
Response
Whether this payment can be retried now
The number of the queued automatic retry, starting at 1.
The number of automatic retries that the current configuration plans for
this invoice. It is never less than automatic_retry_number.
When the next automatic retry on this invoice is scheduled. Null when no automatic retry is queued or automatic retries are disabled.
The code POST would fail with. Null when can_retry is true.
When the next send becomes available. Null when no send is left, or when the block has nothing to do with the cooldown.
Was this page helpful?
import DodoPayments from 'dodopayments';
const client = new DodoPayments({
bearerToken: process.env['DODO_PAYMENTS_API_KEY'], // This is the default and can be omitted
});
const manualRetryState = await client.payments.retrieveRetryState('payment_id');
console.log(manualRetryState.can_retry);import os
from dodopayments import DodoPayments
client = DodoPayments(
bearer_token=os.environ.get("DODO_PAYMENTS_API_KEY"), # This is the default and can be omitted
)
manual_retry_state = client.payments.retrieve_retry_state(
"payment_id",
)
print(manual_retry_state.can_retry)package main
import (
"context"
"fmt"
"github.com/dodopayments/dodopayments-go"
"github.com/dodopayments/dodopayments-go/option"
)
func main() {
client := dodopayments.NewClient(
option.WithBearerToken("My Bearer Token"),
)
manualRetryState, err := client.Payments.GetRetryState(context.TODO(), "payment_id")
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", manualRetryState.CanRetry)
}
package com.dodopayments.api.example;
import com.dodopayments.api.client.DodoPaymentsClient;
import com.dodopayments.api.client.okhttp.DodoPaymentsOkHttpClient;
import com.dodopayments.api.models.payments.ManualRetryState;
import com.dodopayments.api.models.payments.PaymentRetrieveRetryStateParams;
public final class Main {
private Main() {}
public static void main(String[] args) {
DodoPaymentsClient client = DodoPaymentsOkHttpClient.fromEnv();
ManualRetryState manualRetryState = client.payments().retrieveRetryState("payment_id");
}
}package com.dodopayments.api.example
import com.dodopayments.api.client.DodoPaymentsClient
import com.dodopayments.api.client.okhttp.DodoPaymentsOkHttpClient
import com.dodopayments.api.models.payments.ManualRetryState
import com.dodopayments.api.models.payments.PaymentRetrieveRetryStateParams
fun main() {
val client: DodoPaymentsClient = DodoPaymentsOkHttpClient.fromEnv()
val manualRetryState: ManualRetryState = client.payments().retrieveRetryState("payment_id")
}require "dodopayments"
dodo_payments = Dodopayments::Client.new(
bearer_token: "My Bearer Token",
environment: "test_mode" # defaults to "live_mode"
)
manual_retry_state = dodo_payments.payments.retrieve_retry_state("payment_id")
puts(manual_retry_state)<?php
require_once dirname(__DIR__) . '/vendor/autoload.php';
use Dodopayments\Client;
use Dodopayments\Core\Exceptions\APIException;
$client = new Client(
bearerToken: getenv('DODO_PAYMENTS_API_KEY') ?: 'My Bearer Token',
environment: 'test_mode',
);
try {
$manualRetryState = $client->payments->retrieveRetryState('payment_id');
var_dump($manualRetryState);
} catch (APIException $e) {
echo $e->getMessage();
}using System;
using DodoPayments.Client;
using DodoPayments.Client.Models.Payments;
DodoPaymentsClient client = new();
PaymentRetrieveRetryStateParams parameters = new() { PaymentID = "payment_id" };
var manualRetryState = await client.Payments.RetrieveRetryState(parameters);
Console.WriteLine(manualRetryState);use dodopayments::Client;
#[tokio::main]
async fn main() -> dodopayments::Result<()> {
let client = Client::from_env()?;
let payment_id = "payment_id";
let result = client
.payments()
.retrieve_retry_state()
.payment_id(payment_id)
.await?;
println!("{result:?}");
Ok(())
}curl --request GET \
--url https://test.dodopayments.com/payments/{payment_id}/retry \
--header 'Authorization: Bearer <token>'{
"can_retry": true,
"sends_allowed": 123,
"sends_used": 123,
"automatic_retry_number": 123,
"automatic_retry_total": 123,
"next_automatic_retry_at": "2023-11-07T05:31:56Z",
"reason": "<string>",
"retry_available_at": "2023-11-07T05:31:56Z"
}