Skip to content

Latest commit

 

History

History
259 lines (200 loc) · 8.48 KB

File metadata and controls

259 lines (200 loc) · 8.48 KB

银行流水分析快速接入指南

接入银行流水智能分析引擎,最快1天完成对接。单份流水分析低至几毛钱。支持SaaS API和私有化本地部署两种方式,数据安全有保障。


接入流程

联系商务获取Token ──→ 阅读API文档 ──→ 调用上传接口 ──→ 轮询获取结果

第一步:获取 API Token

联系拼图配商务团队获取企业专属 API Token:

第二步:上传文件

将银行流水文件上传至您的文件服务器,获取可公网访问的 URL 地址。支持 PDF 电子流水和 Excel 电子流水(xls/xlsx/csv)。

第三步:调用上传接口

调用 enterpriseApi/fileUpload 接口提交银行流水文件进行识别与分析。

第四步:查询解析结果

使用上传接口返回的 resultId,调用 enterpriseApi/fileResult 接口获取流水解析和风控分析结果。

文件解析为异步操作,isSuccess0 时表示仍在解析中,建议间隔 3-5 秒轮询。


代码示例

Python

import requests
import time

BASE_URL = "https://api.ipipei.com"
TOKEN = "your_api_token"

HEADERS = {
    "Content-Type": "application/json; charset=UTF-8",
    "Authorization": f"Bearer {TOKEN}"
}


def upload_bank_statement(file_url, file_type="pdf", file_name=None):
    """上传银行流水文件进行识别与风控分析"""
    payload = {
        "requestCode": f"req_{int(time.time() * 1000)}",
        "analysisType": "流水",
        "fileType": file_type,
        "filePackage": file_url,
    }
    if file_name and file_type in ("pdf", "excel"):
        payload["fileName"] = file_name

    resp = requests.post(f"{BASE_URL}/enterpriseApi/fileUpload", json=payload, headers=HEADERS)
    result = resp.json()

    if result["code"] == "200":
        print(f"上传成功,resultId: {result['data']}")
        return result["data"]
    else:
        print(f"上传失败: {result['msg']}")
        return None


def get_parse_result(result_id, max_retries=20, interval=5):
    """轮询获取解析结果"""
    request_code = f"req_{int(time.time() * 1000)}"

    for i in range(max_retries):
        payload = {
            "requestCode": request_code,
            "resultId": result_id,
            "isPdfAddress": "1"
        }
        resp = requests.post(f"{BASE_URL}/enterpriseApi/fileResult", json=payload, headers=HEADERS)
        result = resp.json()

        if result["code"] != "200":
            print(f"查询失败: {result['msg']}")
            return None

        data = result["data"]
        status = data.get("isSuccess", "0")

        if status == "1":
            print("解析完成!")
            return data
        elif status == "2":
            print(f"解析失败: {data.get('errorMessage', '未知错误')}")
            return None
        else:
            print(f"解析中... ({i + 1}/{max_retries})")
            time.sleep(interval)

    print("超时:文件解析未完成")
    return None


if __name__ == "__main__":
    # 上传PDF银行流水
    result_id = upload_bank_statement(
        file_url="https://your-server.com/files/bank_statement.pdf",
        file_type="pdf",
        file_name="bank_statement.pdf"
    )

    if result_id:
        data = get_parse_result(result_id)
        if data:
            print(f"文件名: {data.get('fileName')}")
            print(f"页数: {data.get('pageCount')}")
            print(f"文件类型: {data.get('fileType')}")
            # 银行流水数据在 creditMessage 字段中
            statement_data = data.get("creditMessage", "")
            if statement_data:
                print("银行流水分析数据获取成功")

Java

import java.net.http.*;
import java.net.URI;

public class BankStatementClient {

    private static final String BASE_URL = "https://api.ipipei.com";
    private static final String TOKEN = "your_api_token";

    public static String uploadFile(String fileUrl, String fileType, String fileName) throws Exception {
        String json = String.format("""
            {
                "requestCode": "req_%d",
                "analysisType": "流水",
                "fileType": "%s",
                "fileName": "%s",
                "filePackage": "%s"
            }
            """, System.currentTimeMillis(), fileType, fileName, fileUrl);

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(BASE_URL + "/enterpriseApi/fileUpload"))
                .header("Content-Type", "application/json; charset=UTF-8")
                .header("Authorization", "Bearer " + TOKEN)
                .POST(HttpRequest.BodyPublishers.ofString(json))
                .build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println("Response: " + response.body());
        return response.body();
    }

    public static String getResult(String resultId) throws Exception {
        String json = String.format("""
            {
                "requestCode": "req_%d",
                "resultId": "%s",
                "isPdfAddress": "1"
            }
            """, System.currentTimeMillis(), resultId);

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(BASE_URL + "/enterpriseApi/fileResult"))
                .header("Content-Type", "application/json; charset=UTF-8")
                .header("Authorization", "Bearer " + TOKEN)
                .POST(HttpRequest.BodyPublishers.ofString(json))
                .build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        return response.body();
    }
}

cURL

# 1. 上传PDF银行流水
curl -X POST https://api.ipipei.com/enterpriseApi/fileUpload \
  -H "Content-Type: application/json; charset=UTF-8" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{
    "requestCode": "unique-request-id-001",
    "analysisType": "流水",
    "fileType": "pdf",
    "fileName": "bank_statement.pdf",
    "filePackage": "https://your-server.com/files/bank_statement.pdf"
  }'

# 2. 上传Excel银行流水
curl -X POST https://api.ipipei.com/enterpriseApi/fileUpload \
  -H "Content-Type: application/json; charset=UTF-8" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{
    "requestCode": "unique-request-id-002",
    "analysisType": "流水",
    "fileType": "excel",
    "fileName": "bank_statement.xlsx",
    "filePackage": "https://your-server.com/files/bank_statement.xlsx"
  }'

# 3. 查询解析结果
curl -X POST https://api.ipipei.com/enterpriseApi/fileResult \
  -H "Content-Type: application/json; charset=UTF-8" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{
    "requestCode": "unique-request-id-001",
    "resultId": "上传接口返回的resultId",
    "isPdfAddress": "1"
  }'

# 4. 查询企业使用额度
curl -X POST https://api.ipipei.com/enterpriseApi/fileFileCount \
  -H "Content-Type: application/json; charset=UTF-8" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{
    "pageNum": "1",
    "pageSize": "500"
  }'

注意事项

  1. 异步解析:文件上传后为异步处理,需轮询 fileResult 接口获取结果
  2. 轮询间隔:建议 3-5 秒轮询一次,避免频繁请求
  3. 文件大小:银行流水文件 ≤10M,支持 PDF 和 Excel(xls/xlsx/csv)格式
  4. 文件URLfilePackage 需传入可公网访问的文件URL地址
  5. 数据安全:建议使用 HTTPS 协议传输,文件URL建议设置有效期
  6. 数据字段:银行流水分析结果在 creditMessage 字段中获取

成本与计费

拼图配银行流水分析采用按量计费模式,单份流水分析成本低至几毛钱,大批量使用更优惠,中小机构也完全用得起。具体价格请联系商务团队。

私有化本地部署与数据安全

除 SaaS API 接入外,拼图配还支持 私有化本地部署,所有银行流水OCR识别和流水风控分析处理在客户内网完成,数据不出内网。系统已通过等保三级认证,所有数据传输采用TLS 1.3加密,处理过程中的临时数据即时销毁,满足银行级安全合规要求。如需私有化部署方案,请联系商务团队。

获取帮助