跳到正文
A AmunPay API Pix版本 3.38 · 更新于 页面

认证

您机器的凭证是 client_id 和 client_secret 这一对。用这两者换取 OAuth2 令牌(client_credentials),并在每次调用 /v2/ 时通过 Authorization: Bearer 发送该令牌。令牌有效期为 900 秒。

API 只接受来自您凭证中登记的服务器 IP 的调用。您可以在控制台生成 client_secret 并填写出口 IP,见控制台中的密钥与 IP。

令牌 #

POST /oauth/token

client_id 和 client_secret 通过 HTTP Basic 发送,也就是 curl -u 的做法:

curl -u "loja01:SEU_CLIENT_SECRET" -d "grant_type=client_credentials" -d "scope=cob.write cob.read pix.read ex.saldo.read ex.config.read" https://api.amunpay.com/oauth/token
POST /oauth/token
Authorization: Basic base64(client_id:client_secret)
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&scope=cob.write cob.read pix.read ex.saldo.read ex.config.read
→ 200
{
  "access_token": "eyJhbGciOiJFUzI1NiIsImtpZCI6IjAxSjEifQ...",
  "token_type": "Bearer",
  "expires_in": 900,
  "scope": "cob.write cob.read pix.read ex.saldo.read ex.config.read"
}
字段 类型 必填 说明
grant_type 字符串 是 固定为 client_credentials。
scope 字符串 否 以空格分隔的权限范围,最多 10 个,须在已授予的范围内。省略时,令牌包含所有已授予的权限范围。

除 Basic 之外,client_id 和 client_secret 也可以放在表单正文中。两种方式同时发送且取值不同时,返回 400 invalid_request。

令牌只对来自已登记 IP 的调用签发和生效:来自其他 IP 时,令牌请求和每次调用都返回 403 origem_nao_permitida。未登记任何 IP 时,任何调用都无法通过。

控制台中的密钥与 IP #

贵公司的管理员在控制台的 Integração(集成)菜单、Credenciais(凭证)标签页中,凭双因素验证码生成 client_secret。密钥只显示一次,与 client_id 并列,各带一个复制按钮,之后不再显示。丢失后请重新生成:旧密钥立即失效。已签发的令牌在过期前仍然有效,除非您标记了疑似泄露,此时这些令牌也会一并失效。

时机 结果
首次生成凭证 您至少填写一个出口 IP,这些 IP 立即生效。
重新生成 生成新密钥。权限范围和 IP 保持不变。
移除 IP 立即生效。
添加 IP 立即生效,并发送邮件通知贵公司的技术联系人和财务联系人。如果 AmunPay 为您的账户开启了 IP 等待期,则 24 小时后生效:页面会显示它开始生效的时间,生效前您可以撤销。

控制台接受公网 IP,网段最大为 /24(IPv4)或 /48(IPv6),最多 20 个 IP。对凭证的每项操作都会通过邮件通知贵公司的联系人,邮件中不含密钥。未登记技术联系人或财务联系人时,控制台既不能生成凭证,也不能添加 IP。

只有管理员可以生成凭证和修改 IP。其他用户可以查看 client_id 和 IP。如果 AmunPay 为您的账户开启了双因素等待期,刚启用双因素验证、刚被提升权限、刚被重新启用,或密码刚由他人重置的管理员,需要等待 24 小时才能生成。拥有独立凭证的子账户,其凭证由所属的主体公司生成。

如果页面提示该功能未对您的账户开放,请联系 AmunPay。AmunPay 也可以为您生成密钥并登记 IP,由 AmunPay 添加的新 IP 立即生效。

第一次调用 #

GET /v2/ex/config

GET /v2/ex/config
→ 200
{
  "conta": { "status": "ATIVA", "desde": "2026-09-18T09:20:23Z" },
  "capacidades": {
    "pix": true,
    "subcontas": true,
    "split": true,
    "baas": false
  },
  "recebedor": { "chave": "01J8Z3QK5W7R2N4M6P8T0V2X4Y" },
  "custodia": { "tipo": "PROPRIA", "custodiante": "Conta PI", "recusaAntesDoCredito": true },
  "depositoPorChave": { "modo": "RECUSAR" }
}
字段 类型 说明
conta.status 字符串 ATIVA 是唯一可以运营的状态。
capacidades 对象 该账户可以使用的功能。请先读取,不要自行假设。
recebedor.chave 字符串 您账户的标识符,填在收款的 chave 中。不要把它当作 Pix 密钥公开:请始终创建收款,通过 pixCopiaECola 收取款项。没有 txid 的 Pix 不会计入余额,除非 depositoPorChave.modo 为 ACEITAR。
custodia.tipo 字符串 PROPRIA:账户由本机构持有。PARCEIRA:在另一家支付机构的名义账户。
custodia.recusaAntesDoCredito 布尔值 true:被拒绝的 Pix 不会进入账户。false:它会进入账户,再通过退款返还给付款人。
depositoPorChave.modo 字符串 RECUSAR:没有收款的 Pix 会被拒绝或退回。ACEITAR:它会转为一笔收款并入账。

权限范围 #

权限范围 开放的功能
cob.read、cob.write 收款。
pix.read、pix.write 收到的 Pix 和退款。
ex.pix.send、ex.pix.send.read 提现。
ex.saldo.read、ex.extrato.read 余额、对账单、交易和汇总。
ex.webhook.read、ex.webhook.write、ex.eventos.read Webhook 和事件流。
ex.subcontas.read、ex.subcontas.write 子账户。
ex.limites.read、ex.limites.write、ex.bloqueios.read 限额和余额冻结。
ex.med.read 争议。
ex.inquilinos.read、ex.inquilinos.write 子账户的独立凭证。
ex.config.read GET /v2/ex/config。

令牌错误 #

POST /oauth/token 以 { "error", "error_description" } 格式响应。

状态码 error 触发条件
401 invalid_client 密钥错误、client_id 未知或凭证已停用(响应不会说明是哪一种),或未发送任何凭证。
400 invalid_request 缺少 grant_type、Basic 无法解码,或 Basic 与正文不一致。
400 unsupported_grant_type grant_type 不是 client_credentials。
400 invalid_scope 权限范围超出已授予的范围,或超过 10 个。
403 origem_nao_permitida 来源 IP 不在凭证当前生效的 IP 中。开启 IP 等待期时,通过控制台添加的 IP 要 24 小时后才生效。
429 invalid_client 同一 IP 连续五次发送错误的密钥。请等待 Retry-After;等待期间的尝试不会被校验。
429 limite_requisicoes 同一 IP 每秒超过 2 次请求(突发上限 20 次)。请等待 Retry-After。
413 corpo_grande_demais 正文超过 4 KiB。

调用错误 #

状态码 title 触发条件
401 acesso_negado 调用未带 Authorization: Bearer。
401 token_invalido 令牌无效或已过期。请重新获取。
401 token_revogado 令牌在过期前被吊销(密钥轮换、权限范围变更或停用)。请用当前密钥重新申请一次令牌;如果申请被拒绝,请联系技术支持。
403 origem_nao_permitida 来源 IP 不在凭证当前生效的 IP 中。重新获取令牌无法解决。开启 IP 等待期时,通过控制台添加的 IP 要 24 小时后才生效。
403 escopo_insuficiente 令牌没有该路由所需的权限范围。请申请包含该范围的令牌,或不带 scope 申请。如果它不在已授予的范围内,请联系技术支持。
403 merchant_nao_provisionado 该 client_id 尚未开通账户。
403 conta_bloqueada 账户状态不是 ATIVA。