NAV Navbar
shell
Topics
  • Introduction
  • Authentication
  • Pagination
  • Errors
  • Webhooks
  • Resources
  • Orders
  • Products
  • Feedbacks
  • Queries
  • Tickets
  • Coupons
  • Attachments
  • Notifications
  • User
  • Reports
  • Shoppy Pay
  • Introduction

    Welcome to the Shoppy API. You can use our API to access Shoppy API endpoints to build your own systems on top of our platform.

    You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.

    Authentication

    To authorize, use this code:

    curl "https://shoppy.gg/api/" \
        -H "Authorization m3GfjWHTfmfV5tW9bgq5qrGgJ1DLgPFgOx80aNykTC0oCaOHRr"
    

    Shoppy uses API keys via the Authorization header to allow access to the API. You can retrieve your Shoppy API Key at your settings page.

    Shoppy expects for the API key to be included in all API requests to the server in a header that looks like the following:

    Authorization: m3GfjWHTfmfV5tW9bgq5qrGgJ1DLgPFgOx80aNykTC0oCaOHRr

    Pagination

    An example of paginating orders:

    curl "https://shoppy.gg/api/v1/orders?page=10" \
        -H "Authorization: m3GfjWHTfmfV5tW9bgq5qrGgJ1DLgPFgOx80aNykTC0oCaOHRr"
    

    Shoppy offers the ability to paginate any list resources.

    The X-Total-Pages header returns the total number of pages of the resource.

    The X-Current-Page header returns the current page you are on.

    The X-Items-Per-Page header returns how many items are being returned per page.

    Query parameters

    Parameter Default Description
    page 1 Used for pagination

    Errors

    The Shoppy API uses the following error codes:

    Error Code Meaning
    400 Bad Request -- Invalid parameters
    401 Unauthorized -- Unable to authenticate
    404 Not Found -- The specified kitten could not be found.
    405 Method Not Allowed -- Invalid method
    406 Not Acceptable -- You requested a format that isn't json.
    429 Too Many Requests -- You have reached the rate limit
    500 Internal Server Error -- We had a problem with our server. Try again later.
    503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.

    Webhooks

    Webhooks are HTTP callback events that is sent to a specified Webhook URL for an order.

    All requests are sent as a POST request and handled asynchronously.

    The content sent in the webhook is a JSON object of the resource that the webhook is related to.

    Every webhook object contains a webhook_type parameter and a data parameter with the data.

    You can simulate webhooks using our webhook simulator.

    The full list of IP addresses that webhook notifications may come from is:

    45.77.206.113

    ## Signing/Validating

    Example of how to generate the signature with PHP and securely compare it.

     $signature = hash_hmac('sha512', $payload, 'secret');
     $is_valid = hash_equals($signature, $_SERVER['X-Shoppy-Signature']);
    

    To verify the authenticity of a webhook and its payload, we send a X-Shoppy-Signature header. The header contains a HMAC signature comprised of the JSON encoded request body and your webhook secret. Your webhook secret can be changed in the settings page.

    We recommend to not share your webhook secret key, and to not expose your webhook URL publicly.

    Orders

    Retrieve an order

    Returns a list of your orders.

    curl -X GET "https://shoppy.gg/api/v1/orders/{order?}" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    The above command returns JSON structured like this:

    {
        "status": false,
        "message": "Requested resource not found"
    }
    

    HTTP Request

    GET api/v1/orders/{order?}

    api/v1/orders/{order?}/replace

    curl -X POST "https://shoppy.gg/api/v1/orders/{order?}/replace" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    POST api/v1/orders/{order?}/replace

    Products

    Store a product

    This endpoint stores a new product.

    curl -X PUT "https://shoppy.gg/api/v1/products" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl" \
    
    

    HTTP Request

    PUT api/v1/products

    Parameters

    Parameter Type Status Description
    title string required Minimum: 3 Maximum: 128
    price numeric required Minimum: 0 Maximum: 10000
    unlisted boolean required
    description string optional Maximum: 10000
    type string required service, file, account or dynamic
    stock_warning numeric required Minimum: 0 Maximum: 10000
    email.enabled boolean required
    email.value string optional Maximum: 1000
    quantity.min numeric required Minimum: 1 Maximum: 1000000
    quantity.max numeric required Minimum: 1 Maximum: 1000000
    confirmations numeric optional Minimum: 0 Maximum: 64
    attachment_id string optional Valid attachment id
    custom_fields array optional
    webhook_urls array optional
    dynamic_url url optional
    gateways array optional
    accounts array optional
    currency string required Valid exchange_rate currency

    Retrieve a product

    Returns a list of your products.

    curl -X GET "https://shoppy.gg/api/v1/products/{product?}" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    The above command returns JSON structured like this:

    {
        "id": "b9f349e0-fc81-11e7-a29f-31f8de003fde",
        "attachment_id": null,
        "title": "Example Product",
        "description": "Example description",
        "unlisted": false,
        "type": "service",
        "price": 10,
        "currency": "EUR",
        "email": null,
        "stock_warning": 0,
        "quantity": null,
        "confirmations": 1,
        "custom_fields": [
            {
                "name": "uid",
                "type": "2",
                "required": false
            }
        ],
        "gateways": null,
        "webhook_urls": null,
        "position": null,
        "created_at": "2018-01-18 18:59:35",
        "updated_at": "2018-02-26 10:27:54",
        "seller": "laura",
        "stock": 9223372036854775807,
        "accounts": []
    }
    

    HTTP Request

    GET api/v1/products/{product?}

    Update a product

    This endpoint updates a product.

    curl -X POST "https://shoppy.gg/api/v1/products/{product}" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    POST api/v1/products/{product}

    Delete a product

    This endpoint deletes a product.

    curl -X DELETE "https://shoppy.gg/api/v1/products/{product}" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    DELETE api/v1/products/{product}

    Duplicate a product

    This endpoint duplicates a product.

    curl -X POST "https://shoppy.gg/api/v1/products/{product}/duplicate" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    POST api/v1/products/{product}/duplicate

    Upload a product image

    This endpoint updates the product's image.

    curl -X POST "https://shoppy.gg/api/v1/products/{product}/image" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl" \
    
    

    HTTP Request

    POST api/v1/products/{product}/image

    Parameters

    Parameter Type Status Description
    file string required Allowed mime types: jpeg, png or gif Maximum: 1000

    Delete a product image

    This endpoint deletes the product's image.

    curl -X POST "https://shoppy.gg/api/v1/products/{product}/deleteImage" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    POST api/v1/products/{product}/deleteImage

    Feedbacks

    Retrieve a feedback

    Returns a list of your feedbacks.

    curl -X GET "https://shoppy.gg/api/v1/feedbacks/{feedback?}" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    The above command returns JSON structured like this:

    {
        "id": "004db0e0-261c-11e8-aa86-55b1affdff42",
        "order_id": "10305ca0-26a5-11e8-a449-6706fd565ec5",
        "secret": "GNCCqh4QHHhZDL8o2EFBkfqyVm6uZKMr",
        "comment": "Very good product, fast replies",
        "stars": 5,
        "rating": 1,
        "response": "Thanks for the feedback",
        "created_at": "2018-03-12 16:37:14",
        "updated_at": "2018-03-12 16:37:14",
        "product": {
            "id": "7729b540-fd3e-11e7-9c7e-a15b58798da8",
            "title": "Another Product"
        }
    }
    

    HTTP Request

    GET api/v1/feedbacks/{feedback?}

    Update a feedback

    This endpoint updates your feedback.

    curl -X POST "https://shoppy.gg/api/v1/feedbacks/{feedback}" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    POST api/v1/feedbacks/{feedback}

    Queries

    Retrieve a query

    Returns a list of your queries.

    curl -X GET "https://shoppy.gg/api/v1/queries/{query?}" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    The above command returns JSON structured like this:

    {
        "id": "2b05e860-fd02-11e7-ad6a-05bd10e0b565",
        "status": 3,
        "subject": "Assist me",
        "email": "ui-test@shoppy.gg",
        "message": "I am unable to open the PDF you sent me. How can I open it?",
        "created_at": "2018-01-19 10:19:01",
        "updated_at": "2018-01-19 10:20:06",
        "replies": [],
        "agent": null
    }
    

    HTTP Request

    GET api/v1/queries/{query?}

    Store a new query

    This endpoint stores a new query.

    curl -X PUT "https://shoppy.gg/api/v1/query/{query}/reply" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    PUT api/v1/query/{query}/reply

    Update query

    This endpoint updates your query.

    curl -X POST "https://shoppy.gg/api/v1/query/{query}/{action}" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    POST api/v1/query/{query}/{action}

    Tickets

    Retrieve a ticket

    Returns a list of your tickets.

    curl -X GET "https://shoppy.gg/api/v1/tickets/{ticket?}" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    The above command returns JSON structured like this:

    {
        "id": "004db0e0-261c-11e8-ba86-55b1affdff42",
        "seller_id": 1,
        "solved": 0,
        "department": "feedback",
        "subject": "Suggestion for dashboard",
        "message": "Hello, please add a search function to all your tables",
        "last_reply": null,
        "created_at": null,
        "updated_at": null,
        "deleted_at": null,
        "replies": []
    }
    

    HTTP Request

    GET api/v1/tickets/{ticket?}

    Store a ticket

    This endpoint stores a new ticket.

    curl -X PUT "https://shoppy.gg/api/v1/tickets" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl" \
    
    

    HTTP Request

    PUT api/v1/tickets

    Parameters

    Parameter Type Status Description
    subject string required Minimum: 6 Maximum: 255
    department numeric required Minimum: 1 Maximum: 4
    message string required Minimum: 15 Maximum: 500

    Store a reply

    This endpoint stores a new reply.

    curl -X PUT "https://shoppy.gg/api/v1/tickets/{ticket}/reply" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    PUT api/v1/tickets/{ticket}/reply

    Toggle solved

    This endpoint toggles the tickets status.

    curl -X POST "https://shoppy.gg/api/v1/tickets/{ticket}/toggle" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    POST api/v1/tickets/{ticket}/toggle

    Coupons

    Retrieve a coupon

    Returns a list of your coupons.

    curl -X GET "https://shoppy.gg/api/v1/coupons/{coupon?}" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    The above command returns JSON structured like this:

    {
        "id": "2bdb2100-4a3a-11e8-9726-55ded5e23c7d",
        "seller_id": 1,
        "code": "SPRINGSALE",
        "value": 10,
        "type": "percentage",
        "products": null,
        "usages": null,
        "expire_date": null,
        "created_at": "2018-04-27 16:43:53",
        "updated_at": null,
        "deleted_at": null,
        "used": 0
    }
    

    HTTP Request

    GET api/v1/coupons/{coupon?}

    Store coupon

    This endpoint stores a new coupon.

    curl -X PUT "https://shoppy.gg/api/v1/coupons" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl" \
    
    

    HTTP Request

    PUT api/v1/coupons

    Parameters

    Parameter Type Status Description
    id string optional Valid coupon id
    code string required Maximum: 50
    usages string required
    value numeric required Minimum: 0 Maximum: 1000
    products string required

    Update coupon

    This endpoint updates a coupon.

    curl -X POST "https://shoppy.gg/api/v1/coupons/{coupon}" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    POST api/v1/coupons/{coupon}

    Delete coupon

    This endpoint deletes a coupon.

    curl -X DELETE "https://shoppy.gg/api/v1/coupons/{coupon}" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    DELETE api/v1/coupons/{coupon}

    Attachments

    Retrieve an attachment

    Returns a list of your attachments.

    curl -X GET "https://shoppy.gg/api/v1/attachments/{attachment?}" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    The above command returns JSON structured like this:

    {
        "id": "0cbcd8a0-23af-11e8-a843-3355bf72e51b",
        "seller_id": 1,
        "file_size": 31271,
        "file_mime_type": "image\/gif",
        "file_name": "GIFMaker.org_DHmWYP.gif",
        "path": "attachments\/tt9vlZwLR7AX7cj23aBqfPLn8byWyvawxvIYekQl.gif",
        "deleted_at": null,
        "created_at": "2018-03-09 15:32:17",
        "updated_at": "2018-03-09 15:32:17"
    }
    

    HTTP Request

    GET api/v1/attachments/{attachment?}

    Store

    Stores an attachment

    curl -X POST "https://shoppy.gg/api/v1/attachments" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl" \
    
    

    HTTP Request

    POST api/v1/attachments

    Parameters

    Parameter Type Status Description
    file file required Must be a file upload Allowed mime types: jpeg, png, gif, doc, docx, pdf, zip, rar, 7z or txt Maximum: 10000

    Download attachment

    This endpoint returns an URL (Amazon S3) where the attachment can be downloaded.

    curl -X POST "https://shoppy.gg/api/v1/attachments/{attachment}/download" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    POST api/v1/attachments/{attachment}/download

    Delete attachment

    This endpoint deletes an attachment.

    curl -X DELETE "https://shoppy.gg/api/v1/attachments/{attachment}" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    DELETE api/v1/attachments/{attachment}

    Notifications

    Retrieve a notification

    Returns a list of your notifications.

    curl -X GET "https://shoppy.gg/api/v1/notifications" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    The above command returns JSON structured like this:

    null
    

    HTTP Request

    GET api/v1/notifications

    Marks all notifications as read

    curl -X GET "https://shoppy.gg/api/v1/notifications/markAllAsRead" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    The above command returns JSON structured like this:

    {
        "status": true,
        "message": "Your resource has been updated",
        "resource": "All notification marked as read"
    }
    

    HTTP Request

    GET api/v1/notifications/markAllAsRead

    Mark as read

    This endpoint marks a notification as read.

    curl -X GET "https://shoppy.gg/api/v1/notifications/{notification}/markAsRead" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    The above command returns JSON structured like this:

    {
        "status": false,
        "message": "Requested resource not found"
    }
    

    HTTP Request

    GET api/v1/notifications/{notification}/markAsRead

    User

    General user information

    curl -X GET "https://shoppy.gg/api/v1/user" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    The above command returns JSON structured like this:

    {
        "status": true,
        "user": {
            "seller_id": 1,
            "username": "laura",
            "email": "seller@shoppy.gg",
            "avatar": "\/images\/default-avatar.png?id=c15ab81f93ec0175d31b",
            "api_key": "j9CgjADovAI0x6gsJCvLiJOOgiRB0kEPGCQm8sVflUAxRPSLmy",
            "space": null,
            "currency": "EUR",
            "dark_theme": false,
            "admin": true
        },
        "cashier": [
            {
                "name": "BTC",
                "image": "\/images\/gateways\/btc.png?id=57ecca9e2ecc886f8125",
                "title": "Bitcoin",
                "available": true,
                "checked": false
            },
            {
                "name": "ETH",
                "image": "\/images\/gateways\/eth.png?id=3b90d5bcb0d32403bda6",
                "title": "Ethereum",
                "available": true,
                "checked": false
            },
            {
                "name": "LTC",
                "image": "\/images\/gateways\/ltc.png?id=d28c4ebc3ca283033e74",
                "title": "Litecoin",
                "available": false,
                "checked": false
            },
            {
                "name": "PayPal",
                "image": "\/images\/gateways\/paypal.png?id=427e9867845acdfd4297",
                "title": "PayPal",
                "available": false,
                "checked": false
            }
        ],
        "unreadQueries": 0,
        "notifications": [
            {
                "id": "0048833c-7311-4517-b723-0d1e1b27a206",
                "type": "Shoppy\\Notifications\\InvoiceCreated",
                "notifiable_id": 1,
                "notifiable_type": "Shoppy\\Models\\Seller",
                "read_at": null,
                "created_at": "2018-02-19 14:41:42",
                "updated_at": "2018-02-19 14:41:42"
            }
        ],
        "currencies": [
            {
                "currency": "AUD"
            },
            {
                "currency": "BRL"
            },
            {
                "currency": "CAD"
            },
            {
                "currency": "CHF"
            },
            {
                "currency": "CNY"
            },
            {
                "currency": "EUR"
            },
            {
                "currency": "GBP"
            },
            {
                "currency": "SEK"
            },
            {
                "currency": "SGD"
            },
            {
                "currency": "USD"
            }
        ],
        "banned": false
    }
    

    HTTP Request

    GET api/v1/user

    Retrieve settings

    curl -X GET "https://shoppy.gg/api/v1/settings" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    The above command returns JSON structured like this:

    {
        "status": true,
        "user": {
            "username": "laura",
            "email": "seller@shoppy.gg"
        },
        "settings": {
            "useNightlyPayout": true,
            "receiveEmailOnSuccessfulOrder": true,
            "receiveEmailOnNewFeedback": true,
            "receiveEmailOnFulfilmentRequired": true,
            "receiveEmailOnNewQuery": true,
            "receiveEmailOnQueryReply": true,
            "currency": "EUR",
            "ethereumAddress": "0xf61C806a134D8D3fE97dD5ba50554627D2e73cd1",
            "bitcoinAddress": "1NcBMQwon4S9kWB56ViyMY7cvSQ6qGevaQ",
            "discordNotificationChannelId": "420193129405218816",
            "discordChannelConnected": true
        }
    }
    

    HTTP Request

    GET api/v1/settings

    Update settings

    curl -X POST "https://shoppy.gg/api/v1/settings" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    POST api/v1/settings

    Upload avatar

    curl -X POST "https://shoppy.gg/api/v1/settings/updateAvatar" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    POST api/v1/settings/updateAvatar

    Generate a new API Key

    curl -X POST "https://shoppy.gg/api/v1/settings/newAPIKey" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    POST api/v1/settings/newAPIKey

    Reports

    Queues a report

    curl -X PUT "https://shoppy.gg/api/v1/reports" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl" \
    
    

    HTTP Request

    PUT api/v1/reports

    Parameters

    Parameter Type Status Description
    month date required

    api/v1/reports/{report}

    curl -X DELETE "https://shoppy.gg/api/v1/reports/{report}" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    DELETE api/v1/reports/{report}

    Download report

    Returns a download link for report. The download link is temporary and available for 6 hours.

    curl -X POST "https://shoppy.gg/api/v1/reports/{report}" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    POST api/v1/reports/{report}

    Shoppy Pay

    Shoppy Pay provides several online payment methods to implement a real-time checkout experience for any e-commerce platform supporting a range of payment methods in one place.

    For each payment, a unique URL will be returned. The customer will have to be redirected to the URL in order to access the checkout page

    Create a Payment

    curl -X POST "https://shoppy.gg/api/v1/pay" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl" \
    
    

    HTTP Request

    POST api/v1/pay

    Parameters

    Parameter Type Status Description
    order.gateway string optional Valid ticker coin
    order.email email optional
    order.quantity integer optional
    order.fields array optional
    product.email.enabled boolean required
    product.email.value string optional Maximum: 1000

    api/v1/pay/{payId}

    curl -X DELETE "https://shoppy.gg/api/v1/pay/{payId}" \
    -H "Authorization: mbSpyYQc9CooUGn5C5FqIxidckdZ4ADsLQBFSiIySrs15aKFOl"
    

    HTTP Request

    DELETE api/v1/pay/{payId}