{
  "openapi": "3.0.0",
  "info": {
    "title": "PayPal SDK API",
    "description": "NCP REST 2.0 PayPal SDK API",
    "version": "1.1.0"
  },
  "servers": [
    {
      "url": "https://api-sandbox.nuvei.com/paypal-sdk",
      "description": "sandbox"
    },
    {
      "url": "https://api.nuvei.com/paypal-sdk",
      "description": "prod"
    }
  ],
  "tags": [
    {
      "name": "Venmo"
    }
  ],
  "paths": {
    "/entities/{entity-id}/venmo/merchant-info": {
      "get": {
        "tags": [
          "Venmo"
        ],
        "summary": "Returns the Merchant Info to be used with Venmo SDK",
        "description": "Returns the Merchant Info to be used with Venmo SDK",
        "operationId": "getVenmoMerchantInfo",
        "parameters": [
          {
            "name": "entity-id",
            "in": "path",
            "description": "`entityId` provided by Nuvei.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "$ref": "#/components/schemas/EntityId"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VenmoMerchantInfoResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseApiResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseApiResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseApiResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseApiResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BaseApiResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "VenmoIntent": {
        "title": "VenmoIntent",
        "type": "string",
        "enum": [
          "authorize",
          "capture"
        ]
      },
      "VenmoMerchantId": {
        "title": "VenmoMerchantId",
        "type": "string"
      },
      "VenmoClientId": {
        "title": "VenmoClientId",
        "type": "string"
      },
      "MerchantInfo": {
        "required": [
          "clientId",
          "merchantId"
        ],
        "type": "object",
        "properties": {
          "merchantId": {
            "$ref": "#/components/schemas/VenmoMerchantId"
          },
          "clientId": {
            "$ref": "#/components/schemas/VenmoClientId"
          },
          "intent": {
            "$ref": "#/components/schemas/VenmoIntent"
          }
        }
      },
      "VenmoMerchantInfo": {
        "title": "VenmoMerchantInfoResponse",
        "type": "object",
        "properties": {
          "merchantInfo": {
            "$ref": "#/components/schemas/MerchantInfo"
          }
        }
      },
      "VenmoMerchantInfoResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VenmoMerchantInfo"
          },
          {
            "$ref": "#/components/schemas/BaseApiResponse"
          }
        ]
      },
      "EntityId": {
        "type": "string",
        "description": "Entity ID",
        "format": "uuid"
      },
      "BaseApiResponse": {
        "required": [
          "result"
        ],
        "type": "object",
        "properties": {
          "result": {
            "$ref": "#/components/schemas/BaseApiResultOutput"
          }
        }
      },
      "BaseApiResultOutput": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/BaseResultStatus"
          },
          "errors": {
            "$ref": "#/components/schemas/ResultError"
          }
        }
      },
      "BaseResultStatus": {
        "type": "string",
        "description": "Status of the request: success | error",
        "enum": [
          "success",
          "error"
        ]
      },
      "ResultError": {
        "required": [
          "code"
        ],
        "type": "object",
        "properties": {
          "code": {
            "maxLength": 11,
            "type": "string",
            "description": "If an error occurred on the request side, an error code is returned in this parameter.",
            "example": "7000.1000"
          },
          "reason": {
            "maxLength": 400,
            "type": "string",
            "description": "If an error occurred on the request side, then an error reason is returned in this parameter.",
            "example": "Internal Processing Error"
          },
          "reference": {
            "maxLength": 400,
            "type": "string",
            "description": "Reference value for troubleshooting",
            "example": "110.1260"
          }
        },
        "description": "If an error occurred on the request side, an error code is returned in this parameter."
      }
    },
    "responses": {
      "VenmoMerchantInfoResponse": {
        "description": "OK",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/VenmoMerchantInfoResponse"
            }
          }
        }
      },
      "VenmoEntityConfigurationResponse": {
        "description": "OK",
        "content": {}
      },
      "VenmoConfigurationResponse": {
        "description": "OK",
        "content": {}
      },
      "OkResponse": {
        "description": "OK",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseApiResponse"
            }
          }
        }
      },
      "CreatedResponse": {
        "description": "Created",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseApiResponse"
            }
          }
        }
      },
      "BadRequestResponse": {
        "description": "Bad Request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseApiResponse"
            }
          }
        }
      },
      "UnauthorizedResponse": {
        "description": "Unauthorized",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseApiResponse"
            }
          }
        }
      },
      "ForbiddenResponse": {
        "description": "Forbidden",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseApiResponse"
            }
          }
        }
      },
      "NotFoundResponse": {
        "description": "Not found",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseApiResponse"
            }
          }
        }
      },
      "InternalServerErrorResponse": {
        "description": "Internal Server Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseApiResponse"
            }
          }
        }
      }
    },
    "parameters": {
      "entity-id": {
        "name": "entity-id",
        "in": "path",
        "description": "`entityId` provided by Nuvei.",
        "required": true,
        "style": "simple",
        "explode": false,
        "schema": {
          "$ref": "#/components/schemas/EntityId"
        }
      }
    },
    "requestBodies": {
      "SetupEntityVenmoConfiguration": {
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "intent",
                "merchantId"
              ],
              "type": "object",
              "properties": {
                "merchantId": {
                  "$ref": "#/components/schemas/VenmoMerchantId"
                },
                "intent": {
                  "$ref": "#/components/schemas/VenmoIntent"
                }
              }
            }
          }
        },
        "required": true
      },
      "SetupVenmoConfiguration": {
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "clientId"
              ],
              "type": "object",
              "properties": {
                "clientId": {
                  "$ref": "#/components/schemas/VenmoClientId"
                }
              }
            }
          }
        },
        "required": true
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "apiKeyAuth": {
        "type": "apiKey",
        "name": "X-API-KEY",
        "in": "header"
      }
    }
  }
}