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.
openapi: 3.2.0
info:
title: Insforge AI Admin Payment Webhooks API
version: 1.0.0
description: Model Gateway helper APIs for OpenRouter key provisioning, model discovery, and deprecated compatibility proxy routes
servers:
- url: https://api.insforge.dev
description: Base URL declared by the provider in apis.yml (roadmap#122).
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'
/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'
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'
schemas:
PaymentEnvironment:
type: string
enum:
- test
- live
RazorpayWebhookResponse:
type: object
required:
- received
- handled
properties:
received:
type: boolean
handled:
type: boolean
StripeWebhookResponse:
type: object
required:
- received
- handled
properties:
received:
type: boolean
handled:
type: boolean
event:
$ref: '#/components/schemas/StripeWebhookEvent'
StripeEnvironment:
$ref: '#/components/schemas/PaymentEnvironment'
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
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'
StripeWebhookProcessingStatus:
type: string
enum:
- pending
- processed
- failed
- ignored
parameters:
EnvironmentPath:
name: environment
in: path
required: true
schema:
$ref: '#/components/schemas/PaymentEnvironment'
description: Payment provider environment.
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT