openapi: 3.0.1
info:
description: The GOV.UK Pay REST API. Read [our documentation](https://docs.payments.service.gov.uk/) for more details.
title: GOV.UK Pay Agreements Refunding card payments API
version: 1.0.3
servers:
- url: https://publicapi.payments.service.gov.uk
tags:
- name: Refunding card payments
paths:
/v1/payments/{paymentId}/refunds:
get:
description: You can use this endpoint to [get a list of refunds for a payment](https://docs.payments.service.gov.uk/refunding_payments/#get-all-refunds-for-a-single-payment).
operationId: Get all refunds for a payment
parameters:
- description: The unique `payment_id` of the payment you want a list of refunds for.
in: path
name: paymentId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RefundForSearchResult'
description: OK - your request was successful.
'401':
description: Your API key is missing or invalid. Read more about [authenticating GOV.UK Pay API requests](https://docs.payments.service.gov.uk/api_reference/#authentication)
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
description: Not found
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Too many requests
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
description: Downstream system error
security:
- BearerAuth: []
summary: Get information about a payment’s refunds
tags:
- Refunding card payments
post:
description: You can use this endpoint to [fully or partially refund a payment](https://docs.payments.service.gov.uk/refunding_payments).
operationId: Submit a refund for a payment
parameters:
- description: The unique `payment_id` of the payment you want to refund.
in: path
name: paymentId
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentRefundRequest'
description: requestPayload
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Refund'
description: successful operation
'202':
description: ACCEPTED
'401':
description: Your API key is missing or invalid. Read more about [authenticating GOV.UK Pay API requests](https://docs.payments.service.gov.uk/api_reference/#authentication)
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
description: Not found
'412':
description: Refund amount available mismatch
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Too many requests
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
description: Downstream system error
security:
- BearerAuth: []
summary: Refund a payment
tags:
- Refunding card payments
/v1/payments/{paymentId}/refunds/{refundId}:
get:
description: You can use this endpoint to [get details about an individual refund](https://docs.payments.service.gov.uk/refunding_payments/#checking-the-status-of-a-refund).
operationId: Get a payment refund
parameters:
- description: The unique `payment_id` of the payment you want to view a refund of.
in: path
name: paymentId
required: true
schema:
type: string
- description: The unique `refund_id` of the refund you want to view. If one payment has multiple refunds, each refund has a different `refund_id`.
in: path
name: refundId
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Refund'
description: OK - your request was successful.
'401':
description: Your API key is missing or invalid. Read more about [authenticating GOV.UK Pay API requests](https://docs.payments.service.gov.uk/api_reference/#authentication)
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
description: Not found
'429':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Too many requests
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
description: Downstream system error
security:
- BearerAuth: []
summary: Check the status of a refund
tags:
- Refunding card payments
/v1/refunds:
get:
description: You can use this endpoint to [search refunds you’ve previously created](https://docs.payments.service.gov.uk/refunding_payments/#searching-refunds). The refunds are sorted by date, with the most recently created refunds appearing first.
operationId: Search refunds
parameters:
- description: Returns refunds created on or after the `from_date`. Date and time must use Coordinated Universal Time (UTC) and ISO 8601 format to second-level accuracy - `YYYY-MM-DDThh:mm:ssZ`.
example: '2015-08-13T12:35:00Z'
in: query
name: from_date
schema:
type: string
- description: Returns refunds created before the `to_date`. Date and time must use Coordinated Universal Time (UTC) and ISO 8601 format to second-level accuracy - `YYYY-MM-DDThh:mm:ssZ`.
example: '2015-08-13T12:35:00Z'
in: query
name: to_date
schema:
type: string
- description: Returns refunds settled on or after the `from_settled_date` value. You can only use `from_settled_date` if your payment service provider is Stripe. Date must use ISO 8601 format to date-level accuracy - `YYYY-MM-DD`. Refunds are settled when Stripe takes the refund from your account balance.
example: '2022-08-13'
in: query
name: from_settled_date
schema:
type: string
- description: Returns refunds settled before the `to_settled_date` value. You can only use `to_settled_date` if your payment service provider is Stripe. Date must use ISO 8601 format to date-level accuracy - `YYYY-MM-DD`. Refunds are settled when Stripe takes the refund from your account balance.
example: '2022-08-13'
in: query
name: to_settled_date
schema:
type: string
- description: Returns a [specific page of results](https://docs.payments.service.gov.uk/api_reference/#pagination). Defaults to `1`.
in: query
name: page
schema:
type: string
- description: The number of refunds returned [per results page](https://docs.payments.service.gov.uk/api_reference/#pagination). Defaults to `500`. Maximum value is `500`.
in: query
name: display_size
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/RefundSearchResults'
description: OK - your request was successful.
'401':
description: Your API key is missing or invalid. Read more about [authenticating GOV.UK Pay API requests](https://docs.payments.service.gov.uk/api_reference/#authentication)
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
description: Invalid parameters. See Public API documentation for the correct data formats
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
description: Downstream system error
security:
- BearerAuth: []
summary: Search refunds
tags:
- Refunding card payments
components:
schemas:
PaymentRefundRequest:
type: object
description: The Payment Refund Request Payload
properties:
amount:
type: integer
format: int32
description: The amount you want to [refund to your user](https://docs.payments.service.gov.uk/refunding_payments/) in pence.
example: 150000
maximum: 10000000
minimum: 1
refund_amount_available:
type: integer
format: int32
description: Amount in pence. Total amount still available before issuing the refund
example: 200000
maximum: 10000000
minimum: 1
required:
- amount
Refund:
type: object
properties:
_links:
$ref: '#/components/schemas/RefundLinksForSearch'
amount:
type: integer
format: int64
description: The amount refunded to the user in pence.
example: 120
readOnly: true
created_date:
type: string
description: The date and time you created this refund. This value uses Coordinated Universal Time (UTC) and ISO 8601 format - `YYYY-MM-DDThh:mm:ss.SSSZ`.
example: '2017-01-10T16:52:07.855Z'
readOnly: true
payment_id:
type: string
description: The unique ID GOV.UK Pay automatically associated with this payment when you created it.
example: hu20sqlact5260q2nanm0q8u93
readOnly: true
refund_id:
type: string
description: The unique ID GOV.UK Pay automatically associated with this refund when you created it.
example: act4c33g40j3edfmi8jknab84x
readOnly: true
settlement_summary:
$ref: '#/components/schemas/RefundSettlementSummary'
status:
type: string
description: The [status of the refund](https://docs.payments.service.gov.uk/refunding_payments/#checking-the-status-of-a-refund-status).
enum:
- submitted
- success
- error
example: success
readOnly: true
EmbeddedRefunds:
type: object
properties:
refunds:
type: array
items:
$ref: '#/components/schemas/Refund'
ErrorResponse:
type: object
description: An error response
properties:
code:
type: string
description: A GOV.UK Pay API error code. You can [find out more about this code in our documentation](https://docs.payments.service.gov.uk/api_reference/#gov-uk-pay-api-error-codes).
example: P0900
description:
type: string
description: Additional details about the error
example: Too many requests
RefundSearchResults:
type: object
properties:
_links:
$ref: '#/components/schemas/SearchNavigationLinks'
count:
type: integer
format: int32
description: Number of refunds on the current page of search results.
example: 20
page:
type: integer
format: int32
description: The [page of results](payments.service.gov.uk/api_reference/#pagination) you’re viewing. To view other pages, make this request again using the `page` parameter.
example: 1
results:
type: array
description: Contains the refunds matching your search criteria.
items:
$ref: '#/components/schemas/RefundDetailForSearch'
total:
type: integer
format: int32
description: Number of refunds matching your search criteria.
example: 100
RefundDetailForSearch:
type: object
description: Contains the refunds matching your search criteria.
properties:
_links:
$ref: '#/components/schemas/RefundLinksForSearch'
amount:
type: integer
format: int64
description: The amount refunded to the user in pence.
example: 120
readOnly: true
created_date:
type: string
description: The date and time you created this refund. This value uses Coordinated Universal Time (UTC) and ISO 8601 format - `YYYY-MM-DDThh:mm:ss.SSSZ`.
example: '2017-01-10T16:52:07.855Z'
readOnly: true
payment_id:
type: string
description: The unique ID GOV.UK Pay automatically associated with this payment when you created it.
example: hu20sqlact5260q2nanm0q8u93
readOnly: true
refund_id:
type: string
description: The unique ID GOV.UK Pay automatically associated with this refund when you created it.
example: act4c33g40j3edfmi8jknab84x
readOnly: true
settlement_summary:
$ref: '#/components/schemas/RefundSettlementSummary'
status:
type: string
description: The [status of the refund](https://docs.payments.service.gov.uk/refunding_payments/#checking-the-status-of-a-refund-status).
enum:
- submitted
- success
- error
example: success
readOnly: true
RefundLinksForSearch:
type: object
description: links for search refunds resource
properties:
payment:
$ref: '#/components/schemas/Link'
self:
$ref: '#/components/schemas/Link'
RefundForSearchResult:
type: object
properties:
_embedded:
$ref: '#/components/schemas/EmbeddedRefunds'
_links:
$ref: '#/components/schemas/RefundLinksForSearch'
payment_id:
type: string
description: The unique ID GOV.UK Pay associated with this payment when you created it.
example: hu20sqlact5260q2nanm0q8u93
RequestError:
type: object
description: A Request Error response
properties:
code:
type: string
description: An [API error code](https://docs.payments.service.gov.uk/api_reference/#gov-uk-pay-api-error-codes)that explains why the payment failed.
`code` only appears if the payment failed.
example: P0102
description:
type: string
description: Additional details about the error.
example: 'Invalid attribute value: amount. Must be less than or equal to 10000000'
field:
type: string
description: The parameter in your request that's causing the error.
example: amount
header:
type: string
description: The header in your request that's causing the error.
example: Idempotency-Key
Link:
type: object
description: A link related to a payment
properties:
href:
type: string
description: A URL that lets you perform additional actions to this payment when combined with the associated `method`.
example: https://an.example.link/from/payment/platform
readOnly: true
method:
type: string
description: An API method that lets you perform additional actions to this paymentwhen combined with the associated `href`.
example: GET
readOnly: true
RefundSettlementSummary:
type: object
description: A structure representing information about a settlement for refunds
properties:
settled_date:
type: string
description: The date Stripe took the refund from a payout to your bank account. `settled_date` only appears if Stripe has taken the refund. This value uses Coordinated Universal Time (UTC) and ISO 8601 format - `YYYY-MM-DD`.
example: '2016-01-21'
readOnly: true
readOnly: true
SearchNavigationLinks:
type: object
description: Links to navigate through pages of your search.
properties:
first_page:
$ref: '#/components/schemas/Link'
last_page:
$ref: '#/components/schemas/Link'
next_page:
$ref: '#/components/schemas/Link'
prev_page:
$ref: '#/components/schemas/Link'
self:
$ref: '#/components/schemas/Link'
securitySchemes:
BearerAuth:
description: 'GOV.UK Pay authenticates API calls with [OAuth2 HTTP bearer tokens](http://tools.ietf.org/html/rfc6750). You need to use an `"Authorization"` HTTP header to provide your API key, with a `"Bearer"` prefix. For example: `Authorization: Bearer {YOUR_API_KEY_HERE}`'
scheme: bearer
type: http