# `Stripe.Services.TestHelpers.Treasury.OutboundPaymentService`
[🔗](https://github.com/jeffhuen/tiger_stripe/blob/main/lib/stripe/services/test_helpers/treasury/outbound_payment_service.ex#L2)

OutboundPayment API operations.

# `fail`

```elixir
@spec fail(Stripe.Client.t(), String.t(), map(), keyword()) ::
  {:ok, term()} | {:error, Stripe.Error.t()}
```

Test mode: Fail an OutboundPayment

Transitions a test mode created OutboundPayment to the `failed` status. The OutboundPayment must already be in the `processing` state.

# `post`

```elixir
@spec post(Stripe.Client.t(), String.t(), map(), keyword()) ::
  {:ok, term()} | {:error, Stripe.Error.t()}
```

Test mode: Post an OutboundPayment

Transitions a test mode created OutboundPayment to the `posted` status. The OutboundPayment must already be in the `processing` state.

# `return_outbound_payment`

```elixir
@spec return_outbound_payment(Stripe.Client.t(), String.t(), map(), keyword()) ::
  {:ok, term()} | {:error, Stripe.Error.t()}
```

Test mode: Return an OutboundPayment

Transitions a test mode created OutboundPayment to the `returned` status. The OutboundPayment must already be in the `processing` state.

# `update`

```elixir
@spec update(Stripe.Client.t(), String.t(), map(), keyword()) ::
  {:ok, term()} | {:error, Stripe.Error.t()}
```

Test mode: Update an OutboundPayment

Updates a test mode created OutboundPayment with tracking details. The OutboundPayment must not be cancelable, and cannot be in the `canceled` or `failed` states.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
