Faxette

Send a fax to the US or Canada from a chat. The person checks it and pays per fax on Faxette.

我該用這個嗎

品質與安全性

A
說明品質
84%
結構描述完整度
82%
命名品質
96%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

發現項目(6)

  • LOWTool 'get_fax_review' has short description在 get_fax_review 中
  • LOWTool 'get_fax_review' description lacks action verb在 get_fax_review 中
  • LOWTool 'prepare_fax_upload' has short description在 prepare_fax_upload 中
  • LOWTool 'prepare_fax_upload' description lacks action verb在 prepare_fax_upload 中
  • LOWTool 'update_fax_review' has short description在 update_fax_review 中
  • LOWTool 'update_fax_review' description lacks action verb在 update_fax_review 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~14,349Token(工具定義)
~8.3 KB典型回應大小
顯著的注意力影響(128k 上下文的 11.21%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "faxette": {
      "url": "https://mcp.faxette.com/mcp"
    }
  }
}

遠端端點

https://mcp.faxette.com/mcpstreamable-http

它能做什麼

工具清單

工具(15)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟡open_fax_review(id)

Open the private upload and PDF review interface for an account fax before approving payment. Requires sign-in. The browser review link works when the client cannot show MCP Apps.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_fax_review(id, review_token)

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "review_token": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "id",
    "review_token"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡prepare_fax_upload(id, review_token, filename, byte_size, checksum, ...)

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "review_token": {
      "type": "string",
      "minLength": 1
    },
    "filename": {
      "type": "string",
      "minLength": 1
    },
    "byte_size": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "checksum": {
      "type": "string",
      "minLength": 1
    },
    "content_type": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "id",
    "review_token",
    "filename",
    "byte_size",
    "checksum",
    "content_type"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴update_fax_review(id, review_token, document_ids)

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "review_token": {
      "type": "string",
      "minLength": 1
    },
    "document_ids": {
      "minItems": 1,
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "id",
    "review_token",
    "document_ids"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_capabilities

Use this before preparing a fax to check this region's supported countries, languages, file limits and current retail and credit pricing rules. Prices are before tax; the exact total is confirmed after document processing and at checkout. It changes nothing.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "region": {
      "type": "string",
      "enum": [
        "us",
        "eu"
      ]
    },
    "connector_url": {
      "type": "string",
      "format": "uri"
    },
    "countries": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "languages": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "formats": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "text_formats": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "limits": {
      "type": "object",
      "properties": {
        "documents": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "bytes_per_document": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "text_characters": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "pages": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "cover_page": {
          "type": "object",
          "properties": {
            "sender": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "recipient": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "subject": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "message": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "sender",
            "recipient",
            "subject",
            "message"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "documents",
        "bytes_per_document",
        "pages",
        "cover_page"
      ],
      "additionalProperties": false
    },
    "pricing": {
      "type": "object",
      "properties": {
        "currency": {
          "type": "string"
        },
        "zones": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "object",
            "properties": {
              "countries": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "retail": {
                "type": "object",
                "properties": {
                  "base_cents": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "included_pages": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "overage_cents_per_page": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "base_cents",
                  "included_pages",
                  "overage_cents_per_page"
                ],
                "additionalProperties": false
              },
              "credits": {
                "type": "object",
                "properties": {
                  "base_cents": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "included_pages": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "overage_cents_per_page": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "base_cents",
                  "included_pages",
                  "overage_cents_per_page"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "countries",
              "retail",
              "credits"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "currency",
        "zones"
      ],
      "additionalProperties": false
    },
    "tax": {
      "type": "object",
      "properties": {
        "included": {
          "type": "boolean"
        },
        "applies": {
          "type": "boolean"
        },
        "finalized_at": {
          "type": "string"
        }
      },
      "required": [
        "included",
        "applies",
        "finalized_at"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "region",
    "connector_url",
    "countries",
    "languages",
    "formats",
    "limits",
    "pricing",
    "tax"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢lookup_fax_number(query)

Search Faxette's catalog by agency, form number or purpose. Returns only numbers supported by this connector, with the official source and verification date. An empty result means we have no current match, not that the office has no fax number. Show the source and have the person confirm the right office before creating a fax. It changes nothing.

輸入結構描述

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 100
    }
  },
  "required": [
    "query"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "destinations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "purpose": {
            "type": [
              "string",
              "null"
            ]
          },
          "signature": {
            "type": [
              "string",
              "null"
            ]
          },
          "numbers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "fax_number": {
                  "type": "string"
                },
                "label": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "regions": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "source_url": {
                  "type": "string",
                  "format": "uri"
                },
                "verified_at": {
                  "type": "string",
                  "format": "date",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
                }
              },
              "required": [
                "fax_number",
                "label",
                "regions",
                "source_url",
                "verified_at"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "name",
          "purpose",
          "signature",
          "numbers"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "destinations"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_fax_report(id, status_url)

Use this when the person asks for a delivery report or the transmitted document. Returns the destination, page count, delivery result, timestamps and attempts. A report URL is available after delivery, failure or cancellation. Document links are only returned for the signed-in owner of an account fax while its files are retained. Report and document links expire after five minutes. A delivered fax does not establish that the recipient read it. It changes nothing.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "description": "An account fax ID; requires sign-in. Pass this or status_url, not both.",
      "type": "string",
      "minLength": 1
    },
    "status_url": {
      "description": "The original status link, including its token for a guest fax.",
      "type": "string",
      "format": "uri"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "draft",
        "processing_documents",
        "documents_ready",
        "awaiting_payment",
        "scheduled",
        "sending",
        "delivered",
        "failed",
        "canceled"
      ]
    },
    "fax_number": {
      "type": "string"
    },
    "page_count": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "delivered_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "failed_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "canceled_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "document_sha256": {
      "type": [
        "string",
        "null"
      ]
    },
    "report_available": {
      "type": "boolean"
    },
    "document_available": {
      "type": "boolean"
    },
    "report_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ]
    },
    "document_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null"
        }
      ]
    },
    "attempts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "number": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "fax_number": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "pages_sent": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "started_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "failure_reason": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "number",
          "fax_number",
          "status",
          "pages_sent",
          "started_at",
          "updated_at",
          "failure_reason"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "id",
    "status",
    "fax_number",
    "page_count",
    "created_at",
    "delivered_at",
    "failed_at",
    "canceled_at",
    "document_sha256",
    "report_available",
    "document_available",
    "report_url",
    "document_url",
    "attempts"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🔴resend_fax(id, status_url, fax_number)

Use this only after the person asks to resend a failed fax and confirms its destination, including any corrected number. Check get_fax or get_fax_status first. Reuses the existing fax, payment hold and resend rules; it does not create a new paid fax. Faxette refuses expired resend windows and exhausted retries. If a call is interrupted, check the existing fax before calling again.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "description": "An account fax ID; requires sign-in. Pass this or status_url, not both.",
      "type": "string",
      "minLength": 1
    },
    "status_url": {
      "description": "The original fax status link, including its token for a guest fax.",
      "type": "string",
      "format": "uri"
    },
    "fax_number": {
      "description": "A corrected number explicitly confirmed by the person. Omit to use the existing destination.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The fax's id. Pass it to get_fax when the person is signed in."
    },
    "status": {
      "type": "string",
      "enum": [
        "draft",
        "processing_documents",
        "documents_ready",
        "awaiting_payment",
        "scheduled",
        "sending",
        "delivered",
        "failed",
        "canceled"
      ],
      "description": "draft: waiting for files, or for a file to be fixed. processing_documents: counting pages. documents_ready: ready to pay. awaiting_payment: the person is paying. scheduled: paid, about to dial. sending, delivered, failed. canceled: not paid in time."
    },
    "fax_number": {
      "type": "string"
    },
    "page_count": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "Null until the pages are counted."
    },
    "price": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "amount_cents": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "currency": {
              "type": "string",
              "description": "usd or eur."
            }
          },
          "required": [
            "amount_cents",
            "currency"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ],
      "description": "Before tax. Null until the pages are counted."
    },
    "payment": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "status": {
              "type": "string"
            },
            "method": {
              "type": "string",
              "enum": [
                "card",
                "credit"
              ]
            },
            "tax_cents": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                {
                  "type": "null"
                }
              ]
            },
            "amount_cents": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "currency": {
              "type": "string",
              "description": "usd or eur."
            }
          },
          "required": [
            "status",
            "method",
            "tax_cents",
            "amount_cents",
            "currency"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ],
      "description": "The person's payment once they start paying, by card or from their credit. amount_cents includes tax."
    },
    "checkout_available": {
      "type": "boolean",
      "description": "True when the person can pay on the status page."
    },
    "attempt": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "The current attempt to dial the fax number."
    },
    "max_attempts": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "next_attempt_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ],
      "description": "When the next attempt dials, if the line was busy or didn't answer."
    },
    "resend_by": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ],
      "description": "For a failed fax: until when the person can correct the fax number on the status page and send it again."
    },
    "document_errors": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string"
          },
          "position": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "reason",
          "position",
          "message"
        ],
        "additionalProperties": false
      },
      "description": "Files Faxette couldn't use. position is the file's number in the fax. The person fixes them on the status page."
    },
    "failure_reason": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "temporary",
            "wrong_number",
            "our_side"
          ]
        },
        {
          "type": "null"
        }
      ],
      "description": "For a failed fax: temporary (busy or no answer on every attempt), wrong_number (no fax machine answered), or our_side."
    },
    "language": {
      "type": [
        "string",
        "null"
      ]
    },
    "checkout_quote": {
      "type": [
        "string",
        "null"
      ]
    },
    "review_url": {
      "description": "A private review link, valid for 30 minutes. Give it to the person so they can inspect the prepared PDF before paying.",
      "type": "string",
      "format": "uri"
    },
    "status_url": {
      "type": "string",
      "format": "uri",
      "description": "The page where the person checks the fax and pays. Give it to them."
    }
  },
  "required": [
    "id",
    "status",
    "fax_number",
    "page_count",
    "price",
    "payment",
    "checkout_available",
    "attempt",
    "max_attempts",
    "next_attempt_at",
    "resend_by",
    "document_errors",
    "failure_reason",
    "status_url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟡create_document(fax_number, filename, byte_size, checksum, content_type)

Use this to add a file the person gave you to a fax: a PDF, or a photo saved as JPG, PNG, WEBP or HEIC, up to 20 MB. Call it once per file, before create_fax, in the order the files should be faxed. It returns document_id, upload_url and upload_headers: PUT the file's exact bytes to upload_url with those headers within 5 minutes, then pass document_id to create_fax within an hour. Nothing is faxed or charged. If you can't read the file's bytes, don't use this: call create_fax without document_ids, and the person adds the file on the status page.

輸入結構描述

{
  "type": "object",
  "properties": {
    "fax_number": {
      "type": "string",
      "description": "The fax number the file will be faxed to, in international format, like +14155552671. Numbers in the US, Canada, Mexico, Puerto Rico and Costa Rica only. Use the same number in create_fax."
    },
    "filename": {
      "type": "string",
      "minLength": 1,
      "description": "The file's name with its extension, like referral.pdf."
    },
    "byte_size": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The file's exact size in bytes."
    },
    "checksum": {
      "type": "string",
      "minLength": 1,
      "description": "The file's MD5 digest, base64-encoded, as printed by: openssl md5 -binary <file> | base64"
    },
    "content_type": {
      "type": "string",
      "enum": [
        "application/pdf",
        "image/jpeg",
        "image/png",
        "image/webp",
        "image/heic",
        "image/heif"
      ],
      "description": "The file's media type. It must match the file's contents."
    }
  },
  "required": [
    "fax_number",
    "filename",
    "byte_size",
    "checksum",
    "content_type"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "document_id": {
      "type": "string",
      "description": "Pass this to create_fax in document_ids."
    },
    "upload_url": {
      "type": "string",
      "format": "uri",
      "description": "PUT the file's exact bytes here within 5 minutes."
    },
    "upload_headers": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "string"
      },
      "description": "Send these headers, unchanged, with the PUT."
    }
  },
  "required": [
    "document_id",
    "upload_url",
    "upload_headers"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟡create_fax(idempotency_key, content, fax_number, email, cover_page, ...)

Use this once the person has confirmed the fax number, and given you their email if they aren't signed in. It creates the fax and returns status_url, the page where the person checks the fax number, documents and price, and pays to send it. Nothing is sent or charged until they pay there. Pass the document_ids from create_document. Without them, the fax waits on the status page for the person to add their files. Choose a private random idempotency_key for each intentional new fax. Reuse the exact same key and request after a timeout or request_in_progress; never change the key just to retry. The key is retained for 24 hours. To check a fax, use get_fax_status or get_fax.

輸入結構描述

{
  "type": "object",
  "properties": {
    "idempotency_key": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.-]{32,128}$",
      "description": "A private random UUID for this intentional new fax. Keep it unchanged for retries of the same request within 24 hours."
    },
    "content": {
      "description": "Text approved by the person, rendered as a PDF before the uploaded documents. Markdown supports headings, lists, tables and links as printed text. Images, raw HTML and remote assets are refused. Always show the generated proof before sending.",
      "type": "object",
      "properties": {
        "text": {
          "type": "string",
          "minLength": 1,
          "maxLength": 50000
        },
        "format": {
          "type": "string",
          "enum": [
            "text",
            "markdown"
          ]
        }
      },
      "required": [
        "text",
        "format"
      ]
    },
    "fax_number": {
      "type": "string",
      "description": "The fax number the fax goes to, in international format, like +14155552671. Numbers in the US, Canada, Mexico, Puerto Rico and Costa Rica only."
    },
    "email": {
      "description": "The person's email address, where Faxette sends the receipt and updates. Ask the person for it. Leave it out when they're signed in: their account's email is used.",
      "type": "string",
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "cover_page": {
      "description": "An optional cover page. Confirm its wording with the person first. It counts toward the total pages; omit if not requested.",
      "type": "object",
      "properties": {
        "sender": {
          "type": "string",
          "maxLength": 120
        },
        "recipient": {
          "type": "string",
          "maxLength": 120
        },
        "subject": {
          "type": "string",
          "maxLength": 200
        },
        "message": {
          "type": "string",
          "maxLength": 2000
        }
      }
    },
    "language": {
      "description": "The language the person chooses for the fax page, checkout and emails. Check get_capabilities for this region. Omit to use the account preference or regional default.",
      "type": "string",
      "minLength": 1
    },
    "document_ids": {
      "description": "The document_id of each file from create_document, in the order they're faxed. Up to 10. Leave it out to let the person add files on the status page.",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "idempotency_key",
    "fax_number"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The fax's id. Pass it to get_fax when the person is signed in."
    },
    "status": {
      "type": "string",
      "enum": [
        "draft",
        "processing_documents",
        "documents_ready",
        "awaiting_payment",
        "scheduled",
        "sending",
        "delivered",
        "failed",
        "canceled"
      ],
      "description": "draft: waiting for files, or for a file to be fixed. processing_documents: counting pages. documents_ready: ready to pay. awaiting_payment: the person is paying. scheduled: paid, about to dial. sending, delivered, failed. canceled: not paid in time."
    },
    "fax_number": {
      "type": "string"
    },
    "page_count": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "Null until the pages are counted."
    },
    "price": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "amount_cents": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "currency": {
              "type": "string",
              "description": "usd or eur."
            }
          },
          "required": [
            "amount_cents",
            "currency"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ],
      "description": "Before tax. Null until the pages are counted."
    },
    "payment": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "status": {
              "type": "string"
            },
            "method": {
              "type": "string",
              "enum": [
                "card",
                "credit"
              ]
            },
            "tax_cents": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                {
                  "type": "null"
                }
              ]
            },
            "amount_cents": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "currency": {
              "type": "string",
              "description": "usd or eur."
            }
          },
          "required": [
            "status",
            "method",
            "tax_cents",
            "amount_cents",
            "currency"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ],
      "description": "The person's payment once they start paying, by card or from their credit. amount_cents includes tax."
    },
    "checkout_available": {
      "type": "boolean",
      "description": "True when the person can pay on the status page."
    },
    "attempt": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "The current attempt to dial the fax number."
    },
    "max_attempts": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "next_attempt_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ],
      "description": "When the next attempt dials, if the line was busy or didn't answer."
    },
    "resend_by": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ],
      "description": "For a failed fax: until when the person can correct the fax number on the status page and send it again."
    },
    "document_errors": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string"
          },
          "position": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "reason",
          "position",
          "message"
        ],
        "additionalProperties": false
      },
      "description": "Files Faxette couldn't use. position is the file's number in the fax. The person fixes them on the status page."
    },
    "failure_reason": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "temporary",
            "wrong_number",
            "our_side"
          ]
        },
        {
          "type": "null"
        }
      ],
      "description": "For a failed fax: temporary (busy or no answer on every attempt), wrong_number (no fax machine answered), or our_side."
    },
    "language": {
      "type": [
        "string",
        "null"
      ]
    },
    "checkout_quote": {
      "type": [
        "string",
        "null"
      ]
    },
    "review_url": {
      "description": "A private review link, valid for 30 minutes. Give it to the person so they can inspect the prepared PDF before paying.",
      "type": "string",
      "format": "uri"
    },
    "status_url": {
      "type": "string",
      "format": "uri",
      "description": "The page where the person checks the fax and pays. Give it to them."
    }
  },
  "required": [
    "id",
    "status",
    "fax_number",
    "page_count",
    "price",
    "payment",
    "checkout_available",
    "attempt",
    "max_attempts",
    "next_attempt_at",
    "resend_by",
    "document_errors",
    "failure_reason",
    "status_url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_fax_status(status_url)

Use this when the person asks how their fax is doing, or to see whether it's ready to pay. It reads the fax from its status_url and returns its status, page count, price, payment and attempts. checkout_available is true once the person can pay on the status page. It changes nothing. While a fax is sending, call it at most once a minute.

輸入結構描述

{
  "type": "object",
  "properties": {
    "status_url": {
      "type": "string",
      "format": "uri",
      "description": "The status_url create_fax returned, like https://www.faxette.com/f/abc123?token=xyz."
    }
  },
  "required": [
    "status_url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The fax's id. Pass it to get_fax when the person is signed in."
    },
    "status": {
      "type": "string",
      "enum": [
        "draft",
        "processing_documents",
        "documents_ready",
        "awaiting_payment",
        "scheduled",
        "sending",
        "delivered",
        "failed",
        "canceled"
      ],
      "description": "draft: waiting for files, or for a file to be fixed. processing_documents: counting pages. documents_ready: ready to pay. awaiting_payment: the person is paying. scheduled: paid, about to dial. sending, delivered, failed. canceled: not paid in time."
    },
    "fax_number": {
      "type": "string"
    },
    "page_count": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "Null until the pages are counted."
    },
    "price": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "amount_cents": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "currency": {
              "type": "string",
              "description": "usd or eur."
            }
          },
          "required": [
            "amount_cents",
            "currency"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ],
      "description": "Before tax. Null until the pages are counted."
    },
    "payment": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "status": {
              "type": "string"
            },
            "method": {
              "type": "string",
              "enum": [
                "card",
                "credit"
              ]
            },
            "tax_cents": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                {
                  "type": "null"
                }
              ]
            },
            "amount_cents": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "currency": {
              "type": "string",
              "description": "usd or eur."
            }
          },
          "required": [
            "status",
            "method",
            "tax_cents",
            "amount_cents",
            "currency"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ],
      "description": "The person's payment once they start paying, by card or from their credit. amount_cents includes tax."
    },
    "checkout_available": {
      "type": "boolean",
      "description": "True when the person can pay on the status page."
    },
    "attempt": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "The current attempt to dial the fax number."
    },
    "max_attempts": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "next_attempt_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ],
      "description": "When the next attempt dials, if the line was busy or didn't answer."
    },
    "resend_by": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ],
      "description": "For a failed fax: until when the person can correct the fax number on the status page and send it again."
    },
    "document_errors": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string"
          },
          "position": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "reason",
          "position",
          "message"
        ],
        "additionalProperties": false
      },
      "description": "Files Faxette couldn't use. position is the file's number in the fax. The person fixes them on the status page."
    },
    "failure_reason": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "temporary",
            "wrong_number",
            "our_side"
          ]
        },
        {
          "type": "null"
        }
      ],
      "description": "For a failed fax: temporary (busy or no answer on every attempt), wrong_number (no fax machine answered), or our_side."
    },
    "language": {
      "type": [
        "string",
        "null"
      ]
    },
    "checkout_quote": {
      "type": [
        "string",
        "null"
      ]
    },
    "review_url": {
      "description": "A private review link, valid for 30 minutes. Give it to the person so they can inspect the prepared PDF before paying.",
      "type": "string",
      "format": "uri"
    },
    "status_url": {
      "type": "string",
      "format": "uri",
      "description": "The page where the person checks the fax and pays. Give it to them."
    }
  },
  "required": [
    "id",
    "status",
    "fax_number",
    "page_count",
    "price",
    "payment",
    "checkout_available",
    "attempt",
    "max_attempts",
    "next_attempt_at",
    "resend_by",
    "document_errors",
    "failure_reason",
    "status_url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_account

Use this to see which Faxette account the person signed in with: their name, email, credit, and whether it's the US or EU copy. Needs the person to sign in to Faxette; calling it while they aren't asks the app to sign them in. It changes nothing.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": [
        "string",
        "null"
      ]
    },
    "email": {
      "type": "string",
      "description": "Where Faxette sends receipts and updates for faxes started while signed in."
    },
    "region": {
      "type": "string",
      "enum": [
        "us",
        "eu"
      ],
      "description": "Which copy of Faxette the account is on."
    },
    "credit": {
      "type": "object",
      "properties": {
        "amount_cents": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "currency": {
          "type": "string",
          "description": "usd or eur."
        }
      },
      "required": [
        "amount_cents",
        "currency"
      ],
      "additionalProperties": false,
      "description": "The account's credit, which send_fax spends."
    }
  },
  "required": [
    "id",
    "name",
    "email",
    "region",
    "credit"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_faxes(status, page)

Use this when the person asks about faxes they've sent from their Faxette account, like what they sent last week or which faxes failed. Returns 25 at a time, newest first. Pass next_page back as page for the next 25. Filter with status, for example ["failed"] or ["delivered"]. Use get_fax for one fax's details. Needs the person to sign in to Faxette; calling it while they aren't asks the app to sign them in. It changes nothing.

輸入結構描述

{
  "type": "object",
  "properties": {
    "status": {
      "description": "Only faxes in these states.",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "draft",
          "processing_documents",
          "documents_ready",
          "awaiting_payment",
          "scheduled",
          "sending",
          "delivered",
          "failed",
          "canceled"
        ]
      }
    },
    "page": {
      "description": "The next_page from the previous call.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "faxes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Pass it to get_fax for the details."
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "processing_documents",
              "documents_ready",
              "awaiting_payment",
              "scheduled",
              "sending",
              "delivered",
              "failed",
              "canceled"
            ]
          },
          "fax_number": {
            "type": "string"
          },
          "page_count": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "The fax's page, where the person checks it and pays. Give it to them."
          }
        },
        "required": [
          "id",
          "status",
          "fax_number",
          "page_count",
          "created_at",
          "url"
        ],
        "additionalProperties": false
      }
    },
    "next_page": {
      "description": "Pass it as page for the next 25. Null on the last page.",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "faxes",
    "next_page"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_fax(id)

Use this for one fax from the person's Faxette account: its status, price, payment, documents' file names and history. Pass the id from get_faxes or create_fax. While a fax is sending, call it at most once a minute. Needs the person to sign in to Faxette; calling it while they aren't asks the app to sign them in. It changes nothing.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "The fax's id, from get_faxes or create_fax."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The fax's id. Pass it to get_fax when the person is signed in."
    },
    "status": {
      "type": "string",
      "enum": [
        "draft",
        "processing_documents",
        "documents_ready",
        "awaiting_payment",
        "scheduled",
        "sending",
        "delivered",
        "failed",
        "canceled"
      ],
      "description": "draft: waiting for files, or for a file to be fixed. processing_documents: counting pages. documents_ready: ready to pay. awaiting_payment: the person is paying. scheduled: paid, about to dial. sending, delivered, failed. canceled: not paid in time."
    },
    "fax_number": {
      "type": "string"
    },
    "page_count": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "Null until the pages are counted."
    },
    "price": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "amount_cents": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "currency": {
              "type": "string",
              "description": "usd or eur."
            }
          },
          "required": [
            "amount_cents",
            "currency"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ],
      "description": "Before tax. Null until the pages are counted."
    },
    "payment": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "status": {
              "type": "string"
            },
            "method": {
              "type": "string",
              "enum": [
                "card",
                "credit"
              ]
            },
            "tax_cents": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                {
                  "type": "null"
                }
              ]
            },
            "amount_cents": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "currency": {
              "type": "string",
              "description": "usd or eur."
            }
          },
          "required": [
            "status",
            "method",
            "tax_cents",
            "amount_cents",
            "currency"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ],
      "description": "The person's payment once they start paying, by card or from their credit. amount_cents includes tax."
    },
    "checkout_available": {
      "type": "boolean",
      "description": "True when the person can pay on the status page."
    },
    "attempt": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "The current attempt to dial the fax number."
    },
    "max_attempts": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "next_attempt_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ],
      "description": "When the next attempt dials, if the line was busy or didn't answer."
    },
    "resend_by": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ],
      "description": "For a failed fax: until when the person can correct the fax number on the status page and send it again."
    },
    "document_errors": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string"
          },
          "position": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "reason",
          "position",
          "message"
        ],
        "additionalProperties": false
      },
      "description": "Files Faxette couldn't use. position is the file's number in the fax. The person fixes them on the status page."
    },
    "failure_reason": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "temporary",
            "wrong_number",
            "our_side"
          ]
        },
        {
          "type": "null"
        }
      ],
      "description": "For a failed fax: temporary (busy or no answer on every attempt), wrong_number (no fax machine answered), or our_side."
    },
    "language": {
      "type": [
        "string",
        "null"
      ]
    },
    "checkout_quote": {
      "type": [
        "string",
        "null"
      ]
    },
    "review_url": {
      "description": "A private review link, valid for 30 minutes. Give it to the person so they can inspect the prepared PDF before paying.",
      "type": "string",
      "format": "uri"
    },
    "status_url": {
      "type": "string",
      "format": "uri",
      "description": "The page where the person checks the fax and pays. Give it to them."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "delivered_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "failed_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "documents": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The documents' file names, in the order they're faxed. Empty once deleted."
    },
    "credit_quote": {
      "type": [
        "string",
        "null"
      ]
    },
    "credit_price": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "amount_cents": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "currency": {
              "type": "string",
              "description": "usd or eur."
            }
          },
          "required": [
            "amount_cents",
            "currency"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ],
      "description": "What send_fax takes from the credit for this fax. Null once it can no longer be paid for."
    },
    "immediate_sending_consent_required": {
      "description": "When true, obtain agreement to immediate sending and acknowledgement that the withdrawal right ends on delivery before calling send_fax.",
      "type": "boolean"
    },
    "status_message": {
      "type": "string",
      "description": "Where the fax is, in the words the fax page uses."
    },
    "history": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "event": {
            "type": "string"
          }
        },
        "required": [
          "at",
          "event"
        ],
        "additionalProperties": false
      },
      "description": "What has happened to the fax, oldest first."
    }
  },
  "required": [
    "id",
    "status",
    "fax_number",
    "page_count",
    "price",
    "payment",
    "checkout_available",
    "attempt",
    "max_attempts",
    "next_attempt_at",
    "resend_by",
    "document_errors",
    "failure_reason",
    "status_url",
    "created_at",
    "delivered_at",
    "failed_at",
    "documents",
    "credit_price",
    "status_message",
    "history"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🔴send_fax(quote, id, amount_cents, immediate_sending_consent)

Use this to send a fax from the person's Faxette credit. Only for a fax in their account that's ready to pay for: call get_fax first. Show the prepared PDF with open_fax_review or its review_url. Have the person confirm the destination, documents and credit_price, explain that it comes from their credit, and call this only once they clearly agree. If get_account shows their credit doesn't cover it, give them the status page instead, where they can pay for this fax by card. For the EU connector, also explain that sending starts immediately and the person's right to cancel ends once the fax is delivered. Obtain their explicit agreement before setting immediate_sending_consent to true. Needs the person to sign in to Faxette; calling it while they aren't asks the app to sign them in.

輸入結構描述

{
  "type": "object",
  "properties": {
    "quote": {
      "type": "string",
      "minLength": 1,
      "description": "The credit_quote returned by get_fax for the exact destination, PDF and price the person reviewed and approved. After quote_changed or quote_required, show the new proof and obtain fresh approval."
    },
    "id": {
      "type": "string",
      "minLength": 1,
      "description": "The fax's id, from create_fax, get_faxes or get_fax."
    },
    "amount_cents": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "The credit_price amount_cents from get_fax that the person agreed to. If the fax's documents changed since, Faxette refuses with price_changed: call get_fax and confirm the new price."
    },
    "immediate_sending_consent": {
      "description": "Required as true for EU credit sends, only after the person explicitly agrees to immediate sending and acknowledges that their right to cancel ends on delivery. Never infer this from agreement to the price alone.",
      "type": "boolean"
    }
  },
  "required": [
    "quote",
    "id",
    "amount_cents"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The fax's id. Pass it to get_fax when the person is signed in."
    },
    "status": {
      "type": "string",
      "enum": [
        "draft",
        "processing_documents",
        "documents_ready",
        "awaiting_payment",
        "scheduled",
        "sending",
        "delivered",
        "failed",
        "canceled"
      ],
      "description": "draft: waiting for files, or for a file to be fixed. processing_documents: counting pages. documents_ready: ready to pay. awaiting_payment: the person is paying. scheduled: paid, about to dial. sending, delivered, failed. canceled: not paid in time."
    },
    "fax_number": {
      "type": "string"
    },
    "page_count": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "Null until the pages are counted."
    },
    "price": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "amount_cents": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "currency": {
              "type": "string",
              "description": "usd or eur."
            }
          },
          "required": [
            "amount_cents",
            "currency"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ],
      "description": "Before tax. Null until the pages are counted."
    },
    "payment": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "status": {
              "type": "string"
            },
            "method": {
              "type": "string",
              "enum": [
                "card",
                "credit"
              ]
            },
            "tax_cents": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                {
                  "type": "null"
                }
              ]
            },
            "amount_cents": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "currency": {
              "type": "string",
              "description": "usd or eur."
            }
          },
          "required": [
            "status",
            "method",
            "tax_cents",
            "amount_cents",
            "currency"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ],
      "description": "The person's payment once they start paying, by card or from their credit. amount_cents includes tax."
    },
    "checkout_available": {
      "type": "boolean",
      "description": "True when the person can pay on the status page."
    },
    "attempt": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ],
      "description": "The current attempt to dial the fax number."
    },
    "max_attempts": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "next_attempt_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ],
      "description": "When the next attempt dials, if the line was busy or didn't answer."
    },
    "resend_by": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ],
      "description": "For a failed fax: until when the person can correct the fax number on the status page and send it again."
    },
    "document_errors": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string"
          },
          "position": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "reason",
          "position",
          "message"
        ],
        "additionalProperties": false
      },
      "description": "Files Faxette couldn't use. position is the file's number in the fax. The person fixes them on the status page."
    },
    "failure_reason": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "temporary",
            "wrong_number",
            "our_side"
          ]
        },
        {
          "type": "null"
        }
      ],
      "description": "For a failed fax: temporary (busy or no answer on every attempt), wrong_number (no fax machine answered), or our_side."
    },
    "language": {
      "type": [
        "string",
        "null"
      ]
    },
    "checkout_quote": {
      "type": [
        "string",
        "null"
      ]
    },
    "review_url": {
      "description": "A private review link, valid for 30 minutes. Give it to the person so they can inspect the prepared PDF before paying.",
      "type": "string",
      "format": "uri"
    },
    "status_url": {
      "type": "string",
      "format": "uri",
      "description": "The page where the person checks the fax and pays. Give it to them."
    }
  },
  "required": [
    "id",
    "status",
    "fax_number",
    "page_count",
    "price",
    "payment",
    "checkout_available",
    "attempt",
    "max_attempts",
    "next_attempt_at",
    "resend_by",
    "document_errors",
    "failure_reason",
    "status_url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本15 個工具