Insforge Payment Webhooks API
Provider webhook ingestion routes
Provider webhook ingestion routes
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/insforge-payment-webhooks-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Insforge Payments Payment Webhooks API
version: 1.0.0
description: Provider-specific Stripe and Razorpay payment setup, runtime flows, catalog management, sync, and webhook projections
tags:
- name: Payment Webhooks
description: Provider webhook ingestion routes
paths:
/api/webhooks/stripe/{environment}:
post:
summary: Receive Stripe Webhook
description: Receive Stripe events for one environment. The request body must be the raw Stripe JSON body and must include the Stripe signature header.
tags:
- Payment Webhooks
security:
- stripeSignature: []
parameters:
- $ref: '#/components/parameters/EnvironmentPath'
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Webhook received
content:
application/json:
schema:
$ref: '#/components/schemas/StripeWebhookResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
operationId: postApiWebhooksStripeByEnvironment
x-operation-id-source: derived
/api/webhooks/razorpay/{environment}:
post:
summary: Receive Razorpay Webhook
description: Receive Razorpay events for one environment. The request body must be the raw Razorpay JSON body and must include the Razorpay signature header.
tags:
- Payment Webhooks
security:
- razorpaySignature: []
parameters:
- $ref: '#/components/parameters/EnvironmentPath'
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Webhook received
content:
application/json:
schema:
$ref: '#/components/schemas/RazorpayWebhookResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
operationId: postApiWebhooksRazorpayByEnvironment
x-operation-id-source: derived
components:
responses:
InternalError:
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
BadRequest:
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
parameters:
EnvironmentPath:
name: environment
in: path
required: true
schema:
$ref: '#/components/schemas/PaymentEnvironment'
description: Payment provider environment.
schemas:
StripeEnvironment:
$ref: '#/components/schemas/PaymentEnvironment'
ErrorResponse:
type: object
required:
- error
- message
- statusCode
properties:
error:
type: string
example: INVALID_INPUT
message:
type: string
example: 'environment: Invalid enum value'
statusCode:
type: integer
example: 400
nextActions:
type:
- string
- 'null'
RazorpayWebhookResponse:
type: object
required:
- received
- handled
properties:
received:
type: boolean
handled:
type: boolean
PaymentEnvironment:
type: string
enum:
- test
- live
StripeWebhookProcessingStatus:
type: string
enum:
- pending
- processed
- failed
- ignored
StripeWebhookEvent:
type: object
required:
- environment
- eventId
- eventType
- livemode
- accountId
- objectType
- objectId
- processingStatus
- attemptCount
- lastError
- receivedAt
- processedAt
- createdAt
- updatedAt
properties:
environment:
$ref: '#/components/schemas/StripeEnvironment'
eventId:
type: string
example: evt_123
eventType:
type: string
example: checkout.session.completed
livemode:
type: boolean
accountId:
type:
- string
- 'null'
example: acct_123
objectType:
type:
- string
- 'null'
example: checkout.session
objectId:
type:
- string
- 'null'
example: cs_test_123
processingStatus:
$ref: '#/components/schemas/StripeWebhookProcessingStatus'
attemptCount:
type: integer
lastError:
type:
- string
- 'null'
receivedAt:
type: string
format: date-time
processedAt:
type:
- string
- 'null'
format: date-time
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
StripeWebhookResponse:
type: object
required:
- received
- handled
properties:
received:
type: boolean
handled:
type: boolean
event:
$ref: '#/components/schemas/StripeWebhookEvent'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
apiKey:
type: apiKey
in: header
name: x-api-key
stripeSignature:
type: apiKey
in: header
name: stripe-signature
razorpaySignature:
type: apiKey
in: header
name: x-razorpay-signature