Skip to content

Ryft Payment API (1.1.0)

Ryft provides a collection of APIs that you can use to accept and process payments + marketplace functionality (payouts). We have a testing environment called sandbox, which you can sign up for to test API calls without affecting live data.

Authentication

When you sign up for an account, you are given a secret and public API key pair. You authenticate with our API by providing the appropriate key in the request Authorization header. Never share your secret keys. Keep them guarded and secure.

Public API key

Public keys should only be used in JavaScript or native applications. This key is solely used to identify the partner making requests. Supply this key in the Authorization header.

Secret API key

Your secret key should always be supplied in the Authorization header. Make sure this key is stored securely on your backend and never surfaced client-side.

Rate Limiting

We use rate limiting on a per-user basis to protect our APIs against abuse. Our Sandbox environment is limited to 5 requests per second. Our production environment is limited to 50 requests per second.

We also allow a brief burst above this limit to accommodate a sudden increase in traffic.

If you exceed the above quota then the API will respond with a 429 status code and you will need to retry the API call (we recommend implementing a retry policy with an exponential back-off).

Download OpenAPI description
Languages
Servers
Sandbox environmment
https://sandbox-api.ryftpay.com/v1/
Production environment
https://api.ryftpay.com/v1/

Payments

Process payments with Ryft: authorizations, voids, captures, refunds etc.

Operations

Webhooks

Create and manage webhooks.

Operations

Events

Events are persisted throughout the lifecycle of a payment/action as you use our API. We use events to notify you when something important happens in your account (or a linked sub account). The most commonly used event occurs when a payment is captured, in which case we persist a PaymentSession.captured event and then (optionally) send it to any webhooks you have registered that are listening for that event type.

Note that if you are taking payments as a platform (for sub accounts), events are saved against the sub account accountId, but will be sent to any webhooks that your account has configured.

Operations

Accounts

Account registration for your sub accounts

Operations

Persons

The Persons API allows the creation and management of one or more persons for the purpose of verification for Business sub accounts. Recommended if you wish to implement verification programmatically for your sub accounts. This API cannot be accessed for Individual sub accounts.

Operations

Payout Methods

The Payout Methods API allows the creation and management of payout methods for use when receiving payouts, e.g. bank accounts. Recommended if you wish to implement payouts programmatically for your sub accounts.

Operations

Payouts

A payout represents the transfer of money from Ryft to a connected payout method (bank account), i.e. when we send money you're owed. Typically this is automated.

However, the payouts API allows you to explicitly create payouts for your sub accounts. Generally we'd recommend this if you are a marketplace who wants to control exactly when payouts should be sent out.

Operations

Transfers

A Transfer represents the movement of money between Ryft accounts.

This API allows platforms/marketplaces to transfer money from/to particular sub accounts, useful when:

  • you owe a sub account money from a particular transaction and want to explicitly send it after the fact
  • you want to recoup funds from a sub account, such as when dealing with disputes
  • you want to collect additional/new commission from the sub account
Operations

Balances

The balances API allows you to view your own or a particular sub accounts balances in real-time.

Typically useful when making use of manual payouts or our transfers API so you can determine the funds available prior to initiating requests.

Operations

Balance Transactions

Allows you to query for balance transactions. These transactions represent all actions within a Ryft account that impact account balances.

This API can only be used for reconciliation on transactions created from July 2025 onwards

Operations

Platform Fees

Query any platform fees that your account has taken (when taking payments on behalf of linked sub accounts)

Operations

Customers

The Customers API allows you to persist customer details across sessions. You should use this if you wish to support saving a customer's payment methods and thereby enabling them to reuse previously entered details for future payments.

Operations

Payment Methods

The Payment Methods API allows you to tokenize and store previously used payment methods.

Operations

Subscriptions

The subscriptions API allows you to automatically have Ryft schedule and charge recurring payments for a specific day and time. This API is not required to process recurring payments. After additional configuration, you can use our payment-sessions API to create and charge the recurring payments yourself.

Operations

Files

The Files API allows you to query for and upload files to Ryft. Some files may be generated internally by Ryft when requesting reports, or alternatively you may have uploaded evidence/verification documents

Operations

Apple Pay

Allows implementation of Apple Pay on the web via the API with Ryft's Apple Pay processing certificate.

Operations

Disputes

Disputes (also known as chargebacks) occur when a cardholder wants to query or challenge a transaction on their card statement. The Disputes API allows you to keep track of and manage disputes.

Operations

In-Person Products

The in-person products API allows you query for the products we offer for in-person payments. Useful to view and decide which SKUs you wish to order. Note that products themselves cannot be ordered. You must select one or more SKUs to purchase equipment.

Operations

In-Person SKUs

The in-person SKUs API allows you query for the SKUs we offer for in-person payments. SKUs are ultimately the items you order when purchasing equipment. Each SKU is scoped to a specific country and currency.

Operations

In-Person Orders

The in-person orders API allows you to request physical terminal orders to specific locations. Used in combination with our terminal API you can integrate in-person (card present) payments.

Operations

In-Person Locations

The in-person locations API allows you to setup and manage the locations in which terminals reside.

Operations

In-Person Terminals

The in-person terminals API allows you to setup and manage your physical terminal hardware for in-person (card present) payments.

Operations

Create a terminal to register a physical device

Request

Use this endpoint to setup and register a physical terminal and begin accepting payments.

Security
secretApiKeyAuth
Headers
Accountstring^ac_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a...

The linked accountId (use this when you want to create an in person terminal under a linked account)

Example: ac_3fe8398f-8cdb-43a3-9be2-806c4f84c327
Bodyapplication/json
serialNumberstringrequired

The serial number of the device. This will be sent out to you once the InPersonOrder has been shipped. Required to register the device.

Example: "25050808291100"
locationIdstringrequired

The unique Id of the location in which the terminal will reside

Example: "iploc_01FCTS1XMKH9FF43CAFA4CXT3P"
namestring or null[ 5 .. 40 ] characters

Your name for the terminal. This can be used for display purposes.

metadataobject or null

Your own custom key-value data for this object. These will be sent with any associated events on your webhooks. You can have a maximum of 10 pieces of metadata.

Keys must be between 1 and 30 characters in length.

Values must be between 1 and 250 characters in length.

Example: {"internalID":"1"}
curl -i -X POST \
  https://sandbox-api.ryftpay.com/v1/in-person/terminals \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "serialNumber": "25050808291100",
    "name": "Front of house terminal",
    "locationId": "iploc_01FCTS1XMKH9FF43CAFA4CXT3P",
    "metadata": {
      "custom": "12345"
    }
  }'

Responses

Resource successfully created

Bodyapplication/json
idstring

The unique Id of the terminal

Example: "tml_01FCTS1XMKH9FF43CAFA4CXT3P"
namestring

Your name for the terminal. This can be used for display purposes.

Example: "Front of house"
locationobject

The location where the terminal resides

deviceobject(TerminalDeviceDetail)
actionobject or null(TerminalAction)

The most recent action initiated on the terminal.

metadataobject

Your own custom key-value data for this object. These will be sent with any associated events on your webhooks. You can have a maximum of 10 pieces of metadata.

Keys must be between 1 and 30 characters in length.

Values must be between 1 and 250 characters in length.

Example: {"internalID":"1"}
createdTimestampinteger(int64)

The epoch timestamp (seconds) when the object was created

Example: 1470989538
lastUpdatedTimestampinteger(int64)

The epoch timestamp (seconds) when the object was last updated

Example: 1470989538
Response
application/json
{ "id": "tml_01FCTS1XMKH9FF43CAFA4CXT3P", "name": "Front of house", "location": { "id": "iploc_01FCTS1XMKH9FF43CAFA4CXT3P" }, "device": { "type": "PAX A920 Pro", "serialNumber": "25050808291100" }, "action": { "type": "Transaction", "status": "InProgress", "id": "tmlact_01K7HNYENCZF6A784V5T625108_01K7KHC9ESPB1VZ9APGF3R5X7W", "error": {}, "transaction": {}, "createdTimestamp": 1470989538, "completedTimestamp": 1470989538 }, "metadata": { "internalID": "1" }, "createdTimestamp": 1470989538, "lastUpdatedTimestamp": 1470989538 }

List terminals

Request

Fetches an paginated list of terminals

Security
secretApiKeyAuth
Query
ascendingboolean(boolean)

Control the order (newest or oldest) in which the items are returned. false will arrange the results with newest first, whereas true shows oldest first. The default is false.

Example: ascending=false
limitinteger(int32)

Control how many items are return in a given page The max limit we allow is 50. The default is 10.

Example: limit=10
startsAfterstring

A token to identify the item to start querying after. This is used to get the next page of results after a previous response returned a non-null paginationToken. The value of the paginationToken field from that response should be supplied here, to retrieve the next page of results for that timestamp range.

Example: startsAfter=tml_01FCTS1XMKH9FF43CAFA4CXT3P_1641912473
Headers
Accountstring^ac_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a...

The linked accountId (use this when you want to list in person terminals under a linked account)

Example: ac_3fe8398f-8cdb-43a3-9be2-806c4f84c327
curl -i -X GET \
  https://sandbox-api.ryftpay.com/v1/in-person/terminals \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

The resource was retrieved successfully

Bodyapplication/json
itemsArray of objects(Terminal)
paginationTokenstring

A token to use for getting the next page of results - send the same request with this value in the 'paginationToken' query parameter. This field is null when there are no further items to return

Example: "tml_01FCTS1XMKH9FF43CAFA4CXT3P_1641912473"
Response
application/json
{ "items": [ {} ], "paginationToken": "tml_01FCTS1XMKH9FF43CAFA4CXT3P_1641912473" }

Retrieve a terminal

Request

Fetches a terminal via its unique ID

Security
secretApiKeyAuth
Path
idstring^tml_[0-7][0-9A-HJKMNP-TV-Z]{25}required

the unique ID of the terminal

Example: tml_01FCTS1XMKH9FF43CAFA4CXT3P
Headers
Accountstring^ac_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a...

The linked accountId (use this when you want to get an in person terminal under a linked account)

Example: ac_3fe8398f-8cdb-43a3-9be2-806c4f84c327
curl -i -X GET \
  https://sandbox-api.ryftpay.com/v1/in-person/terminals/tml_01FCTS1XMKH9FF43CAFA4CXT3P \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

The resource was retrieved successfully

Bodyapplication/json
idstring

The unique Id of the terminal

Example: "tml_01FCTS1XMKH9FF43CAFA4CXT3P"
namestring

Your name for the terminal. This can be used for display purposes.

Example: "Front of house"
locationobject

The location where the terminal resides

deviceobject(TerminalDeviceDetail)
actionobject or null(TerminalAction)

The most recent action initiated on the terminal.

metadataobject

Your own custom key-value data for this object. These will be sent with any associated events on your webhooks. You can have a maximum of 10 pieces of metadata.

Keys must be between 1 and 30 characters in length.

Values must be between 1 and 250 characters in length.

Example: {"internalID":"1"}
createdTimestampinteger(int64)

The epoch timestamp (seconds) when the object was created

Example: 1470989538
lastUpdatedTimestampinteger(int64)

The epoch timestamp (seconds) when the object was last updated

Example: 1470989538
Response
application/json
{ "id": "tml_01FCTS1XMKH9FF43CAFA4CXT3P", "name": "Front of house", "location": { "id": "iploc_01FCTS1XMKH9FF43CAFA4CXT3P" }, "device": { "type": "PAX A920 Pro", "serialNumber": "25050808291100" }, "action": { "type": "Transaction", "status": "InProgress", "id": "tmlact_01K7HNYENCZF6A784V5T625108_01K7KHC9ESPB1VZ9APGF3R5X7W", "error": {}, "transaction": {}, "createdTimestamp": 1470989538, "completedTimestamp": 1470989538 }, "metadata": { "internalID": "1" }, "createdTimestamp": 1470989538, "lastUpdatedTimestamp": 1470989538 }

Update a terminal

Request

Updates a terminal via its unique ID

Security
secretApiKeyAuth
Path
idstring^tml_[0-7][0-9A-HJKMNP-TV-Z]{25}required

the unique ID of the terminal

Example: tml_01FCTS1XMKH9FF43CAFA4CXT3P
Headers
Accountstring^ac_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a...

The linked accountId (use this when you want to update an in person terminal under a linked account)

Example: ac_3fe8398f-8cdb-43a3-9be2-806c4f84c327
Bodyapplication/json
locationIdstring

The unique Id of the location in which the terminal will reside

Example: "iploc_01FCTS1XMKH9FF43CAFA4CXT3P"
namestring or null

Your name for the terminal. This can be used for display purposes.

metadataobject or null

Your own custom key-value data for this object. These will be sent with any associated events on your webhooks. You can have a maximum of 10 pieces of metadata.

Keys must be between 1 and 30 characters in length.

Values must be between 1 and 250 characters in length.

Example: {"internalID":"1"}
curl -i -X PATCH \
  https://sandbox-api.ryftpay.com/v1/in-person/terminals/tml_01FCTS1XMKH9FF43CAFA4CXT3P \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Front of house terminal",
    "locationId": "iploc_01FCTS1XMKH9FF43CAFA4CXT3P",
    "metadata": {
      "custom": "12345"
    }
  }'

Responses

The resource was retrieved successfully

Bodyapplication/json
idstring

The unique Id of the terminal

Example: "tml_01FCTS1XMKH9FF43CAFA4CXT3P"
namestring

Your name for the terminal. This can be used for display purposes.

Example: "Front of house"
locationobject

The location where the terminal resides

deviceobject(TerminalDeviceDetail)
actionobject or null(TerminalAction)

The most recent action initiated on the terminal.

metadataobject

Your own custom key-value data for this object. These will be sent with any associated events on your webhooks. You can have a maximum of 10 pieces of metadata.

Keys must be between 1 and 30 characters in length.

Values must be between 1 and 250 characters in length.

Example: {"internalID":"1"}
createdTimestampinteger(int64)

The epoch timestamp (seconds) when the object was created

Example: 1470989538
lastUpdatedTimestampinteger(int64)

The epoch timestamp (seconds) when the object was last updated

Example: 1470989538
Response
application/json
{ "id": "tml_01FCTS1XMKH9FF43CAFA4CXT3P", "name": "Front of house", "location": { "id": "iploc_01FCTS1XMKH9FF43CAFA4CXT3P" }, "device": { "type": "PAX A920 Pro", "serialNumber": "25050808291100" }, "action": { "type": "Transaction", "status": "InProgress", "id": "tmlact_01K7HNYENCZF6A784V5T625108_01K7KHC9ESPB1VZ9APGF3R5X7W", "error": {}, "transaction": {}, "createdTimestamp": 1470989538, "completedTimestamp": 1470989538 }, "metadata": { "internalID": "1" }, "createdTimestamp": 1470989538, "lastUpdatedTimestamp": 1470989538 }

Delete a terminal

Request

Deletes a terminal. Note that once deleted, the terminal will no longer be able to accept payments.

Security
secretApiKeyAuth
Path
idstring^tml_[0-7][0-9A-HJKMNP-TV-Z]{25}required

the unique ID of the terminal

Example: tml_01FCTS1XMKH9FF43CAFA4CXT3P
Headers
Accountstring^ac_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a...

The linked accountId (use this when you want to delete an in person terminal under a linked account)

Example: ac_3fe8398f-8cdb-43a3-9be2-806c4f84c327
curl -i -X DELETE \
  https://sandbox-api.ryftpay.com/v1/in-person/terminals/tml_01FCTS1XMKH9FF43CAFA4CXT3P \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

The resource was successfully deleted

Bodyapplication/json
idstring

The Id of the deleted terminal

Example: "tml_01FCTS1XMKH9FF43CAFA4CXT3P"
Response
application/json
{ "id": "tml_01FCTS1XMKH9FF43CAFA4CXT3P" }

Initiate a payment on a terminal

Request

Initiate a payment on a specific terminal. The cardholder can present their card to complete the purchase.

Security
secretApiKeyAuth
Path
idstring^tml_[0-7][0-9A-HJKMNP-TV-Z]{25}required

the unique ID of the terminal

Example: tml_01FCTS1XMKH9FF43CAFA4CXT3P
Headers
Accountstring^ac_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a...

The linked accountId (use this when you want to initiate the payment to an in person terminal under a linked account)

Example: ac_3fe8398f-8cdb-43a3-9be2-806c4f84c327
Bodyapplication/json
amountsobjectrequired
amounts.​requestedinteger(int32)

The total amount requested for the purchase

Example: 500
currencystringrequired

The ISO currency code

Example: "GBP"
paymentSessionobject(TerminalPaymentSessionRequest)

Use this field to set any relevant properties on the underlying PaymentSession that will be created as part of this request.

settingsobject or null(TerminalTransactionSettingsRequest)

Allows for various customisation of terminal transactions. If not provided, 'receiptPrintingSource' will default to 'Terminal'

curl -i -X POST \
  https://sandbox-api.ryftpay.com/v1/in-person/terminals/tml_01FCTS1XMKH9FF43CAFA4CXT3P/payment \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "amounts": {
      "requested": 1000
    },
    "currency": "GBP"
  }'

Responses

The payment was initiated on the terminal. Note that the result is asynchronous and will be available via webhook events.

Bodyapplication/json
idstring

The unique Id of the terminal

Example: "tml_01FCTS1XMKH9FF43CAFA4CXT3P"
namestring

Your name for the terminal. This can be used for display purposes.

Example: "Front of house"
locationobject

The location where the terminal resides

deviceobject(TerminalDeviceDetail)
actionobject or null(TerminalAction)

The most recent action initiated on the terminal.

metadataobject

Your own custom key-value data for this object. These will be sent with any associated events on your webhooks. You can have a maximum of 10 pieces of metadata.

Keys must be between 1 and 30 characters in length.

Values must be between 1 and 250 characters in length.

Example: {"internalID":"1"}
createdTimestampinteger(int64)

The epoch timestamp (seconds) when the object was created

Example: 1470989538
lastUpdatedTimestampinteger(int64)

The epoch timestamp (seconds) when the object was last updated

Example: 1470989538
Response
application/json
{ "id": "tml_01FCTS1XMKH9FF43CAFA4CXT3P", "name": "Front of house", "location": { "id": "iploc_01FCTS1XMKH9FF43CAFA4CXT3P" }, "device": { "type": "PAX A920 Pro", "serialNumber": "25050808291100" }, "action": { "type": "Transaction", "status": "InProgress", "id": "tmlact_01K7HNYENCZF6A784V5T625108_01K7KHC9ESPB1VZ9APGF3R5X7W", "error": {}, "transaction": {}, "createdTimestamp": 1470989538, "completedTimestamp": 1470989538 }, "metadata": { "internalID": "1" }, "createdTimestamp": 1470989538, "lastUpdatedTimestamp": 1470989538 }

Initiate a refund on a terminal

Request

Initiate a refund on a specific terminal. The cardholder can present their card to complete the refund.

Security
secretApiKeyAuth
Path
idstring^tml_[0-7][0-9A-HJKMNP-TV-Z]{25}required

the unique ID of the terminal

Example: tml_01FCTS1XMKH9FF43CAFA4CXT3P
Headers
Accountstring^ac_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a...

The linked accountId (use this when you want to initiate the refund to an in person terminal under a linked account)

Example: ac_3fe8398f-8cdb-43a3-9be2-806c4f84c327
Bodyapplication/json
paymentSessionobjectrequired
paymentSession.​idstring

The ID of the corresponding payment session to be refunded

Example: "ps_01FCTS1XMKH9FF43CAFA4CXT3P"
amountinteger or null(int32)

The amount to refund in minor digits. Can be omitted, in which case a full refund will be issued.

Example: 500
refundPlatformFeeboolean or null

A flag to indicate whether the platform fee should be refunded. If the payment amount is fully refunded, the platform fee will be too. If this is a partial refund then the platform fee will be refunded proportionally to the amount being refunded. By default this flag is false.

Example: false
settingsobject or null(TerminalTransactionSettingsRequest)

Allows for various customisation of terminal transactions. If not provided, 'receiptPrintingSource' will default to 'Terminal'

curl -i -X POST \
  https://sandbox-api.ryftpay.com/v1/in-person/terminals/tml_01FCTS1XMKH9FF43CAFA4CXT3P/refund \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "paymentSession": {
      "id": "ps_01J8HRF1FBEGYFFXNJMRZ704R6"
    }
  }'

Responses

The refund was initiated on the terminal. Note that the result is asynchronous and will be available via webhook events.

Bodyapplication/json
idstring

The unique Id of the terminal

Example: "tml_01FCTS1XMKH9FF43CAFA4CXT3P"
namestring

Your name for the terminal. This can be used for display purposes.

Example: "Front of house"
locationobject

The location where the terminal resides

deviceobject(TerminalDeviceDetail)
actionobject or null(TerminalAction)

The most recent action initiated on the terminal.

metadataobject

Your own custom key-value data for this object. These will be sent with any associated events on your webhooks. You can have a maximum of 10 pieces of metadata.

Keys must be between 1 and 30 characters in length.

Values must be between 1 and 250 characters in length.

Example: {"internalID":"1"}
createdTimestampinteger(int64)

The epoch timestamp (seconds) when the object was created

Example: 1470989538
lastUpdatedTimestampinteger(int64)

The epoch timestamp (seconds) when the object was last updated

Example: 1470989538
Response
application/json
{ "id": "tml_01FCTS1XMKH9FF43CAFA4CXT3P", "name": "Front of house", "location": { "id": "iploc_01FCTS1XMKH9FF43CAFA4CXT3P" }, "device": { "type": "PAX A920 Pro", "serialNumber": "25050808291100" }, "action": { "type": "Transaction", "status": "InProgress", "id": "tmlact_01K7HNYENCZF6A784V5T625108_01K7KHC9ESPB1VZ9APGF3R5X7W", "error": {}, "transaction": {}, "createdTimestamp": 1470989538, "completedTimestamp": 1470989538 }, "metadata": { "internalID": "1" }, "createdTimestamp": 1470989538, "lastUpdatedTimestamp": 1470989538 }

Cancel the current action on a terminal

Request

Cancel the action that has been initiated and is currently in-progress on a specific terminal.

Security
secretApiKeyAuth
Path
idstring^tml_[0-7][0-9A-HJKMNP-TV-Z]{25}required

the unique ID of the terminal

Example: tml_01FCTS1XMKH9FF43CAFA4CXT3P
Headers
Accountstring^ac_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a...

The linked accountId (use this when you want to cancel the current action on an in person terminal under a linked account)

Example: ac_3fe8398f-8cdb-43a3-9be2-806c4f84c327
curl -i -X POST \
  https://sandbox-api.ryftpay.com/v1/in-person/terminals/tml_01FCTS1XMKH9FF43CAFA4CXT3P/cancel-action \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

The action was successfully cancelled on the terminal. A new action can now be initiated on this terminal.

Bodyapplication/json
idstring

The unique Id of the terminal

Example: "tml_01FCTS1XMKH9FF43CAFA4CXT3P"
namestring

Your name for the terminal. This can be used for display purposes.

Example: "Front of house"
locationobject

The location where the terminal resides

deviceobject(TerminalDeviceDetail)
actionobject or null(TerminalAction)

The most recent action initiated on the terminal.

metadataobject

Your own custom key-value data for this object. These will be sent with any associated events on your webhooks. You can have a maximum of 10 pieces of metadata.

Keys must be between 1 and 30 characters in length.

Values must be between 1 and 250 characters in length.

Example: {"internalID":"1"}
createdTimestampinteger(int64)

The epoch timestamp (seconds) when the object was created

Example: 1470989538
lastUpdatedTimestampinteger(int64)

The epoch timestamp (seconds) when the object was last updated

Example: 1470989538
Response
application/json
{ "id": "tml_01FCTS1XMKH9FF43CAFA4CXT3P", "name": "Front of house", "location": { "id": "iploc_01FCTS1XMKH9FF43CAFA4CXT3P" }, "device": { "type": "PAX A920 Pro", "serialNumber": "25050808291100" }, "action": { "type": "Transaction", "status": "InProgress", "id": "tmlact_01K7HNYENCZF6A784V5T625108_01K7KHC9ESPB1VZ9APGF3R5X7W", "error": {}, "transaction": {}, "createdTimestamp": 1470989538, "completedTimestamp": 1470989538 }, "metadata": { "internalID": "1" }, "createdTimestamp": 1470989538, "lastUpdatedTimestamp": 1470989538 }

Confirm the result of receipt printing via POS for the current action

Request

Confirm the result of receipt printing via POS for the action that has been initiated and is currently waiting for a receipt to be printed on a specific terminal. This endpoint is required if the transaction's 'receiptPrintingSource' was set to 'PointOfSale'

Security
secretApiKeyAuth
Path
idstring^tml_[0-7][0-9A-HJKMNP-TV-Z]{25}required

the unique ID of the terminal

Example: tml_01FCTS1XMKH9FF43CAFA4CXT3P
Headers
Accountstring^ac_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a...

The linked accountId (use this when you want to cancel the current action on an in person terminal under a linked account)

Example: ac_3fe8398f-8cdb-43a3-9be2-806c4f84c327
Bodyapplication/json
customerCopyobject or null(TerminalConfirmReceiptResultRequest)
merchantCopyobject or null(TerminalConfirmReceiptResultRequest)
curl -i -X POST \
  https://sandbox-api.ryftpay.com/v1/in-person/terminals/tml_01FCTS1XMKH9FF43CAFA4CXT3P/confirm-receipt \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "customerCopy": {
      "status": "Succeeded"
    }
  }'

Responses

The result of receipt printing has been confirmed for the current action

Bodyapplication/json
idstring

The unique Id of the terminal

Example: "tml_01FCTS1XMKH9FF43CAFA4CXT3P"
namestring

Your name for the terminal. This can be used for display purposes.

Example: "Front of house"
locationobject

The location where the terminal resides

deviceobject(TerminalDeviceDetail)
actionobject or null(TerminalAction)

The most recent action initiated on the terminal.

metadataobject

Your own custom key-value data for this object. These will be sent with any associated events on your webhooks. You can have a maximum of 10 pieces of metadata.

Keys must be between 1 and 30 characters in length.

Values must be between 1 and 250 characters in length.

Example: {"internalID":"1"}
createdTimestampinteger(int64)

The epoch timestamp (seconds) when the object was created

Example: 1470989538
lastUpdatedTimestampinteger(int64)

The epoch timestamp (seconds) when the object was last updated

Example: 1470989538
Response
application/json
{ "id": "tml_01FCTS1XMKH9FF43CAFA4CXT3P", "name": "Front of house", "location": { "id": "iploc_01FCTS1XMKH9FF43CAFA4CXT3P" }, "device": { "type": "PAX A920 Pro", "serialNumber": "25050808291100" }, "action": { "type": "Transaction", "status": "InProgress", "id": "tmlact_01K7HNYENCZF6A784V5T625108_01K7KHC9ESPB1VZ9APGF3R5X7W", "error": {}, "transaction": {}, "createdTimestamp": 1470989538, "completedTimestamp": 1470989538 }, "metadata": { "internalID": "1" }, "createdTimestamp": 1470989538, "lastUpdatedTimestamp": 1470989538 }