---
title: "Submit payment"
method: POST
path: "/v0/payments/{payment-id}/submissions"
tags: ["Payments"]
---

# Submit payment

`POST /v0/payments/{payment-id}/submissions`

## Request

- Base URL: `https://api.griffin.com`
- URL: `https://api.griffin.com/v0/payments/{payment-id}/submissions`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/griffin/apis/the-griffin-api/docs/v0/payments/:payment-id/submissions/post.ts> (a function with typed inputs; its response is checked against the schema)

Submits a previously created payment for execution.

You can submit payments over different payment schemes, check out our [payments guides](https://docs.griffin.com/docs/guides/payments-overview) to help decide which scheme best suites your use case.

## Path parameters

- `payment-id` string, required

## Request body

- object
  - `payment-scheme` 'fps' | 'book-transfer', required: Specifies the scheme over which a payment is executed.

## Response `200`

OK

- object
  - `submission-scheme-information` union, required
    - object
      - `end-to-end-identification` string, required: An identifier for a payment, assigned by the originator, passed along unchanged throughout the entire end-to-end chain. Not necessarily unique.
      - `scheme-status-code` string: A scheme-specific code describing the current status.
      - `scheme-status-code-description` string: A human-readable description of the scheme status code.
      - `payment-scheme` 'fps', required
    - object
      - `end-to-end-identification` string, required: An identifier for a payment, assigned by the originator, passed along unchanged throughout the entire end-to-end chain. Not necessarily unique.
      - `payment-scheme` 'book-transfer', required
  - `submission-status` 'scheduled' | 'failed' | 'processing' | 'returned' | 'delivered', required: Specifies the progress of the outbound payment.
  - `created-by-url` string: Link to the user.
  - `scheduled-at` string, date-time: ISO 8601 formatted date-time.
  - `created-at` string, date-time, required: ISO 8601 formatted date-time.
  - `submission-status-reason` string
  - `payment-url` string, required: Link to the payment resource.
  - `unique-scheme-identifier` string
  - `account-url` union, required: Link to the bank account resource.
    - string
    - string
  - `submission-url` string, required

## Other responses

- `400`: Bad Request
- `401`: Requires an API key to continue
- `404`: Not Found
- `410`: The payment has already been submitted (see [idempotency](https://docs.griffin.com/docs/guides/sending-payments#idempotency)), or it was rejected.
- `422`: An error occurred when trying to submit the payment. See [https://docs.griffin.com/docs/errors/payment](https://docs.griffin.com/docs/errors/payment) for details.
- `429`: Too Many Requests
- `500`: Internal Server Error

## Changes

- **2026-09-19** `3e69d9e24ef6`: 1 info
  - api operation id `post-payments-payment-id-submissions` was added
- **2026-08-27** `09aba6ddc84b`: 1 info
  - added the non-success response with the status `500`

[Operation history](https://skmtc.dev/griffin/apis/the-griffin-api/changes/v0/payments/:payment-id/submissions/post.md)

---

[API](https://skmtc.dev/griffin/apis/the-griffin-api.md) - [All operations](https://skmtc.dev/griffin/apis/the-griffin-api/llms.txt) - [OpenAPI document](https://skmtc.dev/griffin/apis/the-griffin-api/revisions/9e4c303c70a5?raw)
