{
  "openapi": "3.0.1",
  "info": {
    "title": "Payments Integration Spec Pack",
    "description": "Turn structured merchant and acquirer integration details (MIDs/TIDs, MCC, schemes, currencies, 3DS/SCA, test/live endpoints, webhooks, settlement, contacts, timeline, sign-off) into a branded PDF spec with a completeness report. Secrets and card numbers are automatically stripped.",
    "version": "0.1",
    "x-build-id": "w3AOyM62ZMAA3NSCG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sterlingverify~integration-spec-pack/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sterlingverify-integration-spec-pack",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/sterlingverify~integration-spec-pack/runs": {
      "post": {
        "operationId": "runs-sync-sterlingverify-integration-spec-pack",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/sterlingverify~integration-spec-pack/run-sync": {
      "post": {
        "operationId": "run-sync-sterlingverify-integration-spec-pack",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "spec"
        ],
        "properties": {
          "spec": {
            "title": "Integration details",
            "type": "object",
            "description": "Sections: project{name,version}, merchant{legalName,tradingName,country,companyNumber,website}, acquirer{name,psp}, mids[], tids[], mcc, schemes[], paymentMethods[], currencies[], settlementCurrency, threeDS{version,challengePreference,scaExemptions[]}, endpoints{test,live}, webhooks{url,events[],authMethod}, settlement{schedule,bankAccountRef}, contacts[{role,name,email,phone}], timeline{kickoff,uat,goLive}, signOff[{item,owner,done}], notes. Use \"TBD\" for unknowns. NEVER include API keys, passwords or card numbers: they are detected and replaced with placeholders.",
            "default": {
              "project": {
                "name": "Example Shop card acceptance",
                "version": "0.1"
              },
              "merchant": {
                "legalName": "Example Shop Ltd",
                "tradingName": "Example Shop",
                "country": "GB",
                "companyNumber": "00000000",
                "website": "https://shop.example.com"
              },
              "acquirer": {
                "name": "Example Acquirer",
                "psp": "Example PSP"
              },
              "mids": [
                "MID-0001 (GBP ecom)"
              ],
              "tids": [],
              "mcc": "5999",
              "schemes": [
                "Visa",
                "Mastercard"
              ],
              "paymentMethods": [
                "Cards",
                "Apple Pay",
                "Google Pay"
              ],
              "currencies": [
                "GBP",
                "EUR"
              ],
              "settlementCurrency": "GBP",
              "threeDS": {
                "version": "2.2",
                "challengePreference": "no preference",
                "scaExemptions": [
                  "Low value",
                  "TRA"
                ]
              },
              "endpoints": {
                "test": "https://api.test.example-psp.com",
                "live": "TBD"
              },
              "webhooks": {
                "url": "https://shop.example.com/webhooks/psp",
                "events": [
                  "payment.authorised",
                  "payment.captured",
                  "refund.succeeded",
                  "chargeback.created"
                ],
                "authMethod": "HMAC signature header"
              },
              "settlement": {
                "schedule": "T+2 daily",
                "bankAccountRef": "Barclays ****1234"
              },
              "contacts": [
                {
                  "role": "Merchant tech lead",
                  "name": "Alex Example",
                  "email": "alex@example.com"
                },
                {
                  "role": "PSP integration manager",
                  "name": "Sam Example",
                  "email": "sam@example-psp.com"
                }
              ],
              "timeline": {
                "kickoff": "2026-11-02",
                "uat": "2026-11-20",
                "goLive": "2026-12-01"
              },
              "signOff": [
                {
                  "item": "Test transactions passed (auth, capture, refund)",
                  "owner": "Merchant",
                  "done": true
                },
                {
                  "item": "3DS challenge flow tested",
                  "owner": "Merchant",
                  "done": false
                },
                {
                  "item": "Webhook signature verification",
                  "owner": "Merchant",
                  "done": false
                },
                {
                  "item": "Go-live approval",
                  "owner": "PSP",
                  "done": false
                }
              ]
            }
          },
          "brandName": {
            "title": "Brand name (header)",
            "type": "string",
            "description": "Shown in the PDF header and footer.",
            "default": "SterlingVerify"
          },
          "brandColor": {
            "title": "Brand colour (hex)",
            "type": "string",
            "description": "Header and table colour.",
            "default": "#0B1F3A"
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}