repaya.io Documentation
AppSupport
  • Introduction
  • Pricing
  • Supported Countries
  • Docs
    • Getting Started
    • Guides
      • Invoice
      • Donation Form
      • Online Store
      • Subscription
      • Deposit Flow
    • Supported Coins
    • API Reference
  • Contacts
  • Legal
    • Privacy Policy
    • Terms of Use
Powered by GitBook
On this page

Was this helpful?

  1. Docs
  2. Guides

Online Store

PreviousDonation FormNextSubscription

Last updated 1 year ago

Was this helpful?

Online store integration enables you to sell multiple products at their corresponding prices using a single payment form. You can also track how much each customer paid for products or the total amount paid for all products in your store.

Payment Form

  • Your store address (for example, mystore.com)

  • Coins that you accept for payment

  • Your receiving blockchain address

  • Your return URL. This is the address on your website to redirect customers after they complete the payment. More information on it is below.

Backend Integration

To build the checkout flow on your site, you will need to make two things happen from your server:

  1. Create a payment session and redirect users by the URL you get from repaya API

  2. Handle returning users after they complete the payment

1. Create a payment session

To let your customers select the quantity of the product, just include it in the form on your site and then fill in the session request as follows:

{
  // ...
  product: {
    name: "Awesome product x5",
    id: "product_12345"
    data: "{ \"quantity\": \"5\" }"
  }
  // ...
}

When a customer completes the payment, you will get back this payment data for further verification on your side.

2. Verify payment

When the payment is completed, the customer will be redirected to your website on the return URL you provided during the payment form setup. Verify the payment status at this step by requesting it via the API. The sessionId for the request will be provided to you in the query parameter of the return URL.

Save the resulting payment in your DB if you want to enumerate all the customer payments later or use them another way.

Keep your payment session ID a secret. During the checkout flow, it should only be revealed to the customer who is performing the payment at the moment. It is also used to register and identify the payment.

See also

Set up an form and fill in the necessary details:

Perform a request to repaya's to create a payment session. Be sure to set IDs in the customer and product fields to the corresponding IDs in your own database to be able to verify them after the payment is complete. Use the checkoutUrl field from the response to redirect your user.

Check out the full Rest and section to find out more.

You can also find the complete working example for this flow on .

Integration
Rest API
Github
API Reference
Client libraries

Get customer's payment in the given session

get
Authorizations
Query parameters
sessionIdstringRequired

Payment session ID

Example: id_124124
Responses
200
A payment associated with a given session, null if missing
application/json
get
GET /api/public/1/payment HTTP/1.1
Host: repaya.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

A payment associated with a given session, null if missing

{
  "id": "pid_3251",
  "customer": {
    "id": "user_123141",
    "data": "text"
  },
  "product": {
    "id": "product_123141",
    "name": "Awesome product",
    "data": "text"
  },
  "sender": "0x0000000000000000000000000000000000000000",
  "receiver": "0x0000000000000000000000000000000000000000",
  "amount": "15.0",
  "paidAmount": "5.0",
  "status": "pending",
  "coin": {
    "code": "USD_MULTI_1",
    "name": "USD Stablecoins"
  }
}
  • Payment Form
  • Backend Integration
  • 1. Create a payment session
  • POSTCreate payment session
  • 2. Verify payment
  • GETGet customer's payment in the given session
  • See also

Create payment session

post

Create a payment session to initiate the checkout flow

Authorizations
Body
formLinkIdstringRequiredExample: jAY7k
clientIdstringOptionalExample: key_1432
Responses
200
Payment session created
application/json
post
POST /api/public/1/session HTTP/1.1
Host: repaya.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 194

{
  "formLinkId": "jAY7k",
  "customer": {
    "id": "user_123141",
    "data": "text"
  },
  "product": {
    "id": "product_123141",
    "name": "Awesome product",
    "data": "text"
  },
  "price": {
    "USD_MULTI_1": "15.0"
  },
  "clientId": "key_1432"
}
200

Payment session created

{
  "checkoutUrl": "https://repaya.io/checkout/id_124124",
  "id": "id_124124",
  "formLinkId": "jAY7k",
  "receiver": "0x0000000000000000000000000000000000000000",
  "customer": {
    "id": "user_123141"
  },
  "product": {
    "id": "product_123141",
    "name": "Awesome product"
  },
  "price": {
    "USD_MULTI_1": "15.0"
  },
  "clientId": "key_1432"
}