@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api GOV.UK Pay API
@base https://publicapi.payments.service.gov.uk
@version 1.0.3
@auth ApiKey Authorization in header
@endpoints 10
@toc payments(9), refunds(1)

@group payments
@endpoint GET /v1/payments
@optional {reference: any, email: any, state: any, card_brand: any, from_date: any, to_date: any, page: any, display_size: any, cardholder_name: any, first_digits_card_number: any, last_digits_card_number: any, from_settled_date: any, to_settled_date: any}
@returns(200)
@errors {401, 422, 429, 500}

@endpoint POST /v1/payments
@required {body: map}
@returns(201)
@errors {400, 401, 422, 429, 500}

@endpoint GET /v1/payments/{paymentId}
@required {paymentId: any}
@returns(200)
@errors {401, 404, 429, 500}

@endpoint POST /v1/payments/{paymentId}/cancel
@required {paymentId: any}
@returns(204)
@errors {400, 401, 404, 409, 429, 500}

@endpoint POST /v1/payments/{paymentId}/capture
@required {paymentId: any}
@returns(204)
@errors {400, 401, 404, 409, 429, 500}

@endpoint GET /v1/payments/{paymentId}/events
@required {paymentId: any}
@returns(200)
@errors {401, 404, 429, 500}

@endpoint GET /v1/payments/{paymentId}/refunds
@required {paymentId: any}
@returns(200)
@errors {401, 404, 429, 500}

@endpoint POST /v1/payments/{paymentId}/refunds
@required {paymentId: any, body: map}
@returns(200)
@returns(202)
@errors {401, 404, 412, 429, 500}

@endpoint GET /v1/payments/{paymentId}/refunds/{refundId}
@required {paymentId: any, refundId: any}
@returns(200)
@errors {401, 404, 429, 500}

@endgroup

@group refunds
@endpoint GET /v1/refunds
@optional {from_date: any, to_date: any, from_settled_date: any, to_settled_date: any, page: any, display_size: any}
@returns(200)
@errors {401, 422, 500}

@endgroup

@end
