Meta Pay API 사용

Meta Pay의 결제를 처리할 때는 Meta Pay API에서 Webhooks를 호출하여 Meta에 결제 거래 활동(예: 승인, 환불)에 대해 알려야 합니다. 결제 거래 활동은 고객 Facebook 계정의 주문 및 결제 페이지에 표시됩니다.

Meta API를 사용하는 방법에 대한 자세한 내용은 그래프 API 개요를 참조하세요. 아래에서 설명하는 API는 표준 그래프 API 호스트 URL(https://graph.facebook.com)에 상대적입니다. 자세한 일반 정보는 Meta Pay 통합 개요를 참조하세요.

온보딩

Meta Pay API를 사용하기 전에 다음 단계를 완료해야 합니다.

Meta Pay API 호출

일반 온보딩 단계의 일환으로 Meta for Developers 포털에서 새 앱을 만듭니다. 앱을 만들면 앱 ID앱 시크릿 코드를 얻습니다.

Meta Pay API로 호출을 보낼 때마다 앱 ID 및 앱 시크릿 코드에서 얻은 앱 액세스 토큰이 필요합니다. access_token 쿼리 매개변수가 아니라 Authorization 헤더를 사용하여 앱 액세스 토큰을 보냅니다. Meta Pay API는 사용자 토큰이 포함된 호출을 거부합니다.

예를 들어 다음과 같은 코드를 사용합니다.

Authorization: OAuth <APP_ACCESS_TOKEN>

서명

Meta Pay API로 HTTP 요청을 보낼 때마다 FBPAY-SIGNATURE 요청 헤더를 포함해야 합니다. 이 헤더의 값은 ES256 알고리즘, 콤팩트 직렬화, 분리된 페이로드(https://tools.ietf.org/html/rfc7515#appendix-F 참조)를 포함한 JWS(JSON Web Signature) 개체입니다. 페이로드 값은 HTTP POST 요청 본문입니다. JWS 서명 키는 파트너의 신뢰할 수 있는 루트와 연결되는 인증서를 포함해야 하는 x5c 헤더로 식별되어야 합니다. 파트너의 루트 인증서는 온보딩 과정에서 Meta와 공유됩니다(Meta Pay API 서명 인증서로 칭함).

서명이 포함된 요청의 예시

curl -i -X POST \
  -H "Content-Type: application/json" \
  -H "FBPAY_SIGNATURE: eyJhbGciOiJFUzI1NiIsIng1YyI6WyJNSUlCaERDQ0FTcWdBd0lCQWdJQkFUQUtCZ2dxaGtqT1BRUURBakFoTVI4d0hRWURWUVFEREJad1lYSjBibVZ5SUhOcFoyNWhkSFZ5WlNCalpYSjBNQjRYRFRJd01EY3hNekl5TWpVek1Gb1hEVEkwTURNeE1USXlNalV6TUZvd0lURWZNQjBHQTFVRUF3d1djR0Z5ZEc1bGNpQnphV2R1WVhSMWNtVWdZMlZ5ZERCWk1CTUdCeXFHU000OUFnRUdDQ3FHU000OUF3RUhBMElBQkFuRngwR1NKMklPZGZpcFdiMGMwZytBVThlbDh6QnRVS0kxdWRzT2kzN2thd1JRSFkzV29YaWRvRThIOHM1cVIySmo2ZkFKWVhOTURXY0NiditWMEJ1alV6QlJNQjBHQTFVZERnUVdCQlR4NlBGRkhjd2FUZnY5cVdzZUJcL1NjMWFPbVZ6QWZCZ05WSFNNRUdEQVdnQlR4NlBGRkhjd2FUZnY5cVdzZUJcL1NjMWFPbVZ6QVBCZ05WSFJNQkFmOEVCVEFEQVFIXC9NQW9HQ0NxR1NNNDlCQU1DQTBnQU1FVUNJUUNBRE9zZ0pZanRXVm9xNUZOSjc3U2JDeWtON1ZldUlKR2pXb3NBVUFNd1ZRSWdUTlVcL2ttc1wvN0cxVUx5Z01DRWVXemNiYTNrMVo4NEE4RmNlMXQzYUNGbGc9Il19..ZnT7ZR3EqsPYMQt3WdgUZYScBiyK9RI77zMaUKr-tkFRBHgBJQVTOORwM2fFh0QQCTLwOp1TiAzt_q9ofvw6JQ" "https://graph.facebook.com/1001200005002/notify_authorizations" \
  -d '{"notification":{"partner_merchant_id":"123e4567-e89b-12d3-a456-426614174000","container_id":"cGF5bWVudF9jb250YWluZAXI6MTIzNDU2NzhfX01FUkNIQU5UX1RFU1RfRTJFX19QU1BfVEVTVF8x","event_time":1582230020020,"type":"notify_authorizations"},"resource":{"partner_auth_id":"1234567890","auth_amount":{"currency":"USD","value":29508},"status":"SUCCEEDED","created_time":1582230019010,"metadata":[]},"idempotence_token":"ddbdf2cf-d339-4b0b-a27e-4731d8d37c9d"}'

위의 요청은 다음과 같은 데이터를 인코딩합니다.

{
  "notification": {
    "partner_merchant_id": "123e4567-e89b-12d3-a456-426614174000",
    "container_id": "cGF5bWVudF9jb250YWluZAXI6MTIzNDU2NzhfX01FUkNIQU5UX1RFU1RfRTJFX19QU1BfVEVTVF8x",
    "event_time": 1582230020020,
    "type": "notify_authorizations"
  },
  "resource": {
    "partner_auth_id": "1234567890",
    "auth_amount": {
      "currency": "USD",
      "value": 29508
    },
    "status": "SUCCEEDED",
    "created_time": 1582230019010,
    "metadata": []
  },
  "idempotence_token": "ddbdf2cf-d339-4b0b-a27e-4731d8d37c9d"
}

위의 요청에서 얻은 서명은 다음과 같으며, 명확성을 위해 Base64 및 JSON으로 디코딩했습니다.

base64url(
 json({
   "x5c": [
     "MIIBhDCCASqgAwIBAgIBATAKBggqhkjOPQQDAjAhMR8wHQYDVQQDDBZwYXJ0bmVyIHNpZ25hdHVyZSBjZXJ0MB4XDTIwMDcxMzIyMjUzMFoXDTI0MDMxMTIyMjUzMFowITEfMB0GA1UEAwwWcGFydG5lciBzaWduYXR1cmUgY2VydDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABAnFx0GSJ2IOdfipWb0c0g+AU8el8zBtUKI1udsOi37kawRQHY3WoXidoE8H8s5qR2Jj6fAJYXNMDWcCbv+V0BujUzBRMB0GA1UdDgQWBBTx6PFFHcwaTfv9qWseB/Sc1aOmVzAfBgNVHSMEGDAWgBTx6PFFHcwaTfv9qWseB/Sc1aOmVzAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMCA0gAMEUCIQCADOsgJYjtWVoq5FNJ77SbCykN7VeuIJGjWosAUAMwVQIgTNU/kms/7G1ULygMCEeWzcba3k1Z84A8Fce1t3aCFlg="
   ],
   "alg": "ES256"
 })
) + // Protected Header
 "." +
 "" + // Payload is detached
 "." +
 "ZnT7ZR3EqsPYMQt3WdgUZYScBiyK9RI77zMaUKr-tkFRBHgBJQVTOORwM2fFh0QQCTLwOp1TiAzt_q9ofvw6JQ" // Signature

멱등성

idempotence_token 필드는 네트워크 장애가 발생하거나 시간이 초과된 이후에 요청을 다시 시도할 때 요청의 중복 실행을 방지하는 데 사용합니다. 멱등 토큰은 클라이언트에서 생성한 고유 값이며, 클라이언트가 이 토큰의 생성 방법을 결정합니다. 예를 들어 V4 UUID를 사용하여 멱등 토큰을 생성할 수 있습니다.

요청이 성공적으로 완료되거나 API로 보낸 호출에서 유효한 값이 반환되면 응답 데이터가 멱등 토큰과 함께 저장됩니다. 이전에 사용한 멱등 토큰으로 성공한 요청을 다시 시도할 경우 코드를 다시 실행하지 않고 앞서 저장한 응답을 반환합니다.

요청에서 오류가 발생하면 결과가 저장되지 않습니다. 요청을 다시 시도하고 동일한 멱등 토큰을 사용할 수 있습니다.

동일한 멱등 토큰으로 동시에 요청을 2개 보낼 경우 하나만 응답 데이터를 반환합니다.

멱등 토큰은 API 호출이 실패할 경우 다시 시도하기 위한 목적으로만 임시로 사용합니다. 어느 정도 시간이 지나서 요청을 다시 시도하면 이전의 호출과 다른 응답을 수신할 수 있습니다.

요청 매개변수는 무시됩니다. 그래도 요청 내용을 변경하고자 할 경우 해당 요청에 새 멱등 토큰을 만드세요.

일괄 조정

결제를 처리할 때 Meta Pay Webhooks를 사용하여 Meta에 결제 거래 활동에 대해 알리세요. Webhooks를 호출하면 결제 거래 활동이 최대한 빠르게 고객 Facebook 계정의 Facebook Pay 활동 페이지에 표시됩니다.

실패한 알림은 일괄 조정 시 Meta에서 캡처하고 나중에 고객 Facebook 계정에 표시됩니다.

일괄 조정을 지원하려면 그날에 Meta로 보낸 알림이 포함된 파일을 매일 업로드합니다. 성공한 알림과 실패한 알림을 모두 포함합니다. Meta API에 파일을 업로드하는 방법에 대한 자세한 내용은 Facebook에 파일 업로드를 참조하세요.

오류 처리

Meta Pay API는 표준 그래프 API 오류 처리를 사용합니다.

판매자 초기화 및 업데이트

지원하는 판매자의 데이터를 초기화하거나 업데이트하려면 POST 요청을 판매자 그래프 API/metapay_partner/merchant로 보내고 판매자 매개변수를 지정합니다.

https://graph.facebook.com/metapay_partner/merchant

요청 매개변수

매개변수유형설명필수

partner_merchant_id

문자열

결제 파트너가 있는 판매자 계정의 고유한 식별자입니다.

business_uri

문자열

Meta Pay 인터페이스에서 고객에게 표시되는 판매자 웹사이트의 URI입니다. URI는 http:// 또는 https://로 시작해야 합니다.

display_name

문자열

Meta Pay 인터페이스에서 고객에게 표시되는 판매자 이름입니다.

mcc

int64

[사용 중단]

판매자 카테고리 코드입니다. Meta는 이를 사용하여 결제 활동을 분류하고 결제가 Meta 서비스 약관을 준수하는지 확인합니다.


참고:

mcc 또는 mcc_list를 제공해야 합니다.

아니요*

mcc_list

Array< int64>

판매자 카테고리 코드의 리스트입니다. Meta는 이를 사용하여 결제 활동을 분류하고 결제가 Meta 서비스 약관을 준수하는지 확인합니다.


참고:

mcc 또는 mcc_list를 제공해야 합니다. 이는 mcc보다 선호되는 매개변수입니다.

아니요*

merchant_status

문자열

판매자가 결제 파트너로 활성화되었는지 비활성화되었는지 나타냅니다. PENDING, ENABLED, DISABLED 중 하나입니다. '대기 중'은 '비활성화됨'과 같은 의미지만 일시적으로 비활성화된 상태를 나타낼 수 있습니다.

icon_uri

URI

Meta Pay 인터페이스에서 고객에게 표시되는 판매자 아이콘의 URI입니다. 아이콘 파일 형식은 png와 jpeg 중 하나입니다.

아니요

support_email

문자열

고객이 거래 영수증이나 요약을 요청하기 위한 이메일 주소입니다.

아니요

support_phone

문자열

고객이 결제 거래에 지원을 요청하기 위한 전화번호입니다. 16315551000, +1 631 555 1001, +1 (631) 555-1004, 1-631-555-1005 형식 중 하나를 사용하여 전화번호 형식을 지정합니다.

아니요

valid_origins

Array< String>

판매자에게 유효한 보안 출처 URI의 전체 리스트입니다. 결제가 예상한 웹 보안 출처에서 시작되도록 하는 데 사용합니다.

아니요

pixel_id

문자열

판매자의 Meta 픽셀에 대한 고유 식별자입니다. 광고 관리자에서 Meta 결제 전용 기능을 지원하는 데 사용됩니다.

아니요

응답

판매자 API로 POST 요청을 보낸 후 200 OK 응답을 받으면 POST가 성공적으로 처리되었다는 것을 의미합니다. 응답 본문은 판매자 상태를 ENABLED 또는 DISABLED로 나타냅니다. 비어 있지 않은 상태 수정자는 추가 정보를 제공합니다.

일반적으로 성공한 응답은 다음과 같습니다.

{
    "status":"ENABLED",
    "status_modifiers":[]
}

임시 검사를 진행하고 있는 판매자에 대한 응답은 다음과 같습니다.

{
    "status":"DISABLED",
    "status_modifiers":["PENDING_SCREENING"]
}

사용 가능한 상태 수정자는 다음과 같습니다.

상태 수정자설명

PENDING_SCREENING

판매자의 Meta Pay 사용이 일시적으로 차단되어 규정 준수 검사 결과를 기다리는 중입니다. 검사는 보통 24시간 이내에 완료됩니다. 상태를 확인하려면 판매자 API를 쿼리하세요.

INVALID_ICON

icon_uri는 허용되지 않습니다. 파일 형식이 잘못되었거나, 파일이 용량 제한을 초과하거나, URI를 가져올 수 없습니다. 이 상태 수정자는 판매자가 Meta Pay를 사용하는 것을 방해하지 않습니다.

INTEGRITY_FLAG

하나 이상의 판매자 속성이 무결성 플래그를 트리거했습니다. 판매자는 비활성화됩니다.

BLOCKED

판매자의 Meta Pay 사용이 영구적으로 차단됩니다.

판매자 가져오기

등록된 판매자의 리스트를 가져오려면 판매자 그래프 API /metapay_partner/merchantsGET 요청을 보내세요.

https://graph.facebook.com/metapay_partner/merchants

요청 매개변수

다음 선택적 요청 매개변수는 URL 매개변수로 지원됩니다.

매개변수유형설명필수

partner_merchant_id

문자열

필터링 기준으로 적용할 쉼표로 구분된 파트너 판매자 ID입니다.

아니요

응답

GET 판매자 API에서 얻은 결과는 페이지 매김됩니다. 일반적인 응답 형식은 링크된 페이지를 참조하세요. data 배열에서 반환된 각 요소는 판매자 요청 매개변수 형식이 됩니다. 예:

curl -H "Authorization: OAuth $OAUTH" -X GET "https://graph.facebook.com/metapay_partner/merchants?partner_merchant_id=MERCHANT_TEST_1"
{
    "data": [
        {
            "partner_merchant_id": "MERCHANT_TEST_1",
            "merchant_status": "DISABLED",
            "display_name": "Test merchant 1",
            "business_uri": "https://facebook.com/",
            "icon_uri": "https://facebook.com/favicon.ico",
            "mcc_list": [7311],
            "support_email": "example@facebook.com",
            "support_phone": "+11234567890",
            "valid_origins": [
                "https://facebook.com/"
            ],
            "legal_structure": "COMPANY_TYPE_NOT_SPECIFIED",
            "status_modifiers":["BLOCKED"],
            "effective_merchant_status":"DISABLED"
        }
    ],
    "paging": {
        "cursors": {
            "before": "aaa...",
            "after": "bbb..."
        },
        "next": "https://graph.facebook.com/metapay_partner/merchants?limit=25&after=..."
    }
}

Webhooks

승인, 캡처, 분쟁, 결제 또는 환불이 발생할 때마다 Meta의 Webhooks를 호출하여 Meta에 결제 거래 활동에 대해 알려야 합니다.

200 OK 응답은 Webhooks가 성공적으로 처리되었다는 것을 나타냅니다. 요청에 성공한 응답 본문에서는 container_id를 반환합니다.

{
    "id":"cGF5bWVudF9jb250YWluZAXI6N2I3ODA1ZATYtZAmRiNS00Yzc4LWFjYjAtZATg3ZAjJhMzg2YTc5XzM2ODkyNjAzMTc4MDEzNzYZD"
}

Webhooks 호출이 실패하는 경우, 재시도 간격을 점차 늘려가며 최소 72시간 동안 3회 이상 호출을 다시 시도하세요. 그래도 호출이 실패할 경우 나중에 일괄 조정 시 알림을 캡처할 수 있습니다.

Meta API Webhooks에서 모델링된 리소스의 엔터티 관계 다이어그램은 다음과 같습니다. 검은색 점이 있는 속성은 필수 속성을 나타냅니다.

알림

Webhooks를 호출할 때마다 요청 본문의 알림 매개변수와 리소스 필드의 알림 유형에 대한 상세 정보를 아래의 섹션에 나와 있는 대로 포함합니다. 알림의 일반 구조는 다음과 같습니다.

{
  idempotence_token: '<your token>',
  notification:
  {
    ...
  },
  resource:
  {
    ...
  }
}

알림 매개변수

속성유형설명필수

merchant_id

문자열

판매자 계정의 고유한 식별자입니다. 사용할 수 있는 문자는 [a-zA-Z0-9_-]입니다.

type

문자열

알림 유형입니다. 유효한 값은 notify_authorizations, notify_captures, notify_disputes, notify_paymentsnotify_refunds이며, 호출하는 Webhooks와 일치해야 합니다. 이는 일괄 조정에서 사용합니다.

event_time

Int64

UNIX 타임스탬프(ms)입니다.

container_id

문자열

컨테이너 구조의 고유한 식별자입니다.

승인 알림

POST 요청을 /<CONTAINER_ID>/notify_authorizations로 보내서 Meta에 결제 거래의 승인 활동에 대해 알립니다.

https://graph.facebook.com/<CONTAINER_ID>/notify_authorizations

승인 리소스

속성유형설명필수

partner_auth_id

문자열

승인 또는 청구의 고유한 식별자입니다. 사용할 수 있는 문자는 [a-zA-Z0-9_-]입니다.

auth_amount

알림 금액 개체

승인된 금액입니다. 현재는 currencyUSD만 지원됩니다.

status

문자열

승인의 상태입니다. PENDING, SUCCEEDED, FAILED, CANCELED 중 하나입니다.

created_time

Int64

승인을 시도한 시점의 UNIX 타임스탬프(ms)입니다.

description

문자열

결제 거래에 대한 설명입니다.

아니요

statement_descriptor

문자열

고객에게 표시되는 결제 거래에 대한 설명(예: 신용카드 내역서)입니다.

아니요

error

알림 오류 개체입니다.

오류 발생 시 오류의 상세 정보입니다. code에 유효한 값은 INVALID_PAYMENT_METHOD, PROCESSING_FAILURE, EXPIREDOTHER입니다.

아니요

metadata

Object {String : String}

승인에 대해 추가 정보를 제공하는 키-값 쌍의 배열입니다.

아니요

캡처 알림

POST 요청을 /<CONTAINER_ID>/notify_captures로 보내서 Meta에 결제 거래의 캡처 활동에 대해 알립니다.

https://graph.facebook.com/<CONTAINER_ID>/notify_captures

캡처 리소스

속성유형설명필수

partner_capture_id

문자열

캡처의 고유한 식별자입니다. 사용할 수 있는 문자는 [a-zA-Z0-9_-]입니다.

partner_auth_id

문자열

이 캡처에 해당하는 승인이나 청구에 대해 이전에 생성한 식별자입니다.

아니요

capture_amount

알림 금액 개체

캡처된 금액입니다. 현재는 currencyUSD만 지원됩니다.

status

문자열

캡처의 상태입니다. PENDING, SUCCEEDED, FAILED 중 하나입니다.

created_time

Int64

캡처를 시도한 시점의 UNIX 타임스탬프(ms)입니다.

note

문자열

캡처를 설명하는 판매자의 메모입니다.

아니요

error

알림 오류 개체입니다.

오류 발생 시 오류의 상세 정보입니다. code에 유효한 값은 PROCESSING_FAILURE, DECLINEDOTHER입니다.

아니요

분쟁 알림

POST 요청을 /<CONTAINER_ID>/notify_disputes로 보내서 Meta에 결제 거래의 분쟁 활동에 대해 알립니다.

https://graph.facebook.com/<CONTAINER_ID>/notify_disputes

분쟁 리소스

속성유형설명필수

partner_dispute_id

문자열

분쟁의 고유한 식별자입니다. 사용할 수 있는 문자는 [a-zA-Z0-9_-]입니다.

created_time

Int64

분쟁이 생성된 시점의 UNIX 타임스탬프(ms)입니다.

dispute_amount

알림 금액 개체

분쟁이 일어난 금액입니다. 현재는 currencyUSD만 지원됩니다.

reason

문자열

분쟁이 일어난 이유입니다. BANK_CANNOT_PROCESS, CREDIT_NOT_PROCESSED, CUSTOMER_INITIATED, DEBIT_NOT_AUTHORIZED, DUPLICATE, FRAUDULENT, GENERAL, INCORRECT_ACCOUNT_DETAILS, INSUFFICIENT_FUNDS, PRODUCT_UNACCEPTABLE, SUBSCRIPTION_CANCELED, OTHER_UNRECOGNIZED, PRODUCT_NOT_RECEIVED, INCORRECT_AMOUNT, PAYMENT_BY_OTHER_MEANS, PROBLEM_WITH_REMITTANCE 중 하나입니다.

status

문자열

분쟁의 상태입니다. RESOLVED_BUYER_FAVOR, REVERSED_SELLER_FAVOR, RETRIEVAL_EVIDENCE_REQUESTED, RETRIEVAL_UNDER_REVIEW, RETRIEVAL_CLOSED, BUYER_REFUNDED, CHARGEBACK_EVIDENCE_REQUESTED, CHARGEBACK_UNDER_REVIEW 중 하나입니다.

partner_payment_id

문자열

이 분쟁에 해당하는 결제에 대해 이전에 생성한 식별자입니다.

아니요

partner_capture_ids

Array< String>

이 분쟁에 해당하는 캡처의 식별자입니다. 이 속성은 선택 사항입니다.

아니요

description

문자열

분쟁에 대한 설명입니다.

아니요

metadata

Object {String : String}

분쟁에 대해 추가 정보를 제공하는 키-값 쌍의 배열입니다.

아니요

결제 알림

POST 요청을 /<CONTAINER_ID>/notify_payments로 보내서 Meta에 자금 이동 작업과 관련되지 않은 결제 활동에 대해 알립니다. 예를 들어 위험 검사를 통과하지 못하는 경우 사용자 결제를 처리하지 않기로 결정할 수 있습니다.

https://graph.facebook.com/<CONTAINER_ID>/notify_payments

결제 리소스

속성유형설명필수

partner_payment_id

문자열

결제의 고유한 식별자입니다. 사용할 수 있는 문자는 [a-zA-Z0-9_-]입니다.

status

문자열

결제의 상태입니다. PENDING, SUCCEEDED, FAILED, CANCELED 중 하나입니다.

created_time

Int64

결제를 시도한 시점의 UNIX 타임스탬프(ms)입니다.

metadata

Object {String : String}

결제에 대한 추가 정보를 제공하는 키-값 쌍의 배열입니다.

아니요

환불 알림

POST 요청을 /<CONTAINER_ID>/notify_refunds로 보내서 Meta에 결제 거래의 환불 활동에 대해 알립니다.

https://graph.facebook.com/<CONTAINER_ID>/notify_refunds

환불 리소스

속성유형설명필수

partner_refund_id

문자열

환불의 고유한 식별자입니다. 사용할 수 있는 문자는 [a-zA-Z0-9_-]입니다.

created_time

Int64

환불이 생성된 시점의 UNIX 타임스탬프(ms)입니다.

refund_amount

알림 금액 개체

환불 대상 금액입니다. 현재는 currencyUSD만 지원됩니다.

status

문자열

환불의 상태입니다. PENDING, SUCCEEDED, FAILED, CANCELED 중 하나입니다.

partner_capture_id

문자열

이 환불에 해당하는 캡처에 대해 이전에 생성한 식별자입니다.

아니요

description

문자열

환불에 대한 설명입니다.

아니요

statement_descriptor

문자열

고객에게 표시되는 환불에 대한 설명(예: 신용카드 내역서)입니다.

아니요

error

알림 오류 개체입니다.

오류 발생 시 오류의 상세 정보입니다. code에 유효한 값은 PROCESSING_FAILURE, DECLINEDOTHER입니다.

아니요

metadata

Object {String : String}

환불에 대해 추가 정보를 제공하는 키-값 쌍의 배열입니다.

아니요

알림 금액 개체

금액 개체를 사용하여 승인, 캡처, 분쟁 및 환불에 대한 알림의 각 통화 단위의 금액을 나타냅니다.

금액 개체

속성유형설명

currency

문자열

금액에 대한 ISO 4217 표준의 3자리 통화 코드입니다. 통화 코드 리스트는 ISO 4217을 참조하세요. 현재는 currencyUSD만 지원됩니다.

value

정수

currency의 최소 단위로 표시된 금액입니다. 예를 들어 currencyUSD일 경우 $19.99의 value1999센트로 표시합니다.

알림 오류 개체

승인, 캡처, 결제 또는 환불을 처리할 때 오류가 발생하는 경우 resourceerror 개체를 포함해 오류에 대한 정보를 제공합니다.

오류 개체

속성유형설명

code

문자열

Meta 전용 오류 코드입니다. 유효한 값은 알림 유형에 따라 다르며, 이 내용은 이전 섹션에 설명되어 있습니다.

partner_code

문자열

오류 코드입니다.

partner_error

문자열

오류에 대한 설명입니다.